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).
