Jetbrains founders turn billionaires without VC help
bloomberg.com
bloomberg.com
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.
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:
- 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.- 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!
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.
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
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.
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.
Am I the only one bothered by articles describing companies like Jetbrains as a startup?
The definition that Google gives from Oxford Languages is: "a newly established business." Investopedia says "The term startup refers to a company in the first stages of operations."
This is a well-established company (founded 20 years ago, according to Wikipedia!) that has grown organically for years by offering products their users love (I'm a GoLand user myself!). Why use the "startup" term where it really doesn't belong?
(Long-term user/customer here. I am using IntelliJ since like version 2 (with some gaps).)
Also, they’ve got a great open source license program! https://www.jetbrains.com/community/opensource/#support
Eclipse is still there but I can't use it for the vast majority of projects I work on these days. Kotlin support is a joke. Gradle support never worked properly for me (though in fairness, I stopped trying 3 years ago).
But Eclipse was a great IDE once upon a time. I still miss incremental compilation that actually works consistently and is actually incremental & fast. That's a trick that Intellij never even came close to doing. Intellij fakes it with inconsistent & super flaky caching (hence the top level menu item with the name: "invalidate caches"). And then they still manage being about 2 orders of magnitudes slower (about 100x: 10s vs 50-100ms). Anything over a second would be an order of magnitude already because the Eclipse incremental java compiler really is that fast. I've never seen intellij launch a test faster than 5 seconds; even for a 1 line change in a class that is not depended on by anything (i.e. the work is: compile 1 class), like a test. Incremental in Eclipse used to mean: it's compiled & ready to run by the time your finger reaches the next key on the keyboard: you can't type faster than it compiles incrementally and the test runs in process so there is no jvm startup overhead. Error markers would update in real time and be typically gone within a second or so of fixing the problem.
Even today, Intellij never gets even remotely close to that. But it works and does the job and Eclipse just stopped even being able to make sense of the projects I threw at it a few years ago which makes the whole performance argument irrelevant. My biggest gripe with Intellij is actually just the endless amount of time I seem to wait for it to index, rebuild, and stop lying about the compilation state of my projects. I just can't trust it either way. It says it's fine and it's not or the other way around. Either way, I always have to double and triple check it more or less continuously and it is sucking up non trivial amounts of my day.
One of the dynamics that has made open source such a juggernaut is a consequence of the 'give a man a little power': Those with the purse strings making strategic decisions for the company without considering the benefits of buying a piece of software.
"I won't pay for that." could be answered with "That's okay, it's free!"
Jetbrains isn't free, but the license explicitly binds the copy to your person, not your location or computer. I can have my private copy running at work and left open on my personal computer at home.
You won't pay for my IDE? That's okay, I already have a license.
I started using their free versions for non-commercial projects and have paid for commercial use.
It’s really worth trying JetBrains, even if you’re a vim/emacs devotee... I’d say I’m at least 10x productive in IntelliJ compared to other editors, for example, after coding Java for 20+ years. I’ve watched programmers I consider way above me in ability move so slowly compared to hopping around / refactoring / debugging in JBs.
I'm sure they have actually done the numbers and perhaps even determined they are making more money this way, but from an outside/ignorant perspective it sure feels nice for a company to not have some MBA pushing that profit curve for all its worth and delivering damn good value for money for once.
As a counter-example look at Sencha, who have long alienated developers using their ExtJS toolkit, and this has deepened since the takeover by Idera.
I think it's great for enterprise form-fill-in applications. It's a complete widget set for doing in the browser what GUI apps from 20 years ago had in Java (for example)
I have no interest whatsoever in writing web applications by using multiple components from multiple sources. I want to use a single toolkit. ExtJS satisfies my requirements. The tooling is awkward, but I've learned how to use it.
examples
"web desktop" https://docs.sencha.com/extjs/4.2.1/extjs-build/examples/des...
widget library (classic) https://docs.sencha.com/extjs/4.2.1/extjs-build/examples/bui...
Please shout (email in profile) if you need any help. Good luck!
This could have make Delphi far more popular than its now, I not cause a exodus of talent...
Also, IntelliJ runs on Java, for all the bashing that Java gets on HN, it’s an example of how “what technology you pick is less important than your focus on user experience”. It’s amazing that their products are so performant on Java
I hate to be that guy but 1) java does not go neck to neck with c++ unless you mean it can be in the same order of magnitude and 2) C++ is not slower than C or Go or Rust
Note: by c++ I mean c++ compiled by a decent compiler e.g. gcc/clang/msvc
I don't know why, but I got a good laugh from that statement. Those "kids" are all the same age or older than Java; PHP, Ruby, and Java were introduced within a few months of each other in 95 and Python dates back to 91.
I would seriously contest the speed of Java compared to modern PHP. The JIT puts PHP at near-C performance levels with competently written code. Which shouldn't be surprising if you realize PHP is largely a "wrapper" around C.
Vertx framework which is based on Java is at 8th position and PHP is 18th.
But the larger point is performance is only one aspect while considering which programming lang. or framework to use
From the page above The bottomline: PHP 8 is still slower than PHP 7.
This is a realistic comparison of running Magento on php7 vs php8.
In Java you will have to deal with an array with a million pointers to a million objects and in C++ you will deal with a sequential segment of memory that is a million times the size of your object - and mostly in your CPUs cache. That alone will be much, much faster.
But you can't do that in Java at all.
When you want, for example, an array of (float x, float y) “objects” in Java, you just keep them as two arrays (float[] x, float[] y) — and I guarantee it will use the same amount of memory and will have nearly the same speed as C++ (depends on what cache locality you need for a specific task, it might even be faster to have two separate arrays for some tasks).
So yeah, depending on the language, a slightly different implementation is more efficient, so one has to know its tools.
Also, as far as I know, when project Valhalla extension goes live, you will have an option to do packed structs the same way as C++ or C# does.
Edit: Oops, there was another reply about the same in the thread. I should remember to refresh the threads before answering in the morning.
And if you are doing something like nearest cluster mapping, or anything else where you process your data in linear order you are not going to get the optimized cache locality. Plus you can't read the file with mmap if your data is from there.
I would go further and say that if your job is analyzing terabytes of memory-mapped binary files, maybe C++ is not optimal either, and investing in specialized languages like Shakti/K would pay off quickly.
yet every time I try a Jetbrains IDE every action seems to take 10x the time to be processed than it takes in QtCreator
It's a total memory hog though.
It's got a few bells and whistles, although I can't think of a single one that wasn't stolen syntax and all from C# at least two years after the fact, except for the aforementioned modules. But 'var' is the only thing I can think of that's actually improved the Java experience since lambdas. They've committed to a six month rolling release cycle without actually having anything to put in the releases.
That said, Java devs think C# is slow, C# devs think Java is slow, and people who are neither think both are slow. It is no longer 1995 where bytecode is interpreted; the slowdown relative to C++ is 2.5x-3x for both. Any leftover 'slow' opinions are bordering on superstition at this point.
Java just moves a lot slower, and has a different philosophy for adding features, and the core team seems averse to introducing new forms. An example I ran into the other day is applying first-class functions in Java: in C#, this looks like
lambda(arg1, arg2)
while in Java it’s lambda.apply(arg1, arg2)
This is definitely more verbose and arguably uglier, but it hews closer to the object-oriented style because it’s visibly falling a method on an object. Of course this is happening in C# as well, but it’s hidden by syntactic sugar.It's hard to appreciate how addictive the sugar is if you never had it.
Frankly, language level auto properties -alone- would get rid of 25-33% of the pain I feel writing Java.
Of course, there is always Scala on the JVM Side; which gives you all sorts of sugar, but in some ways -too much-.
I've never used Scala but it seems to go much further in the syntactic sugar and semantic complexity direction, more akin to F# than C# (though with less elegant syntax, to my eye).
Also, auto-properties are binary compatible with computed properties, whereas public fields aren't, and you can use 'ref' on a public field whereas you can't make a ref to a property.
public int Foo { get; set; }
public int Bar;
Java has absolutely made important improvements, and there are even more impressive ones on the horizon. In particular you should look at Project Loom, which is Java’s answer to async/await. It’s not finished yet because the design is much more general and novel, and it avoids the “function color” problem that async/await has. It’s inspired in part by Erlang/BEAM’s green threading system.You might also look at the JDK flight recorder, which is an amazing feature that .NET doesn't have. The Java perspective is adding complexity to the runtime fiest instead of the language.
There have been many useful improvements between Java 8 (the lambda release) and Java 11, I haven't looked beyond 11 as I haven't worked in Java in over a year and that was the last version I wrote code with. I don't even consider var to be that useful of an improvement, the biggest pains of lack of type inference were solved in the Java 7 era with the diamond operator which eliminated the need to specify often times deep nested generic arguments on both sides. Now var was basically a bikeshed problem. Between 8 and 11, they improved Strings under the hood to move away from being backed by char arrays. This has huge implications on web services and data processing apps in reducing the memory foot print as most of them wrangle a large amount of json. Also they added an HttpClient to standard library somewhere between 8 and 11 greatly eliminating the need to depend on 3rd parties. They also added the FlightRecorder (although I haven't had a chance to personally use it yet) which improves the the instrumentation story. Not every release is going to have sexy language features but they do contain improvements with direct impact on production software- the String class compaction improvement is the best example, it is not sexy, I doubt it even had a thread on HN but in the real world it measurably improved the performance profile of a large category of applications for free. Release cycles are just numbers, most people in the real world are not keeping up with latest release and instead opting to upgrade to just the LTS releases which are on a much slower cadence of 3-4 year cycles.
The main issues people assume with Java are that it has slow runtime and it's verbose.
But the JVM is actually rather fast. Especially compared to JavaScript and Python, which aren't even compiled (and which I still agree with the "it's crap" hivemind). Anything that needs real performance you should be outsourcing to C/C++ FFI calls, and as long as you do that your Java app's performance should be OK. And a key cause of Java's big slowdown are checks e.g. for null-pointers and casts, which are much better than C++/Rust's approach of being unsafe-by-default.
Java is verbose, but JetBrain's awesome IDE single-handedly fixes this problem - writing POJOs and using long-named functions and classes is fast, and IntelliJ will hide excess boilerplate so that even reading code is easier. And if verbosity is still too much of an issue, there are JVM alternatives like Kotlin.
Nitpick: Rust is safer than Java by default. You can't ever dereference a null pointer (only raw pointers can be null, not references) or make a cast without dipping into unsafe code.
A billion dollars is a ludicrous sum of money. No one on the face of the earth deserves that level wealth.
If you ever seen an actual billion dollar product or even a product hundreds of millions of dollars (in cost, not revenue generation) it is always built by hundreds of people. Your physical two hands, strength and intelligence limits you to a lifetime gdp output of well less than 1 billion. Therefore whenever you see a billionaire, the billionaire achieved his wealth off the backs of others.
A more fair distribution of wealth for jetbrains is one where the wealth is more evenly distributed among everyone who works at the company. There is a term for this... it's called communism/socialism and it has a set of downsides but I don't want to walk to far down that road.
Suffice to say capitalism works, but it works because it's not fair. No billionaire ever deserves to be a billionaire because he simply does not have the physical or mental ability to produce that much wealth. It always must be taken from the hard work of others.
People are the same -- just another kind of resource, a black box that lets you make $5x. And the thing is, you deserve the $5x -- you took a system where nothing was being put to its best use, and now it is.
What I'm trying to say is I've worked on many projects that sucked because no one had the vision and hiring skills the IntelliJ people do, and if society could give someone a billion dollars to make every project work that well, it would be a good deal.
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.
The longer I work in tech the more I see VC money as poison to good products. Because VC funded startups are forced to grow fast or die a lot of good, profitable, user focused ideas are trashed because they won't lead to rapid enough expansion.
Virtually every VC startup I've worked closely with or learned about in detail is doing something nearly everyone would agree is unethical, and a fairly large amount are doing things that are down right illegal spared only by the fact that they aren't big enough to warrant prosecution or even investigation.
Perpetual lip service is always paid to the notion that "we're a user focused company". While the mental gymnastics performed to convince everyone onboard that this is the case are fun to watch, it tragic to see nearly all good projects slowly devolving into ways of tricking the users... and in most cases still losing money.
All of the private money companies with no plans of acquisition I've worked for are all amazingly sane by contrast, and create genuinely good products. They have to, because they need to make more money then they spend to survive and are fine if the happy place for that to happen is 30 employees.
In some cases, if that product is really amazing, they become companies like Jetbrains.
It seems generally correct, i.e. VC works because the alternative sucks.
Sure, it's possible. But having met a few founders, their lifestyle from taking VC money seems far preferable to the bootstrap approach. It's true that you have to grow, but if you have growth, then nothing else matters. And if you don't, then you're one of the most employable people in the entire world.
A shocking number of people, somehow, end up in insane amounts of debt by trying to start their own companies. And you're sort of forced to. An example: one of our family members had a lucrative pole barn business. (Apparently in the midwest, lots of people wanted pole barns built, or something.) But in order to pay his employees to go construct the pole barns, he needed loans, leveraged against the future income from the construction project.
Then 2008 hit. Poof! Contracts all went poof. And he was left holding the bag.
So, if you need employees, and you're bootstrapped, how exactly are you going to pay an engineer roughly $130k per year? (Remember, the fully-loaded cost of an employee is much higher than their salary.) Loans must be so quite tempting.
And sure, LLCs are designed to mitigate personal risk. But that implies you can find someone willing to risk loaning to you.
I'm not saying that VC is great, just that it fills a need.
It's true that if you're taking out loans to fund your bootstrapped company you could be left holding the bag. But it's also true that you can build an IT startup without taking a lot of big loans for capital expenditures. You only grow when you're making money, so it's a slower path, but for some businesses it may make more sense.
I think the idea is that step one isn't hiring a subordinate employee; it's having secure enough finances that you (or you and your co-founders) can work for yourself for a time.
Step two is actually working on the business, and step three is growing is revenues to the point where it can sustain you, four is growing them further to the point where they can support an employee, and five is actually hiring that employee and paying them $130k a year.
That's an excellent way to devolve into squabbling about who gets what. VC also protects against that: the money is for the company, and it's illegal to siphon it out of the company.
Unfortunately in practice your suggestion tends to become "You're working for yourself, alone." And sure, I love the idea of a one-person company. Lots of talented devs can sell, if they try. But lots of talented devs are also trying to get rich on the iOS app store; few do.
Because they had an idea with you and want to work together to make it happen? Or all kinds of other things like that?
And yeah, if you're going to do that, you're going to have to be careful make sure you're not the kind of people who will need adult supervision to avoid squabbling.
VC might have its uses, or provide some service, but that shouldn't be misunderstood to mean that it's essential or alternatives aren't worth considering.
The other thing to note is that one of the things VCs do is sell the VC paradigm, so they're going to try their hardest to make it seem like it's essential or at least the best product out there.
People cofound to get rich. Can your company offer that to your cofounder?
If you focus on that question, the rest falls into place. Unfortunately a lot of people don't want to focus on that question, because it's at the heart of why bootstrapping rarely works.
"Not needing adult supervision" indicates that you probably haven't done what you're saying. It's not a matter of supervision. It's managing expectations. You are legally required to lay out what you offer, in clear terms, and what you expect in return. That's the basis of a business arrangement.
So, we're going into business together. How will your company make me rich? Why should I work as hard as I possibly can to make the company succeed?
> People cofound to get rich. Can your company offer that to your cofounder?
I don't know. Why did Steve Jobs and Steve Wozniak start Apple together?
I feel like you're laboring under a very limited model of how and why companies are founded and how people behave.
You have to come up with a persuasive answer to "Why should I work as hard as I can on this company, rather than go work for Google?" That question is in fact so hard that it (possibly) almost killed YC in the crib, back in '08. No one wants to work for a startup when they can get paid far more and live an easier life.
What you're proposing, if I understand you correctly, is that someone works extremely hard, for no concrete gain other than perhaps intellectual curiosity. Sure, you can argue that the usual benefits apply: you're free to do as you please, and to self-manage. But that's not a very convincing argument in the face of $RIDICULOUS_SALARY at a bigco.
It's cliche to say "Don't hate the player, hate the game," but I believe it applies here. Neither of us chose to live in a capitalistic society. We were born into one. Why not make the optimal decisions, all else being equal?
That someone else created the model and you believe it doesn't mean it's true.
> You have to come up with a persuasive answer to "Why should I work as hard as I can on this company, rather than go work for Google?" That question is in fact so hard that it (possibly) almost killed YC in the crib, back in '08. No one wants to work for a startup when they can get paid far more and live an easier life.
Actually, I don't. Honestly, you seem kind of set in your thinking, and I don't think it's worth the effort to try to figure out how to persuade you out of your misconceptions. There are counterexamples even in this subthread that falsify your model. It's up to you to either be open to them or not.
Money isn't everything. For a lot of people, it isn't even a top 5 consideration.
I also agree founders want to get rich, I mean who doesn't? It's a nice fantasy. However if they don't have a deeper motivation to solve a problem for its own sake they will fail. If you're super smart and just want to get rich, the right move is to go into finance because you'll never cross the chasm of building something people actually want. Even the language you use to describe the premise indicates you don't really get what makes successful founders tick. Founders don't "work for a startup" and they don't need to be convinced—the whole point is these are people who have decided for one reason or another that they are passionate about building a company. You might think them fools because 25yo engineers are making $500k at FAANG and that is a high bar to clear for any startup (it is), but consider that all SWEs under 35 have never known a recession, and they may have come to believe that a programmer is inherently worth $500k even though this is just market rate given todays demand. If there is another dot-com style correction, a bunch of folks might find out real quick what the value of knowing how to make your own dollar is.
Rather than collateralized loans, a better financial instrument might have been factoring (selling the receivable outright, typically for 90-95¢ on the dollar), plus having a reasonable penalty clause in the contract.
This isn't a criticism. Hardly anyone outside of the fashion industry (that has long waits, like net-90, for payment after eventual delivery) or heavy industry (that has expensive equipment that can be amortized long-term) seems to know about factoring.
Caveat: I love Jetbrains, and am a happy subscriber.
However, as the parent commenter says, it's important to realise that Jetbrains has been lucky as well. Java dev tools suffered from poor performance and poor UX for the longest time.
Eclipse, despite its early promise (SWT and native widgets) has much 'rougher' UX compared to IDEA. But I remain surprised how much better even simply typing feels on IDEA, and how good the refactoring tools are. (The latest Eclipse has improved a lot in the refactoring dept, though.)
Java's combination of openness and poor dev tools definitely helped Jetbrains a lot and gave them a cachet in the marketplace that helped them as they expanded into other languages. That said, I've also used their Microsoft VS addins and those were very good too, but they likely would have made much less money if they were a Microsoft-only shop.
Any arguments for or against seem to imply either way is a one-sized fits all solution. It's not.
Why is it that this argument only seems to apply to software and not to all of the other kinds of businesses out there?
The major major thing that makes a startup successful in almost all cases is money. With enough wind even chickens can fly.
There are millions of brilliant people all over the world whose ideas we never see because they never had their opportunity or funding to bring their ideas to life.
Off topic: I'm not familiar with this turn of phrase, but as anyone who has ever chased after free range chickens as a child knows - chickens fly fine with no wind at all. The can only fly a short distance though.
This metaphor's impact is as strong as Lei Jun's famous saying, who is the CEO and founder of Xiaomi:
With enough wind even PIG can fly.
Maybe because software has a unique property: a practically zero marginal ("reproduction") cost. Hence software, and services that depend only on software are suitable for the rocket-fuel injection strategy VCs so heavily rely on.
Make no mistake - good software is damn expensive to create, but once it's ready for delivery, creating and selling additional copies (or serving more clients) costs practically nothing.
There was a good article on HN recently about 500 year old Japanese family owned businesses. Most hypergrowth software probably doesn't live five. Isn't it interesting that most of the software that actually has lived decades looks more like it's made by people like that rather than VC fuelled companies?
Nowadays, software is the new economic frontier and enjoys explosive growth. The land that software embarks into is still virgin, and it's comparatively easy to build a new software company. It's a growth market.
In such an environment, bootstrapped companies are generally at a disadvantage to VC started companies, as bootstrapped ones can focus on capturing the market before becoming profitable, while bootstrapped ones have to keep both in mind. So people turn to VCs.
This situation of explosive growth is kinda unique to software, and VCs aren't the only solution to the problem, but the dot com bubble has shown what happens when companies go public more early on in the process.
The article seems to be only about what the best way of selling your company is (whether or not you technically sell).
There isn't even anything in it about just running your own company indefinitely.
And the article does not mention "user" or "good software" once, staying only within an economical framework ("how to get rich") - which is literally the point of GP.
I have noticed that, to some people, "VC startup" is almost considered redundant. That is, if your company is not seeking outside investors, not seeking rapid growth, not seeking an "exit", then it isn't a real "startup". So, in addition to what you mention about user focus (or lack thereof), I feel that this hurts ambitious entrepreneurs by making them think the VC/outside investment/grow-or-die treadmill is the only way to get big and escape the "lifestyle business" stigma. Many of them likely could succeed, albeit more slowly, without the treadmill.
There are a lot of things I don't like about the tech culture in the bay area, and this everything-but-unicorns-is-trash attitude is close to the top of the list.
Isn't that the definition of a "startup"? If you're not seeking/expecting rapid growth, isn't it just a "small business". There's nothing wrong with that, not everything has to be a "startup".
(Wiktionary tells me "A new company or organization or business venture designed for rapid growth", but Merriam-Webster Collegiate 11th ed tells me "a fledgling business enterprise". Of course, the Merriam-Webster only recognizes "start-up" not "startup", so how much could they know?)
There's been a steady stream of bootstrapped companies providing legally and morally uncontroversial, high quality products to satisfied customers, and growing steadily until they become much bigger than "small businesses".
IMO there's something deranged about the need to operate on the basis of explosive growth from day zero. Not only does it create pointless stress and drama, but it isn't even a particularly reliable way to grow a business - never mind an uncontroversial one with satisfied customers.
Obviously you don't need to have or be pursuing VC money to be called a startup, but there is probably truth in the idea that startups are inherently unstable. You may not be growing exponentially, but you are spending down money in pursuit or definition of a stable business model that doesn't currently quite work yet, or a different way to exit that unstable phase.
If you have to live off your own revenues, it means you don't do any premature scaling... You have to focus on the needs of your customers to reach the next level. VC backed companies have to reach the VC exit goals which means they are forced to scale immediately even if things are broken.
Your business idea could work really well if you were given a few extra months or years to work on it, but with the VC fuse burning you can't wait.
VC's generally don't care about your passion, they care about maximizing returns over the shortest time period possible. If you don't do it their way, you will be forced to leave. I have been a member of a tech Vistage group and have seen over half of the VC backed CEO's forced out by their investors. It's really sad.
You can also get crushed by well-funded competitors who can innovate faster than you due to larger team sizes, salaries, etc.
Stupid example: Tesla. Toyota reverse engineered their car. Can't make a competing product. Not because it is impossible, but because it is not how the entire supply chain / development is set up. It'd take Toyota a major restructuring of the company to be able to compete.
That's the idea. It doesn't matter how much cash the other side throws at you, you're working where they can't go. Time and time again I see our company out-maneuvering our competitors with less money. Not because we got some super geniuses on the team (okay we got some smart people), but because we started from the ground up working in a spot where our competitor could not go. And so we have years of experience more than our competitor in the thing that our competitor needs to get better at.
https://insideevs.com/news/452441/norway-plugin-car-sales-oc...
I think Tesla's main contribution lies in the past, by being an early pioneer of EVs and pushing them in an environment where nobody considered EVs viable. This definitely deserves an entry in the history books. But competitors have waken up.
Musk wrote about this way back in the day (2006):
https://www.tesla.com/blog/secret-tesla-motors-master-plan-j...
> Almost any new technology initially has high unit cost before it can be optimized and this is no less true for electric cars. The strategy of Tesla is to enter at the high end of the market, where customers are prepared to pay a premium, and then drive down market as fast as possible to higher unit volume and lower prices with each successive model.
You might criticize their execution for failing to reach the mass-market sedan price-point fast enough (though I think that they have done an impressive job of starting a car company from scratch), but I don't think the "blind spot" claim really holds water.
https://electrek.co/2020/10/30/tesla-tsla-market-share-globa...
However they are not selling more EVs than everyone else in every market, which isn't a bad thing IMO. A smaller piece of a bigger pie is what they seem to be shooting for.
It's a good illustration of why software is such a different paradigm than traditional physical economies; VCs can pour funding into a software company and since the marginal costs are close to zero, the innovator can blitz-scale and take over the market before the incumbent has time to react. However when "scaling" means building global logistics infrastructure, including factories for batteries and factories for cars, it's a lot harder to get the drop on the incumbents.
I think the GP's comment is spot on though, if Tesla fails to win this race, they will still have been the driving force in bringing EV adoption forward by 5-10 years (perhaps more), which is an incredible achievement.
https://en.wikipedia.org/wiki/Disposable_household_and_per_c...
Part of that 'deduction' pays for heavy tax-breaks and subsidies for electric cars in Norway.
But then GDP is also an abhorrent metric to use for basically anything.
If you use either GDP or 'disposable income' as a proxy metric to compare anything between countries, you should seriously re-evaluate what you're doing.
> Surprisingly, disappointing results are seen from the two best-selling BEVs in Europe - Renault ZOE (119) and Tesla Model 3 (74).
I found this article [1] with sales figures for Europe. For H1 2020, it was 37k Renault Zoe, 32k Tesla Model 3, 18k VW e-Golf, then 4 in the 11-13k range, and 3 in the 7-8k range.
[1] https://europe.autonews.com/sales-segment/europes-no-1-selli...
So all the EU stat is saying is that Teslas are sold well in the niche of the market that's interested in buying EVs over more established brands. The Norway stat is more representative of what happens when 56% of all newly sold EU cars are purely electric.
https://cleantechnica.com/2020/12/03/norway-in-november-ev-m...
Just to drive the point home, new registrations of Tesla cars in Norway by month in the past 8 months: April: 44 May: 8 June: 568 July: 348 August: 33 September: 1439 October: 95 November: 326
No, Teslas did not suddenly become hugely more popular during September and then immediately lose a lot of their popularity in the month after. It's just that in September, a lot more cars were allocated to Norway, and so a lot of the people on the waiting list finally got theirs. During the other months, those cars went to other European countries.
Tesla is still ridiculously supply-limited compared to the amount of cars they could sell, if they only had the cars. Whether they succeed or not depends mostly on how fast they can scale their production.
3.2k Tesla model 3's sold in 2020, but it's only at #6, with #1 to #5 each selling more than that, like e.g. ID.3 with 4.4k vehicles.
Tesla had like 3-5 years head start on any competitor. Just like the iPhone had a few years head start with the iPod. They got into people's mind, built a brand, and by the time the iPhone came out, and by the time the iPhone became a beast everyone else was playing catch up.
Remember how blackberry was so desperate to make an app store, and it was an absolute heap of shit?
Well Apple basically created an ecosystem where engineers were running apple hardware with a decent development environment. By the time anyone else could compete a few years passed, apple was a clear market winner, and all competitors were just trying to not get decimated. Took android a while before it was a real good apple competitor, and still playing catch up in many ways.
Tesla is in the same boat. Eventually there will be better EVs for less money for specific needs. But Tesla will always be synonymous with EVs. First thing you think about. The thing you judge everything against. Not to fanboy Tesla. That company has many many problems.
Which is why VCs are evil and need to be crushed. Ironic, I know, posting this here
And if I have to work with VC's, then I will have a strong preference for working with VC partners who are former operators. The investor having substantial experience in the trenches (such as former founders) makes a massive difference in the productivity of the founder/investor working relationship.
A strong trend I've personally noticed with VC backed companies and something I'm highly wary of for our own company is the way it inevitably turns companies evil. I would highlight Google and Cloudflare as two examples, but the general trend seems to be that VC pressure inevitably forces you to hire 'better' people who invariably steer the company to being more focused on profit and power rather than on some intrinsic mission.
Actual mission focused companies like Mozilla only seem to succeed if they stay private and stay away from VC.
Venture capital has nothing to do with what’s happened since.
Re cloudflare, can you please help me understand what they’ve been doing that you see as evil?
Given how Mozilla constantly struggles to stay afloat (and effectively depends on the generosity of Google as the single revenue source), I don’t know that’s an example to point to, especially since they’ve had their own share of “user-hostile” steps (albeit fewer since it’s a smaller company).
Cloudflare is increasingly pushing their position as the world's biggest man-in-the-middle, and things like their new secure DNS are making the situation worse.
They've started taking opinionated stances and making deplatforming decisions instead of being neutral infrastructure and I think this is going to get a lot worse.
The former was unethical in the way it treated the workers (I mean independent contractors). The higher ups treated the app/company as a beautiful product that would save the world (or the yuppies at least), but rarely acknowledged the actual workers who made the cogs spin, and was more focused on Growth and branding than actually treating people well.
Something I always think about is the dark pattern they had in the app which would only ask you to rate/review on Yelp/app stores if you had given a 5 star rating to the job. They also hacked Yelp to show the Yelp option to people they determined were most likely to leave a good Yelp review. If you have a good product/service that you believe in, you shouldn't need to do this type of thing. Oh, and of course the company was not following the labor/insurance laws in the states where it worked and had several cease and desist orders they ignored.
The hardware startup had like 20% RMA rates because of components would fail over and over. They used VC money to subsidize the returns/repairs instead of fixing the problem. They would prefer to ship more crappy products instead of fewer good products. Not so much illegal (hard to be when selling electronics, yay regulations), but unethical in that they would ship so much garbage despite being "customer obsessed." They operated more like a software company than a hardware company. It's easy to remotely fix software, but hardware is a very different beast and that was something they didn't want to admit.
Compared to my current company, a 30 person electronics firm that has already been acquired and never did too much VC nonsense. We are profitable and sell a good product (1% RMA) that customers enjoy. Instead of "moving fast and breaking things" (a slogan I feel the first two companies embody), we work hard to get things just right before shipping the product so that we never get any returned merchandise but get lots of return customers.
I don't think the surprise is that they made a good product without VC, I think the surprise is that they made ten figures off the back of nothing but a good product
...which should tell us something about the industry
This thread is interesting because we're talking about success for different people. Success for the founder? The money? The employees? The answers are relative to the stakeholder we're talking about.
A no-financing company with a decent head count is probably in the top 1 percentile among peers. Chances are they're delivering real value.
A VC backed startup hiring a bunch of people is perfectly average. The top 1% for startups would probably be post-IPO/exit/very-late-stage.
So it seems perfectly normal to me a VC backed startup in most cases will look like a total trainwreck compared to a bootstrapped company of the same size.
The vast majority of bootstrapped companies die before they even had a chance to hire anybody. Unlikely you'd ever have to deal with them.
Perpetual lip service is always paid to the notion that "we're a user focused company". While the mental gymnastics performed to convince everyone onboard that this is the case are fun to watch, it tragic to see nearly all good projects slowly devolving into ways of tricking the users... and in most cases still losing money. <<<
As an anecdotal point of one, I can confirm that literally none of that is true for the startup I am working for, and we are doing quite well.
Of course, it probably helps that our founders have actual industry and startup experience, and are not pushover adult children like you might find on the Silicon Valley hbo show.
VC's are not there to add value to a business, they are there to suck all the value out of a business.
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.
Pretty 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.
1. Create a new editor/IDE that's actually better not just different. I think everyone has had shower thoughts about making a better IDE and many have tried and failed. Jetbrains succeeded.
2. Creating a useful abstraction. IntelliJ was a great Java IDE but what's truly impressive is how they've been able to repeat the formula for almost any language out there. Everything from Go to JavaScript has a great Jetbrains IDE. They seem to have somewhat solved the general problem, which is normally a folly but in this case the key to a multibillion dollar company.
So again, congratulations!
If they aren’t thinking of selling now in this silly market for that ridiculous valuation I admire how centered they are on things more important than money, such as building and owning your own ideas.
You’d assume surviving 10 years is guaranteed and a sale is almost certain. Whoever buys JetBrains (ms, Amazon, google, one of the three for certain) will pay through the nose.
https://blog.jetbrains.com/webstorm/2020/12/interview-with-r...
It sounds strange now but I suspect for most of history this was true of businesses large and small. I wonder when external funding became "the rule" for successful companies rather than the exception?
And probably historically it would be (even) more likely to be significantly self-funded as opposed to being all but unfunded and 'bootstrapping', that's my impression anyway.
Why is it impossible to believe that a company can start small, become profitable and grow without VC funding? This is how the vast majority of businesses become successful.
They only switched over to the SaaS model maybe five or six years ago, before that you'd buy one copy the application and then buy a newer version when you felt like it. Now you're basically buying a new copy every year no matter what, just like everything else.
There was a huge controversy when they switched and the backlash made them re-evaluate to this which I think is a fair license.
And I agree with you on the upgrades.
Another thing missing from the discussion is whether they are sharing equity (or profits) with their employees. That is also a hallmark of VC funded businesses and one that is often not present in bootstrapped companies. Generally all the economics are consumed by the owners.
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.
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
“Basically, we wrote all this so that making software would be a pleasant and creative process.”
JetBrains genuinely feels like a company run by people who love programming languages and love tooling. How many companies would actively fund a homotopy type theory group^[1]?
[1]: https://research.jetbrains.org/groups/group-for-dependent-ty...
I’ve been summarising issues lately:
- https://andyroberts-uk.medium.com/rubymine-code-insights-or-...
- https://medium.com/swlh/rubymine-more-distractions-part-2-24...
I would hate going to another developer’s computer trying to show them something and then realize the feature I was using was part of R# instead of Visual Studio. It was painful.
Now that I have left the C# world for Node, Python and AWS, VSCode with plug-ins are more than adequate.
JetBrains and Hashicorp are definitely two of my favorite companies in the Dev/Devops space.
If you work with a database you should try DataGrip. It is the best client I've ever used, for every single database I've tried it with (mostly Postgres, some SQLite and Redshift as well). Autocomplete just works, it will create schema diagrams for you that are accurate and useful, it's data export tools are obvious and fast. I pay for a license personally for use on side projects, and use it at work on a daily basis.
But I did come here to note that Jetbrains are as much billionaires (on paper) as the Theranos founders were when the press was fawning over Elizabeth Holmes as the youngest "self-made" billionaire. I'm not comparing the companies. Just there's a big difference between paper billionaire and hard asset billionaire.
I just hope they get strong client/server support at some point.
That, plus the fact their tools are really good and really help me mean that I'm very happy about this news.
VAT?
Has that changed it recent years? Does it feel more native? I just set up a new machine, maybe I'll give it a whirl.
No, it feels like a good app. Doesn't have to feel native, same way Photoshop or Vim doesn't have too, they just have to be good pro tools.
Of course native is better, but only if all other things are equal.
JetBrains has changed that idea and shows what an IDE is supposed to be. Featureful but they're actually helpful form the developer's point of view.
Back in college in 2002, I was taking a java for programmers class in college, and the teacher was using BlueJ. I had taken programming classes in C++, and had to use Visual Studio for that. I declined to use BlueJ, and decided to find something like Visual Studio. I looked at Netbeans and the predecessor of Eclipse, and eventually found out about Intellij IDEA. I was very happy and used it on a trial basis.
Whenever I've had to use program Java, I've always gravitated towards using Intellij IDEA. If I were programming Java full-time, I'd definitely buy a license for it.
Huge fan, have the all products subscription for years and use multiple of their IDE's simultanously and try to convince anyone who will listen why these are just better IDEs, which is why they should pay for it.
However, please please, bring back the old "local changes" view. It is a huge part of the workflow when coding. I don't know of a single person who thought it needed to be changed, but everyone i've discussed it with wishes it was returned to the previous style.
For the record, you can revert it (for now) by going to: Settings > Version Control > Commit > "Use non-modal commit interface"
I have support for VSCode and Sublime Text 3 as well of course, but they're not IDEs.
https://github.com/rbreaves/kinto/blob/master/windows/kinto....
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.
Thank god they don't do Adobe and make a single app cost $50/mo or some such stupid pricing.
I am a heavy user of CLion and enjoyed my education license while I was in engineering school, I will happily buy a personal license when it expires !
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.
They miss out on some features where you have to XCode, but this is Apple's fault.
Maybe they succeeded because they got things going a long time ago. I doubt they would succeed if they started only a couple of years ago. They would have been crushed by the VC-corporate complex.
I remember the first time I used IDEA (I think it was version 2.5), it was a truly magical experience. The little idea lamp popping up and almost reading your mind.
I was hooked, learned the refactors and most shortcuts and I could fly. They earned every cent.
From my understanding, it's mostly Intellij and GoLand, and some PyCharm. At least two of the three are languages that are every difficult to be productive in with Sublime or Vim alone.
I guess PyCharm allows you to stop thinking about whitespace? In seriousness, not trying to start another holy war.
I'm talking people on 40-50k salaries top.
Vim is only good for editing config files.
That said, I hate their nonsensical keybindings for (my) most common uses (looking at you function keys). I also wish their plugin API was more stable. A lot of great plugins seem to require a lot of maintenance work release to release.
This is Czech company as much as Luxsoft is Swiss or Telegram is from UAE.
Using JetBrains tools you potentially give Russia/FSB access to your source code and open yourself to a possibility of getting backdoor inserted into binaries during compilation.
Owners of the company are not dead.
I’m guessing it’s over concerns about Russian backdoors.
It's the only software I continue to pay as a subscription because they bring awesome software and they keep it coming.
I have an annual license for all its products, I actually use vim daily, but still keep Jetbrains, just in case.
Some people code in Vim and think they're ace but that's just so far behind no matter how you tweak it.
I still try to keep vim as close as possible as an open source alternative. Thankfully, a lot of editor features have been abstracted enough that the same software runs in vscode and terminal vim. e.g. ternjs for intelligent autocomplete in JavaScript, and the vim keybindings itself. Still, open source code intelligence isn't as good as the proprietary intelligence of jetbrains, so I bring vim inside jetbrains.
To be a serious competitor to rust/C++ compilation speeds matter.
Now I'm using Rider to work with Unreal and thus far, I'm not disappointed.
> For safety reasons, all claimants must hire a hour-harker to escort them on the mountain. The hour-harkers all agree on the importance of this.
P.S. I am currently shilling for Jetbrains Spaces to the leadership :D
I mean, I'm currently reading the book Sandworm. And it is known in the cybersecurity world that Russia coerces or intimidates companies and devs to work for them as spies.
edit: Looks like they're maybe not entirely transparent about that.
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.
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.