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.
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.
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.
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.
Lastly, at least the auto completion I used in intellij and visual studio is a peak into the documentation, it lists the full method signature, including all other methods, and opens the documentation on click.
In my experience a lot of stuff that is auto-completed in java is boilerplate, stuff that I don't really need in python.
[1] https://github.com/bluenote10/NimData
[2] https://github.com/Vindaar/ggplotnim
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.
Just as one example (more fully elaborated here [1]), there is no pointer arithmetic by default, but one can write a tiny little template to add those operators and then invoke it in a local scope like:
...surrounding code...
ptrMath:
let address = base + offset
...surrounding code...
In this way many different & arbitrary "generally unsafe but also sometimes very convenient" constructs can still be used at an author's discretion, but be used in a way to make a reader (perhaps) pay better attention in a way that is more specific than some "generically 'unsafe'" block.This is, of course, just the tip of a meta-programming iceberg.
Arguably, this puts more pressure on code completion systems figuring out parameter names. So, I am not really disagreeing with @rob74 -- just adding some color related to this specific programming language.
I've always been a bit mystified that named parameter calling was not far more popular. Its use in programming languages seems quantitatively rare, but the upsides seem far more valuable than any downsides. Its use for either short or long options when calling commands has been a very strong de facto standard since, well, the dawn of commands (there are always exceptions, of course).
C and C++ development on VC++ on Windows and XEmacs on UNIX.