The fact we still don't have a decent Java language server is one of my canaries for the fact that LLMs still, generally speaking, can't ship. There is undeniably demand for this sort of thing, but nobody is coming to meet it. (jdtls, bless it for trying, is just not good)
My understanding was the biggest issue has always been that javac is a poor foundation for any kind of live tooling like LSPs?
It’s less “make me a Java LSP” than “rewrite javac around incremental compilation and exposing a semantic DB”. Which sounds like a much harder problem.
I had this thought yesterday where I wondered if there was a way to run an Android app in the browser (definitely non trivial, but something I would expect to exist in some form) and nothing. If LLMs are as good as people say they are, I should be seeing plenty of useful projects like that popping up but.... I just see harnesses and other random things
> But what do you actually get with IntelliJ? A massive, monolithic Java application that frequently hogs 8GB+ of RAM, locks up your system while “indexing pre-built binaries,” and forces you into a closed proprietary ecosystem.
This is just exaggeration. I use IntelliJIDEA everyday (on mac) with multiple projects open and tbh they have optimized the IDE a lot to make it faster. I'm not saying it's perfect, but it's getting better. Also it's not closed source. The core of the IDE is open source (https://github.com/jetbrains/intellij-community) and for some specific framework support (e.g. Spring) are available on Ultimate.
I frequently have to restart PyCharm every few days, as it slows so bad that it cannot scroll or type smoothly. This is on a very powerful macbook pro....
I'm trying to avoid IntelliJ because I only need it for editing TeamCity build configuration files, that are written in a Kotlin based DSL [0], and autocomplete and linting are be very helpful.
I've tried Eclipse and VS Code but I don't get them to autocomplete or detect syntax correctly. Would any LSP help me with that? As I have no idea about Java, Kotlin or Gradle, everything is kinda confusing to me...
And I hate it with a passion. The fact they they introduced their own terminology, their own lifecycle, always makes me doubt what will happen when I use any feature of their client.
Magit OTOH stays much closer to the true git. Although for anything slightly more esoteric I still prefer native git cli.
Sometimes I also feel that Idea is too slow, especially for smaller projects or languages where I do not need top tier support. ie. I am backend rust and python programmer. I also have to work with JS/TS and C++ projects but I mostly only read through them.
I started using neovim with plugins if syntax highlighting and good navigation is enough. I have also set up ideavim configuration to be as close to neovim as possible. Now I can easily switch between Idea and neovim with almost the same workflow.
People will go to great lengths to avoid paying for what is, arguably, an outstanding product from a great company, then think nothing of spending the same amount at Starbucks.
I don’t think I’ve ever seen a company scrutinized and nitpicked as much as JetBrains.
I agree that IntelliJ is a monster of a resource hog, but I have yet to find an editor where code navigation is as good. That's basically all I use it for these days, in the days of LLMs, and I still think it's worth it. VSCode, especially for golang, is terrible. I might be holding it wrong, but I've really tried, and it's just not good enough.
Before LLMs, when I still refactored by hand, coworkers who were using vim or vscode used to ask me to do big refactors, because IntelliJ always got it right, whereas with the other editors it was hit-or-miss.
Same for the jetbrains PHP based IDE (iirc named something in the likes of webstorm, or phpwind etc) is super slow and hogs ram like crazy. Also most devs using it have really, relly poor skills. Its weird i know, but i see it time and time again.
Java LSPs are essentially the same approach, headless Eclipse JDT or NetBeans.
While Metals for Scala was an overhaul from the former Eclipse plugin (and Ensime) plus early experiments embedded in the Scala 3 compiler. And Metals v2 is yet another rewrite.
I enjoy JetBrains IDEs alot. Altough I mainly use Dataspell and Datagrip and not Intellij but they make my life easier. Specifically when connecting to new DBs
I wrote an LSP for kotlin and java recently and it's so annoying how tightly coupled all the LSP stuff is in IntelliJ to the IDE itself they have a outside LSP project which seems to be going very slow or nowhere is very sad.
Note I tried to use IntelliJ to build it the performance was not nearly as nice as I would have liked still better than a lot of LSPs but still.
I know a bunch of folks have tried it but I think only Jetbrains can build a good one, unless someone actually goes all in on solving this for a few months and rebuilds the parsing and types systems outside of the Jetbrains toolchain and ecosystem.
Java is likely easier but it's also quite jank in terms of how existing solutions work.
But I like projects like this, I am not against IntelliJ it must be great had been great when I was learning but I want a lsp to use for scripts and the small edits, opening a massive IDE is very overkill for the kinds of small changes I like to make now.
As a very heavy user of IntelliJ and associated family of IDEs, I’d say they are extremely bloated compared to a few years ago. My latest annoyance with IDEA has been extremely slow disk sync. If I edit something outside the IDE, it takes a while to appear in it.
They should cut down the binary size and ship a leaner version without all the bundled plugins. They should improve performance on extremely large projects (both memory and IO).
Although I have let my personal Ultimate subscription expire, I still use it at work because debugger, codenav and autocompletion are still best in class.
It's great that Emacs gets more support of course, but personally I've never really got the hang of it. I actually like IntelliJ. To the point that I can't even bear VS Code. And for simple editing, vi is still my thing. I don't think that will ever change. I assume Emacs sits somewhere between the two.
I was thinking of unsubscribing from IntelliJ just today because my file tree doesn't update for like 5 minutes when I create new files with my terminal. Its utterly broken.
I've been using Goland/IntelliJ since I graduated. Been paying for it for years. But the resource hog and I guess focus on writing a mediocre AI side panel really killed it for me.
The main improvements lately were:
- line/function prediction
- Claude Code plugin
And I can use Claude Code in any terminal. So I've switched to zed.dev and use Claude there. Wish it had the line prediction though.
29 comments
[ 0.24 ms ] story [ 33.3 ms ] threadhttps://scalameta.org/metals/docs/editors/emacs
It’s less “make me a Java LSP” than “rewrite javac around incremental compilation and exposing a semantic DB”. Which sounds like a much harder problem.
https://github.com/jetbrains/intellij-community ?
This is just exaggeration. I use IntelliJIDEA everyday (on mac) with multiple projects open and tbh they have optimized the IDE a lot to make it faster. I'm not saying it's perfect, but it's getting better. Also it's not closed source. The core of the IDE is open source (https://github.com/jetbrains/intellij-community) and for some specific framework support (e.g. Spring) are available on Ultimate.
I've tried Eclipse and VS Code but I don't get them to autocomplete or detect syntax correctly. Would any LSP help me with that? As I have no idea about Java, Kotlin or Gradle, everything is kinda confusing to me...
--
Magit OTOH stays much closer to the true git. Although for anything slightly more esoteric I still prefer native git cli.
I started using neovim with plugins if syntax highlighting and good navigation is enough. I have also set up ideavim configuration to be as close to neovim as possible. Now I can easily switch between Idea and neovim with almost the same workflow.
I don’t think I’ve ever seen a company scrutinized and nitpicked as much as JetBrains.
Before LLMs, when I still refactored by hand, coworkers who were using vim or vscode used to ask me to do big refactors, because IntelliJ always got it right, whereas with the other editors it was hit-or-miss.
Do you mean GUI, keyboard shortcuts, search dialogs, all the above?
I'm frustrated with (find and) search. So many options. It's both too much and too little.
But what would something better look like? Spotlight (Alfred, Raycast)? fff (fast fuzzy finder)?
I'm hoping I'll know it when I see it.
While Metals for Scala was an overhaul from the former Eclipse plugin (and Ensime) plus early experiments embedded in the Scala 3 compiler. And Metals v2 is yet another rewrite.
Metals is architectured in a completely different way, see the BSP: https://build-server-protocol.github.io
Note I tried to use IntelliJ to build it the performance was not nearly as nice as I would have liked still better than a lot of LSPs but still.
I know a bunch of folks have tried it but I think only Jetbrains can build a good one, unless someone actually goes all in on solving this for a few months and rebuilds the parsing and types systems outside of the Jetbrains toolchain and ecosystem.
Java is likely easier but it's also quite jank in terms of how existing solutions work.
But I like projects like this, I am not against IntelliJ it must be great had been great when I was learning but I want a lsp to use for scripts and the small edits, opening a massive IDE is very overkill for the kinds of small changes I like to make now.
They should cut down the binary size and ship a leaner version without all the bundled plugins. They should improve performance on extremely large projects (both memory and IO).
Although I have let my personal Ultimate subscription expire, I still use it at work because debugger, codenav and autocompletion are still best in class.
The main improvements lately were:
- line/function prediction
- Claude Code plugin
And I can use Claude Code in any terminal. So I've switched to zed.dev and use Claude there. Wish it had the line prediction though.