3 ms·
First there are a lot of programmers who come to CL to debate. They read, they study, and then they complain. I've sat in #lisp since about 2007/8 and there hav
by agentultra 13y ago
First there are a lot of programmers who come to CL to debate. They read, they study, and then they complain. I've sat in #lisp since about 2007/8 and there have been numerous nicks that show up just to ask a few rather philosophical questions and debate the merits and technical decisions that went into CL. They usually end up leaving and writing blog posts about how terrible a language CL is and how caustic the community is.
There isn't a problem with the CL community. There's a problem with the culture surrounding CL that seems to attract trolls.
Newbies get answers to genuine questions. I've received a great deal of help over the years from experience CL programmers. Anything from beginner questions to code reviews of various snippets I've been working on. I have received a lot of great advice over the years that has helped me tremendously. And I've seen other newcomers receive the same treatment as well. If you arrive in #lisp of c.l.l and have a genuine question about a problem you are stuck on you will likely attract someone willing to help you. It's a small community but it is friendly.
Second, CL was in the end designed to outlive itself. You get full programmatic access to the compiler and reader. It is trivial to add any feature a modern programmer may require that wasn't accounted for in the original specification. CLUEL could certainly have been useful if the author had finished it and put it out into the wild (maybe waiting until it was finished was the wrong choice).
I think if you are genuinely interested in learning CL you need to check your ego at the door, so to speak, and just start from scratch. Write programs that solve yours or your users' problems and ask questions in #lisp and on c.l.l if you get stuck. There is a wealth of great literature, papers, tools, and a small, friendly community to help you.
Edit: I meant to note that the reason the specification hasn't been updated, afaik, is because it doesn't have to be updated. All the tools you need to add the features you require are there in the spec. You can make it into the language you need.
- pavelludiq 13y agoCompletely agree. One thing that I figured out rather quickly is that lispers really want to teach and explain things, but being lazy programmers, they don't bother holding your hand, so if you are willing to do your homework, you'll have an amazing time with lisp. Lets take a look at a few patterns I've noticed: * Newbie posts some snippet and asks for review, the snippet is C++ code written in CL, lisper tells him it sucks, newbie explains that he has a lot of C++ experience and this is how his brain works. Lispers(now plural) explain to him that lisp must be learned with a beginners mind and he must forget C++ temporarily in order to learn it properly. Newbie gets insulted for some reason and begins arguing. * newbie asks question about "generic lisp", lispers explain that the question makes no sense, and give his an answer about common lisp. Newbie asks question again emphasizing that he isn't interested in Common Lisp but in lisp in general, lispers tell him to read the topic, #lisp is about Common Lisp. Newbie argues that #lisp should be about generic lisp, and #commonlisp or whatever should be about CL, argument goes nowhere of course. * newbie asks question and posts snippet. The code is obviously written by somebody with exactly 1 hour of lisp experience(parens are mismatched and aligned wrong, indentation is horrible, not to mention the obvious hacks). lispers explain that lisp is best learned patiently and not through the "learn x in y minutes" way, and that he should read Practical Common Lisp. Newbie gets insulted he was told to RTFM instead of getting an actual answer to his "wrong" question(at least in the eyes of us lispers). * newbie asks about scheme/emacs and refuses to accept that #lisp isn't about those languages, see pattern #2. * newbie asks scheme vs CL vs clojure vs haskell vs python vs ... question. Gets surprised when lispers unapologetically proclaim CL the best language ever and everything else is shit. Lispers do not hide their bias. Newbie then begins to argue about his favorite language and why it is better than lisp. Sometimes it's clojure, sometimes its scheme, or it could be whatever. * (my favorite, and probably most frequent) Newbie asks what is lisp good for, gets pissed off when we tell him we program computers with it :) Many other such questions include: Q: "why isn't lisp popular" A: You haven't converted enough people to it :) Q: "Why does lisp have so few libraries" A: You haven't written enough libraries yet :) Q: "Why isn't there a library for X" A: Nobody needed it, if you do, write it and push it to github :) Q: "Why doesn't library X do Y" A: patches welcome. Notice a pattern :) All of these cases or variations of them have happened many times since I started to frequent #lisp, often times the word "fags" or "cunts" get used, and not by lispers.
- jlarocco 13y ago> Edit: I meant to note that the reason the specification hasn't been updated, afaik, is because it doesn't have to be updated. All the tools you need to add the features you require are there in the spec. You can make it into the language you need. That's a big part of the reason I haven't used CL for anything bigger than some toy projects. It's a crusty, old language, and instead of keeping up with the times, everybody has to build the features they need. I can do that, or I can use language that has the features I need and that I don't have to assemble myself. And to make it worse, it's hard to even use libraries that solve the problem, because nobody in the CL community can agree on anything. There's always a dozen incompatible solutions, and it's never clear which one should be used.
- pavelludiq 13y ago" There's always a dozen incompatible solutions, and it's never clear which one should be used." Welcome to software. While your other sentiment seems logical, if you actually look at it as a lisp practitioner, you'll find the answers to the questions you have relatively easy. You don't have to "update" the language, for many things you can just use it like any other. The problem isn't that lisp isn't updated, but that there aren't enough of us to build the lisp django, or at least there aren't enough of us who want the lisp django for it to happen, so thats why web development in lisp is limited to using raw hunchentoot or microframeworks like Restas and Caveman/Clack(which are both pretty awesome btw). Other than a few minor tweaks, lisp really doesn't need updating. More/better libraries would be sufficient! Can you give a couple of specific examples where you think lisp is behind the times and you are "forced" to implement whatever. I can think of maybe a handful of such instances(there isn't a really great STM, but we do have other awesome concurrency options as just one example), but the list of lisp features I miss in python(my day job) is 1-2 dozens at least(and If I had macros and CLOS I could probably half that list in a week or two :) In other words if you are crazy enough to use lisp for useful projects, the language will help you, maybe you haven't tried? Maybe you have and just had bad luck. Some domains(GUI programming for example) aren't as well supported for example. Others are pretty ok.
- agentultra 13y agoI don't really understand the, "crusty, old language," argument either. C++ became an ISO-certified specification in 1998 which is roughly around the same time that CL became an ANSI standardized language. We still use C in many systems for very valid reasons. However unlike the C++ and ANSI C standards, the CL specification left room for programmers to extend the language as they need it. Instead of waiting for decades of expensive committee debates and meetings as you do with C/C++/ECMAScript/etc the programmers using the language in the field can go ahead and add the features they need and implementors can fill the gaps between new OSs and hardware. How is that bad?
- rickjames28 13y agoSo what's the problem with the CL culture?