To be fair, that's true of almost everything.
I still have my university email (graduated in 2020) so I've been renewing my student license that gets me a free license for the occasional times I use them.
I kinda wish they'd just go for the Winrar or Docker business model, where it's free for individuals but businesses have to pay up.
I also jumped into a personal O'Reilly Safari subscription way back when the price wasn't as high as it is now, and I've kept that grandfathered subscription up as well.
I think between the two, it ends up being a bit less than $500 a year. That's not very much at all against a tech salary, and the O'Reilly sub actually has been quietly useful for work projects now and again too.
My basic take is 1) A builder should have their own set of tools whether they hew wood or numbers (and not everything fits neatly into Visual Studio Code, though I probably use that as much or more than Jetbrains); and 2) if I ever do manage to squeeze out a profitable side project in CA, I want my argument that I'm not using my employer's resources in any way shape or form to be very very solid.
In CA, who owns the resources is the difference in who owns that product. For the same reason, I always buy my own cell phone and pay my own cell phone plan, even if a corporate phone is otherwise forced on me, and always own my own laptop as well for any personal development that comes up.
It's a touch on the paranoid side, I guess, but I just feel better knowing I can be as independent as I want to be with my tech stack. With my own tech library to lean on, a nearly universal set of build tools licensed specifically to me, and my own devices for communication and development, I feel very comfortable that there's no implied shared resource argument that can be made.
Good to hear they've done a better job with their screen reader accessibility as well. I learned to use VoiceOver a month ago (I do a lot of front-end dev work) and ever since then I've had a lot of appreciation for any app/site that manages to pull do it well
I feel that's not my problem as an employee. I work the same amount of time regardless.
Example: without Intellij, you deploy some back end code interacting with an OCR solution.
Example: with Intellij, you can build the whole OCR solution yourself.
Doing the latter translates long term into higher salaries and more money in your pocket. You have to talk about what you did in interviews and your answers will be reflected in the offers you get.
The only way this would not apply would be if you can say “I am absolutely sure I will never move on from, or be laid off by, my company,” which is not a recommended strategy in this economy.
>Example: without Intellij, you deploy some back end code interacting with an OCR solution.
> Example: with Intellij, you can build the whole OCR solution yourself.
How did IntelliJ taught you how to make OCR ? Or the example is completely out of your wild imagination ?
Do you have any source for this very surprising claim?
Can you list any alternate ways that one upskills?
And yes to convince me of that I need supporting data.
> Can you list any alternate ways that one upskills?
Studying, not installing stuff.
I'm sure your boss will be overjoyed when the company will get hit by a lawsuit :)
You went OT. It happens. No reason to be snarky about it.
While I think this concern has a lot of merit, I use Copilot a lot almost always just as a fancy autocomplete. I wouldn't ever let it produce a completely new piece of code for me and I imagine most other devs using it have the same practices so this critique never really hit
I see it like a construction worker that uses his own tools instead of the broken down ones of the site. It makes good business sense that I can work faster and better when I use better tools. I also pay for other tools such as dbForge and SmartSvn/Git but Jetbrains' tools have been the longest running ones (I hope this does not sound like I am a fanboy or something).
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.
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.
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.
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.
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.
Searchable local history (with selective reverting / diffing) is a large value add for me.
The debugging experience is quite good.
The git integration works well- especially blame / navigating through reflog with diffs.
Autocomplete suggestions / behavior is better than alternatives, in my experience.
Auto-fix suggestions / behavior is better than alternatives, in my experience.
https://blog.jetbrains.com/idea/2022/05/take-part-in-the-new...
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.
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'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?
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?)
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.
Its also not open source (VSCode), so I would have no qualms regarding that - there is (https://github.com/microsoft/vscode) OFC but the license for the product everyone uses is not (https://code.visualstudio.com/License/). Similar story for Jetbrains - https://www.jetbrains.com/opensource/idea/ is open source while of course IntelliJ, Webstorm are not (https://www.jetbrains.com/opensource/idea/)
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.
Even Jetbrain themselves realised this since they are creating a VSCode clone called Fleet.
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.
It’s hard for many to get over the fact that JetBrains is infinitely more expensive than VS code in dollar terms.
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.
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.
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!
It's like we're carpenters who hate power tools.
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.
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 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
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)
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 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.
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 do not either, but i do want to be able to fix a knife handle that is annoying me instead of being at the mercy of the knife manufacturer.
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.
When GitHub Copilot decided they wanted to charge $10 a month after the beta was over I noped out.
For what it does, it sure as shit isn't worth paying more than my yearly subscription to IntelliJ...
If you value your time just even a little bit, consider how many of those tools are multipliers.
Obviously not 'JIRA' for a single dev, but in many cases JetBrains is worth it.
Would you wear Basketabll sneakers out for a jog? Well you could, but if you're going to run buy a pair of running shoes. Probably once a year. Costs about the same as Jetbrains for a year - as a very crude analogy.
At least in some cases.
Would be silly for corpo to not buy it for developers