However, I am a bit worried that it looks like most of these companies and up using VSCode. It really needs to have a good competitor in this space, and I hope JetBrains can match that eventually with partnerships of their own.
However, I am a bit worried that it looks like most of these companies and up using VSCode. It really needs to have a good competitor in this space, and I hope JetBrains can match that eventually with partnerships of their own.
With the push from a friend, I tried neovim with the requisite LS plugins and I'm never going back. It's lightning fast and has feature parity (at least the ones I use) with VS Code.
Its a bit of a bitch to setup, but there are preconfigured solutions out there (NVChad, LunarVim, AstroVim) if you want to skip all that bullshit and just get coding...
Definitely recommend giving it a go!
Helix is another one to watch. Not quite at Neovim’s level and may need some reprogramming of the vim muscle memory but definitely promising!
In addition, a lot of the good language plugins are proprietary, like PyLance and the C# plugin.
This is a big one. A lot of the value of VSCode comes from its plugins, and M$ doesn't allow VSCodium to access them.
On the one hand sure I wish Microsoft open sourced more, at the same time what they already open sourced is a fantastic foundation for building upon.
Instead of having to write an open source IDE from scratch we can leverage this one and then implement a few plugins for popular languages.
Your complaint is with the binary that Microsoft ships, not with the codebase.
A mantra that was famously internally coined at Microsoft[0], and was found during anti-monopoly proceedings.
As such they will always be looked at skeptically when adding proprietary things to open source things.
[0]: https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis...
The classic formula was "embracing" an established standard, making proprietary extensions to that standard, then using the adoption of those proprietary extensions to extinguish the original standard's market share.
In this case, Microsoft didn't embrace an existing code base or standard, they made one and open sourced it. What would the analagous "extinction" bere here? That they eventually stop releasing updates to VSCode as open source?
While I agree that there is good reason to doubt Microsoft's intention to be a good steward of an open source project, this seems less like another iteration of that playbook and more like what a lot of "open source" for-profit companies do where they have an open core but keep many features proprietary so they can't be easily forked.
And this is not much different from the things they did this with back in the day. Used to, you wouldn't target open source, as much as you would student audience. The battle used to be more over what corporate workforces would want and use. The open source development scene changed that a bit. Though, it is kind of... interesting to consider how many tools and ideas have been lost in that process.
I assume you mean "non-free" as in speech, not beer, since VSCode is free. Hasn't that "critical mass" been the case since day one? I can't imagine that VSCodium built binaries have ever had more than a tiny fraction of the user-base of VSCode? Thus I don't see how "Extinquish" plays a role here.
I still think it makes more sense to think of the strategy as more akin to the FOSS-washing / freemium models used by many companies.
And it is very similar to the freemium models used by many companies. Apologies if I made that sound like a disagreement. I think the point was more that Microsoft doing it is part of their old game plan. Random companies acting in other means is a bit of a non-sequitur. That said, I think it is common idea that many other companies have tried to extinguish competition in their "free" market? That is, many companies do what they can to make it easy for hobbyists and such to use things for free, but as soon as you are in a company, they try to milk the company for fees.
Look at Android and how it is almost impossible to de-Google it for a live demonstration.
(I don't think there is a market for developer tools, though.)
I do think that the VSCode model is much more similar to the Android model (though Android is a more extreme version of the model) than either is to the "Embrace, Extend, Extinguish" model.
Shout out to CodeLite.
Browser-based BS... I'm never going to buy it. Personal prediction (contact me if you're willing to put Swiss money on it; I am!) - in 5 to 8 years' time the pendulum will be swinging back to device-/locally-hosted apps because of $unforeseen-issues. And fashion.
The real question is whether they can execute on this. Will they be able to replicate years of VS Code's work on providing UI extensibility without sacrificing performance, with a team that historically had been JVM rather than JS/TS experts? Will they be able to build the right abstractions to allow for temporary network outages and all the distributed-systems challenges that come with that? It's quite a moonshot to get to the level that people expect of VS Code, especially as Microsoft has access to relatively-limitless capital in ways that JetBrains, which has not taken outside investment, does not.
Their existing toolchain is all about doing everything in the IDE. (Remote dev envs, code review, all of it).
Am I missing something? I haven’t seen anything which suggests they are going down the path you refer to here. A local client they own is their differentiator over the browser, why would they abandon that?
Fleet (https://www.jetbrains.com/fleet/).
They're building a distributed IDE. A web-based UI would fit nicely into their new roadmap.
I can see that a web-UI option could be built atop the "Space-hosted everything" architecture they are putting together, but I don't see any evidence that's actually what their core strategy is, as GP suggested. They spend a bunch of time discussing running things on "Your machine" too, which doesn't sound like a browser-first strategy.
As I see it, their secret sauce is building client-side applications that are faster than other companies can build. I just don't see them giving up that performance edge to make a browser-based client their primary strategy.
How so?
They've recently rolled out the "gateway" product, which is basically a remote IDE. Sure, you still connect to that with a local one, but the local one doesn't do that much. Why not move it to a browser? The remote one does all the things people love about their IDEs. And if people don't care, they're probably not using their products anyway.
The only issue I'd have with a browser, is that I usually use Vim keybindings, which I've never seen well implemented. My favorite being the window intercepting ^W.
Gateway is a remote IDE in the browser, it's a rewrite of their front-end (Spring I think?) to marshal the UI over HTTP.
Remote is similar to VSCode. The IDE is split into a front-end and a backend: the UI stuff happens locally, and does RPC to the backend for file access, terminal, language server, what-not.
Visual Studio Code is used by people who like to many languages, but more specifically for someone who's job is to work with JavaScript then WebStorm is much better. JetBrains could very well combine all these IDEs into one, but then again think about the amount of space and data of this new IDE.
But it is the obvious move. All the current JB IDEs are built upon the same basic IntelliJ platform, anyway.
It's "only" a matter of restructuring all that to have only one IDE where you can opt-in to support specific languages and now you have something like VSCode.
You can install the Python plugin & friends -> PyCharm
You can install the Go plugin -> Goland
Etc
The initial reason behind having separate IDEs for every language, or so I was told, was using different keybindings. This way, XCode users could easily switch to AppCode, Visual Studio users – to Rider etc. – without the need to re-learn anything. (This is the reason I still have Atom keybindings in my Codium setup.)
But why would anyone want to use different IDEs with different keybindings is a complete mystery to me.
The python plugin in intellij was a little inferior to Pycharm for Django (pycharm had deeper support for the django ORM) and so on.
Regarding Django, do you have some examples? I'm admittedly not a hardcore Django user, but I haven't seen any difference between the two.
[0] https://github.com/intellij-rust/intellij-rust#compatible-id...
I’m looking forward to Fleet, watching it closely. But it still has some kinks preventing me from adopting it. Once they polish up the elixir-ls integration I’ll give it a serious shot.
I've never used that, so I don't know what it is exactly nor how to compare. But, although the product comparison page [0] says idea lacks it, there's a doc page that says it has it [1]. It also shows up in the settings window of my IdeaU with Python plugin.
According to this other comparison page [2], it would actually seem that the Idea plugin does more than Pycharm.
[0] https://www.jetbrains.com/products/compare/?product=idea&pro...
[1] https://www.jetbrains.com/help/idea/jupyter-notebook-support...
Personally I've been using Ultimate on and off over the years, since I've never really stuck to any one language; at my previous job it was a mix of PHP / JS (Dojo), Go, Typescript, and sometimes (reading) C code which didn't quite work right in Ultimate.
VS Code can do all that too, but only intellij was able to actually help me with stuff - things like set the version of PHP to 5.2 so it warns me if I tried to use the PHP 5.3 array shorthand. (I did not choose PHP by the way and the project was to replace it)
They're for different audiences; the hurdle of trying to explain to a JS dev "yeah, I know when it starts up it asks for a Maven/Gradle/JVM, but just ignore that and open a directory after you install the following 8 plugins" is bad DX. As others have said, the standalone products are not feature parity with the IJ plugins. I have no idea why that is, or what incentives are driving that, but for the time being it is what it is
Probably to sell their more expensive "all access pass" instead of just one IDE that does everything.
VS Code is getting support for all the newer languages though... similar to how it used to be before with Eclipse (for those who remember the multitude of Eclipse-based IDEs for niche uses in the 2000's) and emacs (which still gets support for most esoteric langs, even if half baked, pretty quickly)... for example, I can use Zig in both emacs and VS Code, but not IntelliJ (I think they are writing one , but it was really unusable when I last checked it out). And stuff like Julia, Common Lisp.... I tend to go to emacs for those... but apparently supporting VS Code is high priority for even these languages nowadays.
Android Studio's C++ support is done by Google's own licensed CLion for integrating it into a proper development experience.
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.
IntelliJ IDEs are very good at figuring out dynamic languages, but on top of that they also know a lot of tooling and frameworks. So even if you have dynamic Python, but use it in Django, IDEA/PyCharm will be able to give you completions, code navigation, and refactoring just by the virtue of knowing what goes where in Django.
Some of it made its way into VS Code, but many things definitely didn't (because they require more than just LSP and reuire someone to write a bunch of analysis tools for the python integration).