Thank you guys, Nim is a wonderful idea and it actually works so well!
Meanwhile, my post to this reddit thread has just been shadowbanned (still visible to just me) or plain deleted, so I'm posting it here for posterity:
I regret not trying Nim out earlier, thinking it had to be as mediocre as Go. My bad!
A few random thoughts:
- I do not condone being rude on other languages' forums, but I do sympathize with the anti-CoC sentiment. The Nim community deserves major kudos for tolerating me and my libertarian ways.
- Take snapshots of all your public message forum comments (ex. archive.is, archive.org, peeep.us) to preserve evidence of censorship. Don't post in walled gardens where those archivers cannot access.
- I cannot corroborate Nim benchmarking faster than Rust - please post details (hardware, versions, OS, etc). Also note that Nim would score a lot better with the right scientific computation library wrappers (which is how some languages, especially Julia and even NumPy, beat it at matrix multiplication). But I think Nim's biggest "killer app" opportunities would best correlate with high-level Web framework / network server performance (ex. TechEmpower, nanoant) rather than number crunching, and if anyone is expending effort on performance optimization then that should be the first priority.
- IMHO, Nim's top selling point is NOT being the fastest language (ex. C) or the most productive language (ex. Python, Ruby). I think Nim's top selling point is offering the longest bridge in the middle, the most performance per productivity. Rust may benchmark a bit closer to C/C++, but its syntax verbosity comes much closer to C/C++ as well. This is like paying twice as much in purchase and fuel costs for a car that gets 10% better acceleration, which you almost never notice because of traffic congestion anyway.
- The performance / productivity dichotomy is the most prominent trade-off, but there are of course other virtues people look for in a programming language. Businesses like what I call "programmer interchangeability" — which is something that most popular languages (ex. Java, C#) are good at, and Golang seems to take to the next level — while Nim, IMHO to its credit, seems to largely disregard. And some programmers, especially in academia, value some strange virtues that I just can't seem to relate to (ex. the finer points of Haskell).
- And so, due to these differing values, one cannot say that language X is universally better than language Y. What I can say is that Nim's virtues align closer to my own priorities than any other programming language. A big part of my reasons is that I want my future projects and their dependencies to have a high level of license freedom purity (see copyfree.org).
I cannot corroborate Nim benchmarking faster than Rust
I didn't expect that either, hence the enthusiasm
The results were obtained on Linux, ARM and ARM64 (the new platform I'd mentioned), benchmarking the latest rust nightly vs latest Nim, gcc 4.9/5/6 and clang 3.6 (armv7).
Probably more proof rust is basically an x86_64 language. Personally, to give rust another chance, 3 things would have to happen:
- rust gets a dedicated gcc backend
- already compiled binary crates can be reused between the 6-week release periods (instead lots of effort has been wasted on crap like that alternative bootstrap system)
- rustbuild gets deleted in February (instead of the Makefiles bootstrap)
The last point definitely means it's goodbye rust.
Sometimes profanity is a good way to accentuate your arguments. I can appreciate that. Your post doesn't use much of it, but it's still not something that I can reasonably allow on this forum.
With this in mind, I will politely ask you to remove the profanity. All you need to do is remove the two offending words: "retarded" and "sucking". I believe that removing these words or replacing them with something less offensive won't change the meaning of your message.
I am of course willing to hear any arguments for why you (or anyone else) thinks these words should remain. Unlike the Reddit community I despise shadow bans and prefer not to remove posts when possible, that said I must admit that being able to discuss issues such as this with the offender is a luxury that doesn't scale well.
I'm afraid that if you don't comply, I will perform this edit myself.
It's nice to see that @libman has already engaged you in a discussion. I would like to continue that.
As a side note, it would be helpful if you could also edit the formatting of your post. Use the > to create quoted text, this will word wrap and be easier to read.
@NastyRigger: as much as I share your feelings towards CoCs and the oppressive PC exclusion that plagues communities like Rust (and others), there are better ways to express your antithesis towards them than childish insults. They only dis-credit your arguments and create animosity and bad feeling between developers.
I played a bit with Rust before I discovered Nim and -although I appreciated its effectiveness- I found it too verbose and bureaucratic. Nim's expressiveness and elegance is much more appealing to me. The only use-case where Rust would be a better fit IMO, would be when creating code for hard/firm real-time or embedded systems, where Rust's memory model allows for safe memory management. As this use-case doesn't affect me, I choose Nim over Rust because Nim makes me happier and more productive. However, you have to weigh things yourself and see which language fits your use-cases and coding style better.
Looks like a kindred spirit has joined the fray:
These lefty loons deserve the mockery.