This is a product that I actually _would_ pay for as an individual. It's reasonably priced and worth the increase in efficiency and better experience. Plus their pricing is fair and flexible.
Yes, it seems fair to me to spend real money on Jetbrain's tools, if you like them.
It is strange how reluctant programmers are to spend on tools even though they are, as a rule, quite willing to let themselves be paid handsomely for their services. Yet graphic designers pay for Adobe's tools. Who can read this riddle?
Important caveat here. My only exposure to JetBrains had been through Intellij which was thoroughly unpleasant around 2012-2013. That impression has left me forever sour towards them. Surprised to hear people say that it could be a step up from VSCode.
It looks like "Fleet" is their VSCode competitor? I'm not sure if the homepage does a good job at communicating how this improves over of VSCode. First of all VSCode has an enormous ecosystem of tools which seems hard to replicate. In terms of advertised features for Fleet, it seems like the one most highlighted on the page is multiplayer, which would possibly enable others watching me code live? Sounds nerve-wracking. Although I could imagine some helpful scenarios when pair-programming or something.
Other items that are advertised don't really encourage me to want to make the leap, especially as something I have to pay for. It sounds like they could host your code, or something like that, which could be nice. An annoying part of my workflow is that I work on the same codebase between multiple machines and every time I hop between machines I have to commit the changes to a private repository that is separate from my team's repository. It seems like it would be somewhat straight-foward to have the same code shared between all machines.
Other than that I would be interested to hear on how any Jetbrains products would improve productivity.
> Surprised to hear people say that it could be a step up from VSCode.
VS Code is very* lightweight. Both in speed and in features. Comparing it with IntelliJ makes it seem very basic. Now, for some people that’s okay, but JetBrains IDEs are full-blown IDEs.
*: Compared to something like JetBrains tools, or literally any other electron software.
For TypeScript there's little difference since most of TypeScript support comes from the same language server running in the background (there's an option in the menus to restart it if it breaks, same as in vscode).
Although autocomplete is better (especially for pure JS), it doesn't warrant paying for a license IMHO. Personally, I use IDEA for TS because I use it for other languages where it blows everything else out of the water (so muscle memory).
Also, if you're doing server-side development, it has a very good built-in client for two dozen databases (which pretty much replicates the functionality of their DataGrip product), so you get decent data editing / import / export / DDL support, and excellent autocompletion for your SQL (interspersed among TS code, or not — doesn't matter).
Edit: also, 100% of their products' funtionality can be used from keyboard. I don't touch the mouse at all. I think vscode can support something like that, but with very heavy customization (and even then I'm not sure). Out of the box it pretty much forces you to use the mouse for many things.
I almost never use the mouse in vscode, emacs keybindings and the command pallete and keyboard shortcuts created any time I touch the mouse. But I also don't get everything I want, (like macros and web browsing and face customization and rectangular editing) that I get with emacs, so I only use vscode for liveshare.
Incidentally, I use and pay for tabnine (another ai assistant) in emacs and it's fantastic - single line completions are superior to whole snippets I have to read with copilot, and don't get me out of my flow.
I am surprised the tabnine company completions are way easier to work with than in vscode. With grouped backends, company lsp + company tabnine is great. I'd encourage kite users to try it. Well worth the money.
Even if JetBrains does support your language more "natively", what makes it better than using a language server?
As a student I can use JetBrains tools for free but personally, I'd much rather use something like VSCode combined with clangd than e.g. CLion, as I don't see anything that would make CLion better, while the JetBrains UI is downright cluttered.
As for keyboard use, the command pallete (Ctrl+Shift+P) is right there and should be able to do anything. And thanks to the magic of language servers you can use any editor you like, including (Neo)Vim or Emacs, while keeping most of the capability for language specific stuff.
— advanced refactoring for all supported languages: implement interface, extract interface, automatic "generification" for methods and classes, stuff like that. Saves quite a bit of manual typing.
— built-in database client (which I have already mentioned) which also provides autocompletion for database/table/column names, both for SQL queries, and various supported libraries like ORMs.
— navigation (jump to definition/declaration, find all references, etc.) works everywhere: any supported programming language, XML, files like JSON schema, YAML, you name it. For example, you can put the cursor to a primary key of a table, press your "find all references" shortcut, and it will show the list of all foreign keys referencing that primary key. Same with things like URLs on the client side (for example, the first argument to the browser's fetch() function) — put the cursor on the URL, press "jump to definition", and it will jump to the controller method that implements that URL, including the correct HTTP verb if there are multiple method for that URL. This is just one example, there are dozens of little things like that. All that makes it much easier to work with fullstack projects (to me at least).
— the UI and its "control interface" (so to speak) is consistent. For example, you use the same key combination to jump through search results, list of issues, list of references, etc. etc. Same for other key combinations — they jump make sense, you press what you think will work and it usually just works.
— it also supports fuzzy search everywhere, not just in the command palette. For example, you open up the list of databases, start typing in the name of the table (or database, or foreign key, or procedure, or whatever), and it highlights matching entries and lets you jump between them. Press Up and Down to go though its suggestions. The same mechanism works in filesystem tree, search results, issue list, and so on.
> JetBrains UI is downright cluttered
All of that can be hidden. I have the filesystem tree to the side, the main editor taking 90%+ of screen real estate, and the tab bar on the top, everything else is hidden behind a keypress.
> As for keyboard use, the command pallete (Ctrl+Shift+P) is right there and should be able to do anything
This is not the same at all. Everything can be done through keyboard shortcuts without typing in obscure commands (even though fuzzy search helps, it's pretty slow).
You should use what you think is convenient, I'm not forcing anyone. The more pressure you put on JetBrains by using the alternatives, the better for us.
My understanding is there's Fleet, their VSCode competitor, which sounds like you're referring to, and the UI refresh, which parent is referring to.
The UI refresh is the same IDE under the hood, just way simpler. I control the IDE primarily through command palette (I think many do?) so decluttering would be great- the UI is unnecessarily complex when you can press a key and type a few words to do what you want.
I feel like most of these can be accomplished in VSCode with an extension... We use GraphQL at my work and the amount of coworkers I've run into that don't have the GQL extension installed kinda surprises me. It makes a huge difference so part of me wonders if the criticisms of VSC not being "full-blown" enough is just people not being aware of available/relevant extensions (also probably why VSCode now randomly suggests possibly relevant extensions now)
In my experience JS autocomplete in IntelliJ isn't better, it just shows more stuff. Most of it unrelated and won't work / will be `undefined` if chosen.
It does, however, teach junior developers that the autocomplete is unreliable, which is a good thing I guess — I've seen juniors in statically typed languages like Java fail coding interviews because they couldn't remember any of the syntax, the knowledge was contained in the autocomplete and didn't transfer to a whiteboard.
I do agree IntelliJ's autocomplete is kinda crap out of the box. But if you turn off all the machine learning stuff it's back to being alright.
> I've seen juniors in statically typed languages like Java fail coding interviews because they couldn't remember any of the syntax, the knowledge was contained in the autocomplete and didn't transfer to a whiteboard.
Is this really a problem? How much Java code does anyone write on a whiteboard outside of an interview or teaching setting?
This is only a problem if they wanted to get hired, and then failed the interview because even the basic syntax of their language of choice is unknown to them in the slightest.
I didn't invent the rules, I'm just doing the interviews, occasionally from both sides of the table.
(However if I did invent the rules, I'd probably still require e.g. a Java developer to know Java at least a little bit. Is this really controversial?)
Their support is also often stellar - if something breaks in a free product, get ready for some free support also (read, none, DIY).
And, maybe you think fixing your IDE yourself makes you a better developer - if you are building IDEs, maybe, sure. I'm more than happy to outsource that a company which does this as its bread and butter.
Microsoft, on the other hand, sells (or tries to) enterprise office solutions. They may have optimized for a single use-case (TypeScript), outside of promoting their web-strategy (typescript), I wouldn't expect them to care one lick about VSCode, once it stops being particularly important.
To be fair, there is a FOSS binary distribution of VSCode -- VSCodium[1], though it is maintained by the community. It operates in a similar way (licensing-wise) to IntelliJ IDEA Community vs. Ultimate.
I write a bit of TypeScript recently in both VSCode and WebStorm, I also have many years of experience using both tools. Started with VSCode since it lightweight and this is what I use to edit most of the text. Unfortunately VSCode had troubles indexing the project, refactoring, figuring out types and navigating between methods. Everything works but VSCode hangs for a few seconds every time I do an action that needs a code analysis e.g. go to a method definition. Most of the time it was faster to search and replace rather than to rename a method. WebStorm was the opposite - opens in a few seconds, but then everything works instantly.
I use both, and it really depends on the language.
Something like Java is really benefitted from IntelliJ, Spring integration is excellent, but especially scripting languages like Python or JavaScript/Typescript don't get enough uplift and you might as well use VS Code.
I mean for Java. IntelliJ is made for Java. If you want to do Python, Jetbrains (the creator of IntelliJ) made PyCharm. For Javascript, they made Webstorm.
Granted; I was very junior then--and I think my issues may have been mostly related to the finnicky nature of java tooling and dependencies rather than the IDE itself.
I have to say I had the same experience with IntelliJ when developing for Android in 2013-15 or so. This year when trialing CLion I was very positively surprised by the evolution of their platform, it's easily the most usable environment for C++ development I have used.
I have experience from pure VIM, VSCode, Visual Studio for Windows, the reliable refactoring features alone are worth the price. With VSCode I would find the refactoring support not reliable and the intellisense features also might just stop working randomly depending on the project.
Prompted me to move to WebStorm also for web development, and I must say I have been very positively surprised there also.
Seems they have made some important strides in the past years, can highly recommend testing their environments out.
I think it’s because the free and OSS tools are of such a high quality for developers. There is a much bigger chasm between GIMP and Photoshop than there is between VS Code (with plugins) and JetBrains.
It’s hard for many to get over the fact that JetBrains is infinitely more expensive than VS code in dollar terms.
> There is a much bigger chasm between GIMP and Photoshop than there is between VS Code (with plugins) and JetBrains.
I don't believe this to be true. I think the difference is graphic designers tend to use much more of their toolings' functions, whereas almost every day I'm surprised someone I work with doesn't even know some IDE feature was possible, let alone how to use it. Hell, almost every frontend developer I've ever seen use either VSCode or WebStorm orchestrates everything from the built-in terminal and is baffled when they never see me use one - because it's all configured via run configurations, and that's a _basic_ feature.
That makes sense though.. Terminal commands are easy to put into team wiki or record in personal notes or put into your CI config. There is a command history, it is easy to chain commands, etc..
Unless using IDE's native tooling is making you much more productive (say its debugging does not work without it) it is better to avoid it if possible.
IDE's native tooling makes you more productive because you set it up and never interact with it. If you need to manually do stuff, or do it all the time, you can slap it behind a keybinding. My cmd+F6 to do everything that needs to be done to get the iOS app built and debugging inside a simulator is obviously going to be more productive than having to jump into the terminal every time. Ditto for the run configuration (also cmd+F6 in a different project) that spins up docker and all that blah blah to get the API server running.
This is what I'm talking about, for what it's worth, a programmer doesn't immediately see the utility in the tool and doesn't use it, and that's the story for 99% of the things an IDE does. It's always faster to do it yourself once, or twice, especially considering setup time and learning curve, so people don't make use of the tools. I see people using grep instead of their IDE search because they cbf to figure out how to do it in the IDE!
> Unless using IDE's native tooling is making you much more productive (say its debugging does not work without it) it is better to avoid it if possible.
I have a friend who works as a dev for a decently sized software editor, so he's seen his fair share of people interacting with the tools. They work mainly with Java and the company pays for Intellij for everyone.
He's often complaining about how people never try to learn the IDE and always do things manually. They usually don't really know what they're doing in the terminal, either (they mostly use Windows, so the terminal is rarely second nature).
But whenever he shows them a few nicer features, typically around refactoring and such, they're always blown away and never look back.
He has, of course, interacted with his fair share of graybeards who only use vim, but those people don't usually take ages to accomplish simple tasks.
Because I'm always disappointed with paid proprietary software eventually. Despite some shortcomings, I used Windows 7. Anything after that had a confusing interface with two settings panels, some kind of an attempt to bring a tablet interface to desktop, loss of control over my computer.
After installing NixOS, I never actually boot into Windows 10 anymore. Naturally, I never use MS Office or Photoshop anymore.
It would feel weird to buy some proprietary software, even if it is good. Why not contribute to an open source effort?
I donate to the FSF and subscribe to iTerm2's patreon, FWIW.
I have to admit, though, I think the world would be a much more drab and less productive place if open source were completely dominant. We'd all be chiding each other to donate more and pitch in more, while barely scraping by in comparison to the vast wealth sloshing around today. Maybe it would be a BETTER world if it weren't all fueled by addictive mobile games, privacy invasive advertising, etc. But we'd be a lot less rich
> It is strange how reluctant programmers are to spend on tools even though they are, as a rule, quite willing to let themselves be paid handsomely for their services.
Ability to find someone willing to pay XYZ for foobar does not imply that I am willing to pay the same amount of money for something similar.
In fact, by doing this exact transactions it means that I find such transaction advantageous for me.
Also, I had enough stories of lock-in and losing access to proprietary systems that I prefer vastly inferior open source.
Also, I am not aware of paid systems worth paying for.
I use primarily Linux (Lubuntu), git, Codium, Python, Kotlin, pgsql, Android Studio, LibreOffice, Firefox, uBlock Origin, Leechblock, sqlite.
For what I can pay that makes it worth it? For contributing back, I prefer working on code over donations (due to geoeconomical situation and ability too direct my effort precisely where I care about things over donations often being wasted)
I also pay for JB tools. But that's because it's well beyond me or other open source developers to make a product that's competitive with it, and the competition is well behind (VS Code and Eclipse are good, but once you learn IntelliJ more advanced stuff, you feel like a programming God - something worth paying for ;) ). An IDE is insanely complex nowadays. I am not sure what Kite had in mind, but to me, what they were proposing would be "just" an IntelliJ Plugin. And I don't pay, and can't see myself paying, for any plugin.
I am glad to pay for software, but I want it to be free as in freedom: I insist on being able to modify, fix, extend and share it. So all of my tools I rely on are AGPL, GPL or BSD-licensed.
Graphics designers don't have much choice because even if they decide they are entirely fine with free program, the graphics design world runs on Adobe file formats. Not the case for programming
Because developers want to be able to hack on their own tools: fix bugs, add features, whatever. Graphics designers do not have the skills to hack on their own tools, so there isn't a huge population of them sitting around going "damn, I wish I had feature X -- I know, I'll build my own editor and open source it!"
Some do. Probably over-represented on HN. Others want to work their hours and spend the rest of their time with non-technical hobbies, or with family, or literally anything else. If that isn’t you, no big deal. But we should not paint all developers with the same brush.
Enough developers want to hack on their own tools that the market is smaller than you would naively expect, counting the number of developers and how many tools they each use. It's a bit like asking "how come we're having so much trouble selling our extended warranty to professional mechanics, even though professional drivers buy extended warranties all the time?"
The real reason is that there are free alternatives. For many people, “free and open source” is the same as just “free”.
Again, I can fix most things on my car. I can afford the tools needed. But I don’t want to because opportunity cost.
One thing I have always found weird is the whole, “hey can you look at my computer? It is all slow” is considered okay to ask anyone in IT, but it (at least in the circles I was raised) inappropriate to ask a mechanic in the family to work on your car, the accountant to do your taxes, the plumber to replace your toilet.
And even with mechanics, some like to work on specific cars as a hobby, much like an engineer might want to play around with ML and work on a CRUD app for pay.
Think about having a friend who is doctor. We might often just ask them hey I have this pain in the neck what do you think could it be? It is not seen as asking them to work for you but merely asking for advise, like you might ask any friend. Advise is free right? And the person asking you for advise is happy to give their advise to you if you ask them. Reciprocity!
The problem with the computer MIGHT be very easy to fix if you know how to fix it.
But if you accept their invitation to help them then you don't want to just give up after 10 minutes. It would make you look not smart if you could not help with the problem after all. You have been hood-winked into working hard to look good.
The worst part is if you do something to their computer and some new problems appear later, you will be responsible.
I think family mechanics and accountants do get asked for help. Plumbers maybe a little less.
I think there's an accurate perception that IT work is generally air-conditioned and doesn't involve physical danger or sewage, so it's not as big of a deal to ask for help.
Simple. I told my parents if they buy either a Windows computer or an Android device, I couldn’t and wouldn’t help them (yes they can afford Apple devices). During the height of Covid, my dad had emergency surgery and I didn’t want to go see him when he was already weak (he’s better now). I sent them an iPad because it was much easier to use with FaceTime than figure out which badly integrated video calling solution that Google was pushing this week.
Good god no, I just want it to work. I used to be that way, but you can be too in love with customizing your tools to the point that it gets in the way of doing your own projects. I do not want to spend all my time carving better knife handles.
I think about writing my own IDE sometimes, but then I think how all-consuming such a project would be, and having to support a userbase made up of developers.
I don't often hack my own tools either, but it's great to have the possibility to do so.
When you really need that bug fixed for your edge case or platform, it's much easier to submit a patch rather than wait around for someone else to fix it.