codr4life 9 years ago

" One of the reasons I stayed at JPL for twelve years was that I was appalled at what the software industry had become. The management world has tried to develop software engineering processes that allow people to be plugged into them like interchangeable components. The "interface specification" for these "components" usually involves a list of tools in which an engineer has received "training." (I really detest the use of the word "training" in relation to professional activities. Training is what you do to dogs. What you should be doing with people is educating them, not training them. There is a big, big difference.)

To my mind, the hallmark of the interchangeable component model of software engineers is Java. Without going into too many details, I'll just say that having programmed in Lisp the shortcomings of Java are glaringly obvious, and programming in Java means a life of continual and unremitting pain. So I vowed I would never be a Java programmer, which pretty much shut me out of 90% of all software engineering jobs in the late 90's."

Word, this needs to be seen for what it has turned into if we're ever going to get out. I've tried every kind of paid software dev setup, it's all abusive business bullshit these days.

  • sdfaasdf 9 years ago

    > paid software dev setup, it's all abusive business bullshit these days.

    Care to elaborate ?

    • wantoncl 9 years ago

      My 2 cents: there are sites like Rentacoder.com. Are there any RentaManager or RentaCxO.com sites? Does anyone discuss off-shoring management or executive positions to save money?

    • codr4life 9 years ago

      I went from startup, to consultant, to freelance, to startup, to big company, to startup, to freelance. There is nothing in there that's worth the effort for me any more; I would rather starve than waste one more second on filling someone else's pockets with money using the wrong tools while being treated as dirt. That silly game is so over.

  • pjmlp 9 years ago

    These days, companies like Google think that even Java is too advanced for cog developers.

    • speleo_engr 9 years ago

      What do they push instead? Python? Go? JS?

      • pjmlp 9 years ago

        It was a reference to Go's type system.

      • notduncansmith 9 years ago

        Many language decisions in Go (e.g. lack of generics, baked-in magic concurrency primitives, extensive focus on imperative looping, baked-in formatting conventions) are arguably designed to homogenize developer output. This is essentially making decisions for the developer and limiting cleverness, but many developers feel a sense of liberation (rather than limitation) as they are freed from making those decisions, and instead can settle into the comfortable task of translating natural language into code (presumably homogenized to as few constructs as possible to make it easier for Google to train the AI that will replace them).

    • codr4life 9 years ago

      It's funny how they managed to smear enough lip stick on top of that idea to make us beg for it. These days you're not even allowed to question the less power is more mantra in Go circles, even though it goes against all common sense. We need to back track to where we lost track of the goal. Which is what I'm doing these days instead of playing the system, https://github.com/codr4life/lifoo.

lisper 9 years ago

Author here. I'm on the road today so latency will be high but I'm happy to answer any questions people have. Also, a shameless plug: I'm still coding in and writing about Lisp. Some currently active projects:

https://github.com/rongarret/ergolib

https://github.com/rongarret/BWFP

https://github.com/rongarret/tweetnacl/blob/master/tweetnacl...

And I just finished (but have not yet published) a Lisp implementation of the Signal double-ratchet. If anyone is interested let me know and I'll publish that too.

  • speleo_engr 9 years ago

    I used to work on flight software for a private company. It seemed like inertia from "heritage" always drove lots of decisions. From my memory, I remember quality assurance from NASA getting hung up on the following items during design reviews:

    1) an RTOS they weren't familiar with

    2) a language they weren't familiar with (the familiar set was Ada, C, C++)

    3) dynamic memory allocation

    How much push back did you get from quality assurance?

    • lisper 9 years ago

      Lisp was not the RTOS, it was a process running under the RTOS (vxWorks). Nonetheless, we did use a Lisp with a hard-real-time GC. That helped allay some of the dynamic memory allocation FUD.

      We got a ton of pushback about the unfamiliar language, but Lisp eventually won out because back then there really was no viable alternative. They actually tried to port the code to C++ and failed (running afoul of Greenspun's tenth and the immaturity of C++ compilers of the day).

  • na85 9 years ago

    >... hardware that is 100 million miles away is an interesting experience. Having a read-eval-print loop running on the spacecraft proved invaluable in finding and fixing the problem

    So...

    How exactly does it work to have a repl on the spacecraft?

    Doesn't the system halt while it's waiting for user input?

    • zengid 9 years ago

      Not the author, nor an expert, but I'm guessing it could be setup so that the 'OS' throws and interrupt when it receives a transmission signal requesting the REPL process [1]. So whatever normal processes that the device needs to run would get paused by the interrupt signal, and the REPL process would start up.

      [1] https://en.wikipedia.org/wiki/Operating_system#Interrupts

    • lisper 9 years ago

      No. We used a multi-threaded Lisp. One thread ran the REPL, and other threads ran the RAX code.

  • Create 9 years ago

    would it be possible to make the files available again please?

    http://www-aig.jpl.nasa.gov/public/home/gat/ftp/

    Thank you!

gkya 9 years ago

A famous quote from this article:

The Remote Agent software, running on a custom port of Harlequin Common Lisp, flew aboard Deep Space 1 (DS1), the first mission of NASA's New Millennium program. Remote Agent controlled DS1 for two days in May of 1999. During that time we were able to debug and fix a race condition that had not shown up during ground testing. (Debugging a program running on a $100M piece of hardware that is 100 million miles away is an interesting experience. Having a read-eval-print loop running on the spacecraft proved invaluable in finding and fixing the problem. The story of the Remote Agent bug is an interesting one in and of itself.)

rurban 9 years ago

I happened to be at the 40th LISP anniversary conference 1998, with John McCarthy. Erann's JPL talk about the Remote Agent was by far the most interesting talk there, and I still consider it one of the best conference talks ever. I'd really like to see the slides being published.

I also attended this famous "dinner with eric" at the same conference, actually sitting next to Eric and Erann was sitting on the other side: http://blog.rongarret.info/2009/06/my-dinner-with-erik.html I liked Eric a lot, and really enjoyed his troll interactions with Xah Lee, one of the most famous trolls ever. Unfortunately he didn't know exactly who to pick a fight with. Erann was clearly the wrong target. Erann hated it. But as outsiders who stayed out of those silly fights we learned a lot, what boils in a LISPer. XML especially. Or Windows. Or special variables: https://groups.google.com/forum/#!msg/comp.lang.lisp/WRQkT57... A very good CLL thread btw. Most of the people agreed with Eric, even if Erann's proposal was very good.

(I used his old name to be able to look things up. The name change happened much later, when Erann got married and choose a better name, Ron Garret.)

PS: Eric said 99 in his lugm blog post, but I'm pretty sure it was 98. http://naggum.no/lugm-time.html

PPS: I found some old RA material here: https://web.archive.org/web/19991014000627/http://www-aig.jp... but mostly for ESL (the control language), not the actual RA simulation and HW stuff he was emulating.

  • gkya 9 years ago

    There's this (edit: 2012 Google Tech Talks) video: https://www.youtube.com/watch?v=_gZK0tW8EhQ "The Remote Agent Experiment: Debugging Code from 60 Million Miles Away" by Ron Garret. IDK how similar it is to the 1998 talk by him you refer to. I guess he's around here by the nick "lisper".

    • lisper 9 years ago

      Yep, that's me.

    • rurban 9 years ago

      Yes, that's about the same content. Excellent, thanks a lot.

      I often think about how to control or even reboot a CPU out there in space, running on slow hardened HW (cosmic rays shooting at you), and if you make a small mistake and the thing doesn't boot up properly the whole mission is lost. You must be really sure about the root cause of your problem, and properly analyze it (hence his simulation), otherwise no chance.

      Like a reboot via SSH, just a bit trickier, because nobody will be able to help you.

  • hackermailman 9 years ago

    Xah Lee still updates his 1995 domain http://xahlee.org/ "the hacker news yc is truly idiotic. when in tablet, need a microscope to read. 1990s html, written in a born dead arc lisp."

  • rurban 9 years ago

    Just talked with Ron Garret about this dinner event. They were actually 2 separate events. His blog post was about a dinner with those two alone, and I was with them on another evening, me sitting next to Eric.

    Interesting events 19 years ago. Ron changed his name in the meantime (and made Google AdSense), while Eric died horribly. Alone. From a stomach problem or such.

wtbob 9 years ago

> I can't even say the word Lisp without cementing my reputation as a crazy lunatic who thinks Lisp is the Answer to Everything. So I keep my mouth shut (mostly) and watch helplessly as millions of tax dollars get wasted.

I've been there too, only in the commercial world watching corporate profit be wasted. It's really disheartening to see the computing world re-invent S-expressions badly (first as XML, then as JSON) and reinvent Lisp badly (e.g. JavaScript). Lisp really is awesome, and it really is the best language of which I'm aware, if for no other reason that if one wants to do enough programming in the language, then one can implement any other language, seamlessly.

  • B1FF_PSUVM 9 years ago

    > in the commercial world watching corporate profit be wasted

    And, somehow, the beancounters with the spreadsheets to squeeze the last microdollar from an operation have not hit on a way to make money from this in sixty years.

    Puzzling.

sdfaasdf 9 years ago

You have to know "design patterns" they said. You have to know Java they said.... and then I knew I was in the world of "professional" software. Sigh.

gaius 9 years ago

People have this idea of scientists in general and NASA in particular as being purely objective and data-driven and let the science speak for itself, but articles like this illustrate that they are at least as political and irrational as any commercial entity.

  • gkya 9 years ago

    Politics is a human thing, it is an artifact of interaction of persons and peoples. And irrationalness is as human as a fart, you know it's rude and it's wrong, but sometimes it happens. The fact is, we're hard-wired to be politic, irrational and superstitious.