Hacker News new | ask | show | jobs
by vlad 6909 days ago
Just yesterday I had a thought about the link between Paul and Lisp. I came to the conclusion that since Paul was a published author of Lisp books at the time, and saw an opportunity to use it in production (maybe to gain experience and write another book about it to share his findings with others) but ended up learning about startups, dot coms, investors, and users as well, he instead wrote essays on paulgraham.com and used some of them in his Hackers and Painters book.

I dare say his essays are about starting up in general, and there is no secret plan to convert users into using Lisp. Every week on YCombinator Startup News, somebody asks about learning Lisp to do a web app, when there are way more other things to worry about than the language. Use something you want to use every day, not just in theory because someone else did. I'd learn an unknown language if I was at a startup that used it every day, but otherwise, I would default to using a web framework that I have already used in the past.

My conclusion is that if you're creating a web application using a web framework in any language you find interesting at the moment, go for it. Because that's exactly what Paul did. It just happened to be Lisp that he was an expert at, but it could have been any other exciting technology.

Whether Paul would use Lisp today or not on a new project is irrelevant as far as your plate is concerned. He could use Lisp, but it wouldn't mean that there aren't other good alternatives. And if he did use a language other than Lisp, maybe it would be so because he would want to learn web framework since he wouldn't be writing Lisp books any more, but Lisp may still be something he would normally use more often.

I think this is a great question.

2 comments

In photography, there are way more other things to worry about than what kind of camera you're using, but you'll notice the pros don't use point-and-shoot.

A piano concert's quality depends much more on the pianist than the piano, but you'll notice the pros don't give concerts on uprights.

If you have a choice of several languages, it is, all other things being equal, a mistake to program in anything but the most powerful one.

True, but all other things are rarely equal. I recently talked to a client about building a simple online project tracking app. I think it would be a mistake to use anything but Rails, as the application is already more than half done as soon as Rails is installed.
So you are asking: "If PG had to engage in an air war today, would he choose an F-16 or a Sopwith Camel?"

The point is that he thought at the time, and still (probably) thinks, that Lisp is language superior in power. As far as I know, no other language has eclipsed it, so the answer hasn't changed.

At least, that's the argument that has compelled me to re-visit it (after learning some Scheme in undergrad).

No other language has eclipsed it, but other languages are much, much more disciplined than Common Lisp. And you need a little discipline to build a community, which is required for a programming language to succeed.

For example, the fact that 'foo creates the symbol foo if it doesn't exist is undisciplined. That means if you try to reference something in a certain package, then find you didn't import that package yet, then try to import the package, it will fail. The reason it fails is because you've already created 'foo, so it can't import 'foo.

That's just one example. Lisp is the most powerful code abstraction, but it needs discipline to succeed.

Having heard "Lisp would be popular only if X were true" many times over the years, I've developed a quick test for such statements. I take a quick mental tour through languages that have become popular, and stop when I arrive at an example where X is false. If I ever get to the end of my list and X has been true for all of them, I might actually believe the statement.

Left as an exercise for the reader: Are there any languages that have become popular despite not having discipline built into the language? If so, then it's not a prerequisite for popularity.

I'm referring to languages that weren't primarily pushed by big companies to make them popular. For example, Ruby.
Would you describe PHP as having discipline built in? I notice for your CL example of lack of discipline you chose a namespace issue.
It may be true that it only became popular because it was more disciplined than Perl, at least when it came to expressing websites.
..That would be the polar opposite of undisciplined. Like I said, a little discipline, not.. erm.. bondage and discipline. :)
That little example will probably save me some misery later. Thanks!
It's one example I'm hoping will be absent from Arc.
Doesn't anybody at YC.news use Haskell...?
For hobby stuff, yeah. Not for startup. (Though I'm seriously considering using Erlang in one area, and I've got a friend with an Erlang startup.)
Oooh, that's interesting. What is the name and what do they do (if you can tell any of this information)?