16 ms·
I have spent time learning, messing around with, and evaluating each of the languages that you have listed. In the end, I decided to go with Rust for my particu
by jblindsay 8y ago
I have spent time learning, messing around with, and evaluating each of the languages that you have listed. In the end, I decided to go with Rust for my particular application, which is a large (100k SLOC) GIS application. Rust and Zig are probably the fastest of the listed languages, although Nim and Crystal are not far behind. I found Nim to be the easiest to program in, despite my lack of Python background. The friction factor seems the lowest. Crystal is quite a nice language, but I have reservations about its future, which have been shared by its originator (the compiler may not scale well), and it does not have Windows support or support for multi-threading. If these obstacles are overcome, it could be really interesting. Nim is really great, but they have to hit v1.0 by the end of year. I'm not sure if the devs realize how important this is to the user community. Zig is quite interesting, and highly performant, but it is probably at the earliest stage of the listed languages. Rust is certainly the furthest along in development, has a larger user community and learning resources. It's not the easiest language to learn or use. I agree with your assessment of the language but will say that things get much easier once you've spent some time with Rust.
The other languages that you didn't mention but are worth evaluating are D and Go. Again, they have advantages and disadvantages that may make them either more or less suited to your application.
- bmurphy1976 8y agoI'm all for a stable platform and backwards compatibility guarantees. Who wouldn't be? Who wants their code base flipped on it's head every couple months? But, why do they have to hit 1.0 by the end of the year? Who's the arbiter of this deadline?
- jblindsay 8y agoI didn't mean to imply that this is an absolute. But you may have noticed a lot of 'Nim is not a new language' sentiment in this discussion. In my mind, and I may be wrong, this is largely the result of the fact that the language has been around for a very long while without hitting v1.0. This makes the group of potential users very nervous. The longer they leave this unresolved, the more likely it is that the train will leave the station without them. It seems like now is a good time for Nim, with a lot of interest, but this must be addressed. The wonderful book Nim in Action, which I recently purchased, only makes sense if 1.0 is on the horizon. Otherwise, why bother with a published book on the language? Again, this is just my opinion but I'm sure that it's shared by at least some others. It is in my view the biggest obstacle holding the language back from more widespread adoption. I want the language to succeed and that's why I press the issue.
- PMunch 8y agoI can agree that 1.0 is an important milestone. At least as many people seem to treat it as "not ready" until it hits this milestone. I've been using Nim for the past couple of years, and keeping up to date with the version haven't been an issue for me. But I know that the core devs are all working hard towards fixing all the major things that prevent a 1.0 release, and it will probably come soon.
- jblindsay 8y agoMy impression is that you're right; there is a good sized group of people out there that have looked at Nim briefly and thought, this is great but I'll check back in when it's "ready". It is a shame because you're also right that the language is actually quite stable in its current pre-1.0 version. I'm no language designer (not by a long shot) and have the greatest respect for Araq and Dom (and Walter from D as stated above), but at some point you need to wrap it up, ship it, build a decent sized user base and bear the fruit of having more hands to make lighter work. The devs have been working extremely hard, I can tell, and I just hope that you're right in saying 'it will probably come soon'. And no doubt they don't need me pestering them to do it any faster (apologies Dom, I don't mean to make you sweat).
- WalterBright 8y ago> they have advantages and disadvantages D only has advantages.
- jblindsay 8y agoWell you would say that, would you ;-) I will agree with you that it is a very good language from my explorations, which is why I recommended it. It's one of the most mature languages that I've listed and has three excellent compilers. Some might say that its relatively slow GC is it's main disadvantage but that is obviously only going to affect certain classes of applications and the parent already stated that GC is not an issue for their work. The programs that I wrote in D were all highly performant compared with other languages. I also didn't find the language level support for concurrency to be as easy to use as either Go's or Rusts, but again, that's probably just me. Anyhow, I wanted to thank you for all of your efforts with D.
- WalterBright 8y agoYou're welcome!
- dual_basis 8y agoAlright, I'm going to check out D then. :)
- TorUser 8y agoThis is just more propaganda from Mr so called 'Bright'. Sure some things in D are 'interesting', but it's also a very, very complex beast, full of bugs (some known, and heaps more not-known). btw. Do not participate on the D forums either, it's just a propoganda tool for the D Foundation (i.e. they filter (or moderate as they like to call it), anything that says anything negative about d. In the end, if D has anything interesting, that we can't live without, we can just take it and integrate it one or the many 'proper' programming languages. Don't waste your time with d. You'll only ever end up wishing you had spent that time on a proper language, that has a well supported ecosphere.
- 8y ago
- dual_basis 8y agoI feel like I might learn the most from Rust, but since I can handle having a GC in my app the extra focus on elements included in Rust to guarantee memory safety without GC is potentially wasted. Thanks for you thoughtful comparison though, it was very helpful!