Hello, this post is inspired a bit by the virtual Nim conf (all the talks were 
very interesting). I thought I'd jot down some thoughts if why I'd like to 
switch to Nim from Python. I hope that this is helpful. Sorry if it's a bit 
long-winded.

Many years ago I was tasked with looking after a database for a particle 
physics experiment. My task required writing scripts. As I was unfamiliar with 
scripting in those days a colleague suggested to me Perl. He showed me how to 
write a script to do do the tasks that I needed. I found this to be magic. 
Chiefly because I didn't understand all the special symbols and incantations in 
the script. I was able to do extremely simple things, but nothing more.

I then stumbled upon Python and found I was able to create scripts much more 
easily. I could even write a script that read and wrote to a file (you can 
appreciate how poor my grasp of Perl was)! I was so happy with the language 
that I suggested it be adopted by our experiment. It was. This was in 
1999/2000\. I mention the date as you'll understand that this was an early 
version of Python. It was not as popular as today, didn't have as many 
libraries and (I believe, although my memory could be faulty) was not installed 
by default on Linux. But, we found the expressiveness and the ability to get 
productive quickly a big selling point.

A few years ago I stumbled upon Nim. I thought it seemed interesting and 
decided to give it a whirl. This was at the time when early versions of Python 
3 had been released and I was looking around for another language as I was 
concerned that the migration from Python2 to Python3 may not be so simple. I 
think my concerns are probably unjustified as there are a lot of people using 
Python (many hands make light work). I like the built-in static typing and the 
syntax. I found that I could do simple things relatively quickly. I think that 
it can be a very useful language for people that have worked in Python to 
migrate to.

I am excited about Nim now as I was about Python back at the turn of the 
century.

For me things that I thought were missing in Nim are:

  * a way to rapidly check snippets of code. I think in this regard inim would 
be very useful. I tend to be a bit of a hacker and tend to experiment with 
snippets of code to understand how they work before slapping them into a 
program.
  * a default layout for the code. For some Javascript applications I have been 
looking at Elm which has a script that allows you to setup the directory 
structure according to some default. I found that quite helpful as it's often 
difficult to decide how to arrange code.
  * REST library. I have found that FastAPI in the Python world is very useful 
in building RESTful services. Perhaps such a framework/library exists in nim?
  * test framework (I have been trying to follow Bdd in Python with behave)



There is already quite decent documentation and a good book on Nim. I think 
that the community is very friendly (at least that's my experience so far).

I think that Nim is a great language with a lot of potential! I hope that I can 
help the community (with my limited skills).

Reply via email to