4 ms·
I suspect there's an obscure system in Common Lisp or even one of its ancestors running something absolutely critical to the world as we know it.
by owl57 3y ago
I suspect there's an obscure system in Common Lisp or even one of its ancestors running something absolutely critical to the world as we know it.
- cmrdporcupine 3y agoYes, the backend for Google Flights, Orbitz, Kayak etc. That seems rather critical. While it's not clear to me how much of that backend is still in Common Lisp, when Google bought ITA Software it was primarily a Lisp shop and I understand that it largely stayed that way for at least a long time.
- owl57 3y ago> it's not clear to me how much of that backend is still in Common Lisp Yes, that's why "suspect" and "obscure": I thought that well-known system is already rewritten in Google's usual languages. Turns out it isn't publicly known (?), but plausible: Google isn't afraid to rewrite their software whenever they find legacy hard to maintain, I even heard of a project that got rewritten 5 times in ~10 years.
- bitwize 3y agoAt the time of the ITA acquisition, Google had a strict four-language policy: C++, Java, JavaScript, or Python. Nothing else was allowed. The ITA acquisition made them rethink that a little bit, as they noticed that all the smart people working on QPX, the kind of people Google wanted to keep more of around, really loved Lisp and had built something great in it. And then Go came on the scene and Dart and... well, so much for the four-language rule. QPX defied bitwize's Corollary to Greenspun's Tenth Rule: "Any sufficiently complicated Common Lisp or Scheme program will eventually be rewritten in C++, Java, or Python." (These days I would add JavaScript, TypeScript, and Rust.) It was still being maintained in Lisp as of the late 2010s and probably still is today. If Google ordered a Big Rewrite of QPX in another more marketable programming language, they risk losing the good people who worked on it to begin with. So... maybe next decade.
- fiddlerwoaroof 3y agoI think they tried to rewrite it in C++ and failed, so it’s still mostly in CL last I heard. I think they have an internally-maintained fork of sbcl and a core maintainer of sbcl on payroll.