Earlier quoted context omitted.
I really don't find that lisp, at least common lisp, is particularly concise. Consider lambda functions, one of those things that lisp is particularly praised for; common lisp: (lambda (x) (+ x 1)) C#3 : x=> x + 1 ruby : { |x| x + 1 } python : lambda x: x + 1 Haskell : \x -> x + 1 Just in terms of character count, CL is the longest of the lot. No, the problem with trying to get a lisp under your belt has alredy been…
> - choosing an implementation is a research project (clisp? sbcl? allegro?) - documentation is weaker - libraries are harder to find and install (ASDF vs Rubygems, Python eggs, etc.) - emacs/slime is an investment to learn - examples are few and far between - the language itself (the words, not the punctuation) is inelegant (mapcar, setq, cdadr) - Exactly. Last year I started reading about Lisp etc, and wanted to pl…
Why Lisp Is Unpopular
151–159 of 159 posts
Re: Why Lisp Is Unpopular
#152The power of a programming language is proportional to its capability for innate abstraction. If that's true, it follows list-oriented languages are inherently inferior to their hashtable-oriented brethren. (These orientations are often misguidedly referred to as "functional" and "object-oriented" paradigms, which I find to be useless, over-overloaded terms.) Basically, with list-oriented langs the primary abstractio…
In those languages, everything is an object, that is everything construct you define, whether data or code stared as an object, a set a behaviors and properties. (Assuming it is fully OOP, unlike Java.)
In common lisp, everything is an object as well, with it's own set of properties and behaviors. Cons cells are basic, for example, but you can still add properties to them and define methods for them. Encapsulation is not enforced, but that's for what closures and packages are.
Lists are dominant in lisp for another reason: the language itself is represented in them, not just the data and the methods, but the pre-compiled language, so that you can use lisps meta-programming facilities to generate lisp code itself. In most other programming languages, the code is represented to the compiler as text and to use such meta-programming facilities would require string parsing. Macros aren't a 'hack' but an actual paradigm shift. Attempts to do the same thing in other languages have largely been very clumsy, witness C++ macros. (Template Haskell apparently has managed to do it properly though.) Nearly Lisp's entire syntax is for defining the structure of the code; everything else is done with operators, functions, and macros.
If languages like Java or Ruby were represented in hashmaps the same way that Lisp is represented by lists, they would probably be incomprehensible. if you were to attempt to use a structure to represent the language, it would probably end up being something of a tree format. Code, is naturally hierarchical, even class definitions, and if I were to do the same kind of thing that one does with Lisp in C++ or Java, I would end up using lists. So I don't think that this comparison is really correct.
(BTW, I love C. It's not deformed, it was designed like that to A- make it easy to implement and B- give the programmer as low a level access as he needed. You are meant to define your own data structures and implement them in an efficient way using algorithms that make sense for the usage. You are not confined to a preset, possibly inefficient implementation. This is a level of control not available in a lot of other languages which is why C is so commonly used to write interpreters and compilers for other programming languages. Those highly efficient Python hashtables are implemented in C (and maybe a bit of assembler))
Re: Why Lisp Is Unpopular
#153Earlier quoted context omitted.
> - choosing an implementation is a research project (clisp? sbcl? allegro?) - documentation is weaker - libraries are harder to find and install (ASDF vs Rubygems, Python eggs, etc.) - emacs/slime is an investment to learn - examples are few and far between - the language itself (the words, not the punctuation) is inelegant (mapcar, setq, cdadr) - Exactly. Last year I started reading about Lisp etc, and wanted to pl…
You can use CUSP (an Eclipse plugin which provides similar functionality to SLIME for EMACS), and the commercial impls have their own (admittedly EMACS-esque) IDEs. There's even a SLIME-derived plugin for vi! It really is worth the effort to learn EMACS, though. I'm unconvinced that installing lisp libraries is so very horrible; I've had far more trouble with python ones, myself.
Maybe it's because I don't normally use Eclipse.
If someone is interested in other alternatives, here's one: http://phil.nullable.eu/
- Phil's "ABLE" editor. I tried it too, but it didn't work too well on Windows (something about CLISP, iirc).
Re: Why Lisp Is Unpopular
#154Earlier quoted context omitted.
Unfortunately that is not really what people mean with "big system" - although I do agree with your point. It shows how nice it can be when you add on complexity. I really should get that book in paper form.
Yeah, but the bigger the system, the harder it is to create a non-IP protected, easily digestible example.
To find out for myself, I plan on one day doing something large and messy with arc. I pick arc cause I figure in the eons it will be before I get around to it, arc will still be around (s/arc/a lisp/)
Re: Why Lisp Is Unpopular
#155How to make Lisp popular (or as popular as Lisp will ever get): 1) SBCL working very well on the big three PC platforms. 2) Bindings + easy installation for popular libraries. 3) Education (pg's articles, everything on planet.lisp.org) 4) Solid debugging, perhaps with things like breakpoints. There is much activity on all 4 problem items that I identified above, so Lisp IS getting more popular. I don't know if progra…
Solid debugging, perhaps with things like breakpoints I was actually complaining here about this a few days ago. What activity on this item are you referring to? Breakpoints as such are probably superfluous, since it's so easy to insert "(break)". But I wish I could single-step through s-expressions and have them highlighted in the editor, and I wish there were an easier way to inspect state. Actually it doesn't seem…
http://www.sbcl.org/manual/Debugger-Policy-Control.html#Debu...
Re: Why Lisp Is Unpopular
#156Earlier quoted context omitted.
Noise != usage. Don't confuse attention with popularity. I think about the language and post comments about it on forums and read great Lisp code (e.g. Arc), but I'd never actually use it for anything non-trivial. Why? Because I write web apps and existing Lisps don't make that easier or more fun. The only (!) thing Lisp has to do is efficiently and absolutely abstract away XML, CSS, and JavaScript. No Lisp is going…
I can't help but think that people who want to replace HTML+CSS+JS haven't written a widely used web application before, because the idea seems so absurdly impractical and would become such an incredible time sink.
HTML, on the other hand, is easy to abstract. I'm glad I did it in Weblocks, it saves me an enormous amount of time. ASP.NET uses this strategy (use the DataGrid control for a while, and then try coding without it).
JS is somewhere in the middle.
Re: Why Lisp Is Unpopular
#157Earlier quoted context omitted.
Solid debugging, perhaps with things like breakpoints I was actually complaining here about this a few days ago. What activity on this item are you referring to? Breakpoints as such are probably superfluous, since it's so easy to insert "(break)". But I wish I could single-step through s-expressions and have them highlighted in the editor, and I wish there were an easier way to inspect state. Actually it doesn't seem…
You can already single-step and highlight the piece of code you're stepping (assuming you use Slime/sldb). You just need to proclaim a debug level 3 before compiling your software. http://www.sbcl.org/manual/Debugger-Policy-Control.html#Debu...
Edit: I seem to recall sldb works better with SBCL (which I'm not using). Perhaps that's my problem?
Re: Why Lisp Is Unpopular
#158I think there are various reasons why Lisp has the level of popularity that it does (I won't say it is categorically unpopular). Unfamiliar syntax, real or perceived attitudes of the community, number of primitives, the divergent nature of the language, industrial history, industrial support, editor support, academic support, perceived performance, programming trends and other things have all affected the adoption of…
That seems like a good list of reasons. I would add perhaps the sheer volume of code on the net in other more popular languages, compared to Lisp. I disagree with your conclusion that Lisp is somehow going to take off though. After being around for what seems like forever, its still a (and I will say it) categorically unpopular language. If I were a betting man, I'd bet on JavaScript.
Re: Why Lisp Is Unpopular
#159http://commons.wikimedia.org/wiki/File:PAVE_PAWS_Radar_Clear...