7 ms·
Lisp: A Cult I Almost Joined (2005)
- bmh100 12y agoThe point the author brings up about the lack of Lisp modules in 2005 is an interesting one and reminds me of the article "Why Perl Didn't Win", posted within the last few days. Browsing clojars.org, a Clojure repository, reveals that there are 11,435 libraries at the time of my writing. That is a great improvement, vastly exceeding the author's positive example of Python's 249 modules at the time. PyPI, a Python repository, currently lists 54,060, so clearly Python is still much more popular than Clojure. Yet, the 11K Clojure libraries seems to be a direct contradiction to his statement: "And lisp modules? Well, every part of the code can modify every other part. You can write a whole new grammar if you're so inclined. None of this helps with the goal of downloading a random package and easily calling whatever you want from it with minimal hassle. There's just a fundamental conflict between easy modularity on the one hand, which requires lots of restrictions and boring standard forms, and fluid modifiability on the other." The Clojure community has made great strides in promoting the adoption of a Lisp among programmers and enterprises.
- MrBuddyCasino 12y agoIt certainly helps that it is idiomatic to use Java libs in Clojure, and the Maven repository has 800k+ artifacts.
- bmh100 12y agoNo doubt. The ability to create a Clojure wrapper around an existing Java library makes bootstrapping a "new" library much faster, while also providing a bridge to Java programmers.
- shassard 12y agoQuicklisp (http://quicklisp.org/ http://quicklisp.org/) is a great resource for Common Lisp libraries. While it doesn't have the huge volume of libraries that's available for Clojure, it's a quality, curated, easy to use source. Combining Quicklisp and SBCL give you a great toolset for getting started with Common Lisp development.
- TeMPOraL 12y agoI agree. Common Lisp libraries also tend to be high quality and I'm sometimes amazed by the forethought and attention to details some authors have. Though I sometimes wish there were more libraries.
- austinz 12y agoI think it also helps that, in practice, there seems to be a common philosophy (at least among the Clojurists I've talked to) that macros should be used only when absolutely necessary. Because of this, the sort of unrestrained, ubiquitous code rewriting that the author mentions is rare.
- bmh100 12y agoYes, and a lot of that can also be traced back to the built-in macros that Clojure provides and encourages. Macros like apply, ->, ->>, partial, memoize, and even . just make it so much rarer that a developer needs to write a macro outside of DSL development. It's wonderful.
- bmh100 12y agoCould someone who downvoted this post please offer feedback? I do not understand why this comment did not contribute to the discussion.
- tim333 12y agoI didn't downvote but as someone who uses Python and doesn't know Clojure, phrases like "Macros like apply, ->, ->>, partial, memoize, and even . just make it so much rarer that a developer needs to write a macro" make me glad I don't have to muck about with that stuff.(?)
- dragonwriter 12y ago> I think it also helps that, in practice, there seems to be a common philosophy (at least among the Clojurists I've talked to) that macros should be used only when absolutely necessary. Sure. One thing about that is that the DRY principle -- and the expanded form, "don't repeat anyone, ever" -- has been a popular mantra throughout the programming community for a while (and even before that particular form, emphasis on reusable code was common), and Clojure has really come into its own in the time when that that philosophy has been strong. One of the great things about macros is that they enable reusable solutions to broader problems than you can effectively address in library code in many languages; a corollary of which is that most programming in a language with macros should need neither to define new macros nor to use the repetitive boilerplate code that macros enable reusable alternatives to.
- TeMPOraL 12y ago> If, on appropriate occasions, the members tell, enjoy, trade, and/or devise transgressively funny jokes about their denomination, it's a church. > If such jokes reliably meet with stifling social disapproval, it's a cult. An interesting definition I totally disagree with. It's the social disapproval that turned any of us into geeks, and guess what - I personally like it that way. Society approves mostly things that are pointless or boring anyway. An example: why do you think HN guidelines advocate against posting mainstream news?
- dizzystar 12y agoIf it's any comfort, the Clojurists I've been around have no problems telling jokes about the language or lisp in general. I guess they (we) enjoy openly acknowledging the perceived church / cult and gladly pick on the notion because the whole language-superiority debate is silly.
- coding4all 12y agoI find that most Clojurist have mastered at least one or two languages before learning Clojure, so that might be the reason.
- rfrey 12y agoBut the quoted bit means social disapproval from the cult/church - not from the outsiders. Geeks have always made fun of themselves.
- canjobear 12y agoThe point isn't about the jokes being rejected by society at large--I agree with you that that is probably a good sign. Rather the author is describing a situation where _within_ a community there is no tolerance for self-deprecating jokes poking fun at the difference between the community and other communities. Which is definitely a bad sign.
- sz4kerto 12y agoCached version: http://webcache.googleusercontent.com/search?q=cache:YnwCUmQd2L0J:fluff.info/blog/arch/00000127.htm&strip=1 http://webcache.googleusercontent.com/search?q=cache:YnwCUmQ...
- mod 12y agoOlder discussion: https://news.ycombinator.com/item?id=2367746 https://news.ycombinator.com/item?id=2367746
- coding4all 12y agoI wouldn't call it a cult. I find a lot of people who write CL / SBCL don't care much for Clojure. That was a few years ago though, so maybe this has changed?
- tumba 12y ago> For the non-programmers among you, here's the executive summary of how to program: 1. Surf the Net for packages by other people that do what you need to get done. 2. Repeat step one until you've gathered everything you need. 3. Write a program that calls the modules you've collected. This is a great method, because step three is potentially very brief, provided there are enough modules out there. This is true of some programming, but not all. If I need to do some quick data munging, or build a CRUD application, lisp may not provide any benefits over another language in which I am equally skilled. But if I am programming in a complicated domain or doing exploratory work, I would rather be using lisp than any other language.
- fchollet 12y ago> When I was in Morocco, several different people told me that Neil Armstrong converted to Islam after seeing the Earth, and that Cat Stevens converted. At first, this was OK, but soon, after the third person or so mentioned this pair, I got to wondering, maybe they're the only ones. In case anybody else wondered about this: Neil's Armstrong purported conversion is a hoax that has its origins in an Indonesian pop song from the 80s (Indonesia is a major muslim country). [1] [1] https://en.wikipedia.org/wiki/Neil_Armstrong https://en.wikipedia.org/wiki/Neil_Armstrong
- soup10 12y agoI tried out Lisp sometime around 2009 or so and immediately realized it was a toy language. Interesting for it's unique approach to structuring code, but ultimately designed for a certain kind of mathematical elegance over practical functionality. It grew especially popular with ai researchers, because they were searching for beautiful answers to the messy problem of intelligence, and didn't think performance was as critical as ideas. And it grew fans here and there for certain low-performance applications because it was one of the first languages with productivity enhancing features like garbage collection. Lisp may have been "mind blowing" before untyped scripting languages were a dime a dozen, but these days the only thing mind-blowing about it is that people still use it when there are much better alternatives.
- NhanH 12y agoMay I ask which kind of performance bottleneck did you see in Lisp? And do you mind expanding on which characteristics make you immediately think Lisp is a toy language?
- stolio 12y agoIt sounds like Racket. The IDE feels a little toy-like and it's a very academic language, though in a good way. The stock IDE does not communicate a feeling of raw power. (edit: I stand corrected, it was Common Lisp)
- bmh100 12y agoWhich Lisp did you use? Common Lisp / SBCL?