Ask YC: Do unpopular languages affect acquisition?
I read somewhere that when choosing a language for your start-up you should pick the most powerful language available (e.g. why Viaweb picked lisp). This sounds obvious, but I can't help but feel like if you build a great product using unpopular language X and your competitor builds a slightly (or even significantly) worse product with popular language Y, then a buyer would prefer your competitor's product for the reasons large companies prefer popular languages in the first place. Has this ever actually been a problem for somebody?
45 comments
[ 7.0 ms ] story [ 107 ms ] threadAt Scriptics we did everything in Tcl and still got bought.
Good read from 2000-era
"This white paper discusses the approach used to convert the Hotmail web server farm from UNIX to Windows 2000"
"Hotmail has grown from 9 million accounts when it was acquired by Microsoft, to 100 million in July 2000, without significant changes in the hardware or software architecture"
"The most challenging, and anticipated, problem with converting from CGI to ISAPI derives from the forgiving nature of the CGI..."
[PDF] http://tonnerre.users.bsdprojects.net/doc/facts/microsoft/Ho...
It'd depend on the product, I think. A half million line codebase would cost millions to translate, while 40k lines would cost a max of tens of thousands (assuming languages of similar capabilities--like Ruby-Python-Perl). But, a half million lines of code isn't going to go for $1.5M except in a fire sale.
But, I reckon this has some bearing on folks building on Google App Engine. That's a bigger form of lock-in than most, and since the apps being built there will be quite small for the foreseeable future, it makes the barrier to exit much higher for folks who might have been willing to sell for $1.5M but could only get an offer of 1M from GOOG or 800k from somebody else (because they would then have to port the application, even if they don't mind it being in Python).
So, I obviously buy your reasoning once you get down into the single digit millions (or sub-million) acquisition prices, and I also buy your reasoning that those kinds of acquisitions are becoming a lot more common.
Did Interwoven actually end up doing anything with Scriptics/Tcl?
Whatever language gets you the best product (and hence the most users) is the best language.
"Once you've got a lead in terms of a subscriber base, that is unassailable ... it would've been easy to pick 15 [Microsoft] guys from 16,000 and build this product. But I knew we had that momentum behind us and that is very hard to replicate."
-- Sabeer Bhatia (hotmail), in Founders at Work
"Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language" said Peter Norvig, director of search quality at Google, Inc
"Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers" said Cuong Do, Software Architect, YouTube
http://www.python.org/about/quotes/
If you have a zillion users or a key feature Google wants, I have a hard time believing Python is going to be a major issue.
More surprising (if this sort of thing surprises you) is Writely, which was in C#/.NET.
Also, as more and more web-based platforms are going to cloud computing architectures, ability to slide into a LAMP environment would reduce cost and make integration much easier (MHO only).
I'm sure that much of this depends on the size of the company doing the acquisition. Google or Amazon probably have more overall resources and ability to deal with oddball platforms than a much smaller company, ex: if LinkedIn were to buy another social networking site based on .NET.
Bottom line, everything matters. Language, office location, user base, founders, team, etc. However different things matter differently in each situation, so it's difficult to structure yourself for easy acquisition once you get much beyond the "3 founders in the basement" stage. So, work on building a strong company that can stand and scale on its own. Make smart decisions to the extent you can, and hope for the best.
While I don't think language is a big thing to overcome, do realize that you will have to be just that little bit better if you've chosen an unpopular language.
How do you switch? And, more importantly, can you do it in a granular manner?
From Spolsky:
"First, there are architectural problems. The code is not factored correctly. The networking code is popping up its own dialog boxes from the middle of nowhere; this should have been handled in the UI code. These problems can be solved, one at a time, by carefully moving code, refactoring, changing interfaces. They can be done by one programmer working carefully and checking in his changes all at once, so that nobody else is disrupted. Even fairly major architectural changes can be done without throwing away the code. On the Juno project we spent several months rearchitecting at one point: just moving things around, cleaning them up, creating base classes that made sense, and creating sharp interfaces between the modules. But we did it carefully, with our existing code base, and we didn't introduce new bugs or throw away working code."
Think about your system as a series of pieces and keep the as (appropriately) decoupled as you can. Then, when you find a technical/business/legal bottleneck that is tied to a language issue, you can swap out that piece and keep moving.
I love being able to confidently say:
"Well, our integration point is always through the db, so if the mixer needs to be faster or rewritten in C++ we can do that. If retrieval needs to be pulled out onto another machine, we can do that. If you need it rewritten in Python, here are the five big pieces, and each one can be moved over independently."
In my experience, those who were concerned with what language something was written in were also concerned about a lot of other details instead of the real issues. Exercise caution with such people.
Even still, they bought Hotmail, who was using FreeBSD.
Plus, Sun isn't really a big dog in the acquisition game.
"Sun isn't really a big dog in the startup acquisition game."
MySQL wasn't a startup.
http://en.wikipedia.org/wiki/Sun_Microsystems#Acquisitions
1) Hardware
2) Giant
3) Enterprisey
None of which are very applicable to the original question, which is about web software startups.
You must have read a different question than I did. The original post mentions "startups", not "web software startups". Many News.YC readers are building things that Sun would find interesting, so I think Sun's acquisition history is relevant to our interests here at News.YC.
DTrace continues to blow my mind.
So if you made it to sell it, you might wonna avoid really unpopular languages.
Ruby compared to PHP have a lot smaller user community, but nowadays, one would never call Ruby unpopular.
So there is a different between unpopular lisp and unpopular Ruby
Lisp is not just unpopular, it's also really different from anything else, so harder to get in to.
That clearly wouldn't apply to something like YouTube, but I wouldn't be surprised if even Google's logic is sometimes similar when acquiring small companies. Look for the product that's easiest to integrate and use their marketing muscle to push it to number one.
If Google acquired something better, like Vimeo (even long before youtube became so popular), I doubt even their marketing muscle would have been able to push it to the market leader.
The reason most large companies acquire smaller ones is because of two things: the userbase, or the talent that developed the app. As far as your example with fantasy sports-- there must have been something else of value in the acquisition.
The app itself is easy to create. No one buys code.
I'm not saying you should base your site's design on that, as you probably shouldn't even be thinking about an acquisition from the outset. I'm just saying it happens.
But isn't it different for acquisitions done to integrate with an existing platform or are T&T (talent and technology) exits? Call them the "let's see if this works" offer. Yeah, I know, not the investor's desired scenario, but not so bad for founders, especially bootstrappers.
There seem to be a lot more of those deals out there which would be attractive for young entrepreneurs. And frankly, it might make sense based on that to try to use popular technology in clever ways.
Honestly, it's not that exciting to discuss. But if you don't have explosive growth, well, it's something you think about.
* Relying on a nonstandard runtime environment to run an xp codebase on Unix and Windows.
* Using Tcl anywhere in our product.
* Shipping an appliance on BSD Unix instead of Linux.
My markets tend to be different from YC markets. For a web app, your stack may not make much of a difference. Or it might. I don't have data points on people not caring that you're using Araneida to deliver a web app; in every bizdev situation I've been in, the technology stack has been a topic of discussion.