Hacker News new | ask | show | jobs
by nostrademons 3786 days ago
The "2-4 official languages" dictum is usually put in place after the company churns through those 2-4 languages in the first 2-4 years of its existence. Basically everybody realizes how costly it is and says "no more". At least that's how it was at Google, which is perhaps the most famous example of the "We have 4 official languages, and you're not introducing a new one" policy.

I've worked in startups that tried to implement the "1-2 languages only" (usually Java and Jython/JRuby/Groovy) policy as a startup, and they didn't go anywhere. That team of prima donnas who is willing to mortgage the startup's future in order to ship an awesome product seems to be a necessary feature of startup success, and only successful startups get to hire the team of professionals who will button down everything, choose "official" languages, and build tier-1 infrastructure. So yes, it's incredibly unfortunate, but this is the industry we live in. Pick which role you wish to occupy accordingly.

1 comments

> Google, which is perhaps the most famous example of the "We have 4 official languages, and you're not introducing a new one" policy

I believe those 4 languages were Java, C++, Javascript, and Python. Nowadays they also use Go, Dart, Groovy (in Android Studio), and I guess a lot more. (When I say Groovy, I mean the tiny non-Turing Complete subset of the syntax used as a DSL in typical Gradle build scripts.)

It's technically C++, Java, Python, and Go. There's always been an exception for client-side code (which encompasses Javascript on the web and Objective-C for iOS apps), and for DSLs (which includes Sawzall, Protobufs, Bazel, Gradle, and several that I don't believe are public. Haskell was also used as a DSL by one team, though their product unfortunately got canceled).