|I'm curious what things hold back Lisp from being more popular.|
Often mentioned is that newbies have to choose a dialect and implementation, but I don't think that is really a problem. If they're new to Lisp they probably don't care about specifics because they won't be able to gauge the differences, so they'll grab anything. Though I think Arc is an exception to this in that by both being new and focusing expressly on power it has the potential to draw more attention.
Choosing a Dialect/Implementation
A more common topic is the blinding parentheses, but again I don't think they're as scary to noobs as people believe. A decade or two ago I found a page on Lisp on the net but didn't give the language a second thought because the parentheses made it look primitive. How can something so rudimentary be useful at all? It looked barely capable of basic arithmetic. Of course now that snobs left and right are saying it's the most powerful language, that assessment would be different.
What I think is a very large issue is the fact that there is a poor choice of IDE's available for Lisp. The console REPL is awkward and ugly. When a user first opens it up they are forced into basic, tiny-scale experimentation with the language. Writing a sizeable function or an actual program in the REPL is unreasonable.
Lack of IDE's
You may say that as beginners, some simple experimentation is fitting, but I believe that if they're trying out Lisp they are at least not retarded, and trivial expressions will only entertain them for a few minutes. Furthermore, the beginner won't really see the value of the REPL as something that helps experimentation and actually allows things to be changed while running. They're just messing with basic things.
So the next step for these newbies is to write their code in a file, perhaps using a generic text editor, and then write a script or open up a console to run it. But by this step I think most beginners will be very annoyed.
I say that from experience. Maybe I'm exceptionally, incredibly lazy, but having to write a script is a large wall blocking my fun, and most of the time I decide I'd rather munch on some Cheerios. Many programmers out there are accustomed to and spoiled by IDE's, so their tolerance for these things won't be very high either.
An option is to associate lisp filetypes with the interpreter, but I doubt most people know how to do that or even think about it for that matter. (I just thought of that right now -.-) Nor is it optimal for usability.
Obviously an IDE is a good solution for these issues. The best package I have found in this regard is Lispbox, http://www.gigamonkeys.com/book/lispbox/ which is Emacs with lisp stuff and settings out of the box.
The problem is that Emacs is, in a similar way to the console REPL, ugly. It also has a vibe of excess -- almost as if it was developed by hundreds of programmers over the years -- which adds to the ickiness.
I don't think there is a better candidate for an IDE target than Eclipse. It is very pretty. There seem to be a few Lisp plugins available for it:
Arc Plugin for Eclipse
I think an Arc plugin for Eclipse would go very far in helping/letting newbies get started with the language. The goal isn't to have something fancy. The fact that beginners can simply experiment in a familiar, non-ugly interface and just click Run or hit a hotkey is much, much better than other current setups.
I'm sure someone will say I should put my feet where my mouth is or something, but maybe someone is already familiar with making Eclipse plugins and can perhaps adapt an open-source one to Arc. In another topic someone linked such a thing:
If it was packaged with Eclipse and made available for download here it would be even better.
I focused on IDE's, but I'm also interested in the general question of what things can be done and not done to get more people into Lisp. Something nice I found recently from the Ruby homepage is an online interpreter/demo/tutorial for Ruby.
Something like this for Arc would be really cool.