
YC Software Startups: Value and Initial Programming Language Used - charliereese
https://charliereese.ca/article/top-50-y-combinator-tech-startups
======
johnny_reilly
Fascinating to see how heavily Ruby and Python feature. The things that
surprised me by their absence and near absence were languages I love: JS and
C#

That said, this is taking now well established startups that will have begun
their lives 5+ years ago in general. If I was picking a back end stack then
I'd probably hesitate before picking the .NET Framework. But these days I'd
easily pick .NET Core.

Likewise, I'd want a statically typed back end and 5 years ago I'd probably
have hesitated before using TypeScript and node together. Now I do it
regularly.

Would be super interesting to see the same chart in 5 years with companies
starting now.

~~~
brainless
I use Python by choice and the more there is growing need for Natural Language
Processing, Machine Learning, Data Mining, the more I can not leave Python.

I try Rust, Ruby and others on the side. But Python is just so heavily
fortified now that I constantly suggest startups who are going to build non-
trivial tech to select Python. Also the whole Linux, deployment, etc. space is
filled with Python.

Biology, Physics, Math folks also use more Python than any other language.

~~~
mellavora
what about R?

or Scala if you need bigger scale?

~~~
rubatuga
Yes let me just spin up my R web server.

~~~
NationalPark
Your web server isn't written in Python either, though.

------
pacificmint
The page doesn’t list the year the startups were founded. I wonder if you’d
see a good correlation to the founding year.

More startups on the list use Ruby than any other language, and it accounts
for over fifty percent of the valuation. It was very popular with startups
ten, twelve years ago, but may since have slipped?

On the other hand among younger companions es one might expect to see more Go,
Node and maybe Rust?

Still, an interesting analysis.

~~~
inopinatus
If you're talking about survivorship bias, I can well believe it.

Ruby is still popular with startups, and there's no falloff in Rails usage, if
the gem download graph is anything to go by.

~~~
Toutouxc
Rails download graph: [https://www.ruby-
toolbox.com/projects/rails](https://www.ruby-toolbox.com/projects/rails)

~~~
purple-again
This is excellent, thanks for sharing. Anyone know if something similar exists
for JS frameworks (React,Ember,Angular,Backbone, etc)? Would be great to see
their popularity over time.

I’m guessing maybe not having a single central repository like Gems will
prevent this data from being so easily accessible.

------
codesections
This serves as an interesting counterpoint to Paul Graham's Beating the
Averages[0] essay (which argues for using a powerful programming language as a
secret weapon to allow a startup to outperform its competitors).

Reading this list, I'm struck by just how _mainstream_ the languages are. I
don't have anything against Python or Ruby, but it'd be hard to describe
either as a secret weapon — indeed, about the only "secret weapon" languages
on that list are Lisp and Elixir, each of which shows up only once.

[0]: [http://www.paulgraham.com/avg.html](http://www.paulgraham.com/avg.html)

~~~
mumblemumble
He wrote that essay nearly 2 decades ago. It was a different world. At the
time, the only language with a truly comprehensive open source ecosystem was
perl, so, if you were going to work on anything else, there was a decent
chance you'd end up writing almost everything yourself. That puts you in a
spot where your secret weapon is the language itself.

Nowadays, I'd argue that the secret weapon is never the language itself.
Ruby's popularity was never about Ruby itself, it was about Rails. Python is,
IMO, an ugly hack of a language, but it's still the one I'm always pushing for
at work, because its unbelievably lush open source ecosystem means that
choosing Python means you'll end up having to do a lot fewer things yourself.
Java's was originally about cross-platform deployment, but, now that it's been
a decade or so since anyone was actually _that_ worried about interpreted
languages, I'd guess it's now more the fact that Java developers are cheap and
easy to hire.

I'm also honestly not super impressed by Graham's comments on programming
languages. Sure, Viaweb sold for a lot of money. But then it turned out that
it was an unmaintainable mess that needed to be rewritten. Graham has done a
good job of pitching the idea that this is because people can't understand the
obvious genius of Lisp, and I'll admit, as a Lisper, that that story once
beguiled me. But, now that I've been around the block a few times, I realize
that code that can only be maintained by its own author is never good code,
and that sale price is rarely a good proxy for quality ( _especially_ when the
purchaser is Yahoo!), and that sheer dumb luck plays a much larger part in
entrepeneurs' success than any business essayist cares to admit, least of all
the ones writing autobiographical essays.

~~~
pdonis
_> Viaweb sold for a lot of money. But then it turned out that it was an
unmaintainable mess that needed to be rewritten_

I think that's because the code after the sale had to meet different
requirements than the code before the sale.

Before the sale, the chief requirement, at least from what I gather from pg's
essays, was fast implementation of new features. That was the secret weapon,
and Lisp was a key enabler for it. The number of people touching the code was
very small, so having the code be understandable by others was not a high
priority.

After the sale, the chief requirement, I suspect, was maintainability while
running at scale. The before-the-sale period had already sufficiently explored
the feature space that fast implementation of new features was no longer a
requirement, so the advantages of Lisp were no longer crucial. But having code
that lots of people could understand and modify reliably _was_ crucial.

So the code had to be rewritten after the sale. That doesn't mean the code
before the sale was bad, just that it was tailored to different requirements.

~~~
mumblemumble
That's one way of looking at it. I tend to prefer the mountaineer's ethos when
thinking about goals for grinding out a new application: Getting to the top
doesn't count if you can't get safely back down again.

~~~
elcritch
It's a bit different with pre-sale/aquisition than mountaineering, with enough
money and therefore ability to hire talent it's not impossible to
refactor/split the project or even rewrite as needed once the business value
is established. Reddit did it, going from lisp to Python, as did Twitter with
microservices, Facebook rewriting a PHP VM, etc.

Startups in your analogy are more akin to: "get to the mountain top and
succeed and have the cash to hire a helicopter out of there, or you die (the
company)".

------
jamil7
Archive link:
[https://web.archive.org/web/20200826060913/https://charliere...](https://web.archive.org/web/20200826060913/https://charliereese.ca/article/top-50-y-combinator-
tech-startups)

Looks like HN brought it down.

~~~
m0zg
Clearly they should have used a higher performance programming language. :-)

~~~
AlchemistCamp
Nah, getting their MVP up quickly let them validate. Now they know it's worth
the effort to scale ;)

------
spullara
Just depends entirely on what you are doing. If you are ecommerce you can
basically stick to really slow languages forever as the request volume is so
small it should be a small fraction of your application. For consumer scale
you end up scaling with caching and eventually migrate or severely optimize -
like writing your own language runtime like FB. None of this accounts for all
the analytics they are doing which is mostly written in Java and C++.

~~~
donw
Even outside of e-commerce -- I would say anything on the web.

Run something like Ruby/Python for the majority of your web services, and
deploy Elixir/Go/Kotlin/C++/Swift whenever you hit a data-munching need that
Ruby/Python can't handle.

This doesn't fly if you're doing games, or augmented reality (AR), or mobile
apps, or embedded stuff... but the web is still a pretty big place to build.

------
gumby
Seems like age is a factor: ruby had its day and companies of that vintage
have been around long enough for some of them to be worth bucks. Python is
more perennial (over the lifetime of YC itself).

~~~
jamil7
In my annecdotal experience (could be completely wrong) Python and Django are
much more common for the same vintage of startups in Europe as when Ruby and
Rails were popular in the USA, I don't exactly know what drove it's adoption
here.

~~~
hboon
Maybe related: One of Django's creators, Simon Willison is British. I think he
worked at Guardian.

He's on HN too.

~~~
skavi
The creator of Ruby on Rails is Danish[0].

[0]:
[https://en.m.wikipedia.org/wiki/David_Heinemeier_Hansson](https://en.m.wikipedia.org/wiki/David_Heinemeier_Hansson)

~~~
hboon
I know. And DHH worked on Basecamp and they are US based.

------
malisper
Even though it says "initial back-end language(s)" it looks like the
information is often pulled from the startup's current career pages. Mixpanel
is listed as using Go as one of their initial back-end languages, even though
Mixpanel was founded in June 2009, several months before the first version of
Go was released.

~~~
charliereese
Thank you for pointing this out! Fixed and updated the article.

------
jedberg
This is a really good time to remember correlation does not equal causation.
:)

------
mumblemumble
I'm curious what's going on with the languages that seem to harm a company's
value. Adding PHP or Java to your stack appears, from these data, to be a
poison pill for company valuation.

It could just be a statistical fluke, given this sample size and all the
selection effects at play, but I still have to wonder.

------
iamsb
The only thing that stands out for me, not a single one of these startups use
Microsoft tech, even though DOT NET apparently is quite good to work with,
from what I hear.

~~~
donw
I think that this article[1] is still relevant. In short, if you go Microsoft,
you know you're locking yourself into an _expensive_ ecosystem, one with no
viable open-source escape hatch.

Moreover, you need to find developers that want to work on the .NET platform.
Most of those people work in banking or in large organizations, and are
unlikely to want to jump ship to a startup.

[1] [https://blog.jonathanoliver.com/why-i-left-dot-
net/](https://blog.jonathanoliver.com/why-i-left-dot-net/)

~~~
csmattryder
An article from 2014? You should know things have changed since then, with
.NET Core and the open-sourcing of most .NET tech (Roselyn, OmniSharp and the
.NET Core tooling).

No more lock-in with Windows Server, no more SQL Server. Bring your favourite
Linux distro and open-source RDBMS.

I left .NET for Ruby in 2013, and in the last two years, I've come sprinting
back to .NET Core. Microsoft is definitely hot again.

~~~
donw
Microsoft Research certainly does a lot of interesting stuff, but I think the
bigger point is inertia -- Microsoft doesn't have any in the startup space.

Ruby, and to a large extent Python, started from zero, and gained a ton of
traction during the whole Web 2.0 rumble.

Microsoft is starting from a negative perception amongst a lot of engineers,
and unless they can provide some sort of killer reason to use .NET
technologies -- one that doesn't lock you into their ecosystem -- then I don't
see them unseating the established players.

Swift and its descendants will be around as long as Apple is, same story for
Java and Android. Ruby/Python/Node will continue on in the Web space, with
Go/Rust/C++ duking it out for backend services.

This game changes should Microsoft blow a new market open, though, like Apple
and Google did with smartphones.

~~~
csmattryder
> Microsoft is starting from a negative perception amongst a lot of engineers,
> and unless they can provide some sort of killer reason to use .NET
> technologies

Yeah, as stated above, I _used_ to build on .NET back when WinForms was king.
ASP MVC wasn't fun to write, Rails was a blast.

If you haven't got C# experience, I can understand the apprehension.

History repeats itself and almost definitely MS will get it wrong again for
.NET, but right now, the money is good and the tech is interesting if you're
into web tech and C#.

~~~
nayaketo
> Winforms was king. MVC wasn't fun to write with

Having worked with both, I have exactly opposite feelings about the two
platforms. Except speed of development, I have absolutely nothing positive to
say about Webforms.

~~~
csmattryder
Ah no! While a standard thing to do for the web, WinForms let you do the
strangest stuff like mimicking OS X for a piece of Windows-only software.

My excuse is I was seventeen at the time... Back then, I was afraid of both
hard graft and human interface guidelines.

[https://mattryder.files.wordpress.com/2010/04/capture.png](https://mattryder.files.wordpress.com/2010/04/capture.png)

------
dudeinhawaii
There's a correlation but I don't think it's the one drawn from the article
(programming language). I think that you have to consider the background of
the person who would typically opt for these languages to start a new
business/project. This might inform you of their thinking and perhaps a
language like Java, where the developer is likely an Enterprise developer,
leads to more brittle thought and execution. "Move fast and break" vs
"thoughtful OOP and architecture" \-- It's possible to do that in both
languages but you'd rarely encounter a "move fast" Java developer while you'd
probably quickly encounter "move fast" Ruby developers.

That's perhaps down to experience having the effect of hardening oneself.
You've made the mistakes, you don't want to make them again, so you create
solutions that are more robust and by definition "better code" and "better
designed". Unfortunately, this can cause you take longer to get to market and
if you do have to pivot, can be a harder effort pivoting off of a larger,
purpose-built codebase.

------
hardwaregeek
Reddit was Lisp for a rather short time before being rewritten in Python.
Isn't the story that HN was written in Arc as a response to Reddit's Python
rewrite?

~~~
jedberg
HN was written in Arc because Paul liked Lisp and made Arc and wanted a real
project to try it. It really had nothing to do with reddit's switch to Python
(which as you correctly point out was in it's second year).

HN was more a response to PG wanting more moderation control over the content.

------
jacobwilliamroy
I bet there's at least one company on this list who says they use a flash
programming language because they're too embarrassed to tell the world they're
running autohotkey scripts over an excel spreadsheet.

~~~
ackbar03
no way, is that actually possible?

~~~
jacobwilliamroy
Excel is extremely well optimized and can easily handle GB size CSVs

~~~
mlnj
At a company I used to work for there were tales of an early admin guy
handling all of payroll, employee directory, and tonnes of admin task data for
multiple hundreds of employees in Excel. Guy was an Excel god.

It worked perfectly fine until it was move into a proper database with in
house built portals to handle the tasks.

~~~
davio
We used to have a prophecy that when the IT apocalypse hits, we'll be pushing
our shopping carts around like in Cormac McCarthy's The Road; moving from
company to company to fix the VLookups in their Excel spreadmarts

------
praveen9920
Ruby certainly seems to have advantage in terms of spinning up a basic working
product, which matters more than developing a well engineered solution.

~~~
donw
Why does using Ruby or Python preclude having a well-engineered solution?

~~~
inopinatus
Well, that's the best part; in a very wide gamut of cases, they don't, and
since both play nice with compiled languages a scaling up can benefit from
both worlds.

~~~
donw
I would argue that "engineering" and "scale" are different concerns.

Engineering is about building and maintaining things fit for their purpose.

A bridge that only needs to last for one year is designed very differently
than a bridge intended to be used for twenty years.

In the case of software, that means (a) building what your users and business
need; (b) designing software that is easy to change; and (c) delivering enough
scale to meet your expected needs for the current business cycle.

For a new startup, you can probably get by with a Rails app on a single
Digital Ocean droplet, with plans to scale horizontally. For an established
business, you might have a large data warehousing operation running custom C++
code across multiple datacenters, of which the web frontend is a tiny (but
important) part.

Good software engineering makes the steps between "New Startup" and
"Established Business" as painless as possible, with a minimum of additional
overhead.

~~~
tluyben2
> A bridge that only needs to last for one year is designed very differently
> than a bridge intended to be used for twenty years.

Yes, but in software, the usual case ends up that the 1 year bridge actually
has to become an interstellar spaceship and has to last basically forever.

This happens in other disciplines as well but I have not seen it as extreme as
many software projects I saw.

------
bhouston
Start up year likely correlates. But also it would be nice to know how many
startups failed and what languages they used?

Did using Node.JS or Typescript correlate with business failure or is it just
more recent?

I'm also particularly interested if trying to use Kubernetes correlates with
failure. Kubernetes, for all its good, is a rats nest of complexity.

------
ChicagoDave
So the use of C# dooms my startup? I feel really out of touch having never
used python or ruby.

~~~
inapis
I don't think language has got anything to do with it. It's more about the
instincts. I'm purely talking in terms of probabilities but the odds of a C#
programmer coming with an enterprise background are high. As such they bring
certain instincts with them which are very useful in enterprise but not useful
at all in startups. At worst, those instincts might do more damage than good.

So it's more of background/instincts things than language. C# technically has
nothing which makes it a bad choice for startups.

------
mlkmt
Some of these are wrong: Rappi used PHP exclusively for it's first year, for
instance

~~~
charliereese
If you can send me a source for that (on Twitter @charlieinthe6), I'm happy to
make that change!

~~~
nomacrospls
Can we also submit it via HN? If so, my understanding is that Pagerduty is
running and long-term invested in Elixir
([https://www.pagerduty.com/blog/elixir-at-
pagerduty/](https://www.pagerduty.com/blog/elixir-at-pagerduty/)) and Podium
has migrated from Ruby to Elixir as the main stack
([https://medium.com/podium-engineering/two-years-of-elixir-
at...](https://medium.com/podium-engineering/two-years-of-elixir-at-podium-
thoughts-9f30defedb7d)). Thanks!

Edit: oops, I see now it is the _initial_ language. Indeed PagerDuty started
using Elixir only later on. Although one could argue Elixir was part of Podium
in its initial growth.

~~~
charliereese
Exactly - trying to capture what language they started with.

It was by no means a perfect science - was a lot of digging around on the
internet for the oldest reference I could find!

------
zelly
This is a lagging indicator. If you did this in 2010, the top companies would
all be PHP.

~~~
abop
The biggest example of this I can think of is Facebook

------
mLuby
I'd be more interested in _failed_ startups vs programming language.

~~~
plesiv
Exactly.

Successful startups are analogous to surprising research results in academia,
in the sense that we have much more information on them and therefore we can
draw better conclusions about these entrepreneurial/academic successes.

Today, every good scientist is aware that having plentiful information on
unsurprising research is almost as equally important, for many obvious and
non-obvious reasons. This has resulted in journals created exclusively for
publishing unsurprising research. [1]

If the most rigorous among us w/r to taking care of our collective body of
knowledge are only starting to do it seriously, we can have hope that the
industry might ramp up its capacities in this regard at some point - I
wouldn't hold my breath that's it's going to happen soon though.

[1]:
[https://news.ycombinator.com/item?id=24229269](https://news.ycombinator.com/item?id=24229269)

------
1ba9115454
I know a little about Coinbase. The CEO did the initial MVC with ruby on
rails. He was somewhat technical so it was a natural choice.

Then they moved forward with ruby for the whole platform, maybe as that's what
he understood and what was the alternative back in the day.

However for any of these businesses the language of choice if starting today
for me would be rust.

I really feel you get a much more maintainable codebase than a ruby project,

~~~
btmcnellis
Rust is a great language, but how do you scale a Rust team? It’s a hard
language to learn without a ton of developers out there. I suppose you could
hire C/C++ devs, but if you’re just making a fairly standard SAAS Web app, it
might be hard to pull those people over. Rust feels like overkill for your
typical Web service to me.

~~~
1ba9115454
There's a tradeoff, a high inital cognitive load for people learning the
language vs the long term pay off of less bugs in production.

There are plenty of people who have spent time learning rust but haven't had a
chance to use it on a production project. I would start looking there.

~~~
erikbye
> vs the long term pay off of less bugs in production.

It has not been proved large, long-lived Rust projects have fewer bugs than
large, long-lived Python/Ruby projects.

------
swyx
i've always wondered why the Whatsapp acquisition didn't spawn a bunch of
startups using Elixir, since a lot of noise was made about how Elixir helped
Whatsapp scale with so few people. isnt that how tech cargo culting starts?

~~~
ergl
WhatsApp used Erlang, not Elixir. There was an uptick in popularity (at least
here on HN) after the acquisition. Elixir wasn't as popular in 2014 as it is
today, but it was starting to grow.

------
ezekiel68
Interesting that all of them which have "Y" for category "LowLv" incorporated
one or more of c++, go, or rust[0]. Many which have "Y" for "DataSci"
similarly use strongly typed/compiled languages (including Java). However, for
general ecommerce / service-oriented offerings, there can be no dispute, given
this list, whether ruby or python by themselves are up to the task.

[0] Dropbox is listed as python only, but it is well known (and documented)
they have re-written key elements of their back end in rust.
[https://dropbox.tech/infrastructure/rewriting-the-heart-
of-o...](https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-
engine)

------
dstick
The title seems to insinuate there’s a correlation between a startup’s value
and dev language. While I think our “inner geek“ all likes to think so - is
that really the case?

~~~
cryptica
There is no correlation. Success is 100% business connections. Even if the CTO
was terrible, it wouldn't matter because the most talented devs would be
applying to work for this hot new startup and would be able to work around all
of the CTO's silly constraints. I have seen this over and over in my career.

The CTO imposes pointless arbitrary rules, tools and languages and then
talented developers figure out a way to deliver value within those arbitrary
constraints. Developers will use whatever language their boss tells them, then
later when the project succeeds, they will praise that language, those tools
and their bosses.

People will always praise the leaders of a successful company, no matter how
incompetent they are.

People who succeed always think that it was because of good decision making
across the board. They don't admit to themselves that the only decisions that
actually matter are who the CEO is and who their friends are. Our system is
crony-capitalism, no doubt about it. Nothing to do with value creation; the
evidence is everywhere.

Any good developer who analyzes cryptocurrency projects, for example, will
realize that there is no correlation between quality (or scalability) of the
technology and ranking/market cap of the project. The top, most valuable
project is Bitcoin and consumes the same amount of electricity as the nation
of Ireland to process a measly 4 transactions per second. Anyone who thinks
that Bitcoin is the most valuable project due to technical merit is an idiot.
It's 100% network effects.

I can say from experience across different tech industries that the current
market selection process works the same way across the entire tech sector, not
just cryptocurrency.

Every time a project succeeds, the people who built it will try to claim
credit for that success. The people who are actually responsible for that
success (through their personal connections) will happily let the technical
people claim the credit because it diverts attention away from the much more
cynical and unjust reality.

Any attempt to insinuate that success has anything to do with choice of tech
is either misguided or deeply corrupt as the dogma harms real people (who will
be forced to use tools they don't like) and causes real loss in productivity.

~~~
dyeje
No correlation is a bold claim. It seems obvious that a web based startup
built using Rails is far more likely to succeed than one using bash scripts,
if all else is roughly equal.

------
johnisgood
Is there a list of what they have changed their programming language to?
Like... Reddit indeed used to have their initial implementation in Lisp, but
it is now Python.

------
onion2k
The fact that JS barely makes the list indicates to me that YC companies tend
to have entirely separate frontend and backend codebases. That either
indicates separate teams of frontend and backend developers, which I think is
unlikely in a young company, or that there's an expectation that developers in
early YC companies are expected to use (at least) two languages. Something to
think about if you're starting out as a dev and thinking of looking for a role
in a YC startup.

~~~
pcr910303
Two devs, each frontend and backend will work out pretty well even in a super-
small startup I guess?

~~~
capableweb
Depends entirely on the dynamic of the two people since backend and frontend
has to work well together. When you're in a early startup, you want everyone
to be on the same page, so you want people to collaborate closely. If they are
people who like to work in silos without talking with each other, you'll have
bunch of impedance mismatches at that stage. So you'll want a close team early
on and if you can find someone who is good with both frontend and backend and
could build it as one person, that'll be better for the early stages. Or two
people who can collaborate closely.

------
aggieben
This would be more interesting if YC didn't have a strong inherent bias toward
these particular languages. In other words: these are the results because this
is what YC picks and filters for, not because of any inherent meaningfulness
about choosing these languages, or qualities of the languages.

~~~
dustingetz
It's true that investors filter for easy to see signals, so therefore it is
also likely true that 130 IQ startups get funded but 140 IQ startups are not
recognized (or even outright ostracized), but this is the same for customers,
executives, and humans generally. So it's not clear that this could be any
other way. In this way humanity is a tragedy. Look around. Everything is mush.

