As someone who tried to go from noob to SICP, I can attest to this.
I was really like looking forward to learning lisp after reading pg's essays, but when the time came to install the environment, I hit a brick wall.
Pg does mention a noob should get a tech-savvy friend to help him get started. Unfortunately, all the hackers I knew were in the Bay Area, but I was in South America.
Installing Lisp on a mac took me two months, working full time (between macports and other false starts, like trying to install linux). I still can't get slime on emacs; I have to run clisp in the terminal.
So, yeah, not exactly user friendly, or accessible to beginners.
If you visit #emacs or #lisp on freenode it's very likely someone can help you get Slime sorted out on your Mac. Many of the regulars there use such a setup (including myself).
Lispbox is great, but when coming from a different environment I found it extremely useful to customize emacs a little (nothing fancy, F2 for save, ctrl-C copy) and unfortunately you can't do that in lispbox.
To the GP, it takes a lot of time and effort, but what you learn stays with you. Can't remember how many times I installed everything afresh, and on how many machines, but now it's really easy and, though it could be confirmation bias, rather elegant. I'm pretty sure I could teach somebody up to my level in 3-4 weeks, including lisp itself.
That said, I'm still not done installing - today i tried http://dirtyhack.org/vetler/docs/cl-webapp-intro/part-1/
and got a "make-pset is an undefined function" for no apparent reason. <Sigh> I guess it's another Elephant reinstall in the next break. But it does get easier :) This autumn I hope I can move to actual programming.
SBCL, mzScheme, and Clisp. I got SBCL and Clisp to work.
I'm having trouble explaining why I had such a hard time, but I think that's because I was a noob at the outset, but I'm not such a noob any more. Sure, now I can install Lisp on a friends computer in a day, tops. For good hackers, installing lisp is trivial. Of course, there are lots of things that good hackers can do in a tiny fraction of the time it takes anyone else. But from a noob's perspective, everything is very different. There might be a place that works, but there are many that don't, and those dead ends are really going to set you back.
Maybe I can't see things through a noob's eyes any more, but for whatever reasons, installing lisp took me two months, working full time.
I confess that I had a struggle to get the Oracle bindings for CLISP working on Linux (3 days full-time work, and I am very experienced with build issues on that platform), and I still haven't been able to do it on Solaris. Getting Oracle bindings for Tcl or Python was trivial, literally minutes of effort, including the download. So yeah, LISP does have a long way to go. I can use it on (some of the) kit I control, but forget deploying LISP apps anywhere else in the organization, there's no way I want to be responsible for building and maintaining it on the plethora of platforms and versions we have.
lispbox(common lisp) and drscheme(scheme ldo) are two good packages/environments but it isnt obvious how to find them.
the value of a "click to download-click to install-write short piece of code and see result" -cycle hat can be done immediately is very high.
feedback is obv very important for learning and LISP doesnt provide much of that in the beginning.
with python you can create games and simple but useful programs right away.
when arc is finished im all for helping to create a good IDE and libraries to it and document it well and create a very easy path for beginners to gte started.
Yeah, he should have added "Part-2: Downloading Libraries". They actually exist, and can rival comprehensive library of Python, but it takes quite a lot of energy to discover. I remember asking here on HN "what is CL standard library? where is it documented?" and people actually pointed to a magic place that I forgot to bookmark and now I'm lost again. :-)
Ubuntu does a decent job of packaging some popular CL libs in their apt repos.
Then maybe this should be the first of 3-4 links on lisp.org. A newbie is not likely to find this (I know I didn't know anything about Lispbox when I first started, although to be fair, I'm not sure it was out at the time).
there is no canonical Lisp implementation like there is for Python and Ruby
True. But still, try to find a link anywhere on lisp.org (let alone the front page) to any implementation of lisp. The shortest path I could find to downloading any kind of implementation was to click "ALU Wiki" -> Implementations -> wherever. That's at least 4 clicks to actually get Lisp and the first link takes you away from lisp.org. That's too many clicks, and too indirect (if you are a newbie looking to download Lisp, why would you click on a link with the text "ALU Wiki"?).
The very first paragraph on lisp.org should be a terse explanation that there are many implementations of lisp, Common Lisp is the most widely used, and to get started, you probably want one of <list the 3 most popular ones here> with the text linked directly to the download page for that implementation.
There's no reason that someone trying to get started should have to read "The Rich History of Lisp" or anything else so abstruse, or anything that has so little to do with programming Lisp (like most of the ALU stuff). Someone should convince the ALU that lisp.org should be for Lisp and that the first view links should not be:
ALU
History
Board / Minutes
Sponsors
Membership
Contact Us
Arguing between 3 or 4 clicks doesn't change anything. There are a lot of problems with beginners and lisp, but they're far from how to get to the first implementation. As a newbee myself, googling for lisp environments was damn easy and instructive: i knew within 20 minutes that I should use linux, and if i really wanted windows (as I did at first) there was only one choice. When I finally had access to a decent linux it took me maybe another 20 to confirm that sbcl is the one I wanted. All that gave me lots of background information on the side.
Now the first brush with asdf on the other hand was a nightmare. I still don't understand why I have to become an expert in pgp (definitely not just a beginner) just to use asdf-install.
I think the main problem for beginners is the effort it takes to install a reasonable environment. I tried two versions for a web application server: ucw and weblocks. Weblocks meant installing more then 10 different packages and source code is pretty much standard documentation - but it's ok because it's understandable and officially beta anyways. UCW is the standard - after a year and a half I still couldn't produce an installation running on a port different then 8080 (I use 8080 for tomcat for all my machines).
All this effort is way disproportionate to the effects. Installing emacs and slime is may not be a breeze, but once you discover that googling "emacs configuration" brings up a bonanza it's worth it. (Also that .emacs in windows is _emacs... that's half a day I'll never have back). But so much effort just to get a server running... if you want to help beginners write a better ucw tutorial, don't just rearrange the links on the frontpage of lisp sites.
(btw, I hit ctrl-C before hitting reply, I just knew there was an "expired link" comming. And so it did.
Arguing between 3 or 4 clicks doesn't change anything.
You're wrong. And besides, the argument isn't between 3 or 4 clicks. It should be no more than 2, and preferably one.
There are a lot of problems with beginners and lisp, but
they're far from how to get to the first implementation.
As a newbee myself, googling for lisp environments was
damn easy and instructive: i knew within 20 minutes that
I should use linux, and if i really wanted windows (as I
did at first) there was only one choice.
You're still wrong. Not every newbie even knows what to google for, and even if they did, it shouldn't take them 20 minutes of web searching to figure out what they should download. And even that didn't lead you to the right place - there is more than one option for Windows (cusp, allegro, lispworks, and clisp for starters - that's not even counting scheme stuff), Linux isn't the only way, and SBCL isn't the only thing going on Linux. But a newbie either
a) has no way to figure all that out in a reasonably short amount of time
b) isn't going to try
And beyond that, you're still missing the point: he shouldn't have to.
Once you're concerned with learning emacs and slime and customizing your environment and installing weblocks and getting asdf and asdf-install to work, you're already committed. Difficulty doesn't matter nearly as much by that point. Being able to easily download and dick around in the REPL is the number one hurdle that keeps people from trying Lisp.
The rest of the post I agree with, and I don't argue that there are hurdles beyond the first one that are bigger and harder to conquer, but that's irrelevant if newbies aren't willing to jump the first one.
Right now I have a feeling most young lispers are at the intermediate stage. Thanks to lots of recent publicity, by pg and not only, people have gotten to know lisp exists. But I'm really not sure how many will go all the way. Even myself, in about a year I'll have to ditch java and if by then I'm not confident enough in my lisp... i'll probably learn ruby in a month.
As for the number of clicks... yes, as far as website design goes of course you're right. What I'm saying is 20 minutes of googling gives you more background. Half a page of text will probably just recommend clisp on windows, sbcl on linux, allegro if you want to pay and mention all the rest. Googling gives you a larger picture.
Ok, in the end of course one click would be better, I just don't think it makes much difference.
If people don't know about the different varieties of Lisp, what are they going to do once they download one? If you don't know what programming language you're trying to download, you probably don't know how to program in it.
That's the whole point - they know they want "Lisp" because of something they heard someone say, or because of something they read. That's all they know. Expecting someone to understand the Lisp ecosystem before getting started is unreasonable.
Lispbox would be a great way to get started, and you don't need to know anything about the different varieties of Lisp until you start trying to make something you'll redistribute (which isn't what newbies are doing at first anyway).
I actually recently had to install SBCL on my OS X 10.4 (Tiger) box. Here's how it went:
1. Grab from the Downloads folder.
2. Build.
3. Bombs during building because SBCL now relies on a link symbol which doesn't exist in Tiger. Apparently all Mac Lisp users are require to be 10.5 Leopard users.
4. Swear a bit.
5. Search the web.
6. Find lots of people swearing also, no answers.
7. Try CVS.
8. Build.
9. Bombs during build.
10. More swearing.
11. Start hunting through earlier versions of SBCL.
12. About 10 downloads later (and they take a lot of time each to download and build until it fails), finally find one which doesn't rely on the symbol.
Time to download SBCL from its website - 30 seconds. Not the problem.
Time to acquire the domain knowledge by learning about the different implementations and their respective strengths and weaknesses and decide on one (which could get nasty if you pick the wrong choice) - minutes to hours. That is the problem.
I was really like looking forward to learning lisp after reading pg's essays, but when the time came to install the environment, I hit a brick wall.
Pg does mention a noob should get a tech-savvy friend to help him get started. Unfortunately, all the hackers I knew were in the Bay Area, but I was in South America.
Installing Lisp on a mac took me two months, working full time (between macports and other false starts, like trying to install linux). I still can't get slime on emacs; I have to run clisp in the terminal.
So, yeah, not exactly user friendly, or accessible to beginners.