History of LISP

“The goal of this project is to collect, preserve, and present source code, design documents, and other materials concerning the original LISP I/1.5 system, and as many of its follow-ons as possible. LISP was one of the earliest high-level programming languages and introduced many ideas such as garbage collection, recursive functions, symbolic expressions, and dynamic type-checking; it is still in use. This is a project of the Computer History Museum‘s Software Preservation Group. The editor appreciates comments, suggestions, and donations of additional materials…”


Is LISP still useful in today’s world? Which version is most used?

“I try to teach myself a new programming language in regular intervals of time. Recently, I’ve read how Lisp and its dialects are at the complete opposite end of the spectrum from languages like C/C++, which made me curious enough to know more about it. However, two things are unclear to me, and I’m looking for guidance on them :

  1. Is LISP still practiced/used in todays world, or is it a legacy language like FORTRAN/COBOL ? I mean, apart from maintaining existing code, is it used on new projects at all ?
  2. What is the most widely used dialect ? I came across Scheme and Common Lisp as the 2 most prevalent dialects, and wanted your opinion as to which is the most favored/useful one to learn – and would be immensely gratified if you can suggest any resources for a rank beginner to start from.

While eager to learn a language which is fundamentally different from the procedural languages I’m used to, I don’t want to invest undue effort in something if its totally obsolete – I’d still learn it if it was professionally “dead”, but only with an academic perspective…”


Does newLISP use garbage collection?

“Memory management in newLISP does not rely on a garbage collection algorithm. Memory is not marked or reference-counted. Instead, a decision whether to delete a newly created memory object is made right after the memory object is created. newLISP follows a one reference only (ORO) rule. Every memory object not referenced by a symbol is obsolete once newLISP reaches a higher evaluation level during expression evaluation. Objects in newLISP (excluding symbols and contexts) are passed by value copy to other user-defined functions. As a result, each newLISP object only requires one reference…”