It's also pretty consumer-friendly. Every year I get an email from them around November reminding me my subscription will renew in February, and then a couple more reminders along the way.
The “subscription but keep forever on cancel, sans updates" licence model is just so much more honest than pretending that purchases would be one-time investments and so much less of a risk for the buyer than a hard-stop subscription.
I think it's also good for the product, the right balance between the failure modes of being able to milk existing subscribers even without maintenance for the hard subscription and change for the sake of change that you see with classic one-time licencing where reasons for paid updates have to be invented even when there is nothing to improve (edit: how many great products have been ruined by this?).
The perpetual license fallback saved me when my license expired. Due to the US holidays it took our purchasing department a week or two to renew my license. In the mean time I was able to fall back to an older version, and upgrade once my new license came through. It was very easy and straightforward to do in both directions.
Saying that TeamCity is their worst product sounds like a back-handed compliment to me. It's certainly not a perfect product, but I've been in multiple jobs where they migrated the CI system (including one that did ~25k builds/day) to TeamCity and it was a significant improvement in scalability and manageability over Jenkins, Travis, and some other Windows-only CI system.
I haven't been convinced by WebStorm (for Angular and Gatsby/React projects EDIT: with TypeScript). It doesn't feel as magical as IntelliJ or Rider/R#.
I cannot be as magical due to Javascript's dynamic typing. In Java/Kotlin, the IDE can know all about your classes, types, etc., but with Javascript is has to make some guesses.
I am using Webstorm for my side project and have to use Visual Studio Code for company work. Webstorm is so much better IMO. Everything feels to well integrated, while Visual Studio Code always feels like a toy to me.
I've used it with TypeScript exclusively. My qualms are more about debugging (VS Code creates a temporary Firefox profile in seconds and that's it; in WebStorm you need to configure Firefox to launch a certain way and then setup the debugger), the absence of refactoring options, framework support, etc.
I'm always impressed by how strong the WebStorm intellisense is on pure javascript projects. Somehow it mostly gets jump-to-definition right, even in AngularJS tarpits that are full of ngInject magic.
I honestly still cannot understand why their database product does not show the encoding/collation for fields in mysql (and has no way to do it either).
I disagree. I use it daily as my tool to manage data in MySQL, Postgress, Sql server and Db2 databases, and it's probably one of my favorite JetBrains tools. As a Linux user there aren't that many good options available, and I am very grateful that they added this product to their line.
The Database plugin from IntelliJ and Datagrip is essentially the same. My guess is people like to have separate tools based on their purpose and Datagrip serves that need.
Agreed. Never felt that their own bug tracker is impressive compared to other online services.
It's just messy and not easy on the eyes. Maybe a different team is working on it?
I tend to run into performance regressions maybe once year after upgrading one of their non-Intellij products. I suppose this is because they mostly use Intellij internally so less dog fooding for other products.
I always disliked the name IntelliJ IDEA by JetBrains. It has a product name, a comany name, and something else that until today (15 years after I used it for the first time) is still unclear to me. I mean wouldn't IntelliJ not have been enough? Or IntelliJ IDEA by IntelliJ? It is a fantastic product, but the name?
I don’t get it though, why not just go public now and get tons of money? The IPO may never fetch as high of a price as it would now, even if the company gets more valuable in the future.
Why does it have to be in the USA? You can IPO at other stock exchanges. For example, CD Projekt Red, the game studio that developed the Witcher series and Cyberpunk 2077, is listed on the Warsaw Stock Exchange (Poland) and valued at ~$10bln (although the stock price has been really volatile recently).
Sometimes it's not all about money. Having shareholders can make the company head in a direction different to the direction that the current founders want it to go.
I don’t see why they need to. They are incredibly successful already plus pretty sure enjoying what they do. An IPO would probably put much of that at risk so why bother? I’ve always understood them to be driven more by the desire to help make software development more pleasant.
Well, there's values that differ by countries. I've seen a few old family run businesses being sold off to US VCs and things didnt turn out well often:
- customers got screwed over
- same with employees
- quality "optimizations"
- financial engineering
- founder's longterm values abondoned for quarterly gains
Not taking VC cash is a more traditional take on things elsewhere.
Not taking VC cash is a more traditional take on things here in the US, too. The VC cash/investment money chase is really only a thing in tech circles, and a few other niche areas. The vast majority of businesses simply build "organically" (and most die doing it).
Why would anybody need tons of money? They have a working company, happy customers and perhaps happy enough employees too. And I'm sure they have salary big enough to pay the rent... and drive a Porsche if they want to.
The cool part is, they don't need to. The founders are in control, not the VCs or other investors, so the company isn't obliged to put generating money over all other concerns. And being billionaires, the founders are probably doing fine. They'd apparently prefer to keep the good thing they've got going than to ruin it by selling it off.
There's more in life than getting even more money.
Long term that should net them a lot more money. Having and keeping a true mission will allow them to leave all competitors behind. Because even if competitors can seem strong from time to time (VS Code and Atom recently) they will end up dying because of de-prioritization and leadership without vision (Atom).
I think they aren't technically billionaires. Rather, JetBrains is valued at over a billion dollars. So if they sold their entire stake, then they'd be billionaires.
I'm sure they pay themselves well but I don't think they will be sitting on a billion dollars in either cash or shares.
But only in the sense of having a company that "is worth about $7 billion" according to some estimates. The point of the discussion is that they could convert that to real money that could be used to buy other assets (but no-one is forcing them to do so, so they really have the choice).
"Obtain as much money as possible" isn't the goal of everyone at every time, especially when one already has all the money and resources they need.
Not everyone believes life is a game where the goal is to die with the highest score, above all else. Some do, but not everyone.
You're able to control pretty much every aspect within a private company with no shareholders to answer to and no public disclosures. You're free to use the assets of your company to implement your personal values.
If they lose control and starts putting profit up front as their primary objective than developer spirits, I'm sure many will move to vs code and vs code may speed up its development with more eyes and hands.
Based on Wikipedia it was founded in the Czech Republic by three Russians in 2000 which makes it a Czech company just as much as Tesla is an American company (rather than South African).
edit: Fixed founding date, coffee hasn't kicked in yet
> Tesla was founded (as Tesla Motors) on July 1, 2003 by Martin Eberhard and Marc Tarpenning in San Carlos, California ... A lawsuit settlement agreed to by Eberhard and Tesla in September 2009 allows all five (Eberhard, Tarpenning, Wright, Musk and Straubel) to call themselves co-founders
No, not due to fear. It's just somewhat easier to sell their products using a EU based legal entity. Another example would be Yandex, registered in the Nethelands.
JetBrains main dev offices are in St Petersburg, Moscow, Novosibirsk.
Happy to see this, it’s well earned. I’ve used their products since IDEA v3 back in 2003 and it’s consistently been excellent.
Hard to believe IDEA is 20 years old next month!
if JetBrains people are reading this, I want to say THANK YOU! You saved lots of developer time with IDE, then Kotlin language. I use Golang, Python and Database IDEs, and they are really nice and time saving, can't imagine how much time you guys saved to Java developers where everything is reflection based annotations and deep level of abstract class/interface implementations. (last time when I worked with Java in VSCode, it was almost useless for autocomplete, because too many things rely on annotation based code generation)
Agreed, and the education pack is so good. Perpetually free as long as you're a student has been a lifesaver—honestly can't live without CLion and PyCharm at this point.
Yes! My JetBrains Ultimate renews every November and I get a little giddy in anticipation of paying them for another year. It’s just such an amazing value. JetBrains is so good it’s like finding money on the sidewalk.
JetBrains has a great product but if you are really serious about "giddy in anticipation of paying them for another year" why not buy another subscription every few months? Plan a party and invite the neighbours.
At a time I'd purchase both JRebel and IntelliJ. JRebel had a really "aggressive" sales team that would call and email about renewals. Jetbrains has never had to call me, their product sells itself, for me. I no longer use JRebel.
I love Intellij and no longer use JRebel, and yeah I knew better than to pick up the phone when their sales team was calling.
But that's not why I stopped using JRebel, I stopped using JRebel because 10 years ago I worked on monolithic code bases that got deployed to application servers where a build and deploy cycle took 30 minutes, if I did the build with no unit tests. Even though it took constant fiddling to keep JRebel working and a hot deploy worked on maybe half the changes I made, it saved me many hours.
Now I work on microservices with embedded app servers where a build/deploy cycle is 30 seconds, no need for JRebel. Sorry sales guys!
IntelliJ was crashing repeatedly for a few days and I was really sad I would have to use a different IDE until I found out I could change which VM was used. I've had IntelliJ even tho my company would have got my PHPStorm just so I could code during my free time in other languages in comfort.
Yup! Martin Fowler mentioned them because they were one of the first people making automated refactoring tools. That sold me on their IDE, and I've been a happy user ever since 2001. Thee days I have the personal version of their all-you-can-eat license and it has always been worth the money.
I'm delighted that their smarts and dedication in building a high-quality, user-focused product has paid off in a big way for them.
Java in VSCode works completely fine even with annotations, its the Eclipse language server. You should really give it another shot.
In fact for all of my use cases it performs better than IntelliJ because it isn't trying to be 200 different tools at one time. With JDK 15 and ZGC my project only uses 250mb of ram for the language server where IntelliJ pushes over 4GB.
They're also one of the best IT employers in Moscow and St Petersburg, and guys working there create a lot of value for IT community both local, and russian-speaking in general. You don't even have to work there to feel the impact on the whole programming culture here.
Well, it is a Russian company (although not legally, for obvious reasons). Kotlin is named after an island just of the coast of St Petersburg, for example.
Speaking as a russian, I have exactly the same prejudice. Our government has done a lot of completely awful stuff in the last 10-15 years and still has wide popular support, so it's only natural that we are held accountable for it.
Also, any company that has significant presence in Russia is subject to Russian influence. These people have ways to make you do what they want if you or your close ones are inside the borders, so you'd be wise to mistrust any software that comes from here.
Some people get a bit weirded out about the multiple IDE situation (mostly folks whose current day to day is VS Code with extensions).
Usually that goes away when you get them to try some of the IDEs, the experience is second to none (as far as IDEs that work extremely well out of the box go).
The amount of times I've got praised for writing neat C# code that was Resharper doing its magic :P
The comparison to the bad old days when the IDE answer was always "Install Eclipse and this set of poorly maintained language plugins" is night and day.
The dollar-a-day I spend on the Jetbrains all-products subscription more than pays for itself.
I was one of those people up until around a couple years ago. Now I don't even know what I thought was such a big deal. The Jetbrains Toolbox makes it really simple to launch and update the individual IDEs.
My employer pays for the ultimate license, but I will absolutely pay for it once I move on.
if JetBrains people are reading this, I love your products, but waaaay more code navigation and pane splitting/management features need to have keyboard shortcuts.
VS Code gets this very right. It's generally not as powerful or friendly as JetBrains products, but the far superior keyboard navigation experience gets me to attempt to switch once a month or so.
Not a JetBrains employee, but which features are you specifically looking for? I've never found a single option in the IDE that's available through a menu that cannot be assigned a shortcut.
I think its a step down from Beyond Compare, I've set that up as the diff tool in Intellij before, I might have to do that again in my current environment.
You can use only the merge functionality - it can be launched from git (via mergetool).
I tried to convert from VS Code to PyCharm a while back - I didn't (too familiar with VSC), but I stuck with the merge view for some time - it's absolutely amazing!
Jetbrains products are amazing if you _need_ and IDE. Otherwise you're much better off using VIM or Emacs as they are open source, have tons of customization and plugins available and also they are simply lighter, faster and are available on all unix platforms.
Since I've been testing both on linux on an older laptop (Core i5-3317U, 10GB RAM, Sata SSD): Emacs + lsp (Omnisharp) is not noticably faster than JetBrains Rider. Both are slow and at times lagging on this hardware. In the end I just use Rider on that laptop since if it's lagging either way, Rider is still a more complete C# ide for me.
My laptop from work is a Dell Precision (Core i7-7820HQ, 32GB RAM, NVMe SSD) and is more powerful: it's a pleasure to use Rider on that machine.
JetBrains is one of my favourite ever companies! A few years back I switched from Visual Studio + ReSharper to Rider, and haven't looked back - it's such a fantastic, fully-featured, stable product. I have a personal license that let's me use ReSharper, Rider, dotCover, dotMemory (love this!), dotTrace. Some of the best money I've ever spent, and I happily renew year on year. I also love the pricing model that reduces the cost after years 1 and 2 as a loyalty bonus.
And in the main, JetBrains actually seem to pay attention to what customers ask for in their online feedback site.
I'm looking to get into either Go or Rust soon, and I'll definitely be using GoLand/CLion.
Am I using a different IDE? I'm dealing with bugs in their refactoring engine almost every day (at least in Python and TypeScript); I need to invalidate the cache every other week because something something is not working; it's 2020 and I still can't configure my IDE deterministically through text files (which regularly results in situations where building the project works fine for colleague X but not for me, even though we seem to have the same config, so I end up having to delete the project and create it again). And don't even get me started about CPU usage…
That's not to say that Jetbrains IDEs don't provide incredible value. They do. But I still think they leave a lot to be desired when it comes to stability.
I haven't used PyCharm or WebStorm (you mention Python & Typescript, so I guess you're using them), only Rider and peripheral products like dotMemory and dotTrace. I mainly use Rider on Windows, but occasionally use it on MacOS too.
I've encountered the odd issue with EAP versions of Rider (to be expected of course), but the release versions have been rock solid. Coming from Visual Studio, it's been a godsend!
You may just need to tweak your cache & RAM settings. I had similar issues here, and I just juiced the RAM to 4096 (that's 4 GB, a number I chose arbitrarily). Haven't had an issue since.
You’re working with dynamic languages; it’s a hard problem.
The jetbrains tools do a pretty great job with typescript and when you use annotations in pycharm.... or anything where the types can be rigorously determined; but, obviously, it’s not perfect when the type system says “anything is fine”.
As for building the project; Python just totally sucks at reproducible builds. I don’t think pycharm can fix the entire packaging ecosystem.
So, fair... it’s not perfect; but compared to what? Have you used tools with better support, better stability? Better tooling?
It’s a pretty high bar to clear to say the editor isn’t completely perfect.
Yeah yeah, it uses Java, it eats your ram and the cpu can go crazy, sometimes you need to reset the cache or delete your entire .idea folder.
Eh.
I also wish it was better at some things, but I still love it; what’s the alternative? Visual studio? Hahaha~~~~
> You’re working with dynamic languages; it’s a hard problem.
It's not that hard a problem. At least TypeScript is statically typed and in Python we're using type annotations everywhere. Besides, the bugs I was talking about mostly concern imports (I move file.py from A/ to B/ and PyCharm forgets to update `import A.file` to `import B.file`), and renamings (PyCharm suddenly renames some random variable deep inside dependencies like Tensorflow, too, so I end up having to re-setup my entire Python environment afterwards).
The thing is: Those auto-suggestions for imports work totally fine and code navigation via Ctrl+click works fine, too. So PyCharm does interpret the import statements correctly and I'm at a loss as to why the refactoring doesn't work then, too. Maybe auto-completion and refactoring are two completely separate systems?
I’m not gonna deny it’s frustrating to see quality of life stuff like “don’t refactor stuff from packages!” unaddressed year after year.
...but I think it is a tricky problem.
For example Black[1] is a very carefully crafted project that does an excellent job, but it fails at refactoring files just to apply lints with “inconsistent code generated” on some projects and files; and that’s just apply limiting rules.
...but, I for whatever reason, the JetBrains refactoring for static languages (c#, Java, kotlin) does seem significantly superior.
> can't configure my IDE deterministically through text files
Yes, you can[1]. It will even sync automatically with whatever git repo you store the settings in.
> regularly results in situations where building the project works fine for colleague X but not for me
This is a problem with relying on the IDE host to also be the host of your applications. Your repo should contain build settings, not your IDE.
You should switch to Docker or Pulumi or [insert declarative build tool here] -- something more deterministic and consistent across users.
> I'm dealing with bugs in their refactoring engine
As others have said, this is much more likely to be a problem with dynamic languages. I haven't done much with Python, but I've never had a TypeScript refactoring problem in 3+ years of using it as my primary language and IntelliJ as my primary IDE.
> And don't even get me started about CPU usage…
I have a much bigger issue with memory usage, but it's still not a big problem (and I think it's a memory leak in a single plugin anyway).
Also, JetBrains seems to have (correctly) assumed that dev time is much more expensive than dev hardware.
If I have someone whose slow IDE drains 1 hr of work per week and costs $75/hr, then it's only going to be a few weeks before it was more cost effective for me to upgrade her CPU than to worry about the IDE at all.
> Yes, you can[1]. It will even sync automatically with whatever git repo you store the settings in.
No you cannot. Note I was being very precise in my wording. While you can now export your Jetbrains IDE's config as a git repo (or zip file) of text files, you still cannot configure the IDE through text files (like in SublimeText) because 1) the text files' format is not documented anywhere and likely to change in the future without further warning and 2) Jetbrains also writes changes to the git repo automatically. I want to be in control of my config, though. (Sure, I could roll back any changes but I think that's very sub-optimal solution.)
> This is a problem with relying on the IDE host to also be the host of your applications. Your repo should contain build settings, not your IDE.
Well, yes, we do have all our build scripts etc. in our repo but that doesn't keep people (myself included) from running and debugging things from within their IDE because it's a lot more comfortable.
I noted your wording, which was not as narrow as your intention. You just said you wanted deterministic, text-based config, which JetBrains has.
I've used VS Code's text-file config, before there was a GUI for most of the config options, and I actually found it to be pretty frustrating. A good GUI is a lot better than editing text, even with the IDE helping you stay within the schema.
JetBrains IDE's probably fail the worst in that regard, I agree; but once you have a config you like, it's easy to keep it consistent.
> but that doesn't keep people (myself included) from running and debugging things from within their IDE because it's a lot more comfortable
Again, these aren't mutually exclusive. You can run/debug code in a Docker container[1][2]. The IDE experience is exactly the same (click the Debug icon or use the shortcut, set breakpoints, whatever), it's just that the VM is running your code instead of your dev environment.
Rider is way snappier. With VS, I'm very used to slowdowns and even total freezes for several seconds (which people like to attribute to ReSharper, but IME they happen plenty even without ReSharper) - for a big, full-features IDE, once Rider has started, it feels really snappy, and puts to bed the long-held beliefs that Java is slow.
Just opened a big solution in both VS and Rider to confirm:
- VS was really laggy after opening, pinning all 8 Xeon E3 cores for 2 full minutes!
- VS memory sitting at 1.3GB, plus another 0.9GB for ReSharper
- Rider took 22 seconds to load the solution, then used a bit of CPU for 30s (but was totally responsive in that period)
- Rider memory sitting at 1.1GB
So assuming you use ReSharper, Rider uses a lot less memory, otherwise it's above the same. But still, for me Rider is way more responsive for editing, debugging, everything. And more stable too.
I've used it on a 250-projects solution, and performance is much better than VS+R# or VS alone. Still not recommended, obviously. On smaller projects, I find also it snappier. It uses as much CPU as VS, and eats up more RAM.
- Overall, Perf is better in Rider than VS w/Resharper
- Memory usage for a single solution might be higher than VS.
- There are scenarios where Rider may have much higher memory usage but -vastly- better performance. VS is only 32 bit, There's only so much process space it gets (2GB or 3GB, can't recall offhand) at which point it's gotta swap whether it wants to or not. Rider is 64 bit, so it will be less afraid to allocate if it makes sense on the hardware (and the JVM tuning deities.)
- You can load multiple solutions in Rider with much less penalty than you'd expect. Rider normally runs as a single Main process with Resharper/.Net/etc hosts for each open solution. This seems to give me lower memory usage than Visual Studio.
- With Akka.NET (53 projects, C# and F#) and Akka.Persistence.Linq2Db (6 projects) open, Rider sits at 1598MB nominally, goes between 1.2GB and 2GB, the Resharper subprocesses (already included in those totals) sit between 300-800MB and 60-200MB.
- Visual Studio 2019 with Resharper and Intellicode -DISABLED- shows up as 1363MB for Akka.Net, 653MB for Akka.Persistence.Linq2db, for a total of 2016MB.
Side note, Rider has been open for days with me doing all sorts of nasty things like switching between branches without unloading (Oh yeah, come for the lower memory usage, stay for the hot-reloading.) Those VS numbers were right after I opened, by comparison.
VS is much better today but it's still a 32-bit process that's limited to < 4GB of addressable memory. Jetbrains has been on a multiyear journey (documented with fantastic blog posts) to move Resharper out-of-process but there's still overhead in maintaining separate systems working on the same project space.
Rider bypasses all of the process limitations and syncing overhead by using the Resharper/C# logic exclusively, and is much faster and more responsive as a result.
Also VS has been slowly copying Resharper features but is still far behind. I mostly use VS today for heavy debugging where it still excels.
Happy for Jetbrains, I have been using their products for years and they did increase my productivity.
Lately most of their producuts are suffering of atrocious performance issues, both on osx and linux [1], I hope that they manage to sort them out, because lots of people are now reverting to older versions.
Fair play to them. They are in a bit of a bubble here in Prague as noone from my Czech/EU network has worked for them, but still the product is great, their treatment of community - excellent and I wish them best of luck in the future as well.
P.S. I am currently shilling for Jetbrains Spaces to the leadership :D
A year using IntelliJ for React/Node and still trying to find my way around the IDE (IntelliJ).
It seems powerful as is, but I feel like I'm not using it to the full extent
My personal way of learning about any IDE/etc is when i see something interesting in the options/settings/shortcuts or if i accidentally do something odd i think "huh, what is that?" - i try it, and if i like what it does, i try to remember it for next time.
one at a time you build up an insane amount of muscle memory. you can't memorize all the things. it's also one of the reasons i use eclipse shortcuts in pycharms (don't want to rewire muscle memory)
edit: this is ~5 years in to pycharms and i still occasionally learn new things.
I'd say, don't disable the tips that show at startup and try to incorporate them into your workflow. Maybe make some notes of the ones that seem most useful and try to refer back to them, before long you'll find your fingers remember the shortcuts.
Try some of the refactoring options. It’s the only IDE I know that automatically takes care of all the references if I move files, but especially functions and classes around.
We had a huge file with tons of functions inside, and using Intellij it was a simple matter to move them all to their own files (and not have to update any imports anywhere).
I can't find it right now, but there's a video from a conference where one of the IntelliJ developers show how to work with it productively... it really changed how I use it and made me much better at it.
One of the things that struck me the most was that you shouldn't use tabs... They are very inefficient at navigating between files... Use the file switcher (Cmd+E on Mac) to switch between recent files, or type search (Cmd+O on Mac, followed by initial letters of the words, e.g. to find FooBarClass type 'fbc') for anything else... and disable tabs in preferences.
Another good one is to use `Cmd+Shift+A` to search by action (e.g. Cmd+shift+A > "show bytecode")... with time you either start remembering the shortcut which is shown when you select the action, or you just get used to searching it this way which takes just a second anyway. One more hint: navigate between implementation/definition using Cmd+B on Mac (don't remember the Windows/Linux shortcut) which alternates between the two things, so you can go back and forward using just that! Talking about moving back/forwards, on Mac, use Cmd+[ to go back to previous lines you were editing, and Cmd+] to go forwards again (very handy to look back at what you had been doing before then moving back where you stopped).... oh, there's so much more... just watch some videos on YouTube and practice the hints you like the most.
PyCharm is a no-nonsense, straightforward IDE, that's a pleasure to use. They somehow manage to avoid annoying feature bloat and crapware. No nagging, no bullshit, they are actually creating features that improve workflows instead of features to tick boxes on corporate purchasing department meeting room flipcharts or buzzword bingo. Remarkable and I really hope they don't get bought-and-killed by one of the giants. Or VCs wanting to "make it more $marketing_buzzword".
I've used NetBeans, Eclipse, Visual Studio, QtCreator etc. over the years and always used to pull my hair out over the mess. JetBrains IDEs are way ahead in UX, usability and working day-to-day, minute-to-minute. Nothing flashy, nothing overly marketed, just rock solid and great value.
Free educational license, no-brainer update management with the JetBrains toolbox, everything fits, doesn't demand attention to itself and lets you concentrate on the work.
I'm a big fan and user of PyCharm for many years, but we all know that when my fan starts going and the laptop wants to take off, we can guarantee that PyCharm is indexing ;)
My only complaint is with the remote features, now with covid. I want to seamlessly work as if I was sitting in the office (I can ssh to the machine).
My current setup is to sshfs mount my remote code, install a conda env on my laptop mirroring the office one, and execute things in a terminal window. PyCharm then becomes an editor, autocompleter, refactoring tool, code navigation tool etc, but I don't do debugging within it.
There is some SSH and remote interpreter options but it's limited and hard to use. You can't directly work on the remote files, it uses a model of publishing your changes to the remote and keeps multiple copies etc. Several of us spent quite some time trying to come up with a good workflows for this but some rather use remote desktops or X forwarding because it's not straightforward.
They seem to releasing Code With Me soon (it's currently in EAP, I understood it should come with 2020.3). I haven't tried it yet, but it seems like it could be used a bit like VS Code's remote development mode. It does have some restrictions, but hopefully those will end up being fixed (e.g. currently you need to accept the sessions via GUI instead of being able to let it do automatically via SSH & some tool windows don't work thru it (like Maven)).
In my team we have actually managed to have it working like I am in the office, but with a VPN.
With the remote interpreter, we use Docker, I can debug code that is running on our servers.
And if you set up deployment any changes on your files are automatically uploaded to the remote files, without multiple copies it just overwrites them.
Its a pleasure to work with, I can debug GPU-cuda issues on my macbook with PyCharm GUI!! It was a little bit convoluted to set up, we followed this guide: https://youtrack.jetbrains.com/issue/PY-33489
My workflow now involves running syncthing to synchronize repos between local and remote server and then run instances of IntelliJ locally and over VNC. I get the speed of local editing and running unit tests, but can switch over to VNC remote instance to run and debug. VNC has been much more performant and easier to use than X forwarding or remote debugging.
There is stuff like projector that lets you make a remote machine a dev machine that does all the building, indexing, etc. Have a beefy 80 core machine be your dev machine while you work on your lightweight laptop, or have it live in the data center so debugging connections are not so 'remote', etc.
Indexing is required by so much of their software, even listening for XDebug connections with PHPStorm is not available while indexing. Can’t they let us set the indexing on a lower priority and let stuff work without the index too? (Even if we can’t jump to a specific function, XDebug protocol already has the file and line indicated.)
PyCharm is fine for me. IntelliJ, on the other hand, will periodically freeze my work Macbook when trying to reindex parts of our monorepo[1]. Makes me wish I wasn't forced to use a laptop... or a monorepo.
[1] Note, just a handful of top-level targets comprising 2%-3% of the whole repo. Indexing the entire monorepo at once is a non-starter.
This sounds very debuggable - PyCharm is basically the same product as IntelliJ + Python plugin. There's no difference in how it handles project indexing, so it's probably a specific IntelliJ plugin or functionality causing the freezes.
There's a built-in CPU profiler, but given that you're a paying customer, just contact their support and they'll help you figure it out.
That and laggy keystrokes are really a productivity killer, but maybe for some people it's a worthwhile tradeoff. Not for me. I'm of the opinion that tools should get out of the way and be almost invisible.
Interestingly thats what intellij is for me. RAM is cheap, give a bit more to the editor and it will not get in the way. Indexing saves me so much time that it payed for the extra GBs the first week of use.
Find the biggest directory in your project which doesn't contain relevant code (usually /build, /docs, /.git or /thirdparty) and right click: mark as excluded. Problem solved.
I've used Jetbrains products for five years. Updates are consistently an improvement. Even performance improvements from time to time, which is fantastic since it is a heavy java application. They were quick on the take with Docker integration, latest Cmake updates, even some Go2 generics support already.
Same with WebStorm editing JavaScript & TypeScript!
I'm so impressed that JetBrains can put a reliable pseudo-type system on top of dynamic languages like Python and JavaScript.
My co-workers wonder why I don't just use VSCode like everybody else. I mean it's not _bad_, but it's not JetBrains. You will have to pry my all-tools JetBrains license out of my cold dead hands.
If you're going to use more than 3 of their offerings, it starts to get cheaper going with the all products pack or IntelliJ ultimate is cheaper than going with 2 tools. But you should note that IntelliJ doesn't include every other products as plugins such as AppCode.
Love them. I would pay for them myself, if I had to even though pricing would translate to a considerable amount in my country, its worth it. Hope their new venture, Spaces, take off.
I recently stumbled upon the Jetbrains TV youtube channel specifically this one about Go [1]. I don't have Goland specifically but it's really nice that if you have a licensed Ultimate edition of the IDE, you get all that. I have been using IntelliJ for many years now (on a personal license)but pleasantly surprised how many nice/useful features are a key stroke away. Would recommend a quick watch.
I don't want to seem like a complainer, but AppCode is still not working as good as I'd like (indexing is really slow, misses out of a lot features that other Jetbrains products have, and also extra bugs). But it's still 5x better than XCode. And thats the point, they're making a better iOS development environment than Apple
They miss out on some features where you have to XCode, but this is Apple's fault.
Huge fan, couldn't be happier for their success based on delivering untold dev productivity & joy. Great example of a customer focused Co's achieving success through relentless product focus.
All their products are amazing, I'm on the all products pack subscription which is insane value - by far the best value commercial software I've ever used that's always ahead of the competition and gets smarter with every release.
Thank the gods for JetBrains. I love their software.
Excellent business model, I get to keep the software I bought when the license expires. Never forced to continually pay for something you don't see value in updating. I think that's one of the key factors which drives them to continue to improve their products. If future version of their products wasn't vastly improved over the previous then people wouldn't upgrade because their current version serves them perfectly fine. And if you don't like this years update, maybe you'll like next years. No downsides whatsoever.
Never used any of their TeamCity/Spaces stuff but it looks cool. I can definitely say I'm a fan of their IDEs though. Use them every day.
> Never used any of their TeamCity/Spaces stuff but it looks cool. I can definitely say I'm a fan of their IDEs though. Use them every day.
I looked into the cloud offerings they have, the CI system is way more powerful than what I am using (bitbucket pipelines) and I'm actually pushing the limits of what I can sanely do there, so I may actually move over soon.
I'm a big fan of teamcity - might be because it's the first CI system I used professionally, but compared to Jenkins it just works (batteries included) and compared to circleci I find the configuration much less repeatitive and UI richer in terms of reporting / feedback.
Yet to try the cloud hosted version, but it's on my list as the only downside for my personal usage is the minimum ram requirement (I try to keep my hobby projects Infrastructure as close to $0 cost / month as possible)
It is interesting that they initially offered subscription model without unexpirable license. But because of community backlash they changed it and people seem to be happy with the outcome.
Current model still isn't perfect as you only get the version that existed when your sub starts not when it ends. So if your sub expires you actually have to downgrade the product to an old version.
Before if you bought a major point release you would get all minor point releases as upgrades. Now you don't even get any bug fixes that occurred since your sub started.
Well, I think it's fair. If there was no subscription model, this would be the same as buying the version that was available at the time of your purchase. Everything that gets released after that is only a teaser that nags you to continue your subscription. You don't need to update.
Before the licensing change if you purchased a major version such as 5.0 you would get all upgrades for free until 6.0. This was the change that caused the uproar because that was no longer the case.
I feel like you are understating the backlash they faced. I came back from a vacation the day after they announced it and checked here, /r/programming, and a few other developer-focused forums including their own site and it was like the world was on fire. There were very few people who supported the change or were even indifferent. It seemed like the entire community united against it. JetBrains really didn't have a choice but to listen. And thankfully they did; their products are invaluable to us at this point.
Forums in general have been dying out for a while now, unfortunately. I think this was back in August 2015 and at the time, I was an active member of some now-dead forums on the ProBoards network and I distinctly remember looking at either laravel.io or the Laracasts forums to gauge reaction.
I see. All I have left is this and the programming subreddit. The latter suffers a lot from new programmers and unrelated content (something like „I wrote my first HTML Tag today). Programming language specific subreddits suffer from a low number of subscribers. YC suffers from elite mindsets and arrogance (most notably on topics like modern javascript)
I ran (self-hosted) TeamCity at a division of Disney for years with hundreds of projects across teams with lots of complex dependencies. To this day (though I haven't kept up as much in recent years), it's far and away the most powerful CI system I've ever used. Rock solid stability, to boot. And it's only become better and better over the years.
Does that mean it's right for every job? Not at all. Sometimes you just need simple and accessible. Things like CircleCI or Travis or Heroku's CI. But not Jenkins. I put Jenkins into the same category as TeamCity, and it falls far short.
If you've outgrown some of the other options and need really powerful CI, I can't recommend TeamCity enough.
> Never forced to continually pay for something you don't see value in updating.
I'm glad they dialed back to this reasonable compromise. I am a big fan and was a paying subscriber (personally, in addition to a work license) when they changed licensing terms to brick the software when your yearly subscription was up. There was a predictable outrage, but they fortunately listened and changed to the present arrangement.
I canceled all my personal jetbrains products a few years ago after meeting some of their team at GopherCon.
I vote with my money and I was a 5+ year subscriber up until that point. I visited their booth with same enthusiasm as other posters here and lavished praise on their tooling and talked about how excited I was for their Go IDE and they just stared at me and said “Ok, thanks”.
Something so empty and almost a pretentious kind of tone when it was said was a massive turnoff. Why even come to a conference if you don’t want to engage with your users?
I don’t expect my story to change any hearts or minds and I still use their tools when a company provides them for Java work but I’ve replaced my usage of their other tools with VS Code and plug-ins for my personal projects.
I was asking a genuine question, I've seen some sassy marketing people, but when I talk to developers at booth is a whole different attitude (positive) when they see other developers.
Perhaps it was run by some introverted developer-types? Or there were some cultural differences at play?
The reaction seems a bit excessive and I'm not sure if it characterizes the company as a whole.
Could be possibly because they were Czech? The culture is very different from what Americans are used to. Very reserved, very matter-of-fact, no smalltalk.
Jetbrains is mostly Russian. Their main development center is in St. Petersburg (Kotlin is actually a name of the island in St. Petersburg archipelago).
Not to invalidate the way you feel about that interaction, but putting myself in their shoes- I’m not sure my response would be much better.
Running a booth at a conference is EXHAUSTING. Also, that was your first interaction with them and you were at peak excitement. That might’ve been the thousandth time they had heard similar and their spark may have faded by the time you got there.
I get it though, we feel the way we feel. It sucks when your enthusiasm goes un-matched. I’ve written off companies for interactions a more objective bystander might charitably forgive.
BTW- I’ve got no relation to the company or product. I’m just a happy customer who’s run a booth or two in my day and also felt the same way as you about other companies too.
Maybe is a culture/language thing. Because I am not a native English speaker and I almost never have to speak (only read and write) when we have a video conference I always express myself with few words because I am aware how terrible I sound so I will use a lot of OK,Yes, Sure ...
Yes, those Russians can be quite blunt. I once found a great library maintained by a Russian guy that had zero issues on Github. I created an issue for a feature request and was brushed off with unexpected rudeness. Later I looked at this again and found that he was absolutely correct with his argument and his communication was just very efficient and I am sure he did not mean to be rude.
I'm sorry to hear that. We really strive to talk to everyone we can, and we are happy to hear all the stories from subscribers, or otherwise. Feedback, and more importantly, meeting with people is why we go to conferences.
Can you please remember at which GopherCon / year this happened?
I'm usually part of all the conferences teams and I can say that at conferences such as GopherCon US 2019, I speak daily with 200-300 people easily at the booth.
All of our booth staff is developers + myself (Developer Advocate) and from time to time we are joined by our Product Marketing Manager.
It's not an excuse for this type of reply, and I believe that nobody should be treated like this.
Very, very well deserved! Great software at very reasonable prices. I had the ultimate collection (or whatever the package including all IDEs is called) for 3 or 4 years and it even encourages me to try out new languages once in a while. Its an excellent offering!
Their open source free pack is so great, many many thanks to them!
And they kill two birds with one stone. First, they support open source, which is great. Second, they increase conversion and loyal userbase. At my job I had a choice between Visual Studio + Resharper vs Rider, and I was reluctant to move from VS to IntelliJ IDEA based IDE, thinking R# is good enough and gives the same benefits inside a familiar IDE. I was so wrong, after trying Rider at home occasionally and pair coding at job, I gradually migrated. The IDE itself is much better, faster, nicer is big and very small details. Now there is no way back to VS, but that may not have happenned without the access at home. Other tools from the Toolbox are doing the same for other languages. Very smart of them to be so generous. Now even if my free pack is not renewed, I will pay for myself. And for foreseeable future I will generate at least one license at work for them.
529 comments
[ 2.4 ms ] story [ 345 ms ] threadPretty good deal if you ask me. Now if only I could do remote development like in VSCode.
We are working on it, stay tuned :)
I think it's also good for the product, the right balance between the failure modes of being able to milk existing subscribers even without maintenance for the hard subscription and change for the sake of change that you see with classic one-time licencing where reasons for paid updates have to be invented even when there is nothing to improve (edit: how many great products have been ruined by this?).
So I agree, it's a very honest business model.
What's their worst product so far?
Still better than XCode which regularly looses syntax highlighting for no reason in 2020.
I am using Webstorm for my side project and have to use Visual Studio Code for company work. Webstorm is so much better IMO. Everything feels to well integrated, while Visual Studio Code always feels like a toy to me.
I honestly still cannot understand why their database product does not show the encoding/collation for fields in mysql (and has no way to do it either).
Native apps like TablePlus is so much faster to work with.
Still, if you are happy with the amount of money you have and you have a business you enjoy running, why sell? This is probably their view of it.
Also this is where Sun acquired NetBeans way back in 99.
- customers got screwed over
- same with employees
- quality "optimizations"
- financial engineering
- founder's longterm values abondoned for quarterly gains
Not taking VC cash is a more traditional take on things elsewhere.
https://www.nytimes.com/interactive/2019/05/01/magazine/remi...
There's more in life than getting even more money.
I'm sure they pay themselves well but I don't think they will be sitting on a billion dollars in either cash or shares.
Not everyone believes life is a game where the goal is to die with the highest score, above all else. Some do, but not everyone.
You're able to control pretty much every aspect within a private company with no shareholders to answer to and no public disclosures. You're free to use the assets of your company to implement your personal values.
edit: Fixed founding date, coffee hasn't kicked in yet
I was a bit confused for a moment, because I distinctly remember using either IntelliJ or RubyMine in 2008.
I had no idea they were a Czech company with Russian founders though. Good to hear not everything comes from SV.
Difference being that Tesla does not keep their core team in South Africa.
JetBrains main dev offices are in St Petersburg, Moscow, Novosibirsk.
Everything else is in St.Petersburg. Not too long ago they even bought[1] hotel complex for their office.
Now they are building another business center[2] near by.
[1] https://vc.ru/office/83175-ofis-jetbrains-v-sankt-peterburge [2] https://nsp.ru/5683-mozgi-sobirayutsya-u-gazproma
Absolutely money well spent.
But that's not why I stopped using JRebel, I stopped using JRebel because 10 years ago I worked on monolithic code bases that got deployed to application servers where a build and deploy cycle took 30 minutes, if I did the build with no unit tests. Even though it took constant fiddling to keep JRebel working and a hot deploy worked on maybe half the changes I made, it saved me many hours.
Now I work on microservices with embedded app servers where a build/deploy cycle is 30 seconds, no need for JRebel. Sorry sales guys!
I'm delighted that their smarts and dedication in building a high-quality, user-focused product has paid off in a big way for them.
In fact for all of my use cases it performs better than IntelliJ because it isn't trying to be 200 different tools at one time. With JDK 15 and ZGC my project only uses 250mb of ram for the language server where IntelliJ pushes over 4GB.
Most of the staff is Russian though which sort of makes it a Russian company I guess?
Also, any company that has significant presence in Russia is subject to Russian influence. These people have ways to make you do what they want if you or your close ones are inside the borders, so you'd be wise to mistrust any software that comes from here.
Usually that goes away when you get them to try some of the IDEs, the experience is second to none (as far as IDEs that work extremely well out of the box go).
The amount of times I've got praised for writing neat C# code that was Resharper doing its magic :P
The dollar-a-day I spend on the Jetbrains all-products subscription more than pays for itself.
My employer pays for the ultimate license, but I will absolutely pay for it once I move on.
VS Code gets this very right. It's generally not as powerful or friendly as JetBrains products, but the far superior keyboard navigation experience gets me to attempt to switch once a month or so.
I tried to convert from VS Code to PyCharm a while back - I didn't (too familiar with VSC), but I stuck with the merge view for some time - it's absolutely amazing!
And in the main, JetBrains actually seem to pay attention to what customers ask for in their online feedback site.
I'm looking to get into either Go or Rust soon, and I'll definitely be using GoLand/CLion.
Am I using a different IDE? I'm dealing with bugs in their refactoring engine almost every day (at least in Python and TypeScript); I need to invalidate the cache every other week because something something is not working; it's 2020 and I still can't configure my IDE deterministically through text files (which regularly results in situations where building the project works fine for colleague X but not for me, even though we seem to have the same config, so I end up having to delete the project and create it again). And don't even get me started about CPU usage…
That's not to say that Jetbrains IDEs don't provide incredible value. They do. But I still think they leave a lot to be desired when it comes to stability.
I've encountered the odd issue with EAP versions of Rider (to be expected of course), but the release versions have been rock solid. Coming from Visual Studio, it's been a godsend!
The jetbrains tools do a pretty great job with typescript and when you use annotations in pycharm.... or anything where the types can be rigorously determined; but, obviously, it’s not perfect when the type system says “anything is fine”.
As for building the project; Python just totally sucks at reproducible builds. I don’t think pycharm can fix the entire packaging ecosystem.
So, fair... it’s not perfect; but compared to what? Have you used tools with better support, better stability? Better tooling?
It’s a pretty high bar to clear to say the editor isn’t completely perfect.
Yeah yeah, it uses Java, it eats your ram and the cpu can go crazy, sometimes you need to reset the cache or delete your entire .idea folder.
Eh.
I also wish it was better at some things, but I still love it; what’s the alternative? Visual studio? Hahaha~~~~
It's not that hard a problem. At least TypeScript is statically typed and in Python we're using type annotations everywhere. Besides, the bugs I was talking about mostly concern imports (I move file.py from A/ to B/ and PyCharm forgets to update `import A.file` to `import B.file`), and renamings (PyCharm suddenly renames some random variable deep inside dependencies like Tensorflow, too, so I end up having to re-setup my entire Python environment afterwards).
The thing is: Those auto-suggestions for imports work totally fine and code navigation via Ctrl+click works fine, too. So PyCharm does interpret the import statements correctly and I'm at a loss as to why the refactoring doesn't work then, too. Maybe auto-completion and refactoring are two completely separate systems?
...but I think it is a tricky problem.
For example Black[1] is a very carefully crafted project that does an excellent job, but it fails at refactoring files just to apply lints with “inconsistent code generated” on some projects and files; and that’s just apply limiting rules.
...but, I for whatever reason, the JetBrains refactoring for static languages (c#, Java, kotlin) does seem significantly superior.
[1] https://github.com/psf/black
Yes, you can[1]. It will even sync automatically with whatever git repo you store the settings in.
> regularly results in situations where building the project works fine for colleague X but not for me
This is a problem with relying on the IDE host to also be the host of your applications. Your repo should contain build settings, not your IDE.
You should switch to Docker or Pulumi or [insert declarative build tool here] -- something more deterministic and consistent across users.
> I'm dealing with bugs in their refactoring engine
As others have said, this is much more likely to be a problem with dynamic languages. I haven't done much with Python, but I've never had a TypeScript refactoring problem in 3+ years of using it as my primary language and IntelliJ as my primary IDE.
> And don't even get me started about CPU usage…
I have a much bigger issue with memory usage, but it's still not a big problem (and I think it's a memory leak in a single plugin anyway).
Also, JetBrains seems to have (correctly) assumed that dev time is much more expensive than dev hardware.
If I have someone whose slow IDE drains 1 hr of work per week and costs $75/hr, then it's only going to be a few weeks before it was more cost effective for me to upgrade her CPU than to worry about the IDE at all.
1. https://www.jetbrains.com/help/rider/Sharing_Your_IDE_Settin...
No you cannot. Note I was being very precise in my wording. While you can now export your Jetbrains IDE's config as a git repo (or zip file) of text files, you still cannot configure the IDE through text files (like in SublimeText) because 1) the text files' format is not documented anywhere and likely to change in the future without further warning and 2) Jetbrains also writes changes to the git repo automatically. I want to be in control of my config, though. (Sure, I could roll back any changes but I think that's very sub-optimal solution.)
> This is a problem with relying on the IDE host to also be the host of your applications. Your repo should contain build settings, not your IDE.
Well, yes, we do have all our build scripts etc. in our repo but that doesn't keep people (myself included) from running and debugging things from within their IDE because it's a lot more comfortable.
I noted your wording, which was not as narrow as your intention. You just said you wanted deterministic, text-based config, which JetBrains has.
I've used VS Code's text-file config, before there was a GUI for most of the config options, and I actually found it to be pretty frustrating. A good GUI is a lot better than editing text, even with the IDE helping you stay within the schema.
JetBrains IDE's probably fail the worst in that regard, I agree; but once you have a config you like, it's easy to keep it consistent.
> but that doesn't keep people (myself included) from running and debugging things from within their IDE because it's a lot more comfortable
Again, these aren't mutually exclusive. You can run/debug code in a Docker container[1][2]. The IDE experience is exactly the same (click the Debug icon or use the shortcut, set breakpoints, whatever), it's just that the VM is running your code instead of your dev environment.
1. Typescript - https://blog.entrostat.com/debugging-a-typescript-project-in...
2. Python - https://www.jetbrains.com/help/pycharm/using-docker-as-a-rem...
Just opened a big solution in both VS and Rider to confirm:
So assuming you use ReSharper, Rider uses a lot less memory, otherwise it's above the same. But still, for me Rider is way more responsive for editing, debugging, everything. And more stable too.- Overall, Perf is better in Rider than VS w/Resharper
- Memory usage for a single solution might be higher than VS.
- There are scenarios where Rider may have much higher memory usage but -vastly- better performance. VS is only 32 bit, There's only so much process space it gets (2GB or 3GB, can't recall offhand) at which point it's gotta swap whether it wants to or not. Rider is 64 bit, so it will be less afraid to allocate if it makes sense on the hardware (and the JVM tuning deities.)
- You can load multiple solutions in Rider with much less penalty than you'd expect. Rider normally runs as a single Main process with Resharper/.Net/etc hosts for each open solution. This seems to give me lower memory usage than Visual Studio.
- With Akka.NET (53 projects, C# and F#) and Akka.Persistence.Linq2Db (6 projects) open, Rider sits at 1598MB nominally, goes between 1.2GB and 2GB, the Resharper subprocesses (already included in those totals) sit between 300-800MB and 60-200MB.
- Visual Studio 2019 with Resharper and Intellicode -DISABLED- shows up as 1363MB for Akka.Net, 653MB for Akka.Persistence.Linq2db, for a total of 2016MB.
Side note, Rider has been open for days with me doing all sorts of nasty things like switching between branches without unloading (Oh yeah, come for the lower memory usage, stay for the hot-reloading.) Those VS numbers were right after I opened, by comparison.
Rider bypasses all of the process limitations and syncing overhead by using the Resharper/C# logic exclusively, and is much faster and more responsive as a result.
Also VS has been slowly copying Resharper features but is still far behind. I mostly use VS today for heavy debugging where it still excels.
This last one with partial compile, and specific debug loops, it is an awesome product!
Lately most of their producuts are suffering of atrocious performance issues, both on osx and linux [1], I hope that they manage to sort them out, because lots of people are now reverting to older versions.
1. https://youtrack.jetbrains.com/issue/JBR-2732
P.S. I am currently shilling for Jetbrains Spaces to the leadership :D
Any tips?
one at a time you build up an insane amount of muscle memory. you can't memorize all the things. it's also one of the reasons i use eclipse shortcuts in pycharms (don't want to rewire muscle memory)
edit: this is ~5 years in to pycharms and i still occasionally learn new things.
We had a huge file with tons of functions inside, and using Intellij it was a simple matter to move them all to their own files (and not have to update any imports anywhere).
One of the things that struck me the most was that you shouldn't use tabs... They are very inefficient at navigating between files... Use the file switcher (Cmd+E on Mac) to switch between recent files, or type search (Cmd+O on Mac, followed by initial letters of the words, e.g. to find FooBarClass type 'fbc') for anything else... and disable tabs in preferences.
Another good one is to use `Cmd+Shift+A` to search by action (e.g. Cmd+shift+A > "show bytecode")... with time you either start remembering the shortcut which is shown when you select the action, or you just get used to searching it this way which takes just a second anyway. One more hint: navigate between implementation/definition using Cmd+B on Mac (don't remember the Windows/Linux shortcut) which alternates between the two things, so you can go back and forward using just that! Talking about moving back/forwards, on Mac, use Cmd+[ to go back to previous lines you were editing, and Cmd+] to go forwards again (very handy to look back at what you had been doing before then moving back where you stopped).... oh, there's so much more... just watch some videos on YouTube and practice the hints you like the most.
It's old , but it should still help a lot.
I've used NetBeans, Eclipse, Visual Studio, QtCreator etc. over the years and always used to pull my hair out over the mess. JetBrains IDEs are way ahead in UX, usability and working day-to-day, minute-to-minute. Nothing flashy, nothing overly marketed, just rock solid and great value.
Free educational license, no-brainer update management with the JetBrains toolbox, everything fits, doesn't demand attention to itself and lets you concentrate on the work.
My only complaint is with the remote features, now with covid. I want to seamlessly work as if I was sitting in the office (I can ssh to the machine).
My current setup is to sshfs mount my remote code, install a conda env on my laptop mirroring the office one, and execute things in a terminal window. PyCharm then becomes an editor, autocompleter, refactoring tool, code navigation tool etc, but I don't do debugging within it.
There is some SSH and remote interpreter options but it's limited and hard to use. You can't directly work on the remote files, it uses a model of publishing your changes to the remote and keeps multiple copies etc. Several of us spent quite some time trying to come up with a good workflows for this but some rather use remote desktops or X forwarding because it's not straightforward.
https://plugins.jetbrains.com/plugin/14896-code-with-me
With the remote interpreter, we use Docker, I can debug code that is running on our servers.
And if you set up deployment any changes on your files are automatically uploaded to the remote files, without multiple copies it just overwrites them.
Its a pleasure to work with, I can debug GPU-cuda issues on my macbook with PyCharm GUI!! It was a little bit convoluted to set up, we followed this guide: https://youtrack.jetbrains.com/issue/PY-33489
https://github.com/JetBrains/projector-docker
Indexing is required by so much of their software, even listening for XDebug connections with PHPStorm is not available while indexing. Can’t they let us set the indexing on a lower priority and let stuff work without the index too? (Even if we can’t jump to a specific function, XDebug protocol already has the file and line indicated.)
Otherwise I love their software!
[1] Note, just a handful of top-level targets comprising 2%-3% of the whole repo. Indexing the entire monorepo at once is a non-starter.
There's a built-in CPU profiler, but given that you're a paying customer, just contact their support and they'll help you figure it out.
I'm so impressed that JetBrains can put a reliable pseudo-type system on top of dynamic languages like Python and JavaScript.
My co-workers wonder why I don't just use VSCode like everybody else. I mean it's not _bad_, but it's not JetBrains. You will have to pry my all-tools JetBrains license out of my cold dead hands.
1. https://www.youtube.com/watch?v=N0jvAea46YM
They miss out on some features where you have to XCode, but this is Apple's fault.
All their products are amazing, I'm on the all products pack subscription which is insane value - by far the best value commercial software I've ever used that's always ahead of the competition and gets smarter with every release.
Excellent business model, I get to keep the software I bought when the license expires. Never forced to continually pay for something you don't see value in updating. I think that's one of the key factors which drives them to continue to improve their products. If future version of their products wasn't vastly improved over the previous then people wouldn't upgrade because their current version serves them perfectly fine. And if you don't like this years update, maybe you'll like next years. No downsides whatsoever.
Never used any of their TeamCity/Spaces stuff but it looks cool. I can definitely say I'm a fan of their IDEs though. Use them every day.
I looked into the cloud offerings they have, the CI system is way more powerful than what I am using (bitbucket pipelines) and I'm actually pushing the limits of what I can sanely do there, so I may actually move over soon.
Yet to try the cloud hosted version, but it's on my list as the only downside for my personal usage is the minimum ram requirement (I try to keep my hobby projects Infrastructure as close to $0 cost / month as possible)
Listen to your users.
I wasn't even aware they ever did licenses that 'fully expire' but I'm glad they have their current model.
Before if you bought a major point release you would get all minor point releases as upgrades. Now you don't even get any bug fixes that occurred since your sub started.
I love their products though.
Does that mean it's right for every job? Not at all. Sometimes you just need simple and accessible. Things like CircleCI or Travis or Heroku's CI. But not Jenkins. I put Jenkins into the same category as TeamCity, and it falls far short.
If you've outgrown some of the other options and need really powerful CI, I can't recommend TeamCity enough.
I'm glad they dialed back to this reasonable compromise. I am a big fan and was a paying subscriber (personally, in addition to a work license) when they changed licensing terms to brick the software when your yearly subscription was up. There was a predictable outrage, but they fortunately listened and changed to the present arrangement.
“Basically, we wrote all this so that making software would be a pleasant and creative process.”
I vote with my money and I was a 5+ year subscriber up until that point. I visited their booth with same enthusiasm as other posters here and lavished praise on their tooling and talked about how excited I was for their Go IDE and they just stared at me and said “Ok, thanks”.
Something so empty and almost a pretentious kind of tone when it was said was a massive turnoff. Why even come to a conference if you don’t want to engage with your users?
I don’t expect my story to change any hearts or minds and I still use their tools when a company provides them for Java work but I’ve replaced my usage of their other tools with VS Code and plug-ins for my personal projects.
Running a booth at a conference is EXHAUSTING. Also, that was your first interaction with them and you were at peak excitement. That might’ve been the thousandth time they had heard similar and their spark may have faded by the time you got there.
I get it though, we feel the way we feel. It sucks when your enthusiasm goes un-matched. I’ve written off companies for interactions a more objective bystander might charitably forgive.
BTW- I’ve got no relation to the company or product. I’m just a happy customer who’s run a booth or two in my day and also felt the same way as you about other companies too.
Can you please remember at which GopherCon / year this happened?
I'm usually part of all the conferences teams and I can say that at conferences such as GopherCon US 2019, I speak daily with 200-300 people easily at the booth.
All of our booth staff is developers + myself (Developer Advocate) and from time to time we are joined by our Product Marketing Manager.
It's not an excuse for this type of reply, and I believe that nobody should be treated like this.
And they kill two birds with one stone. First, they support open source, which is great. Second, they increase conversion and loyal userbase. At my job I had a choice between Visual Studio + Resharper vs Rider, and I was reluctant to move from VS to IntelliJ IDEA based IDE, thinking R# is good enough and gives the same benefits inside a familiar IDE. I was so wrong, after trying Rider at home occasionally and pair coding at job, I gradually migrated. The IDE itself is much better, faster, nicer is big and very small details. Now there is no way back to VS, but that may not have happenned without the access at home. Other tools from the Toolbox are doing the same for other languages. Very smart of them to be so generous. Now even if my free pack is not renewed, I will pay for myself. And for foreseeable future I will generate at least one license at work for them.