24 ms·
Common Lisp was designed for large, complex applications where it is not "easy enough" to throw code away but existing codebases must be evolved in-place. It is
by enduser 13y ago
Common Lisp was designed for large, complex applications where it is not "easy enough" to throw code away but existing codebases must be evolved in-place. It is a practical language, not an academic language.
In academia, your code is a reflection of your conception and can be changed when the conception changes.
In the "real world" the satellite you already launched into orbit needs a new feature.
- seanmcdirmid 13y agoNobody is writing satellite code in CLOS, though. I like CLOS, I still get many new ideas from that language (I'm in PL), but claiming it is a language designed for scalability is a bit weird. Even C++ would be a bit more safer depending on what flavor of CLOS you are using. My point is that C# is a good enough language for rapid prototyping; that the premature commitment problem is not a big deal in practice. I couldn't really imagine the argument evolving into "premature commitment AND rewriting code is bad" in any coherent manner.
- enduser 13y agoI'll just leave this* here: http://www.stsci.edu/institute/software_hardware/spike/ http://www.stsci.edu/institute/software_hardware/spike/ * satellite code written in Lisp
- deleted 13y ago[deleted]
- seanmcdirmid 13y agoA lot of Python, where is the Lisp?
- enduser 13y agoYou're looking at the "Projects" list of other projects on the site. Spike itself is written in Common Lisp. You can read some of the papers on the "technical details" of Spike page for confirmation: http://www.stsci.edu/institute/software_hardware/spike/details http://www.stsci.edu/institute/software_hardware/spike/detai...
- pavelludiq 13y agoNobody is writing satellite code in CLOS, though. Ahem: http://flownet.com/gat/jpl-lisp.html http://flownet.com/gat/jpl-lisp.html Also Even C++ would be a bit more safer depending on what flavor of CLOS you are using. Assuming you meant CL rather than CLOS, I disagree with intensity. Considering CL is actually memory safe, and has the condition system, this this is the weird statement. CL was used for building a lot of big and expensive software, and still is in certain niches. I say actual reality trumps HN PL theorizing. True, there are challenges, but somehow actual humans have managed to get a lot of really good work done with this language.
- seanmcdirmid 13y agoThis is all still quite old: > At the time it was more or less taken for granted that AI work was done in Lisp. C++ barely existed. Perl was brand new. Java was years away. Spacecraft were mostly programmed in assembler, or, if you were really being radical, Ada. Then of course there was resistance: > Now, you might expect that with a track record like that, with one technological success after another, that NASA would be rushing to embrace Lisp. And you would, of course, be wrong. ... Someone (I don't know who) interrupted him and asked if he could change only one thing to make things better what would it be. His answer was: get rid of Lisp [3]. And then... > The demise of Lisp at JPL is a tragedy. The language is particularly well suited for the kind of software development that is often done here: one-of-a-kind, highly dynamic applications that must be developed on extremely tight budgets and schedules. The efficacy of the language in that kind of environment is amply documented by a long record of unmatched technical achievements. Lispers always wonder what could have been, what should be, but then there is what is. Don't get me wrong, I like Lisp, I've used it, I've never used CLOS for anything big but it is definitely a relevant language in the study of PL. But the sad truth is that...LISP is kind of weird unapproachable to most people: if they want semantic feedback (type checking), then there are other choices (Java, C++), if they want a dynamic language with a more well defined semantics and syntax, there are better options (Python).