Not having read the article, I think the main difference is that IDEA as a traditional IDE is a monolith, while VSCode interestingly and somewhat unexpectedly integrates a lot of different tools. With LSP, the VSCode team created something quite interesting. And the most interesting aspect is that an LSP server can be accessed from many other editors. I personally have grown to like VSCode. While I previously switched between eclipse and vim, I now use mostly VSCode, RStudio (which I still prefer for R code due to some details), and VIM, mostly for maintaining todo lists and my markdown wiki.
Reflections on IDEA vs VS Code
101–110 of 413 posts
Re: Reflections on IDEA vs VS Code
#102Critique of the post: The belief that LSP are implemented in the compiler is mostly plain wrong. They might or might not be maintained by the same team as the language team but are almost always a separate library that interface through the compiler through APIs. Yes compiler have became much more queryable. Intellij has had a technology similar to LSP (and much more complete) a decade before it's "invention" and do…
> Actually intellij IDEs are quite fast nowadays and it improve regularly. I want what you're having. I've been actually trying DataGrip these past weeks and even though I only used it lightly and I'm on a pretty decent computer, it's terribly sluggish. Is there a magic option to make it run faster?
Re: Reflections on IDEA vs VS Code
#103And at a philosophical level, I would imagine that having those IDE features in VS Code at Jetbrains' level of polish would be viewed as beneficial to everyone involved.
The issue is that on one hand you have an entire salaried dev organization whose sole purpose is to create the best IDE possible, and on the other you have a scattered array of open source devs who only work on the polish as much as they have free time. LSP simply came too late to the party. Everything we like about IntelliJ is now both battle-tested from thousands of man-hours of development and also impractical to architect as a separate language server. The more people that use a hypothetical JetBrains-developed language server, the less editor market share they retain.
Another hypothesis I have is that since some language servers are supported officially by the people who develop the language itself, their time becomes split between working on the language and maintaining the LSP support. Any extra time spent on one separate project takes away from the other.
Re: Reflections on IDEA vs VS Code
#104VS Code is dead ugly.
Re: Reflections on IDEA vs VS Code
#105https://www.jetbrains.com/research/python-developers-survey-...
https://www.jetbrains.com/research/python-developers-survey-...
https://www.jetbrains.com/lp/python-developers-survey-2019/#...
https://www.jetbrains.com/lp/python-developers-survey-2020/#...
Re: Reflections on IDEA vs VS Code
#106I used to think VS Code was going to be a threat to JetBrains IDEs considering how fast its iterative development was (thanks in large part to the productivity of JS + Web renderer) but its never seems to quite be able to reach the feature-set, polish & intelligence of JetBrains IDEs. Every IDE function appears to be better implemented in JetBrains, whether it's Code Analysis, Refactoring, Navigation, Running/Debuggi…
Intellij offers a lot of custom behaviours that IMO programmers start coding the "Intellij way" (let's call it Intellij muscle memory for lack of a better definition) on the other hand going from vi to Emacs to Sublime to VSCode is less of a problem and people tend to honestly judge strength and weaknesses of each one.
For example magit is so good (for me) that until the magit plugin for VSCode came out I kept an instance of Emacs running only to interact with the git repository.
Intellij git integration in comparison, in my opinion, it's barely usable and generally counter intuitive.
BTW the java plugin bundle for VSCode replicates 95% of the features of Intellij, except for some formatting styles and a few of the refactoring facilities that I could not reproduce, I switched from Intellij to VSCode without looking back. There's even a keyboard bindings plugin for VSCode that perfectly maps IJ keyboard shortcuts.
If only the VSCode java ecosystem was refined as it is today 2 years ago when the project I am working on started, I would have never even downloaded Intellij.
If I had an euro for every time I had to "Invalidate cache and restart" on Intellij to make it recognize some trivial change, I would be rich now.
Having said that: they are different products for different targets.
Intellij has a huge advantage in corporate environments where conformity, uniformity and easily replacing team members are paramount, VSCode is an highly customizable code editor that fits a different use case where each member of the team prefers to customize the working experience as much as possible.
Re: Reflections on IDEA vs VS Code
#107My ultimate goal for quite sometime now was to pack all my development dependencies inside containers or cloud-init files to keep my host bare-bone and have reproducible/shareable setups anywhere anytime. Before I was an Emacs fan. I tried multiple combination of Emacs, Tramp and containers but it failed: there always was a package that didn't played well and kept looking for stuff at the wrong location. After a while, I was fed up to make low-level fixes in random packages. I also tried weird setup with Nix for the same exact bad result.
So I took my nerd pride away and tried VS Code with containers and ssh: - https://code.visualstudio.com/docs/remote/containers - https://code.visualstudio.com/docs/remote/ssh
It just worked. The experience was flawless. In a matter of second, it blew the competition away like nothing. Nowadays, I cannot live happier: I clone the repo i need to work. It comes with a development Dockerfile. VS Code starts the container and everything is there for working. If I need a beefier host, I spin up a cloud VM with cloud-init and 5 minute later the setup is ready without any manual intervention. Any extension I tried in marketplace worked.
In my opinion, the Emacs/Vim communities clearly missed a golden opportunity for a more larger adoption.
Re: Reflections on IDEA vs VS Code
#108Earlier quoted context omitted.
> Most of this post is just speculation like "I seriously doubt it will work well in an average cafe though" Meh. I don't think that's his main point. The two advantages of vscode he points out are: - browsers, and by extension Electron, are the best funded cross-platform GUI - vscode offloads language support to compilers (or other third-party tools) via LSP (Language Server Protocol) Electron apps are... slow craps…
It's important to note that IntelliJ is not Jetbrains' only product. PyCharm has seen a very significant growth during this period too (7.7% -> 13.4%), although PHPStorm has decreased (11.6% -> 7.6%). Regardless, I find it remarkable that IntelliJ hasn't lost an inch of ground (it's even made modest gains) despite VSCode's explosion.
We have had licenses for WebStorm, PyCharm and IntelliJ Ultimate depending on what the Dev in question was doing in his job. So some of that market share/use is hidden.
Re: Reflections on IDEA vs VS Code
#109Earlier quoted context omitted.
This sums it up for me. For languages with a dedicated Jetbrains IDE (Java, Ruby, Python, etc) Jetbrains will be better experience hands down. For everything that doesn’t have the premium experience, I find that just using plugins isn’t as effective. For example, the experience of using IDEA with the Elixir plugin hasn’t been great despite a lot of development. It seems like it constantly loses the proper SDK if I ju…
Why the assumption that a separate editor needs to be released? IntelliJ with language plugins is better.
Re: Reflections on IDEA vs VS Code
#110Earlier quoted context omitted.
Do you mean rust-analyzer's good experience and progress updates? RLS is in maintenance mode and deprecated in favor of rust-analyzer.
So will rust-analyzer also replace rustc eventually as the main rust compiler? Seems like a lot of overhead to keep two compiler versions at parity.
>>>>>>>>>>>>>>>>>>>
Aleksey Kladov: The limitations here are not specific to the Rust language, but a general for command line vs IDE compiler.
The main thing is that the command line (or batch) compiler is primarily optimized for throughput (compiling N thousands lines of code per second), while an IDE compiler is optimized for latency (showing correct completion variants in M milliseconds after user typed new fragment of code). As usual with throughput vs latency, these two goals require pretty different optimizations (and even high-level architectures). In general, it's hard to retrofit low latency requirement on a compiler which was developed solely with big throughput in mind.
Another thing is difference in handling invalid code. A traditional compiler front-end is usually organized as a progression of phases, where each phase takes an unstructured input, checks the input for validity, and, if it is indeed valid, adds more structure on top. Specifically, an error in an early phase (like parsing) usually means that the latter phase (like type checking) is not run for this bit of code at all. In other words, "correct code" is a happy case, and everything else can be treated as an error condition. In contrast, in IDE code is always broken, because the user constantly modifies it. As soon as the code is valid, the job of IDE ends and the job of the batch compiler begins. So, an IDE-oriented compiler should accommodate an incomplete and broken code, and provide IDE features, like completion, for such code.