The myth of Lisp superiority
twopotscreamer.com
twopotscreamer.com
"Even C++ offers nearly everything that LISP does at this point; other than live code tree modification through macros, which aren’t anywhere near as powerful as C++’s algorithm and container library IMO, LISP has even lost the expression gap to C++ at this point."
As someone who has professionally been a C++ programmer and a lisp programmer, all I can do is laugh. The reason people like lisp is the basically infinitely mutable syntax we can build to fit specific target domains. It's still a radically different approach that most languages don't really touch. The only places I really see the "let's hack as a sub-language not as a framework" approach routinely is in the Ruby and Io communities.
Every C++ templating approach is a trivial macro hack. And macros get nearly all the benefits of C++ templates (including static analysis).
As for why lisp has been left behind in favor of other languages? Well, it's pretty much the same reason as why few people in America wear bowler hats these days, they're out of fashion. That's it. It's history, it's fashion, there isn't any good technical reason why! Most current lisp implementations are very competitive with their peers in most arenas. There are some social issues (the lisp communities are very fragmented, which makes it difficult for beginners to get traction).
It is true that stripped-down languages with almost no runtime features (e.g., C, C++ when you ignore dynamic_cast, etc) can produce "faster" code than lisp (meaning "does less with more lines of code, but executes quickly on modern hardware"), and that's good for them. But it's not like some kind of special privledge, _everyone_ uses C to bind into their language and make it fast. It's the native underpinnings of most modern operating systems, so this shouldn't be shocking.
Quoting again: "LISP is dead. If you really need a LISP, move to a modern LISP such as Clojure or Scala, or a modern near-lisp like Ruby. You’ll learn a lot about what LISP had kept from you."
I get the strong impression that this author doesn't like lisp (he probably knows it to some degree, but not well enough to really grok it). He freely and interchangeably mentions Scala, Ruby and Clojure as "replacements" to lisp. Clojure aside, mentioning Scala and Ruby in this way is ludicrous, and betrays a sore lack of insight into what lisp is and what the current state of lisp technology is. Anyone who looks at PLT Scheme and SBCL and doesn't see a fairly modern and powerful system (in PLT Scheme's case with some practical and interesting work on contract-based programming), then they're deliberately not looking.
But wait, I'm not understanding what you're trying to say. Bowler hats are a fashion, yes. But if I do wear a bowler hat, other than getting ridiculed, there is no effect on my life. I'm not suddenly three times smarter or more effective at work. If bowler hats made you three times smarter, even if they were out of fashion, I'm sure plenty of people would wear them. If LISP doesn't make me three times as efficient as $LANGUAGE, then, yes, it's merely a matter of fashion that it is not more popular -- but maybe it's also no big deal. Is that the point you were trying to make? Because if it isn't, blaming "fashion" is not advancing your case.
I do not think lisp "makes you smarter" in the sense that it's going to kick your IQ up notches. But I think Lisp's approach to software systems is a "still-clear pond" approach where you can see all the way down to the guts of the system, whereas a system like a Java runtime is more of a "murky lake."
And, like I said, linguistically-oriented programming is something everyone should learn. It is a fascinating approach to programming that will frequently produce new insights into what existing language designers did and why (because a huge number of them know Lisp or Smalltalk, which are very close to each other on the power and syntactic flexibility spectrum).
we have the need to create lots of web forms quickly for work (lots and lots). we used django which was a god-send in this regard, but it was still too time consuming (think deployment, styling, SQL databases). so taking a hint from the html chapter in the ansi book we wrote a system in which you define fields within sections within pages to the point where even the non-programmers can now do it ie:
(defpage page3) (defsection section-x) (definputfield blah :type text :section section-x :page page3)
this is enough to put the field up and tie it into storage (it uses page.section.fieldname as key which could be an issue if you want to move stuff around). you can also do this in the (production) REPL, and the field will show up right away (with an exception if you dup something). we don't do major releases this way, but if a researcher wants something right away and he/she is a big shot then it has to be done now. well, there you go. it's done as fast as we can type it in.
there's your example, and i'm sure there are more. try that with c++.
It's hard to distinguish the content of this from 1000's of deliberate Lisp trolls.
Challenging the conventional wisdom is fine, but please distinguish yourself from the trollers by offering something substantive like examples.
Since when did quality and functionality have anything to do with mass appeal? Anyone here can name multiple excellent technologies that never gained enough traction to reach the masses. Many of us still use them, public be damned.
There may be valid reasons why Lisp is not superior. Lack of mass adoption is not one of them.