Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> most people program by page faulting

As I said, Common Lisp is not for most people.

This Web 1.0 page describes the concept: "Teach Yourself Programming in Ten Years" http://norvig.com/21-days.html

> But again the landscape is dominated by FOSS.

Which landscape? There is not one landscape. Is Apple's XCode FOSS? Windows dev tools? Open Source?

If you believe in FOSS, you can use SBCL, CMUCL, CLISP, ECL, MKCL, Clozure CL and several others. I use SBCL and Clozure CL.

> CD's are more old-school than landlines.

Write games with Land of Lisp then. But sorry, the Common Lisp community is not large enough to rewrite books every so often. In the mean time there are classics like Peter Norvig's PAIP, which are even older and even less exciting. Still it is easily one of the best programming books ever written.

> Ada were hot

Ada was never 'hot'. It is a tool used in a lot of mission critical software.

> I mean, what's the case of Common Lisp over Clojure?

I think you have to find that out yourself. Don't be sad if Common Lisp is not for you. Few people drive a Mercedes Unimog, though Arnold Schwarzenegger had one. http://i.dailymail.co.uk/i/pix/2014/09/04/1409847539952_wps_... You might ask what the Unimog does better than some Toyota, why it costs so much and why so few people have one. If you might spend some time, you might find out what the Unimog is, why it exists and who uses them for what...



>> But again the landscape is dominated by FOSS.

> Which landscape? There is not one landscape. Is Apple's XCode FOSS?

Xcode the IDE is not. The Clang/LLVM compiler, LLDB debugger and many of the other tools are open source.

http://llvm.org

http://clang.llvm.org


The whole development process for Apple's OSX or iOS is not 'free'. Many libraries for OSX or iOS are not free and not open source.

Apple's Cocoa is not FOSS, for example.


>I think you have to find that out yourself.

This won't really do anything to bring people closer to Common Lisp.

This is a bad thing btw.


Maybe you want to answer the question, why or when one should choose Common Lisp over Clojure. I have not enough knowledge about Clojure to answer that.

Thanks.


If it means that this brudgers guy stay away thats a really great thing.

Seriously reading this thread makes me so happy that we don't attract these douchebags.

Edit: friendly fire, sorry


I love Common Lisp[0], that's why I'm trying to improve it.

[0] https://github.com/eudoxia0


Yeah, using words like "douchebags" for other people in the thread reflects great on you and your closed club.

Especially since "brudgers" states his case with arguments and politely and has not sweared at anyone.


Please, he opened up a giant can of strawmen and smeared the CL community because he prefers eBooks, different kind of web design and more marketing.

So yes, I consider it douchey to open a completely pointless debate where there could have been a constructive discussion about the strengths of CL.


One man's "strawmen" are another man's real issues. If you disagree with someone on what the problems are, all he says would look like strawmen.

That doesn't warrant a "douchebag" stamp.

Plus I don't think the word "douchebag" or "douchey" os appropriate for a discussion among people that are not 17-year olds, 20-yo tops. There are far better adult swear words available if needs be.


You are right. In retrospect I am a fool.


Well, don't take it hard on yourself. We all are sometimes!


Obviously I would be redundant.


We indeed have our own trolls...


>Which landscape? There is not one landscape. Is Apple's XCode FOSS? Windows dev tools? Open Source?

A lot of it is. XCode's compiler, LLVM is FOSS. Microsoft just open sourced large parts of .NET libs and compiler. And there's also Mono, a FOSS implementation of .NET.

Plus, even the closed parts, like XCode and Visual Studio, are either free, have totally functional "community editions", or at worse are dirt cheap -- not $4500 to get to professional development.

>As I said, Common Lisp is not for most people.

You say that as if it's good.

It might be a fact, but it sure ain't good.

Is there a single good thing that can be argued to come from a language not being popular?

I meanbeside BS like "keeps the amateurs away?", which judging by the abundance of amateur Lisp code one sees, is not an actual advantage of Lisp...


Richard Stallman is not happy at all about the LLVM FOSS situation:

http://gcc.gnu.org/ml/gcc/2014-01/msg00247.html

> You say that as if it's good.

> It might be a fact, but it sure ain't good.

Is it bad that not everyone understands Hegel or Heidegger? Does that make their writings less useful?

> Is there a single good thing that can be argued to come from a language not being popular?

It's not a question of good or bad. It's a fact of life that some things are less popular than others, which says nothing about the usefulness of the tool.

> I meanbeside BS like "keeps the amateurs away?", which judging by the abundance of amateur Lisp code one sees, is not an actual advantage of Lisp...

It's just that not every programmer has the intellectual capability to understand, master and use Lisp. That's a fact. I've seen that myself countless times at university in beginner's courses. Also many programmers don't need the features Lisp offers and are happy with other approaches. For them Lisp is too complex, too flexible, etc.

Lots of people can learn some basic Lisp or simple Lisp dialects. But once they use actual features of Lisp, which allows every user to radically change the language, the things get tough... in the industry stuff like that is not liked. They want tools and developers which are more predictable.

I think you should get over this 'popularity' BS.


> Lots of people can learn some basic Lisp or simple Lisp dialects. But once they use actual features of Lisp, which allows every user to radically change the language, the things get tough... in the industry stuff like that is not liked. They want tools and developers which are more predictable.

This is such a silly and elitist argument that I've always wanted to dismiss it outright on those principles, but I think it can finally be dismissed on factual grounds now that Clojure is a thing and is actually popular in the industry. The argument that people just can't get Lisp was always an embarrassing position to stake out, but now it no longer holds any water too.

Everyone has their own opinion as to why Common Lisp is having popularity trouble. Mine is that the spec is twenty years old and has no reasonable process for moving forward. I think a number of people are of the opinion that the spec represents stone tablets handed down by God and is completely perfect, but I on the other hand find a number of useful elements missing that are difficult or impossible to implement universally with macros. IMO, Common Lisp's popularity problem flows from its lack of evolution.


> This is such a silly and elitist argument that I've always wanted to dismiss it outright on those principles,

Calling an argument silly and elitist does not help your case much.

> Clojure is a thing and is actually popular in the industry.

The number of Clojure developers and its percentage is tiny. Far from 'popular'. It's also in a different stage of the hype cycle.

> The argument that people just can't get Lisp was always an embarrassing position to stake out, but now it no longer holds any water too.

You need to actually read what I said. Basics of simple Lisps are relatively easy to learn, still many people fail at it. I've seen it in computer science University courses where only like 10% were able to write anything useful in Lisp, struggling with recursion, graphs, dynamic typing, ... Few ever got so far that I would let them program macros.


>Few ever got so far that I would let them program macros

If you start with the assumption that it's for "few people", and teach it like that, then few of your students will get it.

Yet, people have used Scheme and CL as a first language, and even Haskell, and students were able to pick them just fine.


>It's just that not every programmer has the intellectual capability to understand, master and use Lisp. That's a fact. I've seen that myself countless times at university in beginner's courses. Also many programmers don't need the features Lisp offers and are happy with other approaches. For them Lisp is too complex, too flexible, etc.

Besides elitist (which I wouldn't mind, if it was also true), this is quite false.

In fact I've seen more bragging and preaching than real world output that people care for from most Lisp advocates.

And even most of the things they are so proud of for building (with the exception of Emacs, which is also based on C), people have built in other languages and with more popular and full featured results.

>Lots of people can learn some basic Lisp or simple Lisp dialects. But once they use actual features of Lisp, which allows every user to radically change the language, the things get tough... in the industry stuff like that is not liked. They want tools and developers which are more predictable.

That's cowboy coder mentality stuff.

And in 2014, the ability to "radically change the language" is not that impressive. It merely boils down to: "Hey, my additions have the same syntax as native stuff and I can do meta-programming too". Sure, but first you have constrained yourself to a very specific syntax, so it's all a wash.


"Is it bad that not everyone understands Hegel or Heidegger? Does that make their writings less useful?"

Yes, actually. If they wrote clearly enough so more people could understand their point, their writings would be more useful. The point of writing something is generally to communicate with others, unless it's a personal journal or diary, meant to be kept private.

"It's just that not every programmer has the intellectual capability to understand, master and use Lisp. That's a fact. I've seen that myself countless times at university in beginner's courses."

Isn't it much more likely that the difficulties are more due to the fact they are beginners, than due to the language used in the course? Did you teach identical material using other languages, and found the students understood the material better? (Honestly curious.)

"But once they use actual features of Lisp, which allows every user to radically change the language, the things get tough... in the industry stuff like that is not liked."

Meta-programming in Ruby has the same challenges, but there is definitely a strong segment of commercial developers who whole-heartedly embrace those techniques. They didn't just give up and say "Oh well, guess we have to give up and go back to using Java", or adopt some complex about their language being too brilliant for other programmers to ever use. Instead, they put effort into persuading others the expressive power of Ruby is worth the tradeoff with predictability. They don't convince everyone, but they certainly managed to get a lot of developers on their side.

I think the Common Lisp community certainly could have accomplished the same thing. There's nothing about the language itself hindering broader adoption, or limiting it's use to academics or elite programmers. It's just the community that seems to want to keep it that way.


> Yes, actually. If they wrote clearly enough so more people could understand their point, their writings would be more useful. The point of writing something is generally to communicate with others, unless it's a personal journal or diary, meant to be kept private.

That's what Hegel and Heidegger did. They communicated with others. It's just that their thoughts are more complicated.

> Isn't it much more likely that the difficulties are more due to the fact they are beginners, than due to the language used in the course? Did you teach identical material using other languages, and found the students understood the material better? (Honestly curious.)

The experience is that 10% of a course were able to write some Lisp. 40% struggled with the tasks, but made it somehow. The rest more or less did not get more than the basics and were confused by things like 'code is data', recursion for iteration, ...

> Meta-programming in Ruby has the same challenges

Meta-programming in Ruby is very limited to what Lisp does enable. Matz designed Ruby for 'ordinary programmers' (his words). Ruby lacks the whole Code-is-Data idea and on the OOP side, it lacks many of the features of a MOP, ... But it was designed that way.

http://www.matthewdavidwilliams.com/2008/11/06/rubyconf-2008...

Matz thinks that there is a cliff and Lisp is beyond that cliff for 'ordinary' programmers. 'Smart people just underestimate ordinarily of ordinary people'.

http://rubyconf2008.confreaks.com/matzs-keynote.html

> Instead, they put effort into persuading others the expressive power of Ruby is worth the tradeoff with predictability

What Matz actually did, was scaling down the language to dynamic OOP + some functional elements.

> I think the Common Lisp community certainly could have accomplished the same thing.

The Lisp community could have scaled down the language. People have done it: Standard Lisp, Logo, Dylan, Eulisp, ISLisp, Scheme, Clojure, ... Some were more scaled down that others.

Common Lisp stayed like it ever was: a language with lots of flexibility and extensibility.

> There's nothing about the language itself hindering broader adoption, or limiting it's use to academics or elite programmers

I've seen research programmers struggling debugging macros which were writing macros. There are code bases where I myself struggle debugging stuff... Common Lisp is great, but it offers so many ways to shoot yourself into the foot....


>That's what Hegel and Heidegger did. They communicated with others. It's just that their thoughts are more complicated.

Well, here's a Hegelian thought for you: the demise of Lisp in the AI circles, and then in the industry means that wasn't not "real" enough (in the Hegelian sense), it was just a temporary transition phase till newer languages got GC, reflexion, macros, metaprogramming, etc.

Die Weltgeschichte ist das Weltgericht, as they say...


> It's just the community that seems to want to keep it that way.

To be fair, it's just that no one cares to proselytize.


Strange, because 90% of what comes out of LISPers is proselytizing (or touting their own horns, which serves the same purpose).


That's mostly because we get annoyed when we see old things being marketed as "new" and "hip" :) That's not proselytizing, that's snobbery.


Well, macros, closures and GC haven't been "new" or "limited to LISP" for like 40 years.

So, if LISP had them since 60 years and others got it 20+ years later than that, hardly matters by now.


It does matter when Lisp is not given due credit.


>Is it bad that not everyone understands Hegel or Heidegger? Does that make their writings less useful?

No, but programming languages are not like Hegel or Heidegger. They have network effects, and they need a good ecosystem.

It's more like a political/state philosopher (like Plato, Marx etc) or a reform theorist. If he could not get people on his platform he wouldn't have the influence he needed to influence policy, which would be bad for him.


There are different ways in which a programming language isn't right for someone.

For example, it can be like beef liver. It's not that I don't eat it because of a commitment to vegetarianism. I'm not a vegetarian and I'll gladly eat rare cow on a bun. It's not that I don't believe beef liver is nutritious. I just find eating beef liver an inherently unpleasant experience. It's how I feel whenever I try to use Python [even though it is quite likely more popular than beef liver].

There are also languages which aren't right for me because they don't really fit with what I want to do. Swift for example is only available on the OSX platform and I don't own a Mac.

Neither of those apply to Common Lisp. The reason Common Lisp isn't really for me is that there are simply less painful alternatives for the sorts of things I want to do. And one of the ways in which those alternatives are less painful is because of their communities.

It's not that language communities shouldn't be opinionated. I listened to DHH talk about Rails in the early days on an older Hansel Minutes podcast. The object is "person" and the table is "people". If that offends someone, then Rails might not be for that person.

But the Rails community gets to the point quickly. It lays out the facts and moves forward. Within that community it is not considered acceptable to say, "read this book and these five papers and drop a few thousand on commercial software, and then we might consider you worthy."

They tend not to tolerate that. But from the heritage of usenet.comp.lang.lisp that's still considered by some a perfectly entertaining way to treat novice questions in the Common Lisp community. Answering easy questions is dull and being snarky is an outlet for creativity in comparison.

In the end, my hypothesis is that programming languages live and die the same way as natural languages, either the community onboards new speakers and the language lives or it doesn't and the language dies [take this as a Kuhn paradigm if you prefer a reference point in science]. C remains vibrant as the language of Unix and its descendants. JavaScript thrives as the language of the web. Pascal and Algol and Simula are less than vibrant or thriving because few people are learning the language.

By analogy some members of the Common Lisp community often behave as if it's wrong for babies to babble, that toddlers should learn the alphabet by reading Faulkner, and that only then are they qualified as persons.

Norvig's article is about learning programming, not taking ten years to learn a programming language. Contrary to a portion of our dialog, he's a bit language agnostic.


> Within that community it is not considered acceptable to say, "read this book and these five papers and drop a few thousand on commercial software, and then we might consider you worthy.

You totally distort the Common Lisp community and you post FUD. You attack Charlotte's preferences for no reason. She presented HER preferences. Still you attack the Lisp community as if individual opinions are not allowed and as if she speaks for all.

Chearlotte speaks for herself and I think her recommendations are good.

There are a multitude free and open source implementations. Many were developed before stuff like Rails or Java even existed. Free and Open Source software has been written in Common Lisp from day one.

Clozure CL, mentioned by Charlotte. It is published on the LLGPL.

SBCL, mentioned by Charlotte. SBCL's roots go back to the early 80s as Spice Lisp and then CMU Common Lisp. Public Domain since 30+ years.

And many others. Usually people complain the Common Lisp has too many implementations.

Nobody required somebody to invest $4500 into a Lisp system to start.

It's just that some people in the Lisp community use the commercial tools and think they are great. I'm one of those. LispWorks is probably the best implementation of a dynamic language anywhere.

If people have actual problems with coding, they have multiple forums. I have personally answered 1000 Lisp questions on Stackoverflow.

> analogy some members of the Common Lisp community often behave as if it's wrong for babies to babble

Some non-members of the Common Lisp community seem to whine a bit too much for my taste. What the Common Lisp community (if there is one) does not really like is whiners who fail to contribute.


I'm not attacking the Common Lisp community. If I were, I certainly would not have opened my comments with the idea that the community places a hurdle before itself when marketing the language it loves. And one of the things I love about Lisp is the way in which I share a love for the language with the larger community.[1]

I have nothing against commercial tools. I've spent many thousands of my own dollars on shrinkwrapped bits over the years. That doesn't change the fact that shrinkwrapped bits are continuing to diminish in popularity due to thirty years of Stallmanism running in parallel with nearly thirty years of "greed is good" and even more years of a hacker ethos where spending 80 hours to pirate fifty dollars worth of software is a hobby.

Why care if the Common Lisp community likes me? It don't like most people. It would be foolish to its dislike personally. In fact, why blame them when Hell is other people?

The upshot is that I care enough to say something constructive. I don't wish the Common Lisp community anything but success. I'm not a jaded ex-lover. I hope it meets someone new and that someone turns out to be its soul mate.

[1] Going so far as to coin the term "love song to Lisp": https://hn.algolia.com/?q=love+songs+to+lisp#!/comment/forev...


"[even though it is quite likely more popular than beef liver]."

It's a total digression, but if you don't restrict your population under consideration beyond "all humans", I would guess that's not the case.

Quite a few more people eat cow than program, so even if Python is significantly better liked amongst programmers than liver is amongst cow eaters, there's plenty of room for liver to be "more popular".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: