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.

Reply via email to