top | item 26248134

Nim versions 1.4.4 and 1.2.10

119 points| 0-_-0 | 5 years ago |nim-lang.org

41 comments

order
[+] przmk|5 years ago|reply
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.

Maybe I'm just spoiled.

[+] melling|5 years ago|reply
25 years ago I would have said people were just being lazy for expecting autocompletion.

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
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
[+] gameswithgo|5 years ago|reply
I know your pain. Have you used Rust lately with the Rust-Analyzer plugin? Don't use the old "rls" one. You might be pretty happy with it these days.
[+] skocznymroczny|5 years ago|reply
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.
[+] nimmer|5 years ago|reply
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.

[+] ddoeth|5 years ago|reply
Kite is doind pretty well for me in Python.

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
The rust plugin for intellij is pretty good and keeps getting better, both in terms of intellisense and refactoring.
[+] PixyMisa|5 years ago|reply
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.
[+] mcintyre1994|5 years ago|reply
This is the biggest downside I've found with Elixir as well, it's just not as easy/enjoyable to write code without really good autocomplete.
[+] klibertp|5 years ago|reply
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.

[+] otabdeveloper4|5 years ago|reply
Most languages (that aren't Java) don't really need autocomplete.
[+] jblindsay|5 years ago|reply
Congratulations to the Nim development team for another solid release. I'm really enjoying working with Nim.
[+] alberth|5 years ago|reply
I wish more effort was made by the NIM team to focus on web development as a use for NIM.
[+] cb321|5 years ago|reply
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! :-)

[+] nepeckman|5 years ago|reply
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.
[+] sausage_dog|5 years ago|reply
What do you currently feel is missing for web development? I'm using Karax on a few projects and I really like it
[+] christiansakai|5 years ago|reply
How does Nim's static typing compared to TypeScript and (Simple) Haskell?
[+] nepeckman|5 years ago|reply
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.