Hello everyone, I use several languages in my work and with big libraries (OpenCV, GDAL). My main language is C++, I use Python to script and sometime Julia. I'm using Nim from 4 weeks for a personal project and I love it.
I didn't write this post to talk about me but the future features that must be developed in Nim to become a main language like C/C++. Every year or mouth maybe a new language is created with lots of features to create everything, easy to learn/read/write, efficient ... but only some new languages gain popularity. For me the features missing in Nim are by priority order: 1\. C/C++ auto binding : A new programing language must propose a binding solution with an other language or ecosystem with lot of packages developed during several years and maintained. All new languages has their compiler and propose a binding feature often with C and sometime C++. But in my case, who going to develop a complete binding of very big library ? I use OpenCV and I don't want to change it by an other. There is a binding in GitHub ([https://github.com/dom96/nim-opencv](https://github.com/dom96/nim-opencv)) but it isn't maintained since 2017. This is the main problem. Nim use C/C++ compilers like GCC and it's a great idea. Thanks to this particularity, the developer should be able to use easily a library without develop a binding and it must be done by the language. A good example is Julia that can call Python code directly in its code with the import keyword "pyimport". For Nim, I don't know how, maybe with a file descriptor to define include files and library path but without define functions and types binding. It's a big job but necessary for me. 2\. Debugging tool : Nim code is compiled with several compilers but this implies using different debugger. I know well GDB but in Windows I never used Microsoft's debugger because I use an IDE. Furthermore, in my IDE the debugging commands are the same on Windows, Mac and Linux. I'm not saying that should create a wrapper to all debuggers but this work should be done by the IDE. 3\. A great IDE : We can write our code with all editors like Vim or Notepad++ but they are only text editors. Un great language has a great IDE but it is useless to create an other editor only for Nim. For me the best solution is to choose an existing editor and create an plugin for it. I talk about Atom and VSCode, I use VSCode for all my development and a good plugins for Nim already exist. The problems are that the last version was published in February, the development is slow and there isn't a support for the debugging. This plugins should be managed by Nim (in the Nim repository) and a team should be focused on improving it. It's my opinion and I'm not saying that will be easy but Nim has been released and lot of curious people will want to use it. It's better if it's easy. You can develop the best GC in world but if the language is hard to use then few developers will use it. Now you should think developer-friendly. Thank you for reading me and sorry for my bad English.