Open source 'Eclipse Theia IDE' exits beta to challenge Visual Studio Code
visualstudiomagazine.com
visualstudiomagazine.com
That's probably giving how software is made at these orgs too much credit.
This is also similar to the old Firefox vs Chrome. The former was great for power users, but it crashed a lot and Firefox installs of regular people were riddled with insecure extensions that broke the browser and that couldn't even be un-installed.
VS Code does have flaws, but having limited extensions is not one of them, IMO.
Exactly. Of course as somebody who writes extensions I'd sometimes like the possibility to change stuff at a "deeper" level - like having multi-line text decorations. But as a user I really prefer the model to the Emacs' one. Emacs (and I guess *vim) works best if the user writes all the code themselves.
It's true that the most popular extensions work fairly well though.
Would love to hear from a more seasoned vim user if I'm missing some egregious stumbles in vim's updates that affected their workflow.
Also use Arch for about as long.
It's so odd to me when someone says that updates break their vim or Arch frequently.
[0] https://old.reddit.com/r/neovim/comments/1c9ev8n/overwhelmed...
[1] https://old.reddit.com/r/neovim/search?sort=new&restrict_sr=...
https://old.reddit.com/r/neovim/comments/1dgtyzw/lazynvim_do...
https://old.reddit.com/r/neovim/comments/1dp47gi/lazyvim_own...
I think i had an issue when they moved to conform.nvim from the deprecated language server based method but that's maybe about it (I deleted the nvim cache and it was all good after)
I can count the number of times my vim and arch installs has broken without my intervention on no hands.
Arch just shipped a beta nvidia driver as release and heaps of people have found their system broken.
This is partially because of cultural reasons. VS Code was originally a code editor made for web developers, by web developers. It follows directly in the footsteps of Atom. Web developers, for good or for bad, value the user experience of software working out of the box so they tend to bundle everything. Systems engineers, those of the C/Python camp tend to optimize for efficiency and prefers the user to manually setup out-of-band binaries.
But it looks like it’s aimed more for “building your own IDE” without having to start from scratch, feels just like the old eclipse.
Maybe I’m missing something but why would anyone bother using this?
“Note that Eclipse Theia IDE is a separate component from the overall Theia project's related Eclipse Theia Platform, used to build IDEs and tools based on modern web technologies.”
No idea why they didn’t brand them differently. The base is different (built more on VSCode platforms and not Theia the platform), unlike old Eclipse that had a split between the base and the IDE built from that base. I think that is very confusing.
TheiaIDE is one, dare I say official, implementation of an IDE on the platform.
To me, that seems congruent.
A few design decisions of the platform seemed designed to make it difficult to go elsewhere, and Microsoft keeps changing default plugins away from the fully open source versions to the Microsoft quasi-kinda-pinky-swear-open source variety. Which deprives the open source versions of mind share and development resources.
> Even though we do not pass the telemetry build flags (and go out of our way to cripple the baked-in telemetry), Microsoft will still track usage by default.
For what its worth, VSCode also works over SSH. There's a collection of plugins for working remotely or in containers.
The main thing that drew me to VSCode originally was pretty good support for fonts and ligatures. And I think I also like some of the QoL plugins I use. The config is just JSON, and it's pretty easily tweakable to how I like it.
I've heard good things about nvim and zed though, and I'm tempted to try them. But there's a bunch of idiosyncrasies and quirks that you get used to, so switched kinda feels like a chore
Many of us use the code editor for a lot more than strictly editing text.
1. GUI editor (for UI)
2. Debugging (as in standard debugging tools like breakpoints, REPLs, etc)
3. Building the project, and build management
4. A terminal emulator
5. A container orchestrator manager (or as I like to call it, an orchestrator orchestrator)
Personally I think those tools are better separted from the IDE, but there is a real convenience in having them integrated.
If I'm working on a project I want to see the file tree, I want multiple editor tabs for different files, I want to be able to full text search the project I have open, I want a terminal window to execute commands on, and most importantly I want to be able to switch between these elements without needing to learn a new set of opaque keyboard commands.
VSCode/Codium gives you this out of the box with zero friction so it's no wonder that it's consuming market share like nobody's business.
I wish it wasn't electron and I wish it wasn't Microsoft, but until there's a better alternative that's what I'm using most of the time.
Text editors seem to fall into this open source software trap where everyone has to have a pet project so you end up with 700 different text editors that are all like 70-80% done in terms of features.
I’ve used VimR for years, which provides a macOS-native GUI for Neovim.
Neovim itself is a very polished project.
The out of the box experience is vastly superior to neovim, you have to configure a lot less stuff.
The default keybindings are not esoteric.
Adding support for a new language is just clicking a button to install the extension, you don't have to configure or install the LSP yourself (or even know what an LSP is).
For me personally, better support for c#/.net.
You can make a nice IDE with neovim and plugins and a GUI but you do have to make it, whereas you just have to install vscode and you are done.
I can't stand VSCode due to personal preference [1], but I won't fault someone else using it. If configuration is stopping you from using neovim, use Astronvim or another pre built solution.
[0] https://astronvim.com/ [1] my main beef is lack of support for my ingrained Jetbrains shortcuts and the find window being in the sidebar. How anyone can use the search results easily is behind me. I know you can move it, it's just annoying.
I feel this one. Especially if you want to do anything with razor pages and/or Blazor.
It's still workable. But the experience is far from VS Code and Visual Studio sadly
Zed and helix are good off the shelf alts.
I think the days are pretty far gone for having to really do much work to have a nice nvim setup
Also I tried switching to Astrovim so I spent less time maintaining my vim config and it ended up breaking as often as atttempt at switching to Linux distros (regardless of years of experience) so I chose stability.
I love the idea but when I try and use it, my productivity goes through the floor, and I've got work to do
As far as I'm concerned, running 100,000 lines of Lua or elisp written by literallywho is no better than downloading random vscode extensions.
Microsoft's play appears to be soup-to-nuts control over every aspect of web developers' work -- from finding a job (linkedin) to source control (github) to libraries and dependency management (npm). Visual Studio Code fits neatly within this play. Windows may have lost web devs' hearts and minds in the 2000s-2010s, but Microsoft has pivoted to where they don't need Windows in order to capture the developers.
Wait till Pluton takes hold in a few years, and you need a Microsoft account just to get to the bootloader.
I really really hate LinkedIn by the way. But it was like that before the takeover. Nothing really changed for better or for worse.
As much as there are a few bigger name commercial/close sourced ones the average dev is using 20 other niche ones run by volunteers.
Now cursor, they have something no one else has and sadly it's a codium fork.
I think in the coming years as LLMs become more powerful, the productivity gap between using AI to code and not using it will only increase. It will become difficult to justify not using AI, despite the privacy concerns. I really hope that open source alternatives can keep up and provide viable alternatives to editors like Cursor.
In the same vain, I did try to learn the ins-outs of vscode and I wasn't impressed after a few months. It has about the 1/16 of the capabilities of Eclipse, and things are very broken pretty much 100% of the time, or it'll suddenly break when something auto updates. It's also, just obnoxious to use: popups, distractions that never go away, settings are in a schema-less json, and a completely incoherent user experience when you do something as minor as switch plugins. Compare that to regular ol' Eclipse, which presents a unified editing interface for every language and file type.
I used IntelliJ for a brief stint and I would say it's very polished and a lot of small annoyances with Eclipse it doesn't have, and it exceeds Eclipse in several areas, but not to the point where I would go relearn an entire tool. So yeah... I'll probably just stick with Eclipse until I can't anymore!
I don't particularly like VSCode, but your criticisms are simply not true (anymore). It has GUI settings, it is pretty stable and you can make things go away.
That’s… extremely far from my experience with VSCode, are you sure you’re even talking about VSCode?
I’ve literally never had anything break after an update, not even a plugin. Not saying it doesn’t happen, because it definitely does (every version is followed by 1 or 2 patches in the following days), but it’s usually about pretty niche breakages.
All popups and toasters have a cog wheel on the top right that let you tell them to never show up, if you wish. And to be fair, there are very few, the only ones that come to mind are "oh I know this file type; do you want to install the appropriate extension?", which is honestly a welcome hint (that you can disable globally if you don’t like it).
What you call "distractions that never go away" I’m not sure, because almost everything in the UI can be hidden. What do you think count as a distraction?
Regarding the settings, it’s plain wrong. The settings have had a visual editing interface for years, and the underlying JSON is definitely typed. If you add a key that doesn’t exist, it’ll be greyed out. Invalid values have a red squiggle.
I have no idea what you mean with "incoherent user experience depending on plugins", specifically because the extension API doesn’t let extensions do incoherent stuff.
We have a build for a giant xyz customer system. Every part of the codebase is modern; it has thousands of JUnit5 test cases, 26+ modules. We've set the build up "correctly": following Maven best practices and it turns out, when you follow them, things are really quick with builds just under a few minutes.
Eclipse does an amazing just handling a project this size. It also is able to do things VsCode simply cannot do. We had a enum we needed to move from a submodule to a a global one. Eclipse found all of the references, including ones in our documentation, strings, test cases, and even prop files for runtime config, and refactored the whole thing in a few clicks. We've had the same experience with IntelliJ actually too, where the tools are even more refined.
Eclipse/IntelliJ are on a different plane. VsCode does have it's merits, but it's not really a full blown IDE.
The level of code refactoring tools available in IDEA dwarf anything vscode has been able to come up with, and I don't see that changing. And it's not just for Java (although it gets the best tooling), they're the best for every language that has any popularity at all. Including TypeScript, where IDEA has a significantly better performing lsp features than vscode.
For example, it automatically finds copypasted code (including cases where variable names and code structure might differ) and can automatically extract a single implementation and generalize it for you with a single key press. If you have multiple classes with similar interfaces, it can extract the common bits into an interface and update the classes to become its implementations. It can shuffle types and methods around for you, automatically updating references (which you've mentioned). Autocompletion for absolutely everything, including difficult cases like e.g. SQL inside a Rust snippet inside Markdown. And much more.
Eclipse is basically a language-neutral UI "shell", the "Eclipse Tool Platform", where all language/code-related functionality is provided as bundles of extensions. And then extensions can be extended, and so on.
Eventually they standardized the extension system around an extension/component framework called OSGi. Not sure if this new Eclipse IDE uses it.
I do.
It was used as the basis for code-sourcery, which was the foundation for many a vendors embedded toolkit.
More recently, I used it for ESP development, and I was absolutely floored that Eclipse is, in 2024, a lightweight and featureful alternative to VSCode.
My prior memories of Eclipse was that, once started, it would slow my machine to a crawl. Now it runs lighter than the most popular "modern" editors; after doing the ESP project, I noticed just how laggy VSCode is.
It could do with a few plugins, though. Copilot, and things like that.
TIL :-)
Eclipse was the effort that made it decent, and it took a long time before we had IDEs that were competitive for some languages. I remember the php extension being surprisingly good.
I will repeat my usual complaint: I wish the Eclipse Foundation would invest more into making the IDE better, and I wish they would make it easier for people to contribute to it.
I am pretty sure the free Community Edition is still much better than Eclipse.
I’ve also tried to use their products but by the time I need to, my 30-day has already expired so I just stick with Eclipse and VSCode.
That, an incremental Java compiler that isn't just using the one from Eclipse, not indexing every couple of minutes, and no 10 finger chord shortcuts.
Please prove the audience how to do JNI in InteliJ, without an additional Clion license.
Not a lame plugin, rather the same experience as Eclipse, Netbeans, or the one that Google has paid for on Android Studio.
This isn't something I hear everyday. Care to explain?
Then again, it's all probably relative - most IDEs (including the likes of Visual Studio) are slow compared to something like Lazarus, VS Code can feel slow compared to Sublime or Vim but whether that matters much is up to the reader. Personally, I like the features that JetBrains tools have, and those are more or less my daily drivers (I pay for the Ultimate package of all tools, alongside GitKraken, MobaXTerm and some other software), others might differ in that aspect.
That said, I don't think that JetBrains Fleet is quite as good as VS Code yet, so I use VSC for my more lightweight editing needs or on lower spec devices, sometimes also dropping down to Notepad++/Gedit or Nano for simple text/config files as well.
The thing I hated most was the workspace concept. I don't want to put all my projects in one directory or have to make a workspace just to open a project. In every other IDE you can just open a project without weird and confusing restrictions.
It also crashed quite a lot - not fully, you just get a dialog box saying there was a null pointer exception.
Also every app I've used that has been based on Eclipse has been awful. Teamcenter was probably the worst. So slow you could literally watch it drawing widgets.
The one positive I will say is that there's a state machine plugin that's really good, and it uses the Eclipse Layout Kernel which is so good at layout out diagrams that it's been ripped out of Eclipse and even converted to JavaScript.
So I'm back to Eclipse, and will probably check out Theia as well. Hopefully they add Go support if it isn't already there.
But that was Java eclipse. And I kinda hate everything related to Java.
Yes, it seems overwhelming and there is the 'workspace' concept which seems too much abstraction. It's only in the way if you are too attached to your own way of working. If you just begin coding, it actually is quite intuitive.
Theia: Cloud and Desktop IDE - https://news.ycombinator.com/item?id=22792258 - April 2020 (183 comments)
Eclipse Theia 1.0 – Open-Source Alternative to Visual Studio Code - https://news.ycombinator.com/item?id=22738607 - March 2020 (147 comments)
Theia: A cloud and desktop IDE framework implemented in TypeScript - https://news.ycombinator.com/item?id=19466001 - March 2019 (12 comments)
Theia – One IDE for Desktop and Cloud - https://news.ycombinator.com/item?id=14687858 - July 2017 (58 comments)
But I'm confused, how does this compare with code-server, or openvscode-server?
I use the latter in a web browser to do fully remote dev on my beefy machine hooked up to Google Fiber.
It kind of seems like this isn't something I need to consider, unless I wanted to ship my own custom white-labeled IDE. (Which... Nah, and why?)
With the addition of Webview Editors and Views there’s not really anything an extension can’t do to its UI. Notice this is very different from saying there’s not much an extension can’t do to VS Code’s UI. Extensions are given a box, and they gotta stay in it. Personally, I’m fine with that.
Also, the main focus of Theia (and Eclipse in general) is to provide a framework/base for creating a custom IDE product, not necessarily to provide a working IDE out of the box. This means e.g. companies providing custom IDEs for their embedded platforms can now use a more modern VS Code style base instead of the ancient Eclipse desktop editors.
It’s likely I’m just an idiot who doesn’t know how to set up my extensions/config, but if it takes some high level of intellect to do so then I think it’s still fair to call it a poor UX.
Yep. An important repo Theia has is the 'Theia Blueprint' repo so one wanting to make a custom IDE has a good place out of the box to start.
FWIW, I prototyped gluing together existing plaintext accounting tools (Beancount, Fava, vscode-beancount) under Eclipse Theia a while back [0]. The potential of using a vscode-style base still seems a promising for certain applications but there's a learning curve to figuring out how the various dependencies and quirks of building an electron app work.
I guess I'd ask: what would you (or other people here) use? There really isn't one that offers a great native experience cross-platform.
Flutter won't ship Chromium, but it'll bring along its own runtime, widgets, and rendering engine rather than using what's provided by the OS. .NET MAUI uses native widgets, but it's difficult to create one API that uses native widgets on different operating systems given that there are subtle differences between similar widgets on different operating systems. MAUI Blazor Hybrid solves that issue and doesn't ship Chromium, but you aren't getting native widgets.
I think for an editor to be successful, it needs to be available on Mac, Windows, and Linux and it's really hard to maintain parity if you're developing the UX separately. As I said, I'm not an Electron fan, but it does allow for easy parity across platforms.
In this case, the reason it's Electron is that it's not just meant to challenge VS Code, but it's essentially the same codebase as VS Code - like how Edge is the same code base as Chrome. The point of the project was a VS Code that was truly free software rather than an open source core with a bunch of Microsoft stuff around it.
Funnily, I thought that was the point.
They could not care less if this app is different from that app (they are 2 apps, duh).
They would feel annoyed though if the same app has different UIs because someone at Apple or Microsoft's has some opinion about UX
Cohesive is important but what's also important is playing nice with the respective OS's design guidelines. For example, take dialog boxes and the order and positioning of "OK, Cancel" buttons.
We seem to have forgotten it now, but back in the day we had this idea that a platform should have a standard UI to which all applications conform, so that the user can transfer knowledge in using one application to all the others, and they don't have to memorize a dozen different ways of operating to use a dozen different applications.
To that end, dating all the way back to 1984, Apple developed user interface guidelines that specified things like how dialog boxes were to be laid out, what the various menus and options should be, and what were the keyboard shortcuts for common operations.
This was the revolution that enabled all sorts of creatives to integrate computers into their creative work, and for the longest time it was Apple's advantage in the marketplace. Mac users, many of whom were creatives in the print, graphic design, music, and film/television spaces, were very picky about their UIs because they spent so much professional time in them. If you did not conform exactly, down to the pixel, to Apple's user interface guidelines, the users would notice right away, and you would be one-moused so hard in MacWorld your business might never recover. (That's another quasi-lost thing about the Mac ecosystem: people liked paying for good quality software.)
Accordingly, it was accepted dogma to never, ever, ever use a "cross-platform UI framework" if you targeted Mac, because the cross-platform frameworks never got the fine details right, and the fine details mattered. It's called "polish", and it's something the open source world never got (thanks in no small part to fucking X windows and all its stupid "toolkits"), and now that open source and the web have eaten everything, the rest of the programming world has forgotten.
All that's needed is taking TextAdept or KDevelop or Kate (these are all cross-platform already) or some such editor code-base as a starting point and (A) bringing in VSCode's NodeJS-based extension host and (B) implementing out VSCode's surface extension APIs against that native backing mature editor code-base. Voila, all the great VSX extensions out there are salvaged and ready to use, with no more Electron or MS dependency.
Quite icky and boilerplatey though, not as sexy as starting yet-another-whole-new-editor from scratch... plus the whole latent "ever-having-to-keep-catching-up-to MS VSCode" responsibility ... no wonder no one's on it. Neither am I.
VSCode's extension APIs' restrictions wrt GUI extensibility are a god-send to any theoretical alternative implementors of those APIs. It's just that there aren't any =)
It's like WPF, which was used for Visual Studio, except it's cross-platform and can target Windows, macOS, Linux, web, iOS, Android (and from what I can tell, even TV). Personally I've had nothing but a great time with it.
See all those efforts with Blazor integration across all desktop stacks, MAUI (!), and the use of React Native in WinUI, Office and XBox.
Glad to see more competition in the space.
And to counter the old trope that one ends up spending more time tinkering with the editor than being productive, it is just fun and that's enough of a reason to do it :)
Can't wait to try out zed more once it becomes more stable on linux.
Most of these are subjective, but hey, I tried it.
Eclipse just lacks the final polish of IntelliJ (which is understandable), but it is a perfectly serviceable IDE, and I wouldn't mind to use it today.
I think the naming is much less interesting/important than the idea, but lots of folks seem only interested in whether the name is good or bad. In my experience, a good project tends to eventually live by a good name, and the early focus should be on the outcome. It looks to me like the folks behind this project know exactly what they’re doing.
It's typical Microsoft. Even when they pretend to do something good there's always a catch and an agenda.
On the other hand, 'Eclipse' gives me nightmares when it comes to IDEs.
In addition, the editor is ok but not particularly good. Sadly a lot of users are liking it because they never really experience something different.
Even if not perfect, I would recommend Kate and kdevelop that are incredible once you know how to use them
With Eclipse (Theia or otherwise), it's fully open, with a large number of medium-sized groups. There's much more flexibility, but more opportunity for integration trouble (and more appreciation for those who do it right).
The ecosystem has benefited from Java's open-sourcing and becoming the default organization e.g., for jakarta, but it never really recovered from the loss of IBM as the big dog driving enterprise (or the transition to Eclipse 4 style UI's).
It's as simple as right click it -> Activity Bar Position -> ...
And even the new IDEA UI (which is still opt-in, thank god - I tried it but moved back because the "old" UI is just clearly more ergonomic to me) is clearly VSCode-like.
my guess is jetbrains sees the trend and wants to keep up, but if all the editors look the same as vs-code how do you differentiate?
Lately I've been using Zed, but I'll have to switch back eventually because the Windows support is terrible (I know, I know, it was designed for macOS).
Otherwise I'm not messing with something likely to disappear randomly. I value my workflow.
>NOTE: The Eclipse Theia IDE is currently in beta.
Does "exits beta" mean that it will at some point in the future exit the beta? I understood it to mean that it is out of beta today.
> Although Theia IDE is still in beta, the steady progress suggests that we will soon be exiting the beta phase.
> Note that Eclipse Theia IDE is a separate component from the overall Theia project's related Eclipse Theia Platform, used to build IDEs and tools based on modern web technologies.
So you got the Theia project, the Eclipse Theia Platform, and the Eclipse Theia IDE, all fully separate things. "Ah" they will say, "what's so hard to understand? It's a project that works on an IDE development platform under the larger Eclipse umbrella, with which we built an IDE, but of course it has nothing to do with the original Eclipse IDE". None of which makes me want to use it or means anything to me.
When you go to https://theia-ide.org/ the big text says:
> An Open, Flexible and Extensible Platform to efficiently develop and deliver Cloud & Desktop IDEs and tools with modern web technologies.
Dear god, please put that stuff on theia-platform.org or something instead, and market the platform separately. I know you're proud of it, but stop telling me about it please, I'm not trying to develop IDEs, which is an extremely narrow niche. "It can host VS Code extensions" and "vendor-neutral" is pretty much the only notable things from my POV - which is a perfectly great selling point, mind you - and they bury those below the fold.
There's a reason you want this: the more people use Theia, the more people will choose to use it as an extension platform. Otherwise it's likelier to go the way of the original Eclipse IDE (whose homepage notably still doesn't say "blazing fast", "rock solid" and "works out of the box" but has room for a zillion other things like "preferences page for Generic Text Editor" and "jar viewer").
There's also a reason why almost every editor website starts with massive screenshots of the tool itself, because people want to be able to imagine what it would be like to use a new tool before taking the big step to actually try. This is marketing 101. I wish they'd just flat out copy a competitor's page, and bill themselves as "everything you get from VSCode, but actually extensible and actually open source. By the way, look at the cool IDEs other people built on top of this, if you want to do that too, check out theia platform".
It could be great, but I'm just seeing so much self sabotage, it makes me sad.
There's a lot of design by committee and other insanity so expecting a coherent marketing message is asking a lot.
What's the point here?
Hard to say.
Whether or not it's truly a better base than upstream VS Code/Codium is hard to say.
Of course, many many years ago, I switched to IntelliJ (Android obviously is the main reason).