3 ms·
>Lisp didn't win because it used to cost money to get a good implementation, and there was no company throwing tons of marketing at it. This was one of the rea
by flavio81 9y ago
>Lisp didn't win because it used to cost money to get a good implementation, and there was no company throwing tons of marketing at it.
This was one of the reasons.
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.
- mamon 9y agoAlso, metaprogramming is no longer exclusive to Lisp, other languages are adding advanced features all the time, so there's fewer reasons to move to Lisp.
- flavio81 9y ago>Also, metaprogramming is no longer exclusive to Lisp, other languages are adding advanced features all the time, so there's fewer reasons to move to Lisp. You'll see many people in such languages say things as "please don't use macros", "metaprogramming makes things difficult", "metaprogramming is hard", "macros make the code hard to read" and so on. Metaprogramming in all other languages is usually difficult to implement OR is limited to text substitution (example: C), which makes them a mess! Languages with true macros mean the code gets transformed to an AST first; your macro needs to transform this AST. Thus you need to learn a whole host of functions/methods/classes and to learn the structure of this AST. While in Lisp, macros are written using plain regular Lisp. There is almost nothing new to learn, really. This is because the language is formed of s-expressions, which are really easy to manipulate. So doing metaprogramming is almost no more difficult than writing a regular function. In Lisp, metaprogramming is not an advanced topic; quite the opposite, is a beginners' topic. If such "other languages" wanted to make metaprogramming easy, then the language would have to be written in s-expressions. Which means the language would probably be labeled as a "Lisp dialect", or as a "Lisp-like language." >other languages are adding advanced features all the time Yes, but in Lisp you can add them yourself, you don't need to wait for Google or Oracle or your Benevolent-dictator-for-life to approve the features you need, and don't need to wait for the next version of the compiler.
- kamaal 9y agoMost language have token meta programming features. Which most of the times are unusable. Things like C macros and source filters break all the time, and are largely useless for things apart from Global variable declarations. So sorry, most languages don't have the features lisp has. Not even remotely close.
- deleted 9y ago[deleted]
- taeric 9y agoThis is a thorough version of what I was saying, thanks for expanding. It would actually be neat to see an even more expanded version of the history. If you have a solid link, I'd love to read it. And I agree that things are different nowadays. My main point is that this seems pretty compelling evidence to me. But, what it isn't, is a testable hypothesis. (Is it?)