TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The myth of the Lisp genius

113 pointsby rsaarelmabout 14 years ago

18 comments

swannodetteabout 14 years ago
The myth is also bolstered by some of greatest book on the craft of programming ever written:<p><pre><code> * The Structure and Interpretation of Computer Programs * Paradigms of Artificial Intelligence * Art of the Metaobject Protocol * The Schemer Series (Little, Seasoned, Reasoned) * Essentials of Programming Languages * Lisp in Small Pieces </code></pre> Few programming languages have such an abundance of truly deep gems. One has to wonder if there's a reason.
评论 #2485304 未加载
评论 #2485264 未加载
评论 #2485199 未加载
评论 #2485693 未加载
评论 #2486057 未加载
评论 #2486171 未加载
oconnoreabout 14 years ago
[Meta] What is it about Lisp that makes it the subject of so many blog posts by people who almost certainly don't use it on a day to day basis? Is it some sort of insecurity about their current environment? Is it just a go to topic when you can't think of anything better? Why don't Haskell and Erlang attract the same attention, though both make big claims too (e.g. the type system makes programs correct, the actor model solves concurrency...)<p>Lisp has some unique features. Some people like them, and feel more productive using them. Other people don't, and prefer other languages. Can we move on now?
评论 #2485085 未加载
评论 #2485158 未加载
评论 #2485498 未加载
评论 #2486432 未加载
bambaxabout 14 years ago
&#62; <i>If one person does a job in half the time of another, maybe it can be attributed to their choice of programming languages. If one does it in 1% of the time of another, it’s probably a matter of talent.</i><p>This has been discussed many times (recently, somebody attributed a significant difference in productivity among programmers to... the ability to touch type).<p>Anyway, why different tools could <i>in principle</i> not be able to generate wildly different productivity outcomes?<p>"If you only have a hammer" can be reversed: <i>if you don't have a hammer</i>, then planting nails becomes incredibly difficult and takes a great amount of time (and ingenuity). A (not too practical-oriented) friend of mine once called me because he had spent an hour and a half trying to screw together a simple Ikea bookshelf (where the documentation said it could be done in less than 10 minutes). Turned out he was trying to screw the big bolts with pliers, and that's really hard.
评论 #2485457 未加载
评论 #2485141 未加载
zwiebackabout 14 years ago
I learned C and Lisp at exactly the same time, during a six month internship in 1988. I wrote a program to interpret hand sketched input on a tablet and turn it into a CAD model.<p>Before I started I only knew Basic and a little Fortran but the project I worked on required me to learn these two new languages, C for the low-level code that interfaced to a graphics tablet and the display driver, Lisp for the code that did some analysis on the lines and geometric shape drawn by the user.<p>I remember that on days I was working on the Lisp code I was happy and things seemed in harmony. On C days I often ended the day worried and headachy.<p>However, I couldn't have written the C portion in Lisp and writing the Lisp portion in C seemed unreasonable at the time as well.<p>What I take from the experience is that, to some extent, Lisp seems so much more productive is that it's typically chosen for programming tasks that don't deal with the ugliness and "hardness" of things like drivers or other low-level code. Not sure about GUIs but that's another area where programming becomes tedious and unfun, at least for me.<p>So, I don't think that Lisp is chosen for easier tasks but definitely for tasks where a solid grounding in CS and an ability to think abstractly is more important and there's some level of self-selection going on in those areas.
评论 #2485235 未加载
agentultraabout 14 years ago
I terribly dislike the hypothetical Lisp creature described by the Bipolar Lisp Programmer. It has little basis in reality and is probably the greatest straw-man argument I've seen. Though calling it an argument on my part is a kindness; it's more of a soap-box.<p>There are just genius programmers.<p>Lisp just happens to be a pretty good language.<p>The two are quite orthogonal to one another.
评论 #2485169 未加载
Jdabout 14 years ago
There definitely is something psychological as well as practical.<p>First, it is an issue of social dynamics. Very intelligent people frequently develop means by which they congregate without the less intelligent. Elite academic institutions facilitate this. The corporate world does not. As far as I can tell, lisp was the anti-blub when there was only blub, which allowed people to distinguish themselves from their peers -- a bit like going to Mensa meetings. This need seems to be less pronounced in the younger generation since there are other distinguishing languages in fairly common use.<p>Second, there is current research in neurobiology that indicates that the evolution of the brain (perhaps responding to its environment) has a naturally recursive structure and there is a growing field in the study of religion and philosophy that indicates that the growth of many systems has a fractal structure. In fact, Mandelbrot commented on this himself in response to Lovejoy's Great Chain of Being, although he never applied it to the correlative systems of the East, nor the syncretist projects of the Renaissance. These are frequently associated with genius for good reason. I suspect Lisp is popular because of how it "clicks" with something mentally.<p>Third, it is not quite clear how any of this relates back to programming as a craft. Philosophers can create their own discrete systems. Mathematicians, even if they don't deal well with other people, are, at least ostensibly, dealing with reality. Lispers, on the other hand, frequently must deal with real products for real people. Realistically this means that products must have significant scope, which almost invariably means more than one person working on them (actually products are rarely brilliant, though inventions may be). Which is to say, the "inventive" aspect, which may be contained and individual, is likely distinct from the practical aspect, which is collective. Obviously certain features (e.g. static typing, immediate comprehensibility when viewing method/class names, etc.) would seem to be preferable for large collaborative projects.<p>In conclusion, although it is said "real artists ship," it is often the case (e.g. Van Gogh, Schopenhauer) that real artists languish unacknowledged, their brilliance unappreciated in their own time. Art, when pursued for its own sake, rarely can deal with practical considerations -- which may good for the increase of knowledge generally or the field of computer science, but bad for business (insofar as business is making money right now).
mark_l_watsonabout 14 years ago
I think a lot of the Lisp hype stems from the development environment. I was too tired on a cross country flight last night to do customer work, but I did work on two of my own projects: one using Java, IntelliJ, and the excellent Play! framework (dynamically compiles code while editing - fairly agile environment) and later another project in Common Lisp. Using Emacs + Slime + Common Lisp, at least for what I was working on (NLP stuff), just felt great. Two nice environments, but the Lisp environment was just more comfortable.
algoshiftabout 14 years ago
I'll take this up a few notches and proclaim that almost all commonly used languages offer "high impedance" when it comes to the jump from thought to the expression of that thought for a machine to execute. This does not mean that they are not useful. It does mean that they are very primitive in many ways.<p>My life as a programmer and hardware designer started when I hand-built (wire wrapped) my first 8080-based computer way-back-when. Coding was done typing in hex codes into a hexadecimal keypad. Pretty amazing what you could write that way. Wanting more, I wrote a simple version of Forth. Wow! The productivity gain was impressive. Meanwhile, in College, we had to take FORTRAN. I hated it for some reason. Then my Physics professor offered an alternative: If you signed-up for his APL class you could get equivalent credit. Out went FORTRAN, in with APL. I would not learn C until three years later.<p>The fact that my real programming life started with exposure to the extremes represented by hand-coded hex, Forth and APL probably made me think very differently once I got to C and other languages. APL allows you to think and translate those thoughts and ideas to computer instructions with very little to distract you. The process of programming in C-like languages can be very mechanism oriented rather than problem oriented. By this I mean that you spend a log of time working on how to get the mechanics of the thing to work rather than focusing on the problem domain.<p>I learned and programmed in Lisp extensively later in life. It was the AutoCAD version of Lisp. I wrote all sort of tools and utilities for AutoCAD and can say that I enjoyed using the language. In terms of productivity and the ability to quickly express ideas, I think it did pretty well. Is it the realm of geniuses? Nothing is.
nickikabout 14 years ago
How about shouting up about the lisp this or that and just think of it as a normal programming language with some features that most programmers dont understand because the never learned them in school job.<p>These lisp geniuses are just programmer that grew up in a time where lisp was often used. So the are "just" programming geniuses.<p>Lisp does not make medicore programmers 10x better. Its just a very good programming language.<p>P.S. Back then it did make you much more productive because all other languages where way behind not like knowdays.
评论 #2485156 未加载
quinndupontabout 14 years ago
This article scares me. My mediocre programming skills will never be able to handle Lisp. Damn.
评论 #2485080 未加载
评论 #2485130 未加载
评论 #2485362 未加载
评论 #2486599 未加载
评论 #2485186 未加载
cprabout 14 years ago
Others (e.g., PG) have written more elegantly about this topic, but I really do think the key is the complete malleability that Lisp gives you: you're free to recast the problem in your own terms, using whatever DSL makes the most sense, and program in those higher-level forms.<p>Other languages force you into specific toolsets (objects, functions, etc.) and thwart pure expression of the problem.
评论 #2485088 未加载
abecedariusabout 14 years ago
"I think of Donald Knuth writing TeX in Pascal, and a very conservative least-common-denominator subset of Pascal at that. He may have been able to develop TeX faster using a more powerful language, but perhaps not much faster."<p>Knuth himself said he didn't think he could have written TeX without his literate programming tools, right? Which fits the pattern of Lispers extolling metaprogramming, though without their built-in support.<p>(Despite which, I don't in fact think Lisp makes you a genius, or even significantly better than with other popular languages -- though it was a different story back in the 80s when I learned it.)
pohlabout 14 years ago
<i>Lisp imposes almost no structure,</i><p>I'm a lisp novice, but doesn't it impose functional composition? And isn't that some mighty structure?
评论 #2485056 未加载
评论 #2485054 未加载
评论 #2485047 未加载
评论 #2485068 未加载
评论 #2486011 未加载
Tichyabout 14 years ago
Even if you are not a superprogrammer, if you work your way through SCIP you'll have greatly improved your skills. Maybe you can still become a superprogrammer.<p>I doubt it would be possible to become a superprogrammer by coding Java because you would be too busy trying to comply with all the specifications.
tom_babout 14 years ago
I suspect there may be something to the idea of Lisp supporting multiple paradigms of development. If (and this is a big if) you had enough exposure to the virtues of imperative, functional, and declarative programming styles and (second big if) enough "taste" to apply them in tandem with each other, that Lisp may have been one of the few places to leverage that as a skill.<p>But maybe a better question would be how often you would be better mixing those types of development in a single program.
lisperabout 14 years ago
<a href="http://rondam.blogspot.com/2011/04/is-it-lisp-or-is-it-me.html" rel="nofollow">http://rondam.blogspot.com/2011/04/is-it-lisp-or-is-it-me.ht...</a>
michaelochurchabout 14 years ago
Lisp is good, and every good programmer needs to be familiar with it-- if nothing else, in order to know what she's missing in other languages-- but I find that a lot of Lisp people start using Lisp (in a humorous reversal) as their own Blub. To them, it's Lisp-versus-Shit. I find this mentality incredibly short-sighted.<p>Strong, static typing is really great. It may not be appropriate to every problem, but it saves a lot of time in the long run. Just as every programmer ought to spend a year in Lisp, every programmer should spend a year in a Hindley-Milner static-typing language.<p>My feeling about dynamic typing is that it test-drives really well, but it's not great for a 6,000-mile road trip. Lisp definitely beats Haskell and Ocaml in the former regard, and for small projects, I don't think there's any language that can be faster. On the other hand, for a large project with 5 developers, experience has led me to conclude that I'd much rather be using a statically-typed language.
评论 #2485165 未加载
评论 #2485763 未加载
jprabout 14 years ago
I would like to say one thing to anyone who considers using Lisp:<p><i></i>It's perfectly okay to use Lisp just like you would use any other language.<i></i><p>It's better designed and more consistent than most others, and has good implementations. It makes sense to use Lisp as just a regular language without any wizardry.