9 ms·
How I lost my faith (in Lisp)
- bootload 19y ago"... So I can't really go into many specifics about what happened at Google because of confidentiality, but the upshot was this: I saw, pretty much for the first time in my life, people being as productive and more in other languages as I was in Lisp. What's more, once I got knocked off my high horse (they had to knock me more than once -- if anyone from Google is reading this, I'm sorry) and actually bothered to really study some of these other languges I found #myself# suddenly becoming more productive in other languages than I was in Lisp. For example, my language of choice for doing Web development now is Python. ..." This was written in 2002FEB and pre-dates the reddit rewrite from lisp to python.
- pg 19y agoWithout being able to see this code that was easier to write in Python than Lisp it's impossible to say for sure, but it seems likely that the differentiating factor was libraries, not the core language.
- bootload 19y ago"... it seems likely that the differentiating factor was libraries, not the core language. ..." Absolutely the libs make the difference. [0] But are there other forces going on that limit language choice and adoption? I'm thinking of say Perl. Perl has CPAN, which kicks pythons pants , hands down when it comes to the variety of usable tested modules. Is it the Perl syntax or core language that scares off the hackers? My own pet theory is that it's not the hackers who ultimately decide the language(s) they use at work. Additional libs don't matter as much as the initial (fad) language the code base is written. It is the companies (and PHB's) that hackers ultimately work who determine language choice. In the end hackers just give up. One more reason to "start a startup". You can choose the best tool(s) for the job. [0] A friend of mine, a strictly "ANSI-c" man wondered how I could code the rings off him. Then I showed him the Python libs I could choose from. He had to download the source code, compile it, learn how to use it at 'c' level and then do the job. For example regular expressions.
- cstejerean 19y agoLibraries are important but code has to be easy to read. You have to be able to easily read the example code for the library you want to use or to read other's code and learn from it. That's what scared me away from Perl and really why I still mainly use Python over Lisp. But each person finds different things easy or hard to comprehend. It mainly depends on your background and what kind of patterns the brain becomes accustomed to.
- Tichy 19y agoMaybe the hacker who can produce error free code in Perl does not exist? If even hackers sometimes make programming errors, perhaps most of them were smart enough to eventually figure out they could minimize that problem by moving away from Perl. Most companies I know actually asked their developers which language they should choose. Typically there is a decision eventually to concentrate on a limited set of languages, but choosing that or those languages is not usually being done without consulting the developers.
- bootload 19y ago"... perhaps most of them were smart enough to eventually figure out they could minimize that problem by moving away from Perl. ..." It does require dev's have to be better programmers. There are plenty of ways to make Perl code safe. Maybe you have to work harder at it? "... Typically there is a decision eventually to concentrate on a limited set of languages, but choosing that or those languages is not usually being done without consulting the developers ..." I agree with the limiting of languages. But I've yet to see languages chosen purely for good technical reasons. [0] And this is one reason I think Lisp gets pushed out. [0] PHB's dont like you re-writing code from scratch so you could be forced to work with what ever was previously chosen ~ http://www.joelonsoftware.com/printerFriendly/articles/fog0000000069.html http://www.joelonsoftware.com/printerFriendly/articles/fog00...
- cstejerean 19y agoLisp code is written to be easily parsed and manipulated by software. Python is written to be easily parsed and manipulated by humans. When I first came to Python I didn't need to become an expert Python programmer to understand Python source code without much effort. But I still haven't gotten to the point of looking at a piece of Lisp code and right away having an idea of what it does. Eventually your brain recognizes the patterns (but heck if you write assembly long enough you start to see the patters of common C control structures). But I think it all depends on the problem at hand. Certain things I can write faster in Java than Python (occasionally static typing and interfaces can make large programs easier to keep in one's head and work with). Most things I can write easier in Python. And a few things I can write easier in Lisp (primarily writing programs that manipulate trees and essentially create mini-languages).
- curi 19y agoin lisp you write trees. in other languages, you write weird things that get turned into trees, seemingly by magic. other languages seem easier to understand, to most people. this is because they have a lot of experience with all that magic -- it has become a tradition. if you're better at normal languages, go ahead and use them. i don't care. but they are not objectively easier to read, they are much harder and more complicated.
- greendestiny 19y agoYeah I know the lisp trees thing is something that gets said a lot, but I really don't see how inexplicable the transformation of other languages into trees is. Ultimately in lisp you have the most flexibility in manipulating the tree, but a little study in compilers and formal languages and its obvious that all languages are describing trees. Objectively easier to read? Thats a strange road to go down. Theres no reason that languages with grammars that generate strange and wacky trees might not suit a human's ability to describe formal solutions better. I think the reason people find languages like C easier to understand is all in the state handling anyway.
- curi 19y ago
- BrandonM 19y agoFor me, the Python module system and documentation wins hands down. I keep telling myself that at some point, I'm going to dive into Lisp and never look back, but Python's module system is very easy to use, and this lends itself to a very nice standard library as well as easy-to-install libraries. Not to mention that every module is well-documented often with real world examples a Google search away. With Lisp, I have honestly tried to find good documentation on its module system, and I have tried my best to understand the workings of ASDF, but when it comes down to it, I just don't have the time to muck around with stuff that is so much more difficult. The simple fact is that if I need to get something done, it's going to be in Python for the time being, and who knows when I'll get to the point where I'm not coding against a deadline, the point where I'll be able to waste some time really learning Lisp.
- davidw 19y agoMaybe there is a relationship between code being easy to approach and friendly even to non-brilliant-hackers, and those hackers going on to produce libraries that, while they may not be brilliant, do manage to do useful things, thus making the language more appealing for future decision makers, who are then even likelier to choose the more approachable language with more libraries. If there is also a culture of quality, it will keep the non-brilliant coders honest, and from adding actual bad code.
- stcredzero 19y agoSounds like he's lost his faith in Lisp uber-alles, but not necessarily in high-level languages or dynamic languages.
- JesseAldridge 19y agoAugh, all that teasing and no meat. I want to know specifically why the author thought Python was better than Lisp.
- bootload 19y ago"... I want to know specifically why the author thought Python was better than Lisp ..." Just ask ~ http://news.ycombinator.com/submitted?id=lisper http://news.ycombinator.com/submitted?id=lisper
- lisper 19y agoFor the record, I did not submit this article, and specifically declined a request to do so. It's not that I don't stand by what I wrote (I do) but it was written for a specific audience at a specific time and I don't think it deserves the attention that it's getting now.
- kirubakaran 19y agoHow about if we request you to give us some real examples? Please... Pretty please... :)
- mhartl 19y agoFor those who missed the context of this post, its author is the same Ron Garret who recently wrote "My take on Arc" (http://rondam.blogspot.com/2008/01/my-take-on-arc.html http://rondam.blogspot.com/2008/01/my-take-on-arc.html, posted on Hacker News at http://news.ycombinator.com/item?id=107623 http://news.ycombinator.com/item?id=107623). Those who noticed the name of this post's author, Erann Gat, could easily be confused: he changed his name to Ron Garret several years ago (http://www.flownet.com/ron/eg-rg-faq.html http://www.flownet.com/ron/eg-rg-faq.html).
- anaphoric 19y agoFunny. I read this piece and was waiting for the profound statement that was going to convince me. But at the end it sounded like the message was "Google guys and gals are productive in other languages than LISP". Huh!? Not very convincing... Why do I care about them? From my point of view it's me and the machine. Google is just some company. C is beautiful for what it is. Pure. Running on the metal. And LISP too is beautiful for what it is. Running on abstractions. The rest are all kind of in between.
- pius 19y agoHaha, I agree. It started really well, but he got tired at the end and didn't elaborate much on how he lost his religion.
- brent 19y agoI'd say that the conclusion (I came to) wasn't just that googlers were more efficient with other languages, but that after that many years of lisp he's already more efficient with python.