JetBrains to reimagine IntelliJ as text editor, add machine learning
blog.jetbrains.com
blog.jetbrains.com
In terms of IDE, whenever I get into unfamiliar territory, JetBrains products have always been better at onboarding me into it without having to configure much. For getting into Clojure for example, IntelliJ+Cursive was my preferred choice.
They are fine. Their financials are sound and they are plenty profitable. Their real threat is Github and similar services, who try to persuade users that they don’t need an IDE at all. Hence why they’ve come up with a collab alternative that they presented with great fanfare. Imho they should just buy gitlab and integrate with it a bit better.
Their recent effort on EduTools was impressive way to teach many programming concepts.
That said, even though Cursive is third party, the way that IntelliJ is designed means that language extensions all tend to work in consistent ways. Rather than totally reinventing the wheel, I basically plug into standard IDE workflows for different types of extensions, and make them work for Clojure. This means that Cursive is able to feel like a JetBrains product, although sometimes less polished because I work on it on my own.
It's one of the things I love most about IntelliJ, all the support for different languages basically works in the same way and it's very easy for me to pick up a new language if there's support for it.
But man I wish they'd improve the indexing. Pretty much the only thing that can thrash my CPU hard enough to cause noticable hanging. Perhaps their machine learning can do something about that... Lazy indexing based on recent areas of focus or something.
It would make even more users. Even Microsoft has made its long-living Visual Studio available for free.
Microsoft has other products beyond Visual Studio. People using Visual Studio are likely using other Microsoft products. The business case for JetBrains is different. JetBrains' business is selling their IDE products.
They have to be the only company shipping a significant desktop Java/Swing app today? I wonder how they feel about the future of that platform.
It is still Java underneath, though
Swing was popular briefly back in the Applet days on the internet and also for a lot of internal corporate apps, but never saw much use in commercial and open source apps.
I think the main GUI libs were removed in version 11 of Java released a year or so ago, and now they're packaged separately.
According to Oracle, support will be provided for a few more years 'commercially' which means you'd have to pay them if you want security updates. They're apparently trying to push off the stewardship of the library to the community, like they've already done with a lot of Java technology that they've ignored since buying Sun (e.g. Netbeans platform).
I'm not sure what that means for the OpenJDK versions which is what most of the world now uses instead of Oracle.
* https://www.oracle.com/technetwork/java/javase/javaclientroa...
Granted, I just spent about two years doing Java dev in IntelliJ and recently moved back over to working with C#. I'd gotten pretty used to working with IntelliJ so that probably colors my viewpoint a little, but the JetBrains IDEs do have some features I really like - the class structure pane, for example, is really useful.
1. I hate the idea of paying for the thing I write code in. I may not be a FS nut, but I’m a big believer in supporting open source by using open source.
2. IDEs tend to be optimized for the write path, when it’s the read path that really matters. Giving people too many tools to rush through writing code is a bad idea. That’s basically how Java became unusable. Writing code is bad. The less code you can write to solve your problem the better.
3. Most of the people I admire at work and in open source don’t use an IDE. Clearly, an IDE is not a necessity to being a great programmer, so why shell out money for one.
4. Not being able to use my text editor I’m a terminal is just a nonstarter for me. It’s immensely convenience, and some workplaces can’t even handle local development because of monorepos.
5. IDEs rob you of the knowledge of the underlying tools, locking you into an ecosystem that you can’t take with you all the time.
6. I’ve worked in plenty of places that didn’t have JB stuff available. Never worked at a place you couldn’t use vim or emacs.
My philosophy on text editors is that you can get 90% of the benefit of an IDE with way less tooling. I use vim, ALE, and fzf/rg and I’ve never felt the least bit slowed down by my tooling.
But really, if an IDE is allowing you to write code you can’t understand without the IDE that’s a bad thing. Forcing yourself into a situation where you have to compartmentalize is going to make you a better programmer and lead to better code.
Navigation tools are essential especially because the (vastly) larger audience is uninitiated.
Do you hate the idea of being paid for the code you write? Or it's only other people's software that should be free?
>2. IDEs tend to be optimized for the write path, when it’s the read path that really matters.
Actually it's the exact opposite. Plain editors like vim are optimized for the write path -- they have all kinds of text manipulation options built in, and they're 99% about text manipulation. IDEs have code navigation options, source control integration, refactoring tools, even collaboration options in some cases, all of which are about the read path.
>3. Most of the people I admire at work and in open source don’t use an IDE.
Some of them use an Emacs so loaded that it's just a Greenspun-10th-rule-style re-implementation of an IDE. And tons of great developers use IDEs, from Notch to John Carmack, to Ken Beck. If you constrict the "people you admire" to old school UNIX neckbeards, then sure.
>4. Not being able to use my text editor I’m a terminal is just a nonstarter for me. It’s immensely convenience, and some workplaces can’t even handle local development because of monorepos.
Monorepos have nothing to do with local development or not. You can export a specific project out and work on it. Googlers use all kinds of IDEs, despite the monorepo.
Not being able to run in a terminal being a non-starter, is dubious, as 99% of the time a programmer doesn't need to work in a remote shell session, exception if they're a sys admin.
>5. IDEs rob you of the knowledge of the underlying tools, locking you into an ecosystem that you can’t take with you all the time.
Take with you were? You aren't going anywhere. You can always use an IDE whatever the circumstances. People use IDEs in games, data science, application programming, embedded development, aviation, web programming, etc. Not sure which realm would prohibit the use of an IDE.
>6. I’ve worked in plenty of places that didn’t have JB stuff available. Never worked at a place you couldn’t use vim or emacs.
There are tons of companies that mandate a specific corporate-decided development environment for all programmers, where you can't just "have vim or emacs".
I'm a user of JB products for some years now. last week I had to open eclipse again, which is probably THE foss IDE for java. Developing in it is mostly fine, but if you get to the tiny details then IntelliJ is far better (multiple Carets, a proper dark mode, good vcs integration, UI is to the point and not as crowded as Eclipse, integrated terminal, etcpp).
I think that it shows the limits of (pure) open source and that the paid model really can polish a complex product. I imagine that contributors and drive-by patches are not really able to create a coherent product which maybe needs a proper plan.
(This really reminds me of that Bazaar vs Cathedral argument)