Nim is a great language, I have been following it for years, read the book and even used it in production, the lack of adoption is due to lack of support by major companies is only one reason.
>From my discussions trying to introduce Nim to others, it the syntax, it's a >subject that has been discussed over and over, and we are beyond that now >since Nim 1.0 is already released, but for the record, I will summarize the >general ideas from my discussions in 2 points: 1\. it's not C like language, which everybody is familiar and comfortable with, so it takes time and effort to learn the new keywords and expressions like `proc` or `case of`, not a big deal of some with free time, but it is for an industry that trying to pay the bills. 2\. Believe it or not, it's the logic by indentation and lack of closing symbol/keyword, where do scopes end visually is important for code reviews. I love Nim, I still code with it for fun and to support the code I have in production, I wish if I can use it for more serious work, but I have to agree with the points above. For me Nim is not the syntax, it's the specs and ideas it implements, I think if it was a C like language (`struct`, `func`, `switch`, `{}` etc) it would have had an easier adoption, developers would copy/paste their C or C++ code into a Nim file and port it. I once read in this forum that the syntax itself can easily be changed as long as it translate well to Nim AST, I don't remember if it was a serious suggestion, but it was considered at some point to provide multiple syntax for programmers to choose, I wonder if someone can shed some light on this, I think it worth a second look/research.