Hacker News new | past | comments | ask | show | jobs | submit login
Jetbrains founders turn billionaires without VC help (bloomberg.com)
1245 points by OJFord 30 days ago | hide | past | favorite | 514 comments

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)

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.

> it's such a […] stable product

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.

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.


I also wish it was better at some things, but I still love it; what’s the alternative? Visual studio? Hahaha~~~~

And I remember how impressed I was many years ago when I first tried their Rubymine. So magical it made Ruby feel almost like a typed language! :)

> 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.

[1] https://github.com/psf/black

> 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.

1. https://www.jetbrains.com/help/rider/Sharing_Your_IDE_Settin...

> 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.

> Note I was being very precise in my wording

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...

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.

clion is honestly the only product I get excited about new releases.

This last one with partial compile, and specific debug loops, it is an awesome product!

How is the perf / mem usage in Rider vs VS w/ Resharper?

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'm gonna give the complex answer:

- 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.

From my experience it eats up more memory. My project i avg around 1.2 gb in VS. vs 2.5 in Rider. But the application is much more responsive.

Once you start opening multiple Solutions in Rider, Your total memory usage will get inverted, And Rider is still plenty snappy. :)

How are you measuring the memory usage of each?

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.

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.

I just bought a personal IDE licence a few days ago. JetBrains makes one of the best IDEs I've ever used, and I consider that 100€ well spent.

Agreed - JetBrains is one of those companies where their products speak for themselves, and I happily pay every year.

Absolutely money well spent.

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.

If you REALLY want to treat yourself, let me give you an address to send some bitcoin to!

And their pricing model is great. All products subscription stars $250 but after 2 years its only $150!

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.

I know it's mental. Their yearly cost pays for itself in productivity boost in like 1-2 days. It's such good value ...

One of the few tools I gladly pay for a yearly subscription even if I only get a few weeks use out of it.

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!

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.

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.

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.

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.

Moscow and St Petersberg... that is interesting. I'm a fan of their tools as well, but it is good to learn the Russian angle and take it into account.

The 'Russian angle'? What's this, other Russians have done things you dislike, so you pre judge these other Russians?

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.

Stop projecting american experience with racism towards other nations, please.

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.

JetBrains is a Czech company because the founders lived in Prague at the time (maybe they are still living there, no idea).

Most of the staff is Russian though which sort of makes it a Russian company I guess?

what are you insinuating hahaha

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 just want them to make a stand-alone git client - their 3 way merge for merge conflicts is second to none.

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!

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.

Absolutely! It's an amazing tool, but in my opinion the tight integration actually makes it harder to use at times.

Indeed. And it seems that it is quite separate already UI wise. So why not.

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.

JetBrains makes your machine sound like a jet with the CPU fan, that's for sure.

Java support has been much much better for the last year in vscode.

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.

Intellij Idea Community Edition is also open source, and lots of plugins are too

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 ;)

Sure there are some places to improve.

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)).


Code with me works really well. i was impressed.

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

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.


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.

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.

The freezes might be caused by IntelliJ's jvm running out of memory. Go to the help menu and then Memory Settings (it's not in the normal settings)

That’s their one thing...

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!

Agreed a more progressive indexing would be nice. A bit like a progressive jpeg.

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.

Shoutout for RubyMine, Goland and Pycharm - all excellent and reliable.

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.

fantastic application for education as well. The debugger has been a very full featured and useful tool for teaching.

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.

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.

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.

Listen to your users.

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.

Just out of interest, what other development-focused forums are there?

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)

> It is interesting that they initially offered subscription model without unexpirable license.

I wasn't even aware they ever did licenses that 'fully expire' but I'm glad they have their current model.

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.

I love their products though.

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.

You'll get bugfixes (all .Z releases in X.Y.Z scheme).

It went Buy_every_version_you_want -> Hard_license -> Outcry -> Current model.

> 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)

> 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.

> The Prague-based startup, whose programming language last year became Google’s preferred development tool for Android, is worth about $7 billion,

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?

Compared to other startups like AT&T, IBM etc, Jetbrains is a relatively new startup.

According to lord PG, Start up = Growth


I've seen this phenomenon elsewhere. To some circles, everything that is not a huge, public, IPO'd tech company is considered a "startup".

Jetbrains is one of the few tool vendors that do not have to aggressively market their way into our tech stacks. That alone is a key indication of how good and useful their products are. Great that this is rewarded. I really hope that they will stay this way and grow organically rather than with force.

(Long-term user/customer here. I am using IntelliJ since like version 2 (with some gaps).)

This is a great point. Every time a new tool comes out (Atom, VSCode, etc.) I find myself eventually going back to IntelliJ because 1) it just works 2) the customer service is great 3) reasonably priced and 4) it works _with everything_ and _on everything_.

And not to forget that their strongest competitors were Eclipse, backed by IBM, and NetBeans, backed by Sun Microsystems. To stand your ground against two enterprise backed open source alternatives as a startup without outside money is quite impressive.

Yes, it's sad but true; IBM ran eclipse into the ground over the last ten years and they gradually lost the mindshare they had 15-20 years ago when they were best in class and Intellij was a new kid on the block. That's on IBM. They completely mismanaged this project for a decade plus. They failed to keep up with a changing market and instead focused on irrelevant stuff not related to the core use case of, you know, developing stuff on the JVM. I was able to get away with using it doing Java until about 2016. Then I joined a bog standard Spring Boot + gradle project and it just couldn't do anything with it. I had no choice but to switch to Intellij.

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.

Agreed, they’re definitely a “stand on the strength of our products” company. IntelliJ IDEA is not just the best IDE I’ve ever used, it’s one of the best software products I’ve used, period.

Also, they’ve got a great open source license program! https://www.jetbrains.com/community/opensource/#support

Hopping on the IntelliJ love train. I've been using it for the last five years. It is the one piece of software I still get excited about. Heck they've even made fonts interesting.

I strongly believe their single user license was responsible for a lot of their success.

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.

Seconded. Love the fact that they don’t get petty about different machines etc.

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.

The thing that most impresses me about JetBrains' products, after the very real "This was made by developers" feel to them, and the excellent community interaction, and the regular and plentiful updates.. is the price. They don't price gouge their users. They could double their prices and still have plenty of sales (but I guess they'd probably lose a lot of personal licenses.)

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.

They worked out that every personal licensee is an advocate, if not an outright evangelist for their product.

Upvote 100x; I completely agree.

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.

is the EXTjs tookit any good?. I am in a project where I am forced to use EXTJS classic ( coming from React).

Probably want to stick to 4.2.1 GPL [1] (there are GPL versions on 5.x and 6.x but only minor point releases)

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.


"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!

[1] http://cdn.sencha.com/ext/gpl/ext-4.2.1-gpl.zip

My project is a frontend for a CRUD app which a huge database. I will definitely ask for help when I am at my wits end! Thank you !

My biggest gripe is that ExtJS doesn't html encode the replacements in the component templates. This is something that react got right from the start.

Exactly, that's how I started using JetBrains products, I was working in a shop where everyone used Eclipse, and one developer kept telling everyone that if they tried Intellij for 30 days they wouldn't go back. I think there was only one developer that tried it and then went back to Eclipse.

As a counter, I have gotten 3 100+ person dev shops to adopt it.

I wish the owners of Delphi go this route instead of whatever them do.

This could have make Delphi far more popular than its now, I not cause a exodus of talent...

.. and IntelliJ Ultimate has plugins that brings all the features of all of their IDEs(PHP, GO, Android, RUST, JS...) except CLion.

Does IntelliJ Ultimate include their C# functionality from Rider, as well? I used to use IntelliJ Ultimate, but I don't remember it including C# support.

I guess AppCode and Rider aren't included. As a Linux user I completely forgot they existed :).

No, you have to use Rider for that. That said Rider is fantastic and their Unity support is top notch. Going between Rider for game code and IntelliJ for the backend was a godsend when it happened. Makes my day to day workload manageable.

It’s rare these to read stories of software billionaires and think it’s well deserved. This is one of those rare cases.

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

Folks who still think that Java is a bad language either from the perspective of developer ergonomics or performance probably haven't programmed in it since the Java 4 days and still think of the language as the language of Enterprise Java Beans, Java Applets and hundreds of lines of XML. It is not that language anymore. Modern Java is blisteringly fast(and has been for a while) and almost the same level as C# in terms of developers ergonomics

Modern Java has nowhere near the developer ergonomics of C#, I can tell you that much. You are still manually writing tons of boilerplate, you still cannot express something as simple as List<int> (and the JSR for that is on its, what, 8th iteration? for a problem that existed since before C# existed?), there is no async/await in 2020 when even C++ has figured it out, the new module management system is a joke that solves zero problems and almost seems like it was only invented to modularize the JRE...

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.

I’m a huge fan of C# and how Microsoft has been improving .NET recently but as a C# fan I think you’re being a little unfair to Java. It has a slightly different perspective on language evolution than C#, in that they try to keep the language core smaller. I was overwhelmed by syntax when I first started programming C#, from all the different kinds of parameters (optional, named, ref, out, in) to all the different kinds of properties, to the actual difference between properties and fields. To this day I think it’s silly that certain tools and style guides will suggest you replace public fields with public auto-properties, when there is no difference in encapsulation in practice. In this sense C# is closer to the culture of C++, where the bar for adding features is quite low.

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.

> 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 think from an object-oriented design perspective that it's quite easy to overuse public field members and that a lot of getters and setters is generally a code smell. Nonetheless, properties are a very sharp tool and having them in the toolkit is wonderful.

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).

There have been many iterations of 'Java except it doesn't suck', but which all were extremely similar to Java - Xtend, Groovy, etc. So when Scala came onto the scene, even though it was a serious functional language and encouraged a very different style of programming than Java, it was seized on as a 'Java except it doesn't suck' language because it was much more different than previous ones and so felt more like a fresh start. The sentiment hasn't died yet, although Kotlin should at this point be treated as the official 'Java except it doesn't suck' language, since it's designed directly for it, is different enough, and has mainstream adoption.

Lombok fixes most of the getter/setter issues. It is also supported in IntelliJ

However bad the Java situation is, Lombok as a solution is worse. It uses unsupported and undocumented APIs of the compiler, it autogenerates code that is in some cases flat wrong (like the infamous enum @ToString), and it does this through a mechanism of the language specifically designed for pure metadata - code that compiles with annotations should not cease compiling without them. And, because of the way it does what it does, IDEs must have explicit Lombok support built into them. It is, effectively, a different language that's a superset of Java; at that point, you may as well actually use a superset of Java like Groovy, and then you don't have tools prone to breaking.

I’m not a huge fan of libraries that use attributes as a hook for code generation in C# either, though thankfully there’s less need for something like Lombok.

I am not saying Java's model of never adding important things is better or worse. I might now say it is worse, but that wasn't the point I was making - I was simply responding to a comment saying Java has added important things, when it hasn't.

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.

I realize there are differences between fields and auto-props when using certain other features, but from a design perspective, these are identical within an assembly:

  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.

Having primitive int as opposed just using Integer in the first place was the original sin of Java. I am perfectly fine with not proliferating that further, List<Integer> with autoboxing pretty much allows you to use primitives when working with List<Integer> and the workflow is seamless. await would definitely be nice, it's a shame Java doesn't have it. It's a bit weird to call the features they have added as "stolen from C#", these features have existed in other languages for decades- ML had type inference in the 70s, lambdas have been there since the 60s. They are not "C# features".

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.

Admittedly, Java suffers from the same issue as C#; those ergonomics come from a bad case of kitchen-sink-itis. In your own code it's fine, but it's a hassle going through 8 different paradigms in one legacy codebase.

These days, though, I feel like Java the language should die in favor of Kotlin (also invented by Jetbrains). I feel like with Kotlin you get all of the goodness of Java (and especially the JVM) without so much of the verbose "cruftiness" that is a result of Java the language being 25 years old (wow now I feel old!)

I haven't programmed in Java since around 6 - when Spring was just about to cement its dominance. The ergonomics then were bad too. It seems lots of quality-of-life features borrowed from other languages went into subsequent versions

TBF, Jetbrains IDEs do feel sluggish at least on macOS compared to the alternatives (like Xcode or VSCode) on my mid-2014 13" MBP. I don't know if the JVM has performance problems specific to macOS which would explain why big UI applications feel so laggy, or whether other systems with more recent CPUs simply have more reserves to hide the lower UI performance though (the latter is probably more likely).

Almost always when a JB IDE is being reported as sluggish the problem is you're running out of heap space. Go to Help | Change Memory Settings and give it some more, see if that helps.

As a counterpoint, for a project of decently large size on my 2019 MBP, IntelliJ is snappy and a delight to work with, while Xcode takes up 30 GB of space, takes minutes to boot up, and gives me syntax highlighting and autocompletion about as reliably as a broken clock tells time.

Xcode opens in seconds for me, and my projects are massive. Sure, it can be slow to do certain things, but its startup time is generally ahead of every Java-based IDE I have every used.

Android Studio (which I understand is a Jetbrains IDE) has always been laggy to be too. I suspect it's because I'm only using it for personal projects on older consumer machines (one Linux, one Windows) with ~16 gigs of RAM (which also has to fit an Android VM); the people who are having no issues are probably running on newer machines with a lot more resources.

JetBrains IDEs always takes ages to start and index my code (especially compared to Sublime), but the jump to def, symbol and other search features are fast after the initial index.

Performance got worse on Linux, too. A year ago, JavaDoc would be displayed instantly. Now I have to wait 5-8 seconds for the IDE to display information about a class / method. It may be a kernel related bug from what I have found on the net, but it seems strange that some operations are still fast, while others take several seconds (like opening a menu).

I have a MBP of about the same vintage, but I retired it from hard tasks a couple years ago. It is a 6 year old machine, we can't expect it to perform well.

That is actually a misconception. You may have this mental classification of Java as a slow language if you looked at its performance 20 years ago. Now it's actually really fast, it goes neck to neck with C++. Sure, Rust or Go or C (or definitely assembler) might be faster in some workloads, but Java is definitely very very fast nowadays. It uses a lot of memory because of the way Garbage Collection works, but it is fast. It's definitely faster than Python, Ruby, PHP and many other kids on the block...

> It's definitely faster than Python, Ruby, PHP and many other kids on the block...

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 know, I didn't say "kids" implying these languages were new, it was just a manner of speaking.

Yeah, I assumed as much. I doubt anyone is calling those languages "kids" at this point, even with PHP's reputation. I just found it funny to word it like that.

> it goes neck to neck with C++. Sure, Rust or Go or C

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

Yes, out of Rust, C, C++ and Go, the slow one is going to be the one with a GC.

Java is fast enough for most things, but try working with an array of a million objects in C++ vs Java and you will see the difference.

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.

I think in this case you’re holding the tool wrong.

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.

That would be a workaround, but it annoys me when you have to make a workaround for something that is available in the language it set out to replace.

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 agree that Java is not the best tool for things like analyzing mmap'ed data. Java replaces C++ by being better in some things, not all.

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.

You typically wouldn't use an array with a million objects in Java if you cared about performance though (for exactly that reason), you'd architect it some other way. Using SoA style when appropriate, for example.

Do you mean Structure of Arrays? Can you point to some resource to learn more about Java SoA? Quick google search didn't yield anything useful.

>It's definitely faster than Python, Ruby, PHP and many other kids on the block...

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

I think you've proved your second point by getting your first wrong. The benchmarks posted are for a stack including PHP, not PHP itself (and not the fastest stack with e.g. pgsql). Also, I don't think thosd benchmarks use php 8, which is the first version with the jit that the post above referred to.


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.

You may not know that Java has a JIT and a AOT if you want even a bit more perf for cold start. And they are really good.

> Now it's actually really fast, it goes neck to neck with C++.

yet every time I try a Jetbrains IDE every action seems to take 10x the time to be processed than it takes in QtCreator

Once it's finished indexing things it feels darn instant to me. What hardware do you use? Also which programming language? I've used IntelliJ with Java, Scala, Kotlin, Groovy, Markdown, and many file types and it's really snappy.

I have an i7 6900k and 64 GB of ram. Indexing on the project I work on takes something like 3 hours. But I'm not even talking about that - just the basic user interaction, opening a menu, switching tabs... It's notslow but it drags its feet a bit.

Absolutely agree. The amount of value that Jetbrains software provides far exceeds its price. Their existence is a net benefit to the whole software development field.

I used to share the "Java is bad" mindset, but now I realize Java (at least the JVM) is actually really good.

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.

> which are much better than C++/Rust's approach of being unsafe-by-default.

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.

Even though the specs says nothing about it, modern JavaScript is almost always JITted, i.e. V8 that powers Node and Chrome, the rest of the browser js engines

Rust's approach of being unsafe-by-default? That's kind of the exact opposite of Rust.

Back in the 90s Java was slower and used a load more memory. But the competition was C/C++ apps with native GUIs. Nowadays with the likes of Electron as competition Java apps are fast with low memory usage.

>It’s amazing that their products are so performant on Java

It's a total memory hog though.

And for those who weren't happy with Java, JetBrains also gave us Kotlin, which fixes many of Java's problems without overshooting into the FP space.

Going a bit off tangent here:

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.

Ever played a video game like X3 where you can set up robot space traders to haul for you? You can only make $x flying between ports, but now you can make $5x or $10x. It's not that you're stealing from the robots, you're just making use of a resource that can be put to profitable use.

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.

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.

1. https://youtrack.jetbrains.com/issue/JBR-2732

I don't think it's a coincidence that Jetbrains has created a beloved product without the help of VC money.

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.

I have seen this firsthand. I was a finance major fifteen years ago and for the last ten years I have run a completely bootstrapped agency.

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.

From first-hand experience, however, bootstrapped companies often don't have a ton of cash in the bank. They can quickly fail if there's an adverse event (COVID, for example).

You can also get crushed by well-funded competitors who can innovate faster than you due to larger team sizes, salaries, etc.

The best small companies operate in their direct competitor's blindspot.

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.

In real electric car markets, other brands than Tesla run the show. In Norway, one of the biggest western electric car markets, Tesla is way at the bottom of sales. Only 95 Teslas were sold in November, while single models of other manufacturers had multitudes of that number in sales.


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.

Tesla's monthly sales in any specific (non-US) market are completely meaningless, because total demand greatly exceeds supply, and supply is not evenly distributed. That is, there are months where individual European markets get thousands of Model 3's, and there are months where those same markets get a handful, if any. This means that both the "OMG Tesla sales grew 15005% in market X!" and "LOL Tesla only sold 3 cars in market X!" are completely meaningless non-news from which you cannot derive any information.

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.

Good point about the data being noisy, wasn't aware of that. If we take an entire year the core of my statement still holds, although more weakly. Tesla is a competitor, but not market leader. Other cars sell way better. Check the image at the bottom of this article: https://insideevs.com/news/452441/norway-plugin-car-sales-oc...

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.

Year to year changes seem to be significant. By this time last year, Tesla had sold ~14k Model 3s.

From the article you cite:

> 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...

If you look at the greater european statistics it's not a real electric car market any more, as most vehicles sold have ICE components (either hybrid or solely ICE). Norway is special because of their large market share of BEV cars. They make up 56% of new car sales in Norway while only 7.2% in all of the EU.

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.



That's the magic of first-mover advantage.

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.

One can perhaps think of this as Teslas blind spot. People living with California wages don’t necessarily see the difference in prices mattering that much.

This is not a blind spot, it's explicitly part of their company's long-term strategy; Musk's plan from the beginning was to start with a luxury-tier offering (Roadster), and gradually work their way down the price-points as they achieved greater economies of scale.

Musk wrote about this way back in the day (2006):


> 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.

Good point. So they simply were not able to ramp up faster than it took for the existing manufacturers to start catching up and leveraging their scale better.

Yep, it's a classic "new market entrant is racing to become the incumbent before the incumbent(s) can copy their innovations" situation.

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.

They seem to be ramping faster than anyone else.


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.

Also Musk's response during this pandemic has changed the tone around Tesla I think. Plus he has moved out of the bay area. I wonder how it will impact sales in the long run given California is their main market.

Norways GDP per capita is higher than Californias.

Disposable income seems like the more relevant number here, and in that California is higher ~(48k vs 38k USD, although numbers are a bit stale).


It's not more relevant, because disposable income ignores things Norwegians get 'free' (because it is already deducted).

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.

Teslas cost more (after those tax-breaks and subsidies) in Norway than in California. You're lacing the conversation with a lot of value judgements, but those aren't particularly relevant to the question of whether the people of California or Norway are more able to buy Teslas.

I don't have to re-evaluate anything. I just wanted to tell OP that Norway is a very rich country and not in any way poorer than California.

Maybe, but we went on a cruise to Norway last summer and every single time we were on the streets we saw at least a few Teslas. It was a game to see who could spot the most Teslas first.

> You can also get crushed by well-funded competitors who can innovate faster than you due to larger team sizes, salaries, etc.

Which is why VCs are evil and need to be crushed. Ironic, I know, posting this here

VCs are a slightly less evil version of PE IMO. Don't get me wrong, they're still evil. Anyone who makes money from money should really question their place in the world.

That's literally the biblical interpretation on this.

Usury laws in religion have different forms. Limiting doesn't mean no finance, it just prevents some of the crazy abuse we see now.

It depends on the type of company. Its hard to out-innovate some companies just by throwing more money.

My personal and vicarious experiences with VC's have been that they are very much a mixed bag, and choosing to work with them in general is a necessary evil depending on the type of company you want to build. For my future startup attempts, if I can help it I will not work with VC's.

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.

Care to tell us more about your experience with Vistage?

Very expensive. It's only worth it if you have over 50k a month in profit. At that level it is good for a year or two of training and then it gets repetitive.

> 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.

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.

Completely agree and I experienced much of that on my own journey. Customers would ask whether I'm interested in taking VC or if I wanted to keep it as a "lifestyle business" - not realizing that we were doing more than fine without requiring outside funding. After a while though it nags at you and makes you wonder whether you should take VC because doing so makes building a business formulaic. Bootstrapping a company can feel like you're in uncharted waters in comparison because a lot of articles assume you've taken or want to take VC. And they assume that you want to exit. I wish there were more publicly shared success stories of bootstrapped companies that didn't take funding because there are more of them out there than people realize. And taking things slower can help you validate use cases, flesh out the product and build the type of company that you want. I'm very happy that we never took VC.

> if your company is … not seeking rapid growth, … then it isn't a real "startup"

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?)

Just because it's the official definition of a start-up doesn't mean it's a good definition.

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.

I would distinguish between growth-at-all-costs and a scalable business. Both are startups, but VCs only invest in the former. Jetbrains is a good example of the latter.

Is this lifestyle business stigma a real thing? Or just something the VC lobby put out there? Personally I think anyone leading a business should deserve respect, as running one is hard.

It is, at least in the Valley amongst the get-rich-fast crowd, which is not a small portion of the people working here.

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.

It's certainly part of the culture but when you make 6-figures a month as a bootstrapped founder, those arrogant a-holes quickly quiet themselves. Most of the fellow bootstrapped founders I've met are pretty decent people and there are a lot of them. I found the old money east coast elite to be much more annoying and far less interesting.

Yes it's the business-y equivalent of calling one small-minded.

I think there are cases that are clearly "a new small business" vs "a startup". In between there is some fuzziness.

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.

> I don't think it's a coincidence that Jetbrains has created a beloved product without the help of VC money

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

Profitability isn't necessarily important to the strategy of a VC company. Everything is about the exit, and most exits are either acquisitions or IPOs. Neither type of exit mandates profitability, and both care capable of offloading to a greater fool.

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.

Google had limited VC investment - a 25m round before IPO. Arguably they turned evil much later so to me the link to “VC corruption” is more specious.

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).

I would argue that being a public company has the same pressure as being VC funded only much stronger.

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.

Google went public early and with a share structure that insulated the founders from any pressure from the stock market.

Venture capital has nothing to do with what’s happened since.

VC is like visiting sports clubs, finding the best candidates, and overdosing them on steroids. VC hopes the ones that survive will become profitable enough to pay for the ones that it killed.

>>> 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. <<<

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.

A company that makes it to a few dozen employees without much financing is already extremely successful. You're very unlikely to ever work for a poorly run company without financing - they can't hire.

Some SMB's that I have met over the years are great at pretending they don't have money when hiring but are very profitable. I think that fits the "bad company, no financing" and is worth mentioning.

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.

Success as a product company relative to others. I'm talking about simple selection bias.

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.

Yea, that's a really insightful take and I didn't take that into account when I was thinking about this earlier. Appreciate your take!

The more I work in VC backed companies, the more I realize:

VC's are not there to add value to a business, they are there to suck all the value out of a business.

Yes, but at least most VCs try to do it with an exit. Private Equity is far worse IMO

I will go further on VC funded companies. The Culture of Success is simple: If you are a founder, you have to be Perfect Fit, you have to design your idea around what VC's want to hear and this is working model. One of the reasons that I never work with or for startups. Founders are rarely competent to select the right people, in most cases they lack experience in HR or Product Design, etc. Bootstrapping is a detector for true products, you scale on a merit of real customer base not on some Valuable Idea for VC investment.

Yep. Most VC, if not all of them, demand quick return, and it's not always good for the products.

I'm curious, what are the illegal (and the highly unethical) ones doing? Dont need to name the companies, but what sort of activities are you seeing?

I can really relate to the parent comment. I have worked at two VC-funded startups, one which was an "uber of x" and the other is a IoT consumer electronics startup.

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 wonder if this shady/unethical behavior is more focused in consumer startups. In enterprise SaaS, for example, unethical behavior is a low-EV move because your customers will have standing to cancel their contracts or pursue you for damages. It's also harder to be shady under the scrutiny of 500 large recurring-revenue customers than 500,000 tiny ones.

pg wrote a rebuttal to this in 2008: http://paulgraham.com/prcmc.html

It seems generally correct, i.e. VC works because the alternative sucks.

I don't see the rebuttal.

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.

PG is a VC. He isn't a god of entrepreneurship.

Why is it that this argument only seems to apply to software and not to all of the other kinds of businesses out there?

Also as humans we are myopic and can only understand everything as a relation to us. His tweet (https://twitter.com/paulg/status/1129897694984646657) about how you don't need to be rich to run a startup invariably shows that as humans we are poor at judging almost anything out of our current circle of understanding.

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.

> With enough wind even chickens can fly.

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.

> With enough wind even chickens can fly.

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.

> Why is it that this argument only seems to apply to software?

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.

the distribution costs nothing but six months old software is still six months old software. Pushing half finished products on the entire world is another 'feature' hailed by people like PG. I thought we had all learned how great "move fast and break things" and "when it works you're shipping too late" is for us at this point.

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?

200 years ago, railway was the big thing. Everyone was interested in building railways, steam engines, etc. Companies sprung up, many people got rich. Nowadays, the railways are already built and transport many goods. Building new railways is extremely expensive now because we have lost the know how, workforce, have higher labour standards, bureaucracy etc. Nowadays we are mainly considering how to operate railway tracks instead of building new ones.

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.

Seems jet brains managed so there is an alternative that doesn’t suck?

That's a bit like saying "This person won the lottery, so therefore..."

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.

Yeah but all the successful VC funded startup stories are a form of survivorship bias too. The whole idea of venture capital is to fund many companies that will fail with the hope of finding the one unicorn that will make up for all the losses. A lottery just the same.

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.

> 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.

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.

> That's a bit like saying "This person won the lottery, so therefore..."

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.

Or, don't start a business with a loan. If you're gonna bootstrap (the "right" way) then step zero is have 12mo runway of your own capital and step one is start a business

$130k to pay a single employee for one year. I don't know about you, but it's extremely difficult for most people to save up that kind of runway.

> $130k to pay a single employee for one year. I don't know about you, but it's extremely difficult for most people to save up that kind of runway.

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.

Co-founders? Why are they co-founding? Profit sharing?

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.

I am a cofounder of a non-VC backed startup. We work together because (1) we're friends (2) like working together (3) have complimentary skillsets. We split the equity 50/50 and receive the same salary. We've been doing it several years and we've never had even a single conversation on the topic, we just assumed from the beginning it was an even split and that's how we went about it.

> Co-founders? Why are they co-founding? Profit sharing?

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.

Hmm. You're dodging the question: Why would a cofounder want to start a company with you? No handwaving.

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?

> Hmm. You're dodging the question: Why would a cofounder want to start a company with you? No handwaving.

> 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.

The model happens to be aligned with how and why people actually start companies. It's not my model.

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?

> The model happens to be aligned with how and why people actually start companies. It's not my model.

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.

Statistically you are right that big tech currently provides the best expected value for a programmer, but in practice people's decisions aren't based on a single criteria. A lot of people find working for Google soul crushing and would happily take a $100k job that gives them more control and impact versus trying to navigate the path to promotion and relevance in a sea of stillborn products at Google.

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.

> Why not make the optimal decisions, all else being equal?

Money isn't everything. For a lot of people, it isn't even a top 5 consideration.

They co-found to make money. It's just not as fast paced as the VC option but it's the same thing as any business. The founder thinks that with more than 1 person, each person would make more money than if only the founder worked.

Saving up money to start a business is just one of the many (many!) difficulties you will face when starting/running your own business.

What you’re saying is like “I have never won the lottery, so therefore it must be impossible...”

No one will loan to an LLC without a personal guarantee from the founder. LLCs protect against legal liability, not against financial liability for debt.

Have you entertained the idea that both could suck?

This is probably it. There are some companies that just can't be bootstrapped, the up-front cost is too high. There are some that would suffer from the high-growth demands of VC. If you've got a plan that starts with high-fixed costs that over time becomes low-fixed cost at scale, then VC is probably the best way to go. If you've identified low-hanging fruit to solve problems for people, bootstrapping makes the most sense.

Any arguments for or against seem to imply either way is a one-sized fits all solution. It's not.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact