Normally I use emacs for my developments. Together with a bunch of tools needed to have a “modern” IDE for ocaml, the language I use for nearly everything I develop. But, as I do it regularly, I reasked myself, why I’m using emacs, and if something new would be better? So, I gave a try to Microsoft Visual Studio Code
To be honest, I already had a look a few years ago. What I’ve seen was nice, but, it was not usable for me. A little to buggy, the ocaml environment was not as I wanted. So, nice at a first glance, but not really usable the way I develop.
OK. So, what do I really need to work with a nice IDE / editor?
- Fast: The IDE/editor should be fast. Sounds evident? It isn’t, emacs is still not very fast on performant current hardware. Still not clear why, as it has always be a key drawback in the last 20 years. Fast in every way, from the starting to the usage of the functionalities.
- Keyboard driven: Even if a nice looking is important while looking at code (something that emacs and vi advocates underestimate too much in my view…), the most important is too be able to do everything directly from the keyboard with some shortcuts. It is so much faster to work with the keyboard than with the mouse…
- Ocaml Tooling support: For me important, as even if ocaml is kind of exotic in comparison to Javascript or Python, I use it, and, I won’t change… Support includes typing proposals, intelligent completion, nice syntax highlighting that works with the ocaml specificities (it’s not a language belonging to the C syntax-world)
- Ease of configuration: It is more important to get quickly what you want, than to be able to get something that may be nice. Emacs is great for the configuration capabilities, but while developing, I don’t really need it…
- Of course, no errors, problems, crashes. Let’s call it stability.
- Linux: I use debian Linux as preferred development environment.
- No data sharing / freedom of use without
Nice to haves are for me:
- A good GIT integration is important, even if I develop alone, and in most cases for my own purposes, so my needs here are quite basic.
- Nice looking. Not rationally important, but, working in a more pleasant environment has always be better for the productivity
- Commands for everything. It’s a little related to the keyboard driven… It’s quite important to be able to have a lot of features, and just being able to call them through there name in a dedicated mask…
Hum. More than I thought at first. Emacs has a lot of them, but, it’s not fast, and, it’s quite complicated to configure at the end. A lot of tools help to have a working environment to be honest, but it’s not always obvious. I think, the speed is really the real annoyance I have with emacs since I use it (so since I studied… Back to the 90s…).
So, I tried MS Visual Studio code. And, it provides me everything I need currently. OK, you just have to be careful to the data sharing stuff, but through a configuration it should not send verbosely data to Microsoft. I’m still learning to use it, but I’m only a little slower than I would be with emacs, and I’m faster for other stuff (typically related to the text completion / proposals and typing proposals). For me, it was a positive surprise…