Live data from Hacker News

Ask HN: Why did Nim not catch on like Rust did?

news.ycombinator.com

41–50 of 139 posts

Re: Ask HN: Why did Nim not catch on like Rust did?

#41
post #14

Earlier quoted context omitted.

Pitch: Like Python, but faster and multicore. At least it's the reason I tried it once. It was not a bad experience.

The problem with that for me is "like Python" implies a HUGE collection of libraries I can use to connect to pretty much anything. With Python I can just search "python " and find popular, well-maintained, libraries to do . I can't do that with Nim. Most of the stuff I find seems to be 5-9 years old and have no updates since.

Except THAT library only supports Python 2.7.x

Re: Ask HN: Why did Nim not catch on like Rust did?

#42
post #36
post #32

When Rust was able to get rid of a class of memory bugs, undefined behavior, concurrency bugs without a garbage collector, it achieved a breakthrough. You can now write JS or Java VM in a language that doesn't have buffer overflows, dangling pointers and all kinds of other nasty security vulnerabilities. Nim doesn't GUARANTEE memory safety, so it's basically... better Pascal? It's an iterative improvement that nobody…

There is more to software engineering than just memory safety.

Sure, but does nim have any breakthrough innovations in any of those other areas?

Re: Ask HN: Why did Nim not catch on like Rust did?

#43
post #36
post #32

When Rust was able to get rid of a class of memory bugs, undefined behavior, concurrency bugs without a garbage collector, it achieved a breakthrough. You can now write JS or Java VM in a language that doesn't have buffer overflows, dangling pointers and all kinds of other nasty security vulnerabilities. Nim doesn't GUARANTEE memory safety, so it's basically... better Pascal? It's an iterative improvement that nobody…

There is more to software engineering than just memory safety.

The question is not whether Nim is better than Rust, the questions are:

Does a C++ developer have reasons to switch to Rust

and

Does a C++ developer have reasons to switch to Nim

Re: Ask HN: Why did Nim not catch on like Rust did?

#44
post #24
post #17

Earlier quoted context omitted.

How about the motto: “Efficient, Expressive, Elegant”?

I don't think that is particularly good either. It is too vauge. Just subjective adjectives. Nothing concrete. Not to mention, everyone aims for those traits. It is not unique enough.

Everyone? Python doesn't aim for efficient. C++ doesn't aim for expressive or elegant.

Re: Ask HN: Why did Nim not catch on like Rust did?

#45
post #36
post #32

When Rust was able to get rid of a class of memory bugs, undefined behavior, concurrency bugs without a garbage collector, it achieved a breakthrough. You can now write JS or Java VM in a language that doesn't have buffer overflows, dangling pointers and all kinds of other nasty security vulnerabilities. Nim doesn't GUARANTEE memory safety, so it's basically... better Pascal? It's an iterative improvement that nobody…

There is more to software engineering than just memory safety.

Yes, so if we get away from the elevator pitch, Rust provided:

* Cargo for managing dependencies and a sensible module system

* Option/Result based error handling without using null

* Zero (runtime) cost abstractions like iterators and async

Re: Ask HN: Why did Nim not catch on like Rust did?

#47

Indentation sensitivity is ugly. With a bracket, i can easily read the scopes, block of codes. With indentation, it's harder.

So... you don't indent your bracket blocks?

Algorithm to read scope:

- Step 1: Find open bracket

- Step 2: Find closed bracket

With indentation, the algorithm now becomes:

- Step 1: Find something which seems to open a scope.

- Step 2: Scan all indentation level until it's done.

The difference is huge here.

Re: Ask HN: Why did Nim not catch on like Rust did?

#48
In my opinion, Nim is too broad. I did some code in Nim to extend/make Python ML (Huggingface) faster and Nimpy was very good. Then I tried to learn how to use Nim for systems programming and barely any guide exist except for open-source libraries.

In my opinion, Nim's ability to be compiled to C, C++, and JS make materials for new users too defragmented (this also almost occur with Clojure, IMO, though JVM/JS/and now Dart targeting make sense with their various niches). And all the tricky parts like Orc/Arc/no GC.

But I really love the Python + Pascal syntax, to be honest. Maybe even more than Lisps.

I really wish I could buy the new Nim book but it's kinda hard as a 3rd worlder to import dead-tree books. Unfortunate.

Re: Ask HN: Why did Nim not catch on like Rust did?

#49
post #42
post #36

Earlier quoted context omitted.

There is more to software engineering than just memory safety.

Sure, but does nim have any breakthrough innovations in any of those other areas?

Do you need breakthrough innovations to adopt a language? Listen, I like Rust and it has its niche for some of my projects, but not all projects should be written in Rust. Least of all because it is an innovative language. That works well as a marketing slogan, not as a factor to decide which language is more apt for the project at hand.

Do I need memory safety? If yes, Rust is the best choice.

But other times I need quick iteration times (Python, or maybe Nim) or immutability, or painless concurrency (Elixir), or meta-programming (Lisp & derivatives). I don't spend any time to ask myself whether a language is innovative, when I got deadlines and results to deliver.

Re: Ask HN: Why did Nim not catch on like Rust did?

#50
In answering this, I'd look beyond just the language features and look at the background of how it caught on. What apps were built first. When did the "Rewrite it in rust" mantra take hold. What impact did but with colors / nice cli / sensible defaults have on things (e.g. fd / exa / lsd / bat / ...)? What libraries being available made it easy (clap / argh)?

Then look at how the community was built (e.g. Mozilla / conferences / forums etc.)

I've only recently started writing rust (after years of C#, Java, JavaScript, Ruby, Python, and a variety of other languages), and once I got past the basics of understanding borrow checker issues I love it as a language. Personally (for reasons unknown) I prefer brackets over indentation based languages, so Nim is a pretty hard sell there.

Post reply on HN