5 ms·
Neat that the Roomba is written in a lisp. It has it’s quirks and hiccups, but on the whole is extraordinarily well designed, standing head and shoulders above
by jakear 5y ago
Neat that the Roomba is written in a lisp. It has it’s quirks and hiccups, but on the whole is extraordinarily well designed, standing head and shoulders above the usual slew of “home automation” products I wouldn’t touch with a 10’ pole. The dog definitely influences this opinion. :)
Is it relevant that it’s written in a lisp? Probably not. But then, maybe. Baseless speculation: mine pre-dates their internet connected models, which means it’s 100% plug and play. The only possible config is the system clock and the startup schedule, and I’m just using what the prior owner had already set. Had the OS been written in a more traditional language perhaps the engineers would have been tempted to include all the modern IOT features from the start and the result would be the complex app-driven network-needing mess that so many products tangle themselves up in (including perhaps the modern Roombas).
Again, that’s all baseless speculation, but I do see a potential connection between folks who choose to code a robot in lisp and folks who eschew “sugar” features in favor of the most pure “do one thing and do it better than anything else” implementation.
- DonHopkins 5y agoDoes the Roomba's Lisp use an incremental garbage collector?
- bch 5y agoMark and sweep
- metagame 5y agoI saw a great paper on their dialect a while ago. Will try and find it and edit this with a link. Check out passage 3.4; it goes into detail on their garbage collector. L – A Common Lisp for Embedded Systems Rodney A. Brooks and Charles Rosenberg IS Robotics [now iRobot Corporation, the famous floor vacuum company] 1995 https://web.archive.org/web/20041031144839/http://www-2.cs.cmu.edu/~chuck/pubpg/luv95.pdf https://web.archive.org/web/20041031144839/http://www-2.cs.c...
- MengerSponge 5y agoWhoosh :)
- metagame 5y agoI got the joke, but I still find the dialect fascinating enough that I will pretend to take one of the many jokes of Don Hopkins literally to get an excuse to post that paper.
- tephra 5y agoIIRC I saw a comment on lambda-the-ultimate years ago that said that this paper was great but there are no hints of any implementation or anything since it was swept up by irobot.
- metagame 5y agoIt wasn't swept up (ha!) by iRobot. IS Robotics changed their name to iRobot. If you're skeptic, check Wikipedia for the first author on that paper.
- DonHopkins 5y agoThat's the sound the garbage collector makes! ;)
- lifeisstillgood 5y agoI (and it turns out a lot of other people) used to use "do they code in Python?" as a heuristic for "are they a smart self motivated programmer" A similar metric you could apply to companies "are they engineering influenced enough to pick a "weird" language". In other words has the company chosen a language on the basis of "we can hire more Java programmers easily" - an awful mindset that suggests all other engineering decisions are a bust. So yes I agree with your baseless speculation- it's probably less baseless than you are worried about
- metagame 5y agoIn which Paul Graham served to popularize the idea in August of 2004: http://www.paulgraham.com/pypar.html http://www.paulgraham.com/pypar.html
- wikibob 5y agoI strongly disagree. Software engineering has changed dramatically over the past 20 years. Choosing a non-mainstream uses an innovation token on something that does not contribute business value. That’s a huge red flag. Software engineering is now a team sport. Future maintainability and readability is now orders of magnitude more important than nifty tricks when writing the code. See http://boringtechnology.club/ http://boringtechnology.club/
- _pmf_ 5y ago> Future maintainability and readability is now orders of magnitude more important than nifty tricks when writing the code. Explain npm, then.
- metagame 5y agoSoftware engineering has always been a team sport, even though we've known since The Mythical Man Month that throwing more programmers at a problem just slows the work down. Choosing a non-mainstream language can absolutely contribute business value. For example, toy or tool, making your creation extensible adds value. Multiple businesses have spawned from this, and Lisp and Lua are prime candidates of non-mainstream languages that billion dollar companies have decided to choose to build substantial portions of their products around so that users could extend. Even someone who doesn't know AutoLISP can look at an AutoLISP script from decades ago and get it within an hour. For another example, after being scolded for using Unicode to write my overstrikes, I wanted to see how difficult it would be to extend Arc's markdown to add DHTML overstrikes (DHTML and Unicode both have their own ways of doing them). This wasn't hard, despite not being intensely familiar with Arc and pg's programming style being relatively off-beat (Arc is essentially sillyScheme, and he takes full advantage of writing things and defining them later, which is normally easy to cope with but part of the design philosophy of Arc was to minimize syntax, so it sometimes takes longer than you would see in a less holistically-cultivated Scheme). I checked (def markdown ... ) and figured out how to add to it pretty quickly.
- brundolf 5y agoSomething poetic about this is that Lisp was the original "AI language", back when AI was more about reasoning and decision trees. One of the classical books - Artificial Intelligence: A Modern Approach - even uses a robot vacuum cleaner navigating a grid as one of its toy scenarios :)
- varjag 5y agoThe ex-MIT people who started the company were really good at robotics, and with MIT being a Lisp powerhouse the choice was perhaps natural. But thing is if you are good at Lisp you can move really, really fast. I also do embedded development (mostly with C) but the last project I had an opportunity to do in Common Lisp. It was a fantastic experience with perfect commercial outcome. It feels like you move mountains.
- lispm 5y ago> The ex-MIT people who started the company were really good at robotics and Lisp. Rodney Brooks worked on S1 Lisp and Lucid Common Lisp. He was a co-founder of Lucid, Inc. and wrote the book 'Programming in Common Lisp' (Wiley, 1985). See for example: "Design of an Optimizing, Dynamically Retargetable Compiler for Common Lisp", 1986. The authors (incl. Rodney Brooks) worked for Lucid, Inc. https://www.researchgate.net/publication/221252387_Design_of_an_Optimizing_Dynamically_Retargetable_Compiler_for_Common_Lisp https://www.researchgate.net/publication/221252387_Design_of...
- bmitc 5y agoI really don't get the feeling that iRobot uses Lisp anymore, and espeically not extensively. Most of their robotics software engineer jobs advertise C/C++. On the rare occasion I've seen Lisp mentioned, it was for a junior role and sounded like it was only to use the existing dialect (I'm assuming for older robots). My gut feeling is that they have a dialect but no longer actively develop it and potentially no longer use it for newer robots. Plus, it's probably more of a C-like Lisp. A lot of these companies on this list do not actively use Lisp or even exist anymore. One company that is left off the list is 2Is Inc. They use Common Lisp for everything and actively do so.
- eatonphil 5y ago> One company that is left off the list is 2Is Inc. They use Common Lisp for everything and actively do so. Anything recent you can point at to authoritatively show they still use Common Lisp? I do see their site says: > programming using Lisp and object database technology. https://2is-inc.com/common-positions.html https://2is-inc.com/common-positions.html But they also don't have this position open at the moment. And saying "Lisp" is a little vague. I see Franz Inc news about 2Is Inc from as recent as 2015 but no more recent than that that clearly shows 2Is Inc still uses Common Lisp.
- bmitc 5y agoI interviewed there a few years ago (one of the most enjoyable interviews I've had). For example, I was asked, by the CEO, "what are signs that we'll know you're stressed?". They definitely use Allegro Common Lisp for everything they can except for some JavaScript frameworks for new front end work, if I remember correctly on the latter part. There were zero hints they'd move away from Common Lisp. They don't mind if you don't know Lisp or even programming, so that's probably why it's understated in their job description. They prefer just hiring smart people and training them. A lot of people there studied math, physics, and even liberal arts. This is the right way that very few do. The thing with this list is that it is just extremely outdated. It misses a few that actually use a Lisp and lists a lot that just isn't up to date. I've tried very hard to get a Lisp job. They are exceedingly rare and nearly nonexistent. There's much better chances with Clojure and Elixir.
- crubier 5y agoHow ironic then, because I personally found Roomba robots extremely dumb, until quite recently at least, most of their models roamed randomly, with almost no planning. On the other hand Neato Robots are so much better, they cover the surface width planification and mechanical precision. Now baseless speculation: I wouldn’t be surprised to learn that a large part of this difference is due to the fact that a company used Lisp because of ideology, while the other company used a language which is actually leading currently in robotics, (c++ or Python) because of practical reasons: they could harness the massive ecosystem to make stuff that are actually useful instead of recoding a robot OS in lisp.