I found myself lack of energy and time stepping into my 40s and vowed never to waste time “learning” cool editors such as Vim and Emacs.
VSCode is now my one stop editor of choice on Linux and VS on Windows. I also use Jetbrain editors for work.
I’m done. For people like me, who write SQL and Python for data pipelines, the Jetbrain IDEs are no-brainers. We don’t actually get the time or energy to do a lot of side projects so it doesn’t make sense to learn advanced editors such as Vim and Emacs: 1) These two need a lot of muscle memory just to start using it, but we don’t use it on a daily basis, 2) I’m not smart enough to write code as if I’m writing this reply so fluent coding experience without mouse isn’t useful for me ——- I have to stop and think hard every few minutes anyway.
Funny because I entirely agree with you, even though I do the exact opposite. Everything I write is in vim because I'm too lazy to learn an IDE which may or may not still be around in 5 years. I use 0 plugin and 6 lines of .vimrc config which I know by heart, so I don't care if I'm using it locally or remote, I can always get started in 1 minute.
I tried to install plugins but there is always something that fails somehow. Nvim distributions don't install and run out of the box for the most part, I get weird errors regarding lua or something and just give up. As for VSCode I wrote my first python project using it a couple weeks ago (I'm not a developper) and it's alright but a few things annoy me, like the integrated terminal and some things getting in my way.
At the end of the day, each of us should chose whatever we feel comfortable with. I spent maybe 2 hours in my life learning vim movers and never looked back. I don't even use tmux or anything, just open 1 or 2 terminal windows and alt+tab between them, with the occasional :split or :vsplit command.
There's a strange dance of IDEs coming and going, with their idiosyncracies and partial plugins.. you still have to invest and devest everytime a new wave comes. Meanwhile emacs is still mostly emacs. I understand the dread emacs can impose on you, from old keybinding cultures and elisp but there's something timeless and freeing in emacs.
> There's a strange dance of IDEs coming and going [...]
Intellij IDEA 1.0 was released in 2001 - is still in active development - and as far as I know the keyboard shortcuts are still the same (depending on the configuration one chooses)
The first Microsoft Visual Studio release was in 1997.
XCode was first released in 2003.
Fog of the future not withstanding; most people aren't going to have been using IDEA since 1.0.
If you learned Java between 2001-2012 then the default was Eclipse or netbeans.
So you should not be comparing IDEA from 2001 to today (or any individual IDE), you should be comparing the IDE landscape or ecosystem of 2001 to today, and part of that analysis should be a requirement to weight IDE's based on popularity and the recommendations of established institutions (academia, companies).
Clearly theres something I have failed to communicate, you have an experience that does not match the most programmers and I pointed that out.
As I stated in my post above, (after someone asked me a direct question) that: despite answering the question, it was the wrong question and not the point I was making.
We did a bakeoff of Eclipse, NetBeans and IDEA upon its beta in 2001. IDEA won hands down and is still the IDE of choice among the developers who work on our codebase.
I only wanted to mention that certain IDEs still used today are not coming and going but have been around for decades and are still more or less the same (keybinding, etc).
Maybe I just don't understand your comment - even translated it still confuses me tbh. (I'm not a native speaker). Sorry if you feel offended I guess.
Not offended, but not understanding because of translation is fair.
My entire point was that it's unusual for someone, especially someone who is new to IDE's or programming in general, to pick something brand new. As educational institutions will take time to change from the popular thing and most companies will also need time to adjust.
Distilled: my point is that you should not compare IDE release dates to the stability of IDEs vs Editors. -- you must consider the entire ecosystem of each at the time.
Another perhaps good example to conclude this would be something like python backends. One could (unreasonably) argue that Python has been around since 1991; but backends typically were written in Perl or PHP for a very long time. It wasn't until 2008 or so that Python started making headroom for web backends (ruby around the same time) -- The possibility existed but the popularity wasn't there.
A similar argument could be made for Sublime text (which is uncommon these days) but was extremely common in 2010. Or Atom, which doesn't even exist any longer but took considerable market share from Sublime in its heyday.
It's not fair to say "x has been around for y time therefore it is not changing", the ecosystem does change and it has darlings and detractors.
The only exception to this ecosystem over tool argument I can think of is probably visual studio itself as that was a monoculture and stuck around because of that.
> There's a strange dance of IDEs coming and going, with their idiosyncracies and partial plugins.
The Language Server Protocol [1] is the best thing to happen to text editors. Any editor that speaks it gets IDE features. Now if only they'd adopt the Debug Adapter Protocol [2]...
One of the nice things today is that DAP and LSP (while very much designed around VS Code's internal extension APIs), the things that use them are basically duct taped to tiny VS Code extensions over JSON RPC. They can and will outlive VS Code as the IDE of choice.
While on the surface that means that language support doesn't have to be designed for a particular editor/IDE, what's less obvious is that LSP (in particular) can be used as a generic IDE plugin API. I've heard of some non-language support extensions (ab)use LSP to get cross-editor support with the same codebase.
Yes I used emacs at school 15 years ago, and I agree that it was great for development ; with OCaml at the time (and also C with gdb integration, and 68k assembly later on) we shared a few tips with other students and the workflow was convenient for dev.
But vim is ubiquitous which is a huge plus when you are like me always connected remotely on a different machine. Once I learned a few shortcuts I never went back (and never dug into the tool itself actually, I can't even run a macro ; I'm still faster than most people I know with an IDE).
The only thing I was impressed with is I think phpstorm, watching a laravel dev crafting an SQL query. If I ever get serious about developping I would look into this kind of things (not just for SQL but also framework and module functions), especially if I can get vim movers, and a screen that isn't bloated. VSCode displays like 15 things and I'm only interested in 1 of them 99% of the time for example.
- for ansible on reasonably large projects (a dozen of roles) it was never a problem ; you have to understand how the project has been structured and be able to use grep and find though
- when I was playing around with os161 I don't remember it being an issue. Although for this particular case I did use the cscope vim plugin which is helpful to navigate through the codebase (there are equivalents for various languages). Not sure if os161 would qualify as "large codebase" but it's a bunch of files in a bunch of folders.
If you’re dealing with a large C or C++ codebase, Vim’s native cscope support scales way better to large codebases than the newer language server solutions from visual studio code, etc.
It is not really the learning curve, but it takes just too much time to set up to match VSCode or VS or Jetbrain IDEs, plus it requires too much muscle memory to use it effectively. It's difficult to stick unless one uses it frequently. I simply can't afford it.
TBH everything on Linux/Unix variant (except MacOS) is like that, there is no open-box solution. There is always too many configurations and even begin with (even VSCode is too configuration heavy for my taste but I use it as my Linux VM is light). This is definitely good in its own sense (more powerful), but most of time I just want something to work and concentrate on what I really want to learn. I mean, if I really want to learn how an editor works, I'd go ahead to build one myself, but in the mean time I just want to write a toy compiler so please just let me do it.
> you still have to invest and devest everytime a new wave comes
Not really... When a new editor/IDE comes and replaces the rest, it's because it seduces the original userbase of the previous IDE, so usually the transition is smooth (same shortcuts, similar functionalities and ergonomics). Moreover, I find it weird to "invest" time in an IDE, usually you don't really need to, you learn the basics of it and you're good to go for years.
I'm in my late 30s. So maybe not so far away from the age of lack of energy :P
I like JetBrains a lot. Things work seemlessly and easily integrate with external tools that make up the whole experience. But from 2012, I tried to rely as much on shortcuts as possible, for one simple reason, the mouse.
There is no problem with using the mouse. But everytime I have to use while focusing and coding, I find that that small gesture to move my hand from the keyboard to the mouse a bit flow breaking.
I have to move to the mouse, do a thing or two, then find my way back to the J key notch.
I like what NeoVim and emacs bring with regards to the reliance on the mouse. They allow for maintaining the same posture most of the time and focus only on typing.
I dislike how brutal they are at learning how to use them to full potential, and that making them into IDEs takes ages of IDE building rather than project coding.
I like Helix. Which takes a lot of inspiration from Vim/NeoVim/Emacs. But require no configuration to get you going right away.
The documentation is easy to read, as of now there is no plugin system but there is a builtin integration with a lot of LSP servers for most of the popular languages by default.
Keys and navigation is easy, it even shows a helper popup to show you which key to use next.
My suggestion is, if you ever want to start a new silly project, and you're feeling free to take it slow for 2 days. Try using Helix on said project.
PS: Helix isn't fully complete by any means, but it really is capable of doing everything you want in many projects without being a hindrence if you can adapt to the lack of some built-in features like git and file tree. Its annoying but I am less upset about it and use alternatives
IntelliJ (and the whole Jetbrains suite of IDEs), has one of the best VIM plugins I've seen in an editor. It's hard to say what it does differently to others, but I've rarely encountered a situation where it does something common in my workflow differently to (neo)vim. It's just pleasant to use and gets out of my way, and has a nice method of configuring whether a shortcut should be handled by the IDE or the VIM plugin when they might conflict.
I've found multiple features and motions that do not work the same as in (neo)vim and end up breaking my flow a bit.
However, I have to agree it is probably the best vim plugin I've seen anywhere, and is life saviour for me :)
I was looking for this comment. I'm very happy with the combo of IntelliJ features and vim movement commands.
The only inertia vim adds to my workflow is escaping into command mode. I have a 'jk' shortcut combo rather than escape, but if I'm hammering away I often mistime it and need to backspace out my jjkk or whatever.
Honest question: are other jetbrains IDEs "feel" similar to the Android Studio one that can be downloaded for free?
I installed it a couple of weeks ago to modify some android app, and boy it gave me vibes of the old Eclipse : sluggish Java feel , with "stuff" happening all around and being slow to render basic editor stuff.
> Honest question: are other jetbrains IDEs "feel" similar to the Android Studio one that can be downloaded for free?
Android Studio is generally one generation behind mainstream Intellij and has its own modifications on top of it.
It depends on your target language. With the exception of CLion, all other forks of Intellij work much faster than Android Studio from my experience.
I wouldn't consider myself a vim user, but learned the basic keybindings awhile back (IMO modal editing is the correct way to edit). Knowing those makes it much easier to bounce between IDEs. Sometimes I don't realize if I'm in VSCode or IntelliJ (especially the new UI) until I try to run something.
> I’m not smart enough to write code as if I’m writing this reply so fluent coding experience without mouse isn’t useful for me ——- I have to stop and think hard every few minutes anyway.
I've worked with good programmers who literally hunt and peck. It drove me nuts, but as most will agree, typing is rarely the bottleneck when programming. I've also worked with people who I would consider vim power users, and while they were faster at typing out some tasks than I am, I found they were often typing/moving around the file as their method of thinking. Whereas I might reach for the mouse and scroll around instead. Again, typing speed is rarely the bottleneck.
I'm a heavy Vim user but I agree with your sentiment. I learned Vim during some down time in my first job out of college. It is a great skill to have in my opinion. It helps me complete complicated text editing quickly and easily, especially operations that I otherwise would never have attempted without it, but I never would have had the time or energy to learn it later in my career. I don't think learning Vim or Emacs is a waste of time but I can see how it is definitely not a priority when you have so many other things to do and little time to do them.
I am a life-long vim-er and I only use probably 30% of its features and thats ok. I learn new things all the time, sometimes adding them to my repertoire, sometimes not. There's so much time that can be wasted if you mess around with configuring tools but either fail to remember to use them or fail to get them set up. I wanted to set up ctags and tried a few times, but fell short of memorizing the forward-back shortcuts and got frustrated at the delay when it goes off scanning my HDD instead of the local code 1-2 directories away. so I just gave up.
For me, cool editors are vscode and jetbrains. I've tried to make them my default editors many times but always go back to vim (which I've been using for decades).
I agree that since you are well versed in Vim, it doesn’t make sense to switch unless for something vastly better —- which I don’t see in any existing product.
I have tried to use VSCode more, but, the original emacs keyboard movement is burned into muscle memory. VSCode has a keyboard mapping for emacs, but, its does not feel right. At the end of the day, who cares? Its just a tool, whatever works.
Likewise. I'm 46, and started my career in the late 90s using mostly light editors on Windows (Homesite, etc). Along the way, I've tried a few times to really dive into vim, but just couldn't see the advantage over editors like VS Code, Sublime, Atom, or some of the editors popular before then like Eclipse. However, I do feel comfortable enough in it that I can edit files on servers/containers, which is something I feel is useful for everyone.
I started with emacs. I love the buffer / windowing system and the on-the-fly macros. Also being able to do everything with the keyboard.
But the time spent getting multimode up or good autocomplete when you can simply fire up something like jetbrains IDE, having most of your ecosystem tools integrated the second you launch it makes the decision to switch easy.
Also, dev machine tend to have a lot of resource nowadays so the RAM hungry IDEs are not a problem.
VSCode has solved so many problems for me. The only time I step out of it is when I run into something that might be a configuration issue. For instance, if I’m programming an Arduino, and it’s not working, it’s worth hoping over to the official Arduino IDE to make sure that the “supported” way doesn’t work as well.
Otherwise, VSCode solves almost all my problems, and virtually all my key-bindings are identical.
wow, i had the same experience. reaching my 40s and decided to drop all the cool kids stuff. i used to have emacs/scheme evangelist phases in my life, now i do all my coding using enterprise languages and tools.
VSCode and JetBrains are better overall, but many of the good editing features of Vim are available via their respective Vim emulation plugins. It is still worth it to learn and use Vim mode for efficiency (in my opinion).
they're really not that difficult, its not a badge of honor to use them. I used xemacs and liked it ages ago, and I still use raw vim for quick edits or views occasionally. The reality is modern ides are simply better for 99.99% of use cases. I might not use idea for open log files that are massive, and that's about it.
VSCode is now my one stop editor of choice on Linux and VS on Windows. I also use Jetbrain editors for work.
I’m done. For people like me, who write SQL and Python for data pipelines, the Jetbrain IDEs are no-brainers. We don’t actually get the time or energy to do a lot of side projects so it doesn’t make sense to learn advanced editors such as Vim and Emacs: 1) These two need a lot of muscle memory just to start using it, but we don’t use it on a daily basis, 2) I’m not smart enough to write code as if I’m writing this reply so fluent coding experience without mouse isn’t useful for me ——- I have to stop and think hard every few minutes anyway.