[HN Gopher] The rise and fall of Lisp at the Jet Propulsion Lab ... ___________________________________________________________________ The rise and fall of Lisp at the Jet Propulsion Lab (2002) Author : todsacerdoti Score : 140 points Date : 2023-01-25 21:41 UTC (1 days ago) (HTM) web link (flownet.com) (TXT) w3m dump (flownet.com) | dagss wrote: | I used to be a fan of programmer productivity and having the best | tools to express ideas in. In our case, this is not about LISP, | but about being able to write 40 lines of SQL in half an hour to | solve things that other people reach for 1000 lines of backend | language to do. But also trying hard to identify opportunities to | simplify and delete code instead of adding another layer of | complexity on top every time something doesn't add up. | | But I've started to wonder. In some ways I feel "our" area in the | company has been a victim of our own success: By doing things in | smart/efficient ways, the tasks we've done has become seen as | simple, we didn't need to recruit as much, and eventually because | of the low number of people occupied on the task in the | organization it is seen as easier or less important and we are | more vulnerable to churn than larger teams. | | I've seen simpler problems getting solved in (what I think is) | very inefficient ways and I used to scoff at that. But now I | think what they gain is a large robust team, which can handle | both churn and have more weight politically in the organization. | Solving something inefficiently simply offers a way to have more | people do the same task, for redundancy. | | In a sense, once an organization hits a certain size it seems | that efficiency in a programming language is an anti-feature. You | WANT a larger set of programmers to be happily working on | something just to have a larger team around the code and | redundancy in people. If a programming language / environment | allows you to be too efficient, then too few people get the job | done and you become vulnerable. | | At least, that's the best explanation I have at what's really | going on in the industry. | taeric wrote: | This sounds like the standard "but are they busy?" concern | hitting. Folks claim they want folks that are working "smarter" | and not "harder." Completely ignoring that that is, itself, | hard. | | I agree with your general concern. I hate it when, not only do | I know that I am in fact lazy, but that is not why I have done | less in this case. I genuinely believe the smaller solution is | far far preferable. All too often "don't do it" is by far the | better option for what so much internal tooling does. | | To that end, I push back against you wanting a less efficient | language. I think efficiency is itself a trap. Redundancy and | general pacing is a good thing. Languages that try and forego | that are not doing themselves any favors. | | But, and this is fully to your point, if you don't have the | spots in your organization that are fully tolerant to mistakes | and bad ideas, than you don't have room in your organization to | grow. And if you don't have room to grow as an organization, | than you probably don't have room to grow the software, either. | AceJohnny2 wrote: | I believe the original author posts around here, @lispm IIRC? | aidenn0 wrote: | lisper I believe, not lispm | nequo wrote: | The author is Ron Garret. He was also interviewed last year on | the CoRecursive podcast about the merits of Lisp at JPL, and the | opposition to it. It's worth listening to: | | https://www.corecursive.com/lisp-in-space-with-ron-garret/ | mepian wrote: | He is also here on HN: | https://news.ycombinator.com/user?id=lisper | sillysaurusx wrote: | Oh wow, I didn't know lisper worked at JPL. Neat! | jmclnx wrote: | > industry best practice | | To me that really means "industry best practice at commercial | businesses". Moving to a different language because the new one | is cool is a big wast of $ | travisgriggs wrote: | > The management world has tried to develop software engineering | processes that allow people to be plugged into them like | interchangeable components. | | I've wondered about this a lot lately. It's not limited to | software engineering only, you see it in other creative/human | domains as well. Media production. Teaching. So on. | | But it's made me wonder, why doesn't the equation ever invert: | | "The <fill_in_the_blank> world has tried to develop _management_ | processes that allow people to be plugged into them like | interchangeable components." | | Why has management never come under the scrutiny of "one size | fits all" and the subsequent salary/headcount reduction? | LarryMullins wrote: | Are you familiar with the concept of co-ops? A lot of | businesses are run by their workers or their members/consumers. | They can hire or fire people to work as management as they see | fit. | | It's not very unlike the board of investors of a business | hiring or firing management, except instead of a board of | investors you have co-op members. | Retric wrote: | The basic premise of MBA programs is arguably to create | interchangeable managers. | | One size fits all is less efficient at both the managerial and | employee levels, the advantage is largely risk minimization. | toss1 wrote: | Yup | | Except that it is only local or small risk minimization; the | catastrophic existential risks end up maximized to the point | of becoming inevitable. | | With companies, the MBAs happily optimize away anything that | isn't immediate revenue. So manufacturing gets offshored, | along with all the deep knowledge of how to make things. R&D | gets shrunk and minimized because it is a quarterly expense | with returns not immediately specified. They kill or sell off | all the "dogs" of products and try to milk the "cash cows". | This makes the numbers look great until things change and the | "cash cows" need updating for a new market environment. But | the company now has no idea how to do it because they have no | seasoned and up to date product development, no R&D | technology development, and no manufacturing know-how. So, it | goes into a death spiral if it hasn't already been disrupted. | | On the societal level, MBAs justified the western world | outsourcing all the manufacturing because it was "fungible" | and cheaper to do it offshore, made more profits this | quarter. Meanwhile, all that know-how was stolen by China, | who isn't interested in quarterly profits, but in global | hegemony, and now has both economic and strategic chokeholds | on the western democracies (everything from corners on | lithium and solar panel markets, to spies in western | corporations, to backdoors in key commercial and likely | military microchips). The entire strategic advantage of the | west was sold out for a few dozen quarters of increased | profits. This will go down as a colossal strategic blunder of | historic proportions. | | All thanks to trying to standardize management. | didericis wrote: | Same. The question I've been finding more and more interesting | over the years is "how do you tell when you have an | interchangeable component/what are the implicit dependencies | holding things together". | | You run into an abstracted version of that in software all the | time, but it's _way_ more ubiquitous that just a software or | business problem. There's always a limit to interchangeability | /some kind of assumed context. That rabbit hole is _incredibly_ | deep. I don't think I've ever run into anything comparable. If | you pull on that thread long enough you end up in deep esoteric | discussions about perception and philosophy and the history of | categories /evolution. And whether or not all of that rabbit | hole I ended up in is an unrelated tangent or not requires | dealing with the same exact problem (which is whether or not | the boundaries you've placed around something are | legitimate/fit your definition, or if they belong somewhere | else/you're missing very important hidden context). | ep103 wrote: | Because capitalism incentivizes maximizing capital flow to the | owner of the organization. Making labor interchangeable and | delivering a minimally viable end product are both ways of | minimizing capital that could otherwise be made to flow to the | owner of the organization. | | If you want to create a management style that optimizes for | quality of product or optimizes for management styles that | reflect the needs of labor, instead of a process that optimizes | for minimizing labor, then you need to change the | incentivization plan accordingly. | abadger9 wrote: | My mentor worked at JPL - he was a BS, MS, PhD from MIT - he got | out of there so quick (i believe less than 2 years). He said the | pace of work was so slow, he didn't feel like anything got done | in his entire time there. | ibrault wrote: | Depends on what you're working on and on if you're defining | "getting stuff done" on a macro or micro scale. For large | flagship missions, 2 years is nothing. The scale of work and | level of verification required by these projects is massive and | takes time. You've only got one shot to get things right with | billions of dollars on the line, don't rush it. | marmetio wrote: | High-assurance isn't really the culprit. It's more of a | funding issue. If long NASA programs could save part of the | first year's budget to use the second year, things would go a | lot faster. | | You might get hired into an overstaffed team and not do that | much for a year until it's crunch time and then you're | underfunded so it takes an extra year. Arguably you spent | three years to achieve one year's worth of accomplishments. | ghaff wrote: | It's pretty inherent in those types of projects. How long do | big aerospace projects take? (And then they may be canceled | when some other bidder wins the deal.) | | Big hardware development has probably accelerated some overall | --the development of new chip architectures and "big iron" | computer systems was at least multiple years when I was a | product manager, but especially safety critical systems or | things you get one shot at still take slow deliberate process. | dang wrote: | Updated last year (edit: or not?), so I've left the date off this | one. | | Previously: | | _Lisping at JPL (2020)_ - | https://news.ycombinator.com/item?id=28113434 - Aug 2021 (9 | comments) | | _Lisping at JPL (2002)_ - | https://news.ycombinator.com/item?id=22087419 - Jan 2020 (307 | comments) | | _Lisping at JPL (2002)_ - | https://news.ycombinator.com/item?id=13626074 - Feb 2017 (37 | comments) | | _Lisping at JPL (2002)_ - | https://news.ycombinator.com/item?id=7989328 - July 2014 (19 | comments) | | _The rise and fall of Lisp at the Jet Propulsion Lab (2002)_ - | https://news.ycombinator.com/item?id=2212211 - Feb 2011 (36 | comments) | | _The Rise and Fall of Lisp at the Jet Propulsion Lab._ - | https://news.ycombinator.com/item?id=304736 - Sept 2008 (72 | comments) | comfypotato wrote: | I'm intrigued by the distinction between _best_ practice and | _standard_ practice. Isn't it standard because it's the best? I | can understand that non-standard practices might be best in niche | situations, but this sounds like a discussion of "traditions are | solutions to problems so old we've forgotten what they were". | aidenn0 wrote: | Phillips head screws are pretty standard in the US, but pretty | much any other non-slot screw head is technically superior | (including at least two other plus shaped drivers I'm aware | of). | | Most woodworkers I've known prefer a square shaped driver. | Unless the costs of the screw significantly impact your | margins, Phillips screws suck. | serf wrote: | >Phillips screws suck. | | I felt this way through my entire engineering life until I | bought a sailboat. | | Everything on marine stuff tends to be flat-head or similar | design -- engaging a flat driver into a slot in a | bumpy/roll-y ocean is _hell_. The self-centering engagement | aspect of a cross-socket style drive is absolutely fantastic | after a long day of trying to tighten flat-slot fastened | tube-clamps and the like at sea during calm conditions, let | alone during weather. | | That said -- yes, phillips head sucks, they round out and | won't handle any decent amount of torque over repeated | sessions without deformation. Robertson (square)/allen/torx | _kind of_ suck at sea, because they lack any form of self- | centering without using special taper drivers. | | In a perfect world I think that I would like to use pozi-driv | fasteners and drivers everywhere, but the reality is that | there are so many types of specialty hardware in use in the | marine-world that it would be difficult -- if not impossible | -- to switch it all entirely over. | robocat wrote: | > flat-slot fastened tube-clamps | | I am unsure exactly what you are referencing with "tube- | clamps". If you mean hoop-clamps or hose-clamps, then those | usually have "self-cantering" hexagonal heads as well as | the slot: https://duckduckgo.com/?q=stainless+steel+hose+cl | amp&iar=ima... | | But I can definitely think of places with slot-heads on | deck of the yachts I have been on, which would be a bitch | in swell. And stripping a thread would also suck! | aidenn0 wrote: | Yes, they are better than flathead screws, which are the | second (or maybe third after a combination | philips/flathead[1]) most common screw I encounter in daily | use. | | 1: Which I just learned last month they make special | screwdrivers for! https://www.amazon.com/Combo- | Driver-4-Inch-Klein-Tools/dp/B0... | the_af wrote: | My read is that a _standard_ industry practice (e.g. | considering programmers interchangeable pieces and that | components should be designed with that in mind) will work in | many situations, and therefore the "standard" is reasonable | for most of them, but the _best_ practice is context-sensitive; | in this case, the context didn 't require C++/Java and they | were actually not good choices. This was specialized, mission- | critical software developed on a tight schedule and swapping | programmers in/out of the project simply wouldn't work, so many | considerations for choosing (say) Java were out of the | question. | michael1999 wrote: | There is not such thing as a best practice without specifying | a context. The kind of build hygiene required for long-lived | commercial product is very different from disposable | marketing content. This is especially toxic when the | underlying context and goals are so different. | | Businesses wants interchangeable programmers for many | reasons: so they can ramp team size up and down, so hiring is | easy, etc. But the number one reason in my experience is to | minimize the bargaining power of the programmers. Execs | absolutely _hate_ having star programmers holding them up for | raises. Building complicated in-house tooling in a language | like lisp might make it rain, but the devs are then in a | position to demand a slice. Procurement 101 is always have | secondary vendors to keep your main vendors honest. Lower | productivity is an acceptable price to avoid being held up. | | This is a very different context from somewhere like JPL | where any programmer there could already leave for more money | in industry. Anyone there is already committed to the | mission. The cost of lower productivity isn't justified, and | might make certain activities simply impossible given the | current budgets. | the_af wrote: | > _There is not such thing as a best practice without | specifying a context._ | | Just to be clear: we are in agreement, right? The author of | TFA is stating this, and that the JPL misunderstood its own | context. It wasn't the kind of business/project where your | second paragraph applies, and so the practices they adopted | were mistmatched. | myth2018 wrote: | I've read this article some years ago and always wanted to ask: | besides size, what were the arguments against Lisp in JPL? | Author's position is biased, as he recognizes, then I'm curious | about the other side in this story. | jcranmer wrote: | One of the footnotes mentions that multilanguage integration | was causing some headaches, and (the author's bias showing | through) that is blamed by the author on the IPC server being | crashy because it was C, not Lisp. | mepian wrote: | This is blogspam, the original is still hosted here by the author | himself: https://flownet.com/gat/jpl-lisp.html | dang wrote: | Ok, so the update from Aug 2022 is not by Ron? geez. | | Changed from https://mecrisp-stellaris- | folkdoc.sourceforge.io/lisp.html now. Thanks! | [deleted] ___________________________________________________________________ (page generated 2023-01-26 23:00 UTC)