I'm working in the field and Nim is my "everyday job language". Translation: 
Nim is _considerably less qualified_ than Ada (much harder to master), Eiffel 
(unattractive for some other reasons), and even Ocaml (less attractive for 
multiple reasons), let alone F star (which however is considerably more 
demanding and more complex plus poorly documented). But Nim is _way better 
qualified_ than most languages in common use (except a few which are however 
either JVM or .Net based). Some reasons for that are strong static typing, 
(albeit still very modest contracts), good readability and a creator/team 
leader with a healthy mindset and knowledge of and respect for languages like 
Modula [2|3], Pascal.

One point I'd like to add, although not yet final (more testing required), is 
that Nim (inter alia and probably most used) translates to C which can be 
statically and dynamically tested.

For hardcore security jobs I still use Ada, for (rare) GUI jobs I still use 
FreePascal, for pure crypto jobs like porting or optimizing crypto algos I 
still use C along with formal modelling, proto verif. and (usually static) 
analysis.

I'm currently looking closely at the C code Nim generates. I'm not exactly 
happy because it _looks_ very ugly and seems to occasionally produce, let me 
word it nicely, strange code and errors in static analysis (might be false 
positives), that's why I still keep Ada at hand. But if my tests would show 
that Nim generates reliably error free code (or if the team reacts 
constructively on eventual criticism) I'll use Nim even for at least some 
critical jobs.

Note: At least Nim (well, its output) _can_ be statically checked, most 
languages can't (because there are no tools available), so what I wrote here is 
_not negative_ as compared to other languages. In fact my impression so far is 
that Nim is in the top 10% of commonly used languages in terms of safety. So, 
my testing is not about tearing into Nim but rather about _verifying_ the 
(positive) impression I've got so far.

Short version/TL;DR: unless it's hardcore jobs (e.g. crypto implementations) 
Nim is probably the best language in my toolset and the one I like most as well 
as the most efficient one (in terms of coding time and efforts).

If you want a (premilinary) 1 sentence verdict -> Nim is at least as 
safe/secure as FreePascal and the C and C++ code it produces is safer/more 
secure/less buggy than what 98% of developers produce by hand.

Reply via email to