I don’t really see IntelliJ and VSCode as competitors. VSCode competes with atom and other full-featured text editors (vim, emacs) ... its got great adoption amongst the newer generation of programmers that think those editors are old school and user hostile.
VSCodes Java, Python, and Golang support is miles behind IntelliJ.
FWIW, on my team at Microsoft where we write a lot of Go, theres a 50/50 split between IntelliJ/GoLand devs and VS Code devs and more people have switched to IntelliJ from VS Code than vice versa.
Interestingly, as an emacs user, I am really rooting for the success of VSCode. The existence of the Language Server Protocol means that I have a horse in this race. Emacs users that use the same language server as VSCode users directly benefit from this relationship. So even though VSCode is competing with Emacs for market share, it is very much collaborating with Emacs (and other text editors that use LSP) in making language features comprehensive for everybody.
It's more complicated. Microsoft waits until everybody adopts LSP for, say, Python, and then slowly moves to a proprietary language server, explicitly forbidding its use outside VSCode:
I think the textbook (i.e., The Innovator's Dilemma) model for a disruptive technology is specifically one that starts out looking like it only competes in a different (typically lower-value) market, right until it's eating your lunch.
I used to work together with someone who didn‘t catch basic errors in VueJs and Symfony projects in VSCode because (idk) somehow it can‘t do it or some plugin is missing.
On the other side there‘s me with PHPStorm and WebStorm with full project inspection support and detailed analysis about code available at a glance.
Maybe I just don‘t know how to do that in VSCode but VSCode does not feel like an IDE but rather a Notepad++ on steroids to me. Sure, you can do the job in it but that‘s not the reason I pay a lot of money to JetBrains each year.
It's likely a missing plugin. As an avid VSCode user I would liken the difference of VSCode and IntelliJ IDEs with the difference between an unfurnished apartment and a fully furnished apartment.
With the latter you skip setting up your environment and just start doing your thing. The former is more barebones in this regard. It lets you build your own IDE from plugins and a ton of configuration options.
As someone who likes to have one app for everything code related (from Markdown to the programming languages I use, to config files and to LaTeX) I like to "bring my own furniture" for the unique combination of needs I have.
Thus it makes perfect sense to me that VSCode is regularly underestimated regarding its IDE capabilities. Stock VSCode is indeed just "Notepad++ on steroids". You have to invest some time to build it up into a fully fledged IDE.
Interesting. I have used IntelliJ for Java for as long as I can remember and can't imagine using anything else. For JS and Go I use VSCode. I wonder if it's just what I started with and am used to. I've tried to use Intellij a couple of times for Go, but end up back on VSCode.
I dont know how you’re productive with VS Code and Go... I watch my coworkers live code with it sometimes and they are struggling. The lang server crashes constantly and stuff like autoimports or code complete barely works. I sometimes want to scream while watching them struggle.
I've read about those issues, and used to get them occasionally, but haven't really had them in a long time. Maybe my projects aren't large enough to cause any issues?
Same pretty much the same for JetBrains stuff. Constant screaming about how to configure their autoformatter compatible to prettifier for specific settings. Not supporting required configs out of the box. And build and IDE often live in completely different worlds. For example, project moodel at gradle and at IDEA is completely different and IDEA one is much more limited. And so on.
Android Studio could hang whole mac while "indexing" and often need to "reset caches and restart" while works just fine in VS Code.
> Constant screaming about how to configure their autoformatter compatible to prettifier for specific setting.
Assuming you mean “prettier” rather than prettifier (which a cursory Google did not show up as being a popular thing), the way to do this is to add a prettier config block to a package.json or a .prettierrc file, and then click “yes” when the IDE asks you “use code format based on prettier config”.
I did this not more than 10 minutes before writing this comment, on whatever the latest (shipping) version of IDEA available with whatever version of prettier came from `npm install` this morning - may save you a few mins next time the IDE is screaming at you.
I think only recently did the gopls become turned on by default for the Go plugin for VS Code. I've been using it for years and have never had any major issues.
The quality is really getting better but it is my experience that you still have to restart the language server (or the integration?) multiple times per hour on any non-trivial project. It is frustrating but it also becomes a habit to quickly reach out to that shortcut in case completion, formatting or intellisense randomly stops working.
It is hard to complain about free tools though. For a Free tool, VSCode, gopls and the Go extensions are great.
If you want more stability, polish and features, pay the $8/month for Goland?
I'm the same way. Java/Kotlin in IDEA, front-end (js/ts/css) in VSCode, and Go can be either but usually VSCode. I don't really want/need more than what VSCode provides for it.
For Ruby, I'm lost without RubyMine--I work on a huge codebase and lean on the superfast search (with default "*.rb, !*test*" files) a lot, usually restricted to a project subfolder.
I'm really glad they renamed Gogland to GoLand--gland is weird (unless maybe I'm doing Monads in Haskell or something).
I work on a large rails codebase as well but within a docker container doing emulation because ARM. How does RubyMine perform then? Last time I tried it felt sluggish.
Do you mean the search itself or other parts? Quite possible that I've become accustomed to the parts that are slower being used to IDEA. e.g. I accept the 'indexing' operation sometimes on startup or the now rare garbage collection pauses.
I love Goland, and it's honestly one of the products that I very much like to pay for. You can eventually pay a one time fee and use it forever (without updates).
I'm also using it for Rust, but it's missing CLion's powerful debugger UI - but I think that gdb is good enough :-)
If you have IntelliJ ultimate, Goland is installable via the Go plugin for free. I use IntelliJ for go/js/python using their plugins and they work as well as the native apps (pycharm, webstorm, goland). Although it is a bit tougher to configure because you treat things more as modules.
In the past five years or so I haven't bumped into anyone who would use Atom. When Atom came out, it picked up some steam, but I'd say VS Code has already won that race by far.
Ex MS employee (and former intern).
Somewhat new to Go (and using VSCode full time) - but it's the language of choice for my job right now. Go seems to be popular in backend apps (non windows mostly) where concurrency and performance are important. The tooling around go for performance profiling and optimization are rather good IMO, and quite friendly if you are accustomed to Unix style CLI tools.
I do agree with the other comments that the language server is buggy but it works quite well when it works. I may be a bit bias when dealing with tooling since I came from Xcode where workflow breaking bugs was the norm.
I haven’t tried the Java integration but based on using VSCode for TypeScript I could imagine feature parity. VSCode is so good that it makes me concerned Microsoft is just using it to eat at JetBrains until they up and start charging for it in the future. Not sure how else to see it.
So VSCode is very, very good for TypeScript. Hell, I'm pretty sure VSCode itself is written in TypeScript!
But that does not carry over to all languages. When working on web apps with a Java backend, I still prefer Idea because it's better for Java and close enough for TypeScript so it comes out ahead over all.
My experience is the opposite with VSCode and TS, actually.
It becomes obvious that Jetbrains understands MSFT's own language (TS) better than VSCode the moment you actually need real IDE-like features (such as refactors) to work.
It does. All languages are basically the same. They parse to ASTs that you can manipulate programmatically. If those ASTs are strongly typed, you can safely perform refractors. What makes IntelliJ good is the base framework JetBrains uses, the same one they use in WebStorm, PyCharm, etc. VSCode is that same thing: an adaptable base and I’m sure making it on par for Java if it isn’t already will happened is only a matter of time if they invest.
Absolutely not, there are many, many language-specific things that an IDE does beyond code hints.
Microsoft doesn't seem to be investing that much, if anything, on languages other than JS/TS; it is delegating all on the OSS community through plugins. And while some of the plugins are really good, in my experience they don't even come close to the native capabilities of Jetbrains products.
This is what Microsoft does. Their #1 thing is being in the market even if the product is bad. They’re delegating now, but wait until they’ve established their foothold, leveled up the core framework. Then they’re going to stop delegating one language after another.
Extend: have a plugin system that everyone can contribute to (sounds like eclipse or IntelliJ CE) and even make money off of. Plugins don't have to be free.
Extinguish: make your own plugins with full refactoring support etc. for the languages you see most actively used (everyone uses it for Go and Python now? Make a good enough plugin for that. Nobody uses it for Erlang anyway? Leave it to the community)
It remains to be seen whether they will find this economical when they are not making any direct revenue on the product.
I understand that VSCode is part of a grand strategic plan that goes beyond revenue, but I seriously doubt that they'd be willing to internally maintain the absolute truckload of code that would ensue from getting to feature parity with Jetbrains on languages like Java or Python. I'd wager at some point the quality would derail, or someone would pull the plug altogether on such a cost sink.
And that's one of the things I love about Jetbrains products. I'm actually delighted to pay for a product that I use every day for ~8 hours and which I think is extremely well-designed, knowing that the money is going to a company of craftsmen who do that, and only that.
Once you've killed off the competition, a lot of other things don't really matter much any more. From the money perspective, it's a well known strategy to loose money to kill off the competition. It's just about who has the deeper pockets/better stomach for it. Microsoft has traditionally been able to do it and I have no doubts that they would still have the stomach for it. I don't know if their pockets are still as deep as they used to be. Windows (and Office etc.) used to be so dominant and such a cash cow that it enabled a lot of the other strategies, but then again they also had to get Windows to that point first. The landscape looks a bit different nowadays I'd wager, given Apple's and Google's footholds on mobile but then again, I wasn't really old enough back in the day, to really compare from my own experience, what the landscape looked like back then with Apple, Amiga, Atari, SGI, Sun etc. in the mix.
> A short read and should give enough examples and descriptions of the strategy
I know about it and don't need a Wikipedia link to enlighten me, thank you.
In my comment I questioned your application of that theory to reality by raising concerns about the cost/benefit analysis from a Microsoft perspective.
I don't think you're accurately scoping the undertaking of getting VSCode to feature-parity with Jetbrains products in Java, Python, etc., nor the potential benefit for Microsoft. My contention is that the gap between Jetbrains and VSCode outside of JavaScript/TypeScript is massive, and that while VSCode is strategically important to Microsoft, they don't have the incentives to even try to extinguish Jetbrains.
But instead of addressing any of the concerns in my original comment, you've just pretty much gone on your own unrelated tirade.
Also, Microsoft ultimately lost the browser wars and many of the similar crusades that they undertook in the 90s and early 2000s, so maybe they've learned a few things along the ways.
Wow, I seriously underestimated the way this written communication could be misunderstood. Especially how anyone could possibly read it as a 'tirade'. And not everyone knows about EEE, especially nowadays but fair enough as to how a link to explain some of it might upset someone that does. That said I really thought that you weren't aware of some of what they had done and how much it would have cost them.
We have a difference in opinion it seems on how much money we think Microsoft might be willing to pay for it and other items as well. That's fair enough. How any of that is a tirade is honestly quite nebulous to me but I probably won't be able to change your mind, even if I tell you that it wasn't written by the furiously typing mad dog you probably imagined.
Let's structure it, so you see how I thought I was addressing things:
> truckload of code
I.e. costs a lot of money: "it's a well known strategy to loose money to kill off the competition"
> pull the plug altogether on such a cost sink
Addressed in "Microsoft has traditionally been able to do it and I have no doubts that they would still have the stomach for it"
> feature parity with Jetbrains on languages like Java or Python
The rest that starts with "I don't know if their pockets are still as deep as they used to be." and which also includes "The landscape looks a bit different nowadays I'd wager" is basically me acknowledging that your opinion is different on this than mine and that I can see that potentially their cost/benefit analysis would lean towards your interpretation. They are trying to cover the Java side well enough with the Redhat maintained plugin. If Redhat does a good enough job to take customers away from Jetbrains that plays into Microsoft's strategy without spending a lot of cash on it. Brilliant.
It's an evolving thing too and as you point out in your reply here, MS did loose the browser wars eventually. The market changes all the time through technology breakthroughs for example and people are actively working against EEE tactics too. I for one am glad that MS lost the browser wars and to address one thing that I did not comment on (on purpose because I was concerned with the EEE discussion and not whether or not one or both of us like JetBrains):
> I'm actually delighted to pay for a product that I use every day for ~8 hours
I absolutely agree that IntelliJ is awesome and I don't want to miss it or use anything else. I don't even use vscode for FE code, unlike most of our FE developers. I'm traditionally a BE guy but have no qualms about doing FE work as long as you don't make me do pixel perfect reproductions of designs in CSS :)
Good point. I don't think that necessarily matters too much though. You obviously can't just give everything away and not have a strategy to make money at all.
That said, giving something away can still make you money or ensure that your competition does not make money either. This comes down to being a large enough entity to support that strategy, which I personally think Microsoft still is.
If I'm Microsoft, I can give away a "base IDE", enlist volunteers and other companies that can even make a buck themselves for quite some time (and spend some money myself) to kill two birds with one stone.
1) I can bind developers to my platform. From the 2019 annual shareholders report: "Beyond GitHub, we are investing to build the most complete toolchain for developers — independent of language, framework, or cloud. Visual Studio and Visual Studio Code are now the most popular code-editing tools in the world. And TypeScript is one of the fastest-growing programming languages."
2) Where I deem necessary use it to kill off competition by driving them out of business. For quite a few companies, the price point of the IDE that their developers use is important i.e. the choice that companies give their employee is: Use vscode or IntelliJ Community Edition (or something else that's free but we're not paying) and it's very hard to explain developer productivity increases to the bean counters.
I agree. Particularly with the first point. One of VSCode's big strengths is it runs on the web as well - it's easy to see it becoming a fully integrated cloud IDE (whether you run it in Electron or your browser), and then MS can sell VSCode Premium for $2/mo to integrate it with your corporate login etc.
It’s incredible how it runs on the web. CodeSandbox is an awesome tool because it’s the same thing you use on your desktop (if you use VSCode). Just the other day I saw some post here wondering why you can’t “code in the browser” and uh, you can! Just go to CodeSandbox.
I suspect MS will be selling VSCode premium, as I mentioned elsewhere on this thread, they are already maintaining closed components.
If you ever get a chance to work on something with JetBrains developers (I got to when I was on the Java 8 JSR), you will find them to be some of the best out there. Their Java support was always ahead of javac for the new features we were specifying.
Another important point: JetBrains have long experience of competing against well funded free competitors. In fact they have grown in an environment where there have always been such products: first NetBeans, then Eclipse, now VS Code. Subsidising IDEs has been a common tactic for a long time, VS Code is nothing new. The story is always the same: such IDEs grow quickly for a while because their price is zero, but eventually after the project has become a "success" the parent corporation gets tired of sinking money into it and the executives lose interest. With weakening internal support, the projects get steadily destaffed. Eventually the project may go off the rails by e.g. deciding to rewrite from scratch.
Meanwhile JB survive the assault, continue to invest in their core product (which have been incrementally evolved for decades and were never rewritten from scratch), and come out the stronger party. They cannot lose interest or make self-destructive decisions because the IDEs are their core revenue stream.
This argument is a compelling case for JetBrains and I hope it proves out.
> They cannot lose interest or make self-destructive decisions because the IDEs are their core revenue stream.
But this can be said about Microsoft as well. IDEs are not the core of their revenue stream, but they're near the core, because "developers, developers, developers, developers" is still true. They're a software company, they make operating systems, a cloud platform, and hardware. They need to provide developer tooling. If IDEs aren't their core revenue, they're certainly near the core. If Microsoft hasn't been making money on IDEs lately, they have in the past, they see other people are, and they're certainly going to try and get back to that if they can.
That argument is true for Visual Studio. Not VS Code, which is Microsoft's "rewrite moment". Visual Studio is targeted at Windows apps, which you have to pay Microsoft to use. VS Code is targeted at web apps, which people run on Linux. The revenue impact is highly indirect: it's not like people will write more web apps than before now VS Code exists, somehow benefiting Azure.
They could try to do a reverse JetBrains and introduce an enhanced for-pay version. Supposedly they're already starting to do that with Python support, it seems. But starting commercial and going free is a lot easier than starting free and going commercial, in terms of user loyalty.
> but I seriously doubt that they'd be willing to internally maintain the absolute truckload of code that would ensue from getting to feature parity with Jetbrains on languages like Java or Python
Why would you doubt this? Microsoft is huge compared to JetBrains and revenue opportunities of code editors have been clearly demonstrated since the 80s. Microsoft sold how many billions of dollars of Visual Studio in the 90s? Plus the red flags are already popping up: Microsoft is already not open sourcing Python language tooling [0].
Sure, but Microsoft also has Visual Studio. If they start heavily investing in VSCode for C#, C++, then they're going to be cannibalising Visual Studio. And for what?
I think they're going to phase out Visual Studio. They like VSCode because it's an Electron app that runs on any platform and even in the browser. Microsoft isn't just a Windows company anymore, and VSCode is their future editor.
The language server is a really small part of an IDE, though. IDEA has soo many Java specific features I use every day (like maven, spring and other tools, debugger, hot reloading, profiling etc), and other non-language specific stuff like db viewer.
It’s possible they lack vision and focus for this thing, such that they go out and do “Java support” without making it good or caring about it.
On the other hand, we’re talking about Microsoft. If you lived in the 90s, I find it hard to imagine how you can see Microsoft in any other light. I know: different times, different leadership. But still: it seems possible that they’ve got a huge vision for this and want to do the equivalent of Internet Explorer 1 and 2 just to be out in the market, so they can come back and do versions 3 and 4 as their position has become entrenched.
I think it’s less that and more that Microsoft is leveraging Redhat’s focus on Java. They have built a good editor and plug-in environment, then engage organizations stronger in other tech and have them build support.
Reality check, Microsoft is a Java vendor nowadays, after having bought jClarity, has a seat at OpenJDK table, official Java blog in English and Chinese on MSDN, and Java is the only plaform that has biggest parity with .NET features on Azure.
Python is not a strongly typed language and renaming variables in such a language is a minefield. I've used PyCharm and WebStorm and never felt comfortable using their variable rename facilities for Python and Javascript. If they do it better than rope then that's good, but you need to write those languages in a very specific if you want IDE renamings to succeed. IMO, that rope fails silently might be viewed as more of a feature than a bug :). Anyway, I'm sure it will be improved.
I think VSCode is really good, but even when I was only writing JS I ended up preferring WebStorm. I like its refactoring tools and command palette better, and I also prefer its "batteries-included" rather than "plugin-first" approach (although I do have a few plugins on JetBrains products always, such as Vim, there are significantly fewer than in VSCode)
Anecdotally, I know other devs in the same situation. You wouldn't pry WebStorm from their cold dead hands, even with an excellent free offering like VSCode. But I also know some who don't understand why you would pay for WebStorm when VSCode is free, which is reasonable (though if they took WS for a spin, they might change their minds).
Now that I write mostly Python and JS there is no contest at all. I get all the JS/TS goodies, plus absolutely amazing Python features.
Like GP is saying, I don't think JetBrains and VSCode even compete that much. Maybe VSCode will capture a good part of the JS world - which is huge of course - but I think WebStorm will maintain a decent foothold there no matter what, and I think JetBrains will remain very strong in other languages.
I feel like we are kind of ignoring how Visual Studio plays into this, do we really expect Microsoft to replace it with VS Code? I feel like Visual Studio Pro/Ent is more of a competition with other paid IDEs and VS Code won’t be, perhaps somewhat so it isn’t positioned to eat Visual Studio?
VSCodes Java, Python, and Golang support is miles behind IntelliJ.
FWIW, on my team at Microsoft where we write a lot of Go, theres a 50/50 split between IntelliJ/GoLand devs and VS Code devs and more people have switched to IntelliJ from VS Code than vice versa.