Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

> Interface Builder prototype was done in Common Lisp

It was actually a Lisp product by a company, which was shown to Steve Jobs.



sort by: page size:

> You mentioned Common Lisp - it's a great example of a cathedral. A language carefully designed by a committee, which took into consideration all the previous Lisps that were in popular usage. You can tell there was a lot of thought behind the process.

Common Lisp was designed as a unified successor to Maclisp, in response to an ARPA request.

Not to Scheme, Interlisp, Lisp 1.6, Standard Lisp, Lisp 2, LeLisp, ....

Scheme was further developed. Interlisp died, Standard Lisp had a Portable Standard Lisp variant and then mostly died. Lisp 2 was dead before, LeLisp died later.

The core of Common Lisp was designed in 1982/1983, decided mostly by a small team of Lisp implementors (those had their own Maclisp successors) with a larger group of people helping out.

1984 a book was published on the language and implementations followed.

Standardization then came as a more formal process later with goal of creating an ANSI CL standard - again it was mostly US-based, paid by ARPA. Areas were defined (language clean-up, objects and error handling), .... Proposals were made (like Common LOOPS by Xerox) and then subgroups implemented and specified those (CLOS, ...).

> You can tell there was a lot of thought behind the process.

There were a lot of people involved. Not just the X3J13 committee. It was also a community effort at that time.

https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node3.html#SE...


> I had no idea that Microsoft made a Lisp

They didn't. It was 'made' by the company Soft Warehouse and sold through Microsoft.


> Sure but it wasn't even a Common Lisp initially.

Right, initially it started as a Maclisp derivative.

They morphed it gradually into Common Lisp, while defining Common Lisp. The Spice Lisp project was actively involved in defining & implementing Common Lisp. Two of the five members of the original designers of CL were at CMU: Steele and Fahlman. The others were Moon, Weinreb, Gabriel.


> hypothesize that this is reflected in the design of the language.

Common Lisp was originally mostly a simplified and modernised version of Lisp Machine Lisp. It was supposed to be 'cheaper' for users (industry, military, ...), when delivering software. Without the 'hardware dongle' of a Lisp Machine, which would cost a lot - both hardware and software.

One of the main purposes of its existence was to be a standard Lisp able to work on a wide variety of hardware - hardware which was less powerful. Thus the design in the early days was also driven by taking features away from what a Lisp Machine would provide. Less features, easier to implement, able to integrate into different environments.

For example Common Lisp provides type declarations. This was added for non-Lisp-Machines. The Lisp Machine compiler ignored type declarations. It did not use it. The CPU does runtime type checking/dispatching on a Lisp Machine. Always.

Everything fancy, which was difficult to implement on small machines, was removed. The result was CLtL1.

The assumption was that you could develop a Lisp based application (say, an expert system helping with jet turbine maintenance) on some platform of choice and then deliver it to the Airforce on some rugged PC, where it would be used in some airbase. People then thought, why not develop on the PC? Thus various implementations for PCs came up.

NASA was putting it on some embedded computer running million miles away from earth, controlling a spacecraft. There was really no limit to where one would have wanted it to be deployed... thus it ended up controlling your cleaning robot (Roomba)...


> I am the lead developer on Axiom which is a very large lisp project (about 1 million things of code) to do computer algebra. The help system and graphics were implemented in C but browsers did not exist at the time (1970s). These are being reimplemented in lisp using Firefox and the canvas facility.

> In the past I helped develop a product for building rule-based programs which was sold by IBM. It was entirely in lisp.

> I helped develop an expert system (FAME, a Finance and Marketing Expert) to price and sell IBM mainframe hardware. It was written entirely in lisp.

> I developed a language (KROPS) which was a symmetric representation of a knowledge language (KREP, Knowledge Representation) and a rule-based language (OPS5 A rule-based language). It was entirely in lisp.

> I developed a robot planning program to build and assemble objects from their computer-aided design descriptions (BOXER - A Design- to-Build system). It was entirely in lisp.

This sounds a bit like if he hasn't needed libraries yet, lisp probably doesn't need libraries.


> Programmers want familiar syntax and infix notation while Lisps want homoiconicity. It's never going to happen.

It was called Dylan, but then Apple canned the project.


> I'm amazed how the Common Lisp development environment with Slime and Quicklisp is so much better than anything else out there.

Now imagine the commercial ones.

https://franz.com/products/allegro-common-lisp/acl_ide.lhtml

http://basalgangster.macgui.com/RetroMacComputing/The_Long_V...


> Lisp was invented by the guy who coined the term AI, not for AI.

Lisp was designed for AI programming.

http://www-formal.stanford.edu/jmc/recursive/node1.html

> A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with a proposed system called the Advice Taker, whereby a machine could be instructed to handle declarative as well as imperative sentences and could exhibit ``common sense'' in carrying out its instructions. The original proposal [1] for the Advice Taker was made in November 1958. The main requirement was a programming system for manipulating expressions representing formalized declarative and imperative sentences so that the Advice Taker system could make deductions.

So it was designed for the 'Advice Talker'. The AI domains were natural language processing and common sense reasoning.


> Most lisp machines were specifically targeted at developers

A bunch of Lisp Machines were directed at production, not developers. From Symbolics there were special models for that and also smaller "delivery system" versions of the operating system.

For example American Express had a bunch of Lisp Machines as checking complex credit card transaction, Lucent had Lisp Machine nodes in a network switch, NASA had Lisp Machines monitoring video camera streams of rockets from Space Shuttle launches, Symbolics sold many graphics systems to TV studios, etc.

> while smalltalk at Xerox was more targeted at office productivity.

Is that true? Xerox had an office system running on the same hardware, but written in Mesa - unrelated to Smalltalk. Xerox had the CIA as a main customer for the Smalltalk machines, using an application called 'Analyst'...

https://ethw.org/Oral-History:Adele_Goldberg

'But our big commercial involvement was with the CIA.'

> Interestingly enough Xerox hired the BBN team that made lisp machines, and the Xerox star was made to run lisp as well.

BBN made a Lisp in the 60s, from where some developers went to Xerox in 1972/73. Before Lisp Machines existed. BBN Lisp was renamed Interlisp and was supported by both companies. Xerox developed Interlisp-D for Lisp Machines and BBN put Interlisp on an internal research computer.


> You tell me, you brought it up!

I talked about GNU Emacs.

> Emacs is for more than Lisp development, though.

Not Emacs, GNU Emacs. That's what I wrote.

> we haven't seen major, broad-based wins for Common Lisp, on the scale that we have for other languages.

Common Lisp tends to be used in very specialized areas. It's a complex language.

Though sometimes it has been used where you don't see it, but you may be affected. American Express runs a Lisp based system checking credit card transactions. Should be running for two decades or longer. Amazon was using Lisp to compute some stuff on their shopping pages. CIA and NSA use it to spy on us. Lots of aircrafts (Airbus & Boeing) and cars (Jaguar, Ford, ...) were designed with Lisp-based CAD systems. NASA uses it for checking software correctness. Chip makers like AMD have used it to check processor designs for correct operations. There are many of those applications. Google's flight search engine has its core written in Lisp. Dwave wrote the software for their quantum processor in Lisp. There is a broadband internet of satellite company running Lisp on their antennas. Parts of the precursor software of Apple's Siri were written in Lisp. That's the stuff what it was originally was designed for...


> writing one OS in Lisp seems like a fairly unrealistic, slightly weird dream.

It's not - it actually was done[1]. There were OSes written in other high-level languages, like Smalltalk and Forth (which may not be "high-level", but at least it's higher level than C).

[1] http://en.wikipedia.org/wiki/Lisp_machine


> You have to have your head pretty far up your own ass to not see how much Common Lisp sucks. It's a language designed by committee, and it looks like it.

The original design was by four people. Common Lisp does not look worse or better than the Lisp's it was designed to improve on (Maclisp, Lisp Machine Lisp, NIL, ...) and the Lisps it made mostly obsolete (Portable Standard Lisp, Interlisp, ...).


> 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...


> Lisp use at first was restricted only to Academics

Lisp was spreading in the 60s to everyone who had a mainframe or mini computer. In the 70s first applications were built and companies like BBN, Xerox, IBM started to use Lisp. In the 80s Common Lisp was standardized upon a DARPA initiative to have a single Lisp language for the applications they were prototyping or deploying in the military. The military got huge applications for battle management, battle simulation&training (like SIMNET), planning, design & construction developed by contractors.

> it was so inefficient that you even required a very special(and expensive) purpose computer to run it

Lisp developers required a personal workstation and thus they co-invented them in the 70s. Machines with 1 Megabyte or more RAM for a single user. Machines where one could develop and work with programs like Macsyma, an early computer algebra system widely used in maths and physics.

> creating compilation pathways and so on

efficient execution of Lisp on non-special-purpose hardware was available in the 70s for example with Maclisp and in the 80s with Common Lisp.


> But that's just me.

No, it's not just you. Most Lisper thought that way. But the target weren't Lisp developers, it were C++/Apple Pascal developers. Basically similar purposes which Java was designed for: general 'mainstream' application/OS developers from mobile systems upwards. Management did not think that an s-expression-based syntax would be a success with developers used to use Pascal, C and C++.

> The IDE was really written in CL? Huh. I'd have thought that they would have gone the self-hosting route.

The new language was emerging and targeting the new hardware platforms.

You can think of it that it was similar with the Playstation games from Naughty Dog - for example Crash Bandicoot. The platform for the software was the Game Object Oriented Lisp on Playstation and the development environment were desktop computers running and IDE based on Allegro Common Lisp.

The dev environment were Macs. The developers were often Lisper and Apple bought the technology and the people. Even the later product version development environment 'Newton Toolkit' was originally developed in Common Lisp.

There were stranger things then. I once saw a version of Microsoft Word for Macintosh on a developer CD, written in Common Lisp. It was a relatively sophisticated User Interface mockup. It looked like the real MS Word for Mac, but lacked much of the functionality. But when you looked at the application file on the bit level, you could see that it was a Macintosh Common Lisp runtime/image. It was written by or for Microsoft. Long ago.


>I sometimes wonder why Lisp has not been more popular in the technology industry. Is it the lack of sufficient marketing?

In the late 70s, cheap computers (IMSAI, Altair) were almost unable to run Lisp for useful purposes. Too little memory.

Minicomputers (DEC PDP /etc) were able to run full Lisp implementations but it worked slower than using other languages.

Lisp Machines (MIT CONS, etc) were able to run Lisp fast but those were dedicated, specialized hardware. And expensive.

Enter the late 80s; Lisp ran great on personal computers but implementations AFAIK were mostly commercial, so reserved to big budgets. I'd say Common Lisp did have success on the industry, used for many things (3D, CAD/CAM, simulation, etc).

Meanwhile the rest of the world was on Pascal, C, and C++.

Nowadays things are different, there are many Common Lisp implementations that are free and are good (SBCL and CCL, for example, are lightning fast).

But additionally, it is difficult to understand what advantages would Lisp bring. For this, the developer would have to grok (completely understand) the enormous value of metaprogramming, and to understand as well how flexible is CLOS.


> because Lisp-like languages seem like they would be pretty cool for GUIs.

There was also Curl (a language, not the Net lib) some years ago. Tim Berners-Lee was involved in the company as an advisor or something. Around the 2000s, IIRC. Lisp-like in the sense that nested expressions were the main syntax. Had tried it briefly then. Was mainly for web apps though. Acquired later, maybe, by a Japanese company.

https://en.m.wikipedia.org/wiki/Curl_(programming_language)

It got a 2008 InfoWorld award in the RIA category.


>A dialect like Common Lisp was designed such that applications in the large are possible.

Interesting. Can you mention some of the Lisp language or other features that help with that?


> There were plenty of attempts to make end users program things. LISP machines and ...

I would say Lisp-machines were designed for professional programmers not end-users. First of all they were so expensive that only Bill Gates could afford them :-)

next

Legal | privacy