Hacker News new | ask | show | jobs
by palish 6909 days ago
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.

3 comments

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.