5 ms·
The future of Lisp
- crnixon 15y agoI agree with the author that Clojure is great, but I think he overly dismisses Scheme. There's not a standard library for Scheme as a whole, but Scheme is almost an idea, not a language. You have to look at the implementations, and Racket (http://racket-lang.org/ http://racket-lang.org/) has a great library. I'm always surprised that PLT Scheme/Racket hasn't caught on more.
- sethg 15y agoAlso, the whole SRFI project (http://srfi.schemers.org/final-srfis.html http://srfi.schemers.org/final-srfis.html) is an attempt to create APIs that are not part of the core language, but are common across implementations that choose to support them.
- aerique 15y agoHm, I don't really like the tone of that article. He made some good points but just brushing Scheme and Common Lisp (CL) aside as "dead" made it hard to read the rest of article objectively. I'm not into Scheme but while CL isn't as popular as Python or Ruby there's been an enthusiastic and ever growing community for at least the last 10 years. One of the biggest objections against CL, library support, is getting less and less of a problem by the month. Also don't forget that Clojure's Rich Hickey donated to the SBCL crowdfunding drive[1]. I'm still waiting for Larry Wall to chip in. [1] http://www.indiegogo.com/SBCL-Threading-Improvements-1 http://www.indiegogo.com/SBCL-Threading-Improvements-1
- colomon 15y agoWhy Larry?
- pchristensen 15y ago"Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in." http://en.wikiquote.org/wiki/Larry_Wall http://en.wikiquote.org/wiki/Larry_Wall
- mark_l_watson 15y agoA good read, but it is opinionated in an opposite direction to my own experience. Almost half of my consulting work in the last 18 months has used Clojure. Based on the quality of projects written in Clojure and some very good decisions that Rich made, Clojure's developers' market share will continue to grow. That said, Common Lisp is a great platform and for some applications, Scheme is a fine language choice. Common Lisp has a high learning curve and many developers will not want to invest the resources to master it. About 10% of my consulting work in the last 10 years or so has used Common Lisp and before that I used some form of Lisp for many projects at SAIC starting in the early 1980s. Although the Scheme library situation is getting better, I personally use Scheme for my own small projects that tend to be all new code, often just to think about a problem. Gambit-C with its custom Emacs interface is probably my favorite coding/experimenting environment. I would say that the future of Lisp is looking good.
- arethuza 15y agoI did think he was a bit harsh on CL - it may be the ultimate "big ball of mud" programming environment but there are some truly lovely parts to it (CLOS/MOP and the loop macro being my favourites). "APL is like a beautiful diamond - flawless, beautifully symmetrical. But you can't add anything to it. If you try to glue on another diamond, you don't get a bigger diamond. Lisp is like a ball of mud. Add more and it's still a ball of mud - it still looks like Lisp." http://en.wikipedia.org/wiki/Big_ball_of_mud http://en.wikipedia.org/wiki/Big_ball_of_mud
- numeromancer 15y agoCLOS/MOP and the loop macro being my favourites I agree with CLOS & MOP, but the loop macro is more like a pair of scissors that has been stuck into the Big Ball of Mud; it doesn't fit in with anything else, and makes it harder to use it for what it is really good for.
- arethuza 15y agoYeah - I appreciate that the loop macro is a bit like a wee looping DSL that has been bolted onto Lisp!
- pwpwp 15y agoJava has no libraries either: http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html http://java.sun.com/docs/books/jls/third_edition/html/j3TOC....
- deleted 15y ago[deleted]
- numeromancer 15y agoAnd there's no sane interoperability from an algorithmic language like Lisp to a processor-driven language like C or a spaghetti-driven language like C++. What is sane interoperability? How can a processor "drive" a language? And spaghetti-driven? WTF? This must be the result of the "release early and often" habit that is often encouraged here. He would probably do better to write in detail about something he has done or is doing, rather than write vaguely about what he has been thinking about.
- arethuza 15y agoI spent a lot of time bolting strange things onto Common Lisp systems in the early '90s through a foreign function interface and I thought it was pretty straightforward. [Note: Strange things being C++ simulations generated by Lisp code directly from systems of nth order ODEs. Other non-Lisp types also wanted to use the simulations, which is why they were in C++].
- numeromancer 15y agoThat sounds like the makings of a good essay :)
- arethuza 15y agoWhat was much more fun was the fact that we also had NeWS based user interfaces connected to our Lisp applications by some glue C/RPC code. Developing in Lisp, C and PostScript on the same codebase was a lot of fun (PostScript being surprisingly Lispish - which I would never have suspected had I not been developing in both at the same time for a couple of years.) I therefore got quite excited (in an RPN kind of way) by the reference to Forth in the "Let Over Lambda" book featuring on HN today! :-)
- neutronicus 15y agoI actually find Lisp to be head and shoulders above Perl/Python/Ruby at interfacing with C.
- deleted 15y ago
- serichsen 15y agoIt looks like half-serious, half-trolling to me. He (or his troll persona) seems to have written no line of Scheme or Common Lisp ever, and he has obviously no contact to the respective communities. I can imagine that he has a point with Nu and Cocoa, but I have never worked in that ecosphere, so I cannot judge that. His comments about REPLs look completely lunatic. Scheme and Lisp practically _invented_ the interactive REPL, and the parenthesis-based syntax makes the implementation of a REPL almost trivial (where does a unit of computation end in Python?). The claim "The s-expressions inherent in Lisp simply won't allow for that." is just bullshit. So, dear Steven, talk about Clojure, but don't talk so dismissively about things you have no idea of.
- deleted 15y ago[deleted]
- exDM69 15y agoThis was not a very well written article. It's full of opinions that don't come with good reasoning. It completely omits popular flavors of Lisp, like Racket. And it also shows a hint of critiqueless fanboy-ism with Clojure, when he goes on rambling about how writing Cocoa with Nu is a mess when using Java libraries with Clojure is almost just as bad (or someone has already written a wrapper layer). He also likes to bash C++ and Common Lisp while not really giving good reasons why - I guess it's popular to say bad things about C++/Common Lisp/Java/COBOL/any language with an ANSI or ISO standard. Not to mention that it doesn't have any insight about the future of Lisp - apart from the fact that the author thinks that Clojure is the ultimate Lisp which is his own opinion.
- deleted 15y ago[deleted]
- jjtheblunt 15y agoHorrible typography, too: faint grey "smoothed" (blurred) font on white.
- pavelludiq 15y agoInsulting Perl helped Python and Ruby, but I doubt that insulting Common Lisp and Scheme will help Clojure. If the Clojure community thinks that its better to attract more Ruby and Java programmers, and alienate other lispers, please, keep producing ignorant crap like this. Claiming Common Lisp is dead and comparing it to C++? Why should anybody listen to somebody’s extremely narrow minded opinion on THE FUTURE OF LISP, when that person has shown that he knows NOTHING about lisps past and present. Mr. Fogus, you know much better that to post such ignorance to Hacker News. Keep Clojure awesome, don't let the fanboys spread FUD. Inter-dialect respect, yaw! :)
- swannodette 15y agoBeing overly defensive about your favorite programming language is also not productive. This just one guy's opinion not some "community". No programming language is beyond criticism (Clojure has plenty of warts), and certainly the mainstream ones are positively filled with teeth-grinding flaws - otherwise you wouldn't see such active work and interest around new programming languages.
- pavelludiq 15y agoI love most lisps I’ve had the pleasure to study. When clojure prospers, I’m happy. When individuals express such opinions clojure does not prosper, because the rest of the otherwise excellent community now has to explain that not all clojure programmers are ignorant fanboys, the same way Common Lisp programmers now have to explain that it's not a dead language that's like C++ with more parenthesis, and scheme isn't all just about teaching, and yes, there are libraries we can use. Its hard enough to use lisp, why make it harder? No lisp dialect needs to push others down in order to prosper, were better than that.
- oconnore 15y agoCriticism is cool, and even useful! "X is dead" is not.
- sbt 15y agoI think the comparison to C++ is apt. Both languages are sensible tools for experts, but unfortunately very complex. In C++, this is naturally due to backward compatibility with C. But in CL, it's the result of design by committee. Clojure is a great lisp dialect, but if you had the resources to write a new runtime, you could probably do better.
- lispm 15y agoI don't think he talks about Lisp. He seems to talk about another scripting language like Ruby or Python on the JVM or a compiled static language like Go or something else. Maybe.
- pnathan 15y agoI don't think this is a reasonable article. Among other things, he offhandedly dismisses Common Lisp. Common Lisp does have at least one implementation that is pretty Mac oriented. Clozure I believe, but don't quote me on that. He is right that the JVM library set has helped Clojure. I hope to see a Common Lisp port to .NET one day. One thing this world doesn't need - IMO - is another Lisp trying to be an industrial standard. If Common Lisp by itself doesn't cut it, DEFMACRO your way to what would cut it. If it requires compiler-level modifications, start working on contributions to the best compiler in the area you are working in (I think SBCL is the premier CL implementation, and should be centralized on, but that's just my opinion). Please don't write another Lisp, helping to fragment the market even further. (this is my primary beef with Clojure, too. :-) )
- sedachv 15y agoClozure (http://ccl.clozure.com/ http://ccl.clozure.com/) is good at being better than SBCL in some areas (like, its compiler is a lot simpler). But there's room for the current CL implementations. CLISP for example is the only Common Lisp implementation doing JIT compilation. ABCL deploys on the JVM. It would be nice to have a CL deploy to JavaScript. And really nice to have a new JITed implementation that takes ideas from LuaJIT. Don't forget the commercial CL implementations. Lispworks is pretty awesome. What's really needed is to treat Common Lisp as a platform like the JVM. And for that to happen the current Free Software system libraries (networking, I/O, threading, Quicklisp, ASDF, FFI) need to continue to be improved, and need to run well on all CL implementations.
- sdegutis 15y agoHey guys, pwpwp wins. Thanks for playing!
- sdegutis 15y agoI know, I'm just as surprised as you! I didn't even know anyone could win in blog post comments! But sure enough, he did.
- kunley 15y agoAuthor's dismissal of CL and Scheme stands opposite to the fact that most CLs as well as Racket have tons of libraries right away; plus the general tone in their communities is "Racket/SBCL/whatever is for the doers". That people speak from their experience. It would seem that the OA just repeats some heard opinions.
- syntaxfree 15y agoThis should be titled "The present state of Lisp", or better yet, "A review of current Lisp-like languages". Compare this with the classic "Good news, bad news", which wasn't about implementations, but about the more general societal dynamics (within the developer community) by which Lisp thrives or stalls.
- msbarnett 15y ago> This should be titled "The present state of Lisp", or better yet, "A review of current Lisp-like languages". "A review of my misunderstandings of, and obvious lack of experience with, current Lisp-like languages" would perhaps be even more accurate.
- deleted 15y ago[deleted]
- deleted 15y ago[deleted]
- sbt 15y agoI disagree with the author about the lack of market for a fast lisp, essentially a Go Lisp. Clojure's arguably greatest advantage, the JVM, is also a drawback. Think of how long it takes to start the JVM or how sluggish Eclipse is. I write Lisp primarily because it's the prettiest language and that it allows the greatest amount of freedom. What we need is a modern CL, inspired by modern dialects like Clojure and Arc, but with design decisions that allow for high performance, e.g. dynamic binding and static type inference. Some have pointed out that solid module support is also important for fast community growth. In other words, I'm arguing for a dialect that centers around the compiler, doing evaluation as a side-effect, perhaps through JIT compilation. The reason this has not been done, I believe, is not because it's impossibly hard (as some people have argued), but because it's a lot of work. Creating a necessary, good run-time from scratch is a large undertaking.
- swannodette 15y agoOn my machine the JVM takes less than 1 second to start. Eclipse felt slow in 2004. Not so much in 2011. Clojure is high performance and has dynamic binding. Typed Racket has shown that you can get static type inference via macros. Which isn't to say the world doesn't need a Go Lisp. But Clojure certainly delivers (or could deliver) on all your points.
- metrobius 15y agoThe "java schools" movement JWZ warned about has come to its fruition. Worse is better, indeed
- deleted 15y ago[deleted]
- stray 15y agoSteven Degutis is apparently unaware of Clozure Common Lisp which makes Mac development easier and more fun. Or Embedded Common Lisp which makes iOS development easier and more fun. Neither CCL nor ECL seem any deader than usual :-)
- sdegutis 15y agoOr is he? ;)