One thing I'm missing in all these languages is 100% auto-completion like the one you have in Java or C#. I have yet to experience a single instance of Intellij not being able to auto-complete something or not do it completely.
I know Nim and Rust have good VS Code plugins that do that to some extent but it is not something I can rely upon.
I'm very spoiled from C# and Visual Studio 2019. I have recently started working professionally in Rust and while I do feel the drop in ergonomics, half of the problem is from downgrading from full IDE like Visual Studio to Visual Studio Code. I'd say what I currently miss the most in Rust+VSCode is better debugging experience. I used to mostly develop features and fix bugs via interactively using the debugger and immediate window in C# while here it's not possible
Many of these languages rely on code generation, whether it's templates, macros, preprocessor. Since a lot of the code doesn't exist until compile time, it's hard to have the same level of autocomplete as in Java/C#, where everything is basically known from the start.
If I don't remember how to use some function it's a sign that I have to read the documentation. The documentation can have important tips around performance, security & recommended usage patterns that I need to know.
And if you don't remember a lot of methods it means you might be out of your league and need to read the documentation and go through a tutorial to understand what you are doing.
Keyword, method and variable completion is ok, but overzealous completion encourage churning out code on "autopilot".
If you are not Torvalds it's better to write code good slowly than the opposite.
There is an official Nim plugin from JetBrains now. It won't be as polished as Java support for obvious reasons, but at least you can stick with your preferred environment.
nimsuggest and nim-mode work quite well in Emacs with auto-complete, go to definition, and find references. There's also an LSP server in the works IIRC.
If you want good auto-complete for less popular languages, you need to use an editor which is both popular enough and makes writing completers easy enough. From my experience, Emacs with company or auto-complete packages is just like that, and I have auto-completion set up for 10+ languages, but I'm sure there are other editors out there you could use.
A Javascript backend is better focus than one usually sees. There are also quite a few web dev projects in the nimbleverse, and https://forum.nim-lang.org is written in Nim and there is much support code in the Nim stdlib.
Frameworks/simplifications are better left to the broader community that knows their own web-needs. It took many years for things like Django for Python or Rails for Ruby to appear. Even now, those are not part of the respective core languages, but external projects.
Anyway, it's open source. Instead of just wishing for more effort, adding your own effort might be even better! :-)
Agreed that there is room for improvement, but the Nim community is working on some promising web projects. Prologue framework, Norm (orm), and Karax (FE framework) are all great examples of how Nim can excel in the web environment.
Relevant sections [1] [2] in the Nim Manual might be of interest. Nim has nice type classes and can constrain generics to only apply to one (or a sum type of them, etc.). It also has concepts [3] that are a sort of compile-time duck-typing construct (under active development).
Comparable to TypeScript, but a little weaker in the advanced features. Nim object types and tuple types are similar to TypeScript interface definitions and just as light weight. The type inference is pretty similar, but Nim's is a little weaker. Nim also has object variants, which can achieve most of what I want out of union types. TypeScript has a pretty long list of advanced typing features, like key types, mapped types, and conditional types, which Nim cannot express. But the Nim macro system can work here in taking code and modifying it before the type system runs.
[+] [-] przmk|5 years ago|reply
I know Nim and Rust have good VS Code plugins that do that to some extent but it is not something I can rely upon.
Maybe I'm just spoiled.
[+] [-] 0-_-0|5 years ago|reply
https://github.com/nim-lang/RFCs/issues/300
[+] [-] melling|5 years ago|reply
Now I think we should demand autocompletion, and much more.
We should want both our languages to be smarter (type inference) so we can type less, and our tools are should know what we want to type.
https://www.tabnine.com/
[+] [-] kungito|5 years ago|reply
[+] [-] gameswithgo|5 years ago|reply
[+] [-] skocznymroczny|5 years ago|reply
[+] [-] nimmer|5 years ago|reply
And if you don't remember a lot of methods it means you might be out of your league and need to read the documentation and go through a tutorial to understand what you are doing.
Keyword, method and variable completion is ok, but overzealous completion encourage churning out code on "autopilot".
If you are not Torvalds it's better to write code good slowly than the opposite.
[+] [-] ddoeth|5 years ago|reply
In my experience a lot of stuff that is auto-completed in java is boilerplate, stuff that I don't really need in python.
[+] [-] abhijat|5 years ago|reply
[+] [-] PixyMisa|5 years ago|reply
[+] [-] mcintyre1994|5 years ago|reply
[+] [-] klibertp|5 years ago|reply
If you want good auto-complete for less popular languages, you need to use an editor which is both popular enough and makes writing completers easy enough. From my experience, Emacs with company or auto-complete packages is just like that, and I have auto-completion set up for 10+ languages, but I'm sure there are other editors out there you could use.
[+] [-] otabdeveloper4|5 years ago|reply
[+] [-] jblindsay|5 years ago|reply
[+] [-] alberth|5 years ago|reply
[+] [-] cb321|5 years ago|reply
Frameworks/simplifications are better left to the broader community that knows their own web-needs. It took many years for things like Django for Python or Rails for Ruby to appear. Even now, those are not part of the respective core languages, but external projects.
Anyway, it's open source. Instead of just wishing for more effort, adding your own effort might be even better! :-)
[+] [-] nepeckman|5 years ago|reply
[+] [-] sausage_dog|5 years ago|reply
[+] [-] christiansakai|5 years ago|reply
[+] [-] cb321|5 years ago|reply
[1] https://nim-lang.org/1.4.4/manual.html#types
[2] https://nim-lang.org/1.4.4/manual.html#generics
[3] https://nim-lang.github.io/Nim/manual_experimental.html#conc...
[+] [-] nepeckman|5 years ago|reply
[+] [-] TargetedVictimm|5 years ago|reply
[deleted]