Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

> Every sane developer uses either Jetbrains' product for JS, Python or Rust, or they use VS Code, which, after installing all plugins to reach the same productivity as with Jetbrains, becomes an IDE as well.

You seem to vastly overestimate the usage of IDEs with scripting languages. In my experience, the vast majority of developers working with scripting languages such as JavaScript, Python or Rust, still use plain text editors such as Vim or Sublime Text. They find these editors to be more convenient and faster than IDEs.

Even people who are on VS Code seem to be using only the built-in language support for scripting.



sort by: page size:

> In my experience, the vast majority of developers working with scripting languages such as JavaScript, Python or Rust, still use plain text editors such as Vim or Sublime Text.

Definitely not in my experience, most people I know use VSCode, which I wouldn't call a plain text editor (not necessarily an IDE either though). Most people will use the plugins for each language since those are auto-recommended when you open a new file in that language, such as Pylance for Python, and most people will click "install recommended plugins" and call it a day.

Vim users are few and far between in my experience, and Sublime Text even more so, most everyone has migrated to VSCode at this point that I know of.


> For anything else (python, js, elixir) I use VSCode with a careful selection of plugins.

I find JetBrains IDEs to be significantly better at Python and JS/TS (they do have dedicated IDEs for them after all).

I wish Elixir support wasn't just one guy from Jetbrains working on it in spare time though...


> Everyone who uses VSCode has surely used an IDE before. It just turns out they aren’t better in every way, and possibly not in the ways that matter.

Almost every junior I hire has only used Atom, Sublime or VS Code, especially JavaScript developers.

>VSCode plug-ins just have more eyeballs and work done on them for various ecosystems, for example. Especially for less common languages and features.

The reason to switch to an IDE from something more flexible like VSCode or Emacs is the amount of time spent keeping the editor working.


> but the Jetbrains IDEs are simply better and more mature in every single way

That's just not true.

I have access to the full Jetbrains suite for free, yet I still opt to use Neovim or VS Code/Codium for most languages.

Jetbrains IDEs are often brilliant tools, but are objectively worse on several metrics:

* slow startup times

* slow initial operations until the JIT is warmed up

* even once warm, you always eventually do something that lags or blocks the UI, maybe barely enough to consciously notice, maybe for several seconds; and it really affects user experience if you care about latency - it drives me crazy each time

* plugins: VS Code has a wide range of great plugins, many more than the Jetbrains ecosystem and especially when it comes to more niche languages or functionality, Vim/emacs but also VS Code are much more extensible in general

* keyboard warriors: the Vim plugin is fine, and you can configure the Jetbrains IDEs to do almost anything with the keyboard, but you need way more arcane knowledge in the form of memorized context-specific bindings, and you always eventually forget something and need to switch back to the mouse. Vim and emacs are just much better there. VS Code is actually also better, because the interactions are significantly more customizable.

* Wayland / tiling WM / input lag: Jetbrains products really suck on tiling window managers like i3 / sway because they use native windows for dialogs. They also don't support Wayland natively, so they run through X server emulation which hurts input lag and brings plenty of bugs like weird dialog behaviour. In general the input lag is quite bad on Linux, it seems to be much better optimized on Mac OS

There are plenty of valid reasons why you wouldn't want to use their IDEs, even if they provide more integration and superior refactoring.


> Still, there seems no JetBrains for Bash, ansible(yaml), HTML, Latex, Rust (though there is a plugin), or markdown.

There are very high quality third party plugins for everything you mentioned except maybe Latex? HTML support is built-in for sure in all the web-focused IDEs (pycharm, rubymine, phpstorm, webstorm). I generally edit almost all my files in a JetBains IDE, heavily using the "scratch" feature.

The Rust plugin is not ideal yet, although it is officially supported so in time it will probably have the same support and quality other products have.

> I'm convinced this comes from the fact that IDEs have to be both highly opinionated and very flexible: supporting all of flask, django, pandas+Jupyter and ansible, properly, is tough: all are Python, all are really different. Either you turn Pycharm into something that does not work good for anyone (lowest common denominator) or you have to leave out communities.

Yes, some frameworks are not fully supported, which is inevitable. The most popular frameworks will usually have an official plugin. I wish more framework/language communities would take developing a JetBrains plugin more seriously.

The language plugins do usually leverage community tools when possible, but sometimes it is prohibitively expensive performance-wise.

In conclusion: Vim and Emacs do win in ubiquity for sure. It is unfortunate though that many communities only focus on getting those type of setups working well. The JetBrains IDEs are MILES ahead of what Vim, Emacs or Visual Studio Code can do with their hodge-podge of plugins that I would never trust with a context-aware automatic refactor in my life. Those editors are in fact a "lowest common denominator", and people lose so much productivity because of them.

In fact, I will consider a language "niche" until it gets proper JetBrains support for the above reasons.


> Take the Jetbrains IDEs. I don't mean to offend any VSC fans out there but the Jetbrains IDEs are simply better and more mature in every single way. For individual use, most of them are <$100/year.

After a particularly bad tooling week (js supply chain problems, plugin problems and more than the usual amount of DB changes) Our dev team made the unanimous call to move require all developers to use Jetbrains IDEs instead of the mix of VSCode, Emacs and whatever else... Our codebase is Python, Go and Javascript, and data is stored in Postgres, so we use Goland, PyCharm, WebStorm and Datagrip regularly. We also started using the awesome Micro editor when we need something that can be installed on a remote because it's key bindings are identical to JetBrains...

A few thoughts:

1. We all picked up 2-3 hours per week of time we were spending pounding plugins on Emacs and VSCode into shape. There was a lot more fiddling going on than we thought.

2. The debugger in JetBrains IDEs is top notch. Debuggers are underrated, and bad debuggers make using print and over-logging seem like the best option.

3. When we want to do something new, (containers, notebooks, etc...) it is almost always supported, and there are not 100 incomplete plugins to sort out (both Emacs and VSCode have this issue).

4. We're doing things the same way, which sometimes really pays off. For example, instead of a mix of PostMan, python scripts, restclient, and bashified curl for making api requests, we just use the client in the IDE... which means we can share them.

5. Datagrip and the database tools in the IDEs are incredibly useful.

Ok, so the payoff: By the end of the second week, we were over the learning curve, and the payoff came in the third week: a total of 16 hours of developer time not spent on twiddling with Emacs, vim, Sublime and VSCode. That time savings paid for the subscription for the year.


> VS Code ... is still more feature rich than any IDE through extensions.

Not sure what you program in, but that has not been my experience at all. C# (Unity), Golang, Python have pretty mediocre support at best in VS Code. What JetBrains' products do there is miles ahead, and tacking on countless extensions doesn't get you close to the out of the box experience, so I fail to see the point.

If I'm quickly editing a single file, sure I might fire up VS Code or Micro. For actual work though, the JetBrains products can't be beat (for me at least).


> The idea that VSCode is the future doesn't seem right to me.

VS Code is the future of editors, not IDEs or all developing. There will always this two sides which live from the box and those who build their own box. And for the later VS Code is nowadays one of the best road to walk.

> JetBrains products allow you to do so much out of the box,

It's also very limited on where you can work with it. It works for the handful most popular languages they support, but what if you get a bit more exotic? What if need something non-programming, like markdown, rst or plantuml? What if I am not satisfied with a certain feature in the IDEs editor or workflow?

If your Box is not supporting it, you need to customize it, and there JetBrains is just not as good as editors like VS Code, vim, emacs.. And VS Code even goes to great lengths to gain the IDE-state of having everything out of the box.


> It does take a certain amount of mental energy to constantly be computing effecient key combos.

I disagree, the only time I'm actually thinking about key combos is if I'm vim-golfing something or trying to create a macro to reformat a large amount of text.

In day-to-day coding I just think about what I want the result to be and it just happens.

> On another note, the productivity I’ve gained from using an actual IDE

Yeah, IDEs with semantic understanding of the underlying language are great. The stuff JetBrains releases is top notch in that regard. I used IntelliJ whilst working on a Kotlin project despite constantly getting pissed off that it didn't work like I wanted it too.

Knowing how to manipulate text for languages that don't have great IDE support is still worth it if you're ever forced to work in such languages. At my previous gig I had to maintain scripts/programs written in csh/bash/TCL/perl/SKILL/python/ruby, knowing vim well made refactoring significantly quicker/easier.

Now days I just write typescript all day so I do get the IDE to do most of the work.


> I love Sublime etc. for what it does best, which is editing text, but i still use IDEs for most of my coding so i dont have to think about configuring my editor all day.

Because Vim ,Emacs or Sublime are easy to extend or hack. Try to extend VisualStudio or any Jetbrain IDE...

Because lightweight editors can open huge files without issues,try to open a 10 mo data/sql file in VS ... no problem with ST or VIM.

Because they run on older hardware.

Now you say some plugins are outdated , but it's easier to fix 20 lines of python than a C# or java project.

To sum up,if I want a new feature in ST or Vim I can code it myself quickly,I dont need to wait/pay for a new version of the editor.


> I know a lot of people love vscode but are there any people who have tried something like IDEA/WebStorm/PHPStorm/etc that then went back to vscode?

Everyone who uses VSCode has surely used an IDE before. It just turns out they aren’t better in every way, and possibly not in the ways that matter.

VSCode plug-ins just have more eyeballs and work done on them for various ecosystems, for example. Especially for less common languages and features.


> JS ecosystem has great code editors.

I'm with you on most of your points, but IDE support is still quite crude compared to (say) Java or Kotlin. Once you're fluent with these in a Jetbrains IDE it feels like you're directly manipulating an AST (or something near it) rather than 'editing text'. Javascript (even with Typescript in IDEA/Webstorm) isn't close to this yet.


> And VSCode has the best TS plugins and the latest cool stuff.

I don't know why or how, but JetBrains IDEs (WebStorm, IntelliJ, etc.) have much better TypeScript support than VS Code. I've used them both on the same project, and it's painful to use VS Code.

The main advantage of the JetBrains IDEs is that their built-in hinting/linting and code sense are much better. VS Code will fail to warn me about things that JetBrains does by default.

(I say this as someone heavily using eslint, by the way.)


> There is a very large difference between a very smart source code editor (e.g. Visual Studio Code) and a complete IDE. I consider the first essential and the second completely useless.

I know VSCode is positioned this way in the market, probably to differentiate it from VS. And I switched to it from a much less “smart” editor (TextMate, which I still adore! No offense meant to TM creator/maintainers!).

I’m having a hard time seeing this as a clear distinction, however. I mean, VSCode has a built in debugger/protocol, language server/protocol/intellisense, file system aware refactoring, code rewriting refactoring, integrated git client, inline blame and history navigation, GitHub integration, linter integration including automated fixes…

I understand it’s a different tool than VS, but I honestly don’t have a clear understanding of what separates editor from IDE in this case.


> I used Webstorm for years, but switched to VSCode. > It's just more flexible, which allows me to use new tech/langs very quickly.

I'm sure you know, but Webstorm is limited by license/design. JetBrains sells editors to deal with almost every tech. I personally subscribe to the Toolbox for ~$200/yr and get all the IDEs. Some languages (like Rust) don't have a custom IDE, just a plugin into IntelliJ, the ur IDE from them.


> I think it's a symptom of times changing. People don't want to code in vi/nano anymore.

Not sure if that is true. Many people are still using vim for many newer languages. I think it depends on the language.

Some languages are simply more IDE-reliant than others. Statically typed languages with a large vocabulary (Java, C#, Scala) tend to benefit more from IDEs than simple, dynamic languages like Python and Ruby.

And there are newer languages like Go. Go was designed to not require an IDE while not being opposed to one.

I think the language server idea is a brilliant one and probably something we'll see more and more of, because it makes a language completely editor/IDE agnostic. It would allow folks using vim or VS code to debug or refactor as cleanly as full-blown IDEs. I suspect this will lead to a decline in the specialized IDE market (Jetbrains).


> Visual Studio Code is used by people who like to many languages

I don't like these language. I'm forced to write them. I didn't ask for terraform, typescript, CSS, HTML, yaml, xml, JSON, and everything else.

> for someone who's job is to work with JavaScript then WebStorm is much better

It's never been my experience that a full IDE is better for dynamic interpreted languages. Maybe if you're used to that from writing C# or Java it's nice, but I'll sooner take vi.

But like you said, thanks to lots of people that came before me, I'm not just writing one language, I'm writing many. Right now, I have tabs open with eight different languages. I need something that's suitable at everything, not just one language.


> I see text editors as fast. IDEs as slow but full of features.

Me too. The problem with VSCode (and Atom and maybe Sublime) is that even basic IDE features are slow are buggy. And when I'm using an IDE, I constantly use "basic" features like jump to definition, find definition, rename, etc.

IntelliJ is impressive in that you can type, rename, type, jump to definition, rename, etc. and the operations are so fast that they don't disrupt your flow. Vs in VSCode where the operations will pile up in the background. Not to mention, IntelliJ's operations are usually successful, but VSCode's are usually not.

If VSCode could do basic things like jump to definition and rename properly, while still being super fast, then it would be really useful. But idk if it's just me but even in TypeScript I don't get those capabilities.


> There is a much bigger chasm between GIMP and Photoshop than there is between VS Code (with plugins) and JetBrains.

I don't believe this to be true. I think the difference is graphic designers tend to use much more of their toolings' functions, whereas almost every day I'm surprised someone I work with doesn't even know some IDE feature was possible, let alone how to use it. Hell, almost every frontend developer I've ever seen use either VSCode or WebStorm orchestrates everything from the built-in terminal and is baffled when they never see me use one - because it's all configured via run configurations, and that's a _basic_ feature.

next

Legal | privacy