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.

Lisp is Poetry and Most Programmers Want Prose (2006)

57 pointsby ananthrkalmost 15 years ago

6 comments

CodeMagealmost 15 years ago
Fascinating. This post illustrates precisely what -- in my opinion -- is the attitude that makes someone a Blub programmer. That's what Paul Graham was originally talking about: people who learn and develop their skills as programmers up to a certain point and then say "That's enough, I'm comfortable."<p>Don't get me wrong, you can get to be a <i>damn good</i> Blub programmer. You can also work at an international company, headquartered in US, without being skilled enough at English to appreciate Shakespeare's work; or, for that matter, loathe it, since you need the same level of proficiency.<p>I do believe that you'll never get to enjoy English to the fullest, if you don't explore its poetic reaches. In words of Wilhelm von Humboldt:<p><i>The diversity of languages is not a diversity of signs and sounds but a diversity of views of the world.</i><p>I believe that the same applies to programming languages. Yes, you can be really good with just Java. But just by learning C# on the side, you can gain valuable insights without stepping too far from your comfort zone. Learning Lisp, Self, Python and Factor, to name a few, will give you whole new worldviews, make you think differently. You don't really need that stuff to make software (or money). But it can make you a hell of a lot better at it and, more importantly, it can make you enjoy it more.
评论 #1392496 未加载
评论 #1392495 未加载
评论 #1392867 未加载
funcallalmost 15 years ago
"LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot." -- Eric Raymond (How to become a Hacker).<p>I wonder what percentage of people who "get Lisp" manage to stay happy working in other languages.
评论 #1392553 未加载
评论 #1392713 未加载
评论 #1392532 未加载
评论 #1393040 未加载
评论 #1393018 未加载
gruseomalmost 15 years ago
What a case of assuming your conclusion. If Lisp is poetry, and poetry is beautiful-but-archaic-language-completely-divorced-from-ordinary-human-communication, well then obviously Lisp is for a tiny minority who like to speak Elizabethan; meanwhile the much larger population of <i>practical</i> people will simply prefer to <i>get things done</i> in vernacular.<p>It's nonsense, of course. If Lisp weren't good for getting things done, I for one wouldn't bother with it. But having assumed his conclusion in the first three words of the second paragraph, the author need offer no argument, and doesn't. In fact he doesn't even mention Lisp after that.
j_bakeralmost 15 years ago
Say what you will about pg's writing. But he's been involved in the funding of <i>plenty</i> of startups that didn't write Lisp code. I think you should pay attention to where his money is going before you read too much into his essays.
plinkplonkalmost 15 years ago
"I am much more impressed by the genius of the finished product rather than the expressive beauty of its implementation. "<p>Sridhar's whole argument hinges on this dichotomy between choosing great tools and having a great finished product.<p>It is a false dichotomy - In some situations you don't have to choose one to the exclusion of the other. You can have both, especially in startups (PG specifically mentions startups in his essay, as a context to where powerful languages would be effective). Use AND instead of XOR and this post falls apart.<p>If you start with the intention of building a finished product with "genius", it might help to look for the best tools to build that genius product with, which would <i>also</i> give you expressive beauty (and effectiveness). Again AND, not XOR. Sure you could end up with a beautiful creation using crude tools, but why would you want to <i>if</i> you have a choice of tools??<p>Extremist positions about a largely artificial choice between great tools and great end-product aren't very convincing. I don't buy this argument anymore than I buy the "I am cooler than you because I write in lisp and you write in C" argument.<p>From Sridhar's post<p><i>"I bet that the vast majority of the world’s programmers, want an “easy” language, not a highly expressive, poetic language Contrast this view with Paul Graham’s Hackers &#38; Painters."</i><p>Interesting rhetorical device(again) but there isn't as much of a conflict between their views. There isn't a conflict between "easy" and "poetic". The same language can be used to produce works which are either, neither or both, with all sorts of intermediate positions and shading.<p>From Pg's essay<p><i>"Part of what software has to do is explain itself. So to write good software you have to understand how little users understand. They're going to walk up to the software with no preparation, and it had better do what they guess it will, because they're not going to read the manual. The best system I've ever seen in this respect was the original Macintosh, in 1985. It did what software almost never does: it just worked. [6]<p>Source code, too, should explain itself. If I could get people to remember just one quote about programming, it would be the one at the beginning of Structure and Interpretation of Computer Programs.<p>Programs should be written for people to read, and only incidentally for machines to execute.<p>You need to have empathy not just for your users, but for your readers. It's in your interest, because you'll be one of them. Many a hacker has written a program only to find on returning to it six months later that he has no idea how it works. I know several people who've sworn off Perl after such experiences."</i><p>Software should make sense to both users <i>and</i> other programmers? Oh horror, PG does seem to be focusing on the end result after all.<p>Now PG <i>also</i> seems to imply that <i>in some contexts</i> (startups with a few skilled hackers competing with larger companies with not so killed hackers, say) choosing powerful languages (or generally "running upstairs") would get you to the desired endpoint faster/with less resources etc. Debating that point is fine. Mischaracterizing it isn't.<p>The problem again seems to be the artificial divide between "simple and easy" vs "poetic "(and by implication NOT simple and easy). The only real argument offered for this dichotomy seems to be based on his personal experience in learning two languages. One learning experience seems to have focused on learning with simple sentences and the the other on learning via/with classical poetry.<p>If the two languages (and teaching styles) were interchanged, so if you learn English by/with analysing Tudor poetry and Tamil by learning conversational and practically useful sentences, I suspect you would find the latter easier.<p>That doesn't say much about which language is intrinsically better for a given purpose in a given context.<p>English can be taught simply or in a complicated manner. So can Tamil. You can read/write complex, layered poetry in both, which are nearly untranslatable into the other. You can write simple , clear prose in both.<p><i>"After all, if you are doing wireless communications systems simulation [as I was] or writing a web word processor [as we are], what matters is the particular domain, and the language in which it is developed is not the most important issue. "</i><p>But <i>no one</i> (least of all PG) ever claimed it was the <i>most</i> important issue, taking precedence <i>over</i> domain. But it is <i>an</i> important issue.<p>A programmer who didn't care <i>at all</i> about his tools and didn't have clear preferences, not only about programming languages, but also about other tools like Editors, Version Control Systems etc is hardly a professional. A preference need not be absolute and fanatic. Use AND when you can and XOR only when you have to.<p>A web word processor can be written with Clojure or Python (say) and JavaScript or with (say) PHP and JavaScript.[1]<p>Given that choice, I'd expect good developers to <i>tend</i> to one choice over the other <i>if</i> they had the choice (Once you have a large enough base of legacy code/a large enough company, often you don't have that choice).<p>My nutshell reaction: Bleh what a terrible post. It hardly holds together in any logical fashion or says anything insightful.<p>[1](Here I am using the same rhetorical device of setting up two arbitrary extremes and forcing a choice - Domain XOR Powerful languages, Clojure XOR PHP. In the real world you could used Clojure, JavaScript <i>and</i> some PHP, or none of these etc, but then how would we argue about irrelevancies? ;-)) .
评论 #1393433 未加载
评论 #1393431 未加载
jggalmost 15 years ago
This is getting stupid. People program real, working things in Lisp. People program real, working things in languages that aren't Lisp.<p><i>Grow up</i>.