7 ms·
Waits for the inevitable "we're switching from Lisp to Python" announcement...
by Oxryly 16y ago
Waits for the inevitable "we're switching from Lisp to Python" announcement...
- ivenkys 16y agoMore likely to be a combination of Python, C and/or Java. ITA uses a lot of C and Java as well.
- mkramlich 16y agothat mix would fit well at Google
- jrockway 16y agoI've heard that the Python folks already drove most of the Lisp folks out. Lisp is only used for a very small part of their infrastructure, from what I've been told.
- mkramlich 16y ago@smanek is a Lisper and worked for ITA a few years ago I believe so perhaps he'll chime in.
- mahmud 16y agosmanek is way too busy with postabon to chime in, but I can tell you that half of #lisp on Freenode is idling from *.itasoftware.com
- ynniv 16y agoI think that the useful parts (QPX) are still Lisp. IIRC python is more for integration and (their limited) front end.
- sjbach 16y agoNot so. Most of QPX and RES is Lisp.
- hga 16y agoAs I understand it, C++ to maintain the QPX in-memory database and SBCL to do the routing magic (which is even more non-trivial than you might think, e.g. a "best" result set is not 20 routes that are all within a dollar and that hit the same airports, etc. etc.). RES uses Clozure CL (formerly OpenMCL, an evolution of Macintosh Common Lisp) for the stateless middleware with Oracle RAC for the backend and Java with the usual libraries for the web front end.
- sjbach 16y agoI'm a current ITAer working on QPX -- by lines of code, QPX is probably actually split pretty evenly between C++ and Lisp. But accounting for verbosity of C++, the logic is heavily on the Lisp side. I think anyone on my team would consider himself to be a Lisp developer before anything else.
- KirinDave 16y agoIt's so good to hear this. I'm always afraid that Python is going to squeeze out Lisp. It's a total absurdity, but people seem happy to learn Python and that puts a huge pressure on keeping Lisp shops alive.
- dan00 16y ago"It's a total absurdity, but people seem happy to learn Python and that puts a huge pressure on keeping Lisp shops alive." I think that it's less about learning, because Python is way more similar to languages like Java or C++. Using Python, they have to learn less. Than they discover some cool new features in Python and are bought. Then they don't see any need to bother further with lisp.
- hga 16y agoWikipedia on Blub: http://en.wikipedia.org/wiki/Paul_Graham_%28computer_programmer%29#Blub http://en.wikipedia.org/wiki/Paul_Graham_%28computer_program... The interesting question here is what's getting people to try Python but not a Lisp. Perhaps Clojure will help answer that question.
- wglb 16y agoUnlikely that they will go away from lisp. They are heavy users of SBCL (performance) and CCL (fast compile) and have some interesting fraction of a million lines of lisp code and might just be one of the larger employers of lisp programmers. See http://danweinreb.org/blog/the-failure-of-lisp-a-reply-to-brandon-werner http://danweinreb.org/blog/the-failure-of-lisp-a-reply-to-br...
- strlen 16y agoIt also isn't a "location based application that lets you casually hookup with your friends" that used to be acquired in droves 2005-2008. This is a serious and existing, profitable business with a serious and scalable technology platform and experienced talent. Not just ambitious and smart college kids getting a slightly higher hiring bonus (not that there's anything wrong with that). The critical infrastructure pieces (where GC is an issue) are already in C++. The front-end is already in Java. A full scale re-write will be a dumb thing to do. It's not going to be difficult to have Common Lisp FFI to hook the ITA middleware into Google's infrastructure instead of ITA's. The software that ITA developers that makes them different from the rest (I am guessing lots of these are heuristic solutions to NP complete problems) is exactly the sweet spot for Common Lisp, where it provides a significant advantage over other languages even for large groups of programmers. While I will enjoy writing a web app in Common Lisp much more so than writing a web app in Java (less boiler plate, interesting language compensates for a mundane task) I doubt there are going to be great advantages to doing the more routine development in CL for a large corporation.
- wallflower 16y ago> The software that ITA developers that makes them different from the rest Classic paper by Carl de Marcken, co-founder and former CTO of ITA Software, elaborating the unique domain problems of air travel planning: "Computational Complexity of Air Travel Planning" http://www.demarcken.org/carl/papers/ITA-software-travel-complexity/ITA-software-travel-complexity.pdf http://www.demarcken.org/carl/papers/ITA-software-travel-com...
- sedachv 16y ago"The critical infrastructure pieces (where GC is an issue) are already in C++." When did this happen? From what I heard last, C++ was just the data importer that dumped everything into mmapped buffers which SBCL worked on.
- brlewis 16y agoA tip I picked up from one of pg's essays for finding out what technology a company uses: look at their job listings; they don't lie. In the "Operations" part of the company it appears you're right, "most work is in Python": http://www.itasoftware.com/careers/jlisting.html?uid=718167 http://www.itasoftware.com/careers/jlisting.html?uid=718167 In "Engineering", Lisp tops the "particularly valuable" list at the bottom of "Knowledge and Skills" for http://www.itasoftware.com/careers/jlisting.html?uid=730130 http://www.itasoftware.com/careers/jlisting.html?uid=730130 Farther down the same page they ask you to solve puzzles. "Puzzles submitted in C++, Lisp, Python, Java or Perl will be reviewed most promptly, because those are the languages we use every day"
- lg 16y agowe should add ruby to that.
- gnuvince 16y agoWe really shouldn't.
- outotrai 16y agoIf you (or someone else) wouldn't mind taking the time to explain it, I'd really like to know why your unsupported and vaguely anti-Ruby statement is so popular. I'm assuming that it means that the problems with Ruby are so widely known that you don't even need to spell them out in order for people to agree with you, but I guess I didn't get the memo. Why "really shouldn't" we? (Serious question - thanks.)
- lispm 16y agoOne thing, of all the dynamic languages the default Ruby implementation is by far the slowest. For anything that is slighty computational expensive, the default Ruby implementation is poor. Also think green, if you have lots of computation in a slow language, that easily adds up in a large data center in form of wasted electricity, which adds to cooling and is generally expensive. Some Ruby implementations try to get in the direction of, say, a Lisp implementation like SBCL - which is used by ITA. SBCL provides since quite some time a compiler that can generate reasonably fast code.