Live data from Hacker News

A Programming Language Underdog

totallywearingpants.com

11–20 of 238 posts

Re: A Programming Language Underdog

#11
post #9
post #5

Earlier quoted context omitted.

This might sound strange but Nim is good for everything. From writing backend services to creating web apps running on the client side. I've built emulators, CLI apps, a full blown forum and much more in it. It's particularly great for systems programming tasks that require high performance and zero dependencies. For example, Status is currently writing an Ethereum 2.0 sharding client for resource-restricted devices[…

How about the garbage collector? For really performance sensitive applications you'd turn it off and resort to manual memory management?

Yes, but the GC is very flexible so you might get away with using its soft real-time features[1].

1 - https://nim-lang.org/docs/gc.html

Re: A Programming Language Underdog

#12
post #5

I read the article. Still no idea what Nim is good for and why it's better than some other language.. and for which use cases?

This might sound strange but Nim is good for everything. From writing backend services to creating web apps running on the client side. I've built emulators, CLI apps, a full blown forum and much more in it. It's particularly great for systems programming tasks that require high performance and zero dependencies. For example, Status is currently writing an Ethereum 2.0 sharding client for resource-restricted devices[…

Interesting claim. For me, D has the best C++ interoperability. Small test which D failed:

Create a std::vector in Nim. Create some Foo objects and append them. Pass the vector to C++, create some Foo objects there and append them as well.

Re: A Programming Language Underdog

#13
post #7
post #5

Earlier quoted context omitted.

This might sound strange but Nim is good for everything. From writing backend services to creating web apps running on the client side. I've built emulators, CLI apps, a full blown forum and much more in it. It's particularly great for systems programming tasks that require high performance and zero dependencies. For example, Status is currently writing an Ethereum 2.0 sharding client for resource-restricted devices[…

What are Nim’s main weaknesses?

A biggy is that it only really has a single developer, and no big corporate users. And relatedly the library ecosystem is relatively weak. It also has a GC, so it can't be used for really low-level stuff where that is a problem.

It's looking pretty promising though. Especially if you are a fan of python's syntax.

Re: A Programming Language Underdog

#14
post #7
post #5

Earlier quoted context omitted.

This might sound strange but Nim is good for everything. From writing backend services to creating web apps running on the client side. I've built emulators, CLI apps, a full blown forum and much more in it. It's particularly great for systems programming tasks that require high performance and zero dependencies. For example, Status is currently writing an Ethereum 2.0 sharding client for resource-restricted devices[…

What are Nim’s main weaknesses?

It has no algebraic data types and pattern matching.

Re: A Programming Language Underdog

#15

I read the article. Still no idea what Nim is good for and why it's better than some other language.. and for which use cases?

I've played with it, and have written a basic fasta/fastq bioinformatics library in nim (https://github.com/jhbadger/nimbioseq)

What I find appealing is that seems to reach the goal of "a compiled typed language that feels like a scripting language" more so than other similar languages like Kotlin and Swift. There is just so little "boilerplate" code that always seems to have to be included in compiled languages and yet it seems to generate decent smallish binaries (via C). There's also a Javascript backend for web development, but I haven't used that.

Re: A Programming Language Underdog

#17
post #9
post #5

Earlier quoted context omitted.

This might sound strange but Nim is good for everything. From writing backend services to creating web apps running on the client side. I've built emulators, CLI apps, a full blown forum and much more in it. It's particularly great for systems programming tasks that require high performance and zero dependencies. For example, Status is currently writing an Ethereum 2.0 sharding client for resource-restricted devices[…

How about the garbage collector? For really performance sensitive applications you'd turn it off and resort to manual memory management?

Nim also has a stack based region allocator, but it didn't seem too well documented when I tried to use it.

Re: A Programming Language Underdog

#18
post #7

Earlier quoted context omitted.

What are Nim’s main weaknesses?

A biggy is that it only really has a single developer, and no big corporate users. And relatedly the library ecosystem is relatively weak. It also has a GC, so it can't be used for really low-level stuff where that is a problem. It's looking pretty promising though. Especially if you are a fan of python's syntax.

That is not totally true. Nim's own GC is written in Nim. You can turn the GC off.

Re: A Programming Language Underdog

#20
I had tried Nim a few years ago, and I liked it, but I am more of a Lisp or C person. I am trying to learn Zig [1] which is intended to be a C replacement - no GC, manual memory management, but avoiding C's pitfalls. Just recently I have been playing with Terra [2] for low level stuff.

I am a fan of underdog languages - J, picolisp, shen, xtlang (extempore). [3,4,5,6]

  [1] ziglang.org
  [2] terralang.org
  [3] jsoftware.com
  [4] picolisp.com
  [5] shenlanguage.org
  [6] extemporelang.github.io
Post reply on HN