6 ms·
There is something nostalgic about these old Google documents. It reminds me of when search ads were on the right side. Google is famous for only supporting a
by singron 3y ago
There is something nostalgic about these old Google documents. It reminds me of when search ads were on the right side.
Google is famous for only supporting a few general languages. Initially it was just C++, Python, Java, and Javascript (browser only!), although a few more eventually trickled in. The language deviants kept writing "official" style guides and adding support to random infrastructure and libraries, hoping that one day the next major project might get written in OCaml. New Googlers often had a confusing moment after learning the restrictive language policy when they compiled their first program and blaze would print that it was generating protocol buffer bindings for Haskell (this would eventually be suppressed).
- tho3i55u4oi234 3y agoThis is not 'old'; nor 'obscure' (like OCaml/Smalltalk etc.) Google's monorepo has a large actively used lisp code-base (anecdote: it's one of the largest Borg jobs) inherited from their acquisition of ITA.
- danpalmer 3y agoOne of the largest Borg jobs? Really? This goes hard against my expectations, both based on my understanding of the software involved in flight search, and in terms of my knowledge of things that run on borg and how big they get. Feel free to reach out internally, I'd love to chat about it!
- p_l 3y agoI'd figure that it might be differently "distributed" in its resource requirements, given what I remember of ITA and post-acquisition talks at ELS. But it's pure speculation from an outsider.
- fire_lake 3y agoRemarkable to me that Google would spend so much on software engineers and then hobble them with blub languages. If they decided to push a niche but superior language then people would learn it (as they did with Go).
- bitwize 3y agoGoogle's main line of business back in the day involved crawling and indexing as much of the entire web as possible. When you're operating at that kind of scale, back in the 2000s-early 2010s your choices were C++, and pretty much nothing else. Garbage-collected languages introduced too much overhead. Keeping the number of languages small, and keeping them purpose-focused (C++ for the heavy stuff, Java/Python for web backends, JavaScript for UIs) helped unify coding standards and conventions within and across teams, reining in the chaos that would have ensued had Google allowed developers or teams to choose languages willy-nilly. These sorts of language restrictions are not a knock against the skill of Google engineers. A good programmer can be good in any language. Even C++. Even Java. Think of the midwit meme, with the simpleton at the left going "just write everything in C++ or Java", the midwit in the middle going "NOOOOOO! Lambda calculus/monads/Hindley-Milner type systems!" and the genius/Jedi monk at the right going "just write everything in C++ or Java". The appeal of Lisp when writing production code is to lazy, mediocre programmers who think Lisp's sexy features will extend the reach of what they can create. Which is true, to a certain extent, but a) not as much as they may think; and b) when you consider that Lisp programs are bloated and slow compared to the corresponding C++ programs, the juice just isn't worth the squeeze. Lisp peaked ~60 years ago. There are very sound technical reasons why it is obscure today.
- MaxBarraclough 3y ago> A good programmer can be good in any language Kinda. Language-specific expertise should not be downplayed. If you've spent a decade honing your craft writing C and assembly for exotic embedded platforms, you'll be a valuable asset for certain projects, but your experience won't translate to Scala or Haskell.
- lispm 3y agoPart of your expertise is not the language, but the application to embedded platforms.
- MaxBarraclough 3y ago
- matttproud 3y ago> There is something nostalgic about these old Google documents. They are a veritable throwback. Wow!
- hanwenn 3y agoHaskell is another oddball. It was for a hardware project that used the to-be-auctioned analog TV RF spectrum for a new WAN standard. It was canceled when it became clear the spectrum wasn´t going to be available. The Haskell rules then stuck around for another ~7 years before I deleted them as part of the cleanup for the Bazel release. They then promptly reemerged as one of the first language rules to be expressed in Bazel's newfangled Starlark language (then still called Skylark).
- snovymgodym 2y ago> Google is famous for only supporting a few general languages. Initially it was just C++, Python, Java, and Javascript I think most of the big companies are like this. It tracks my experience at least. At the scale that these companies operate at, it's a good thing. Even if you restrict language choice, you tend to end up with half a dozen or more languages in common use at your company, each of which you have to support with developer environments, CI/CD configurations, security & supply chain code vetting, etc.