I recommended clojure to a dozen friends or so and after a while none
of them stuck with it. I know clojure being a lisp and being at the
current development stage is not for everyone, but after I probed why
people gave up with it I saw the barriers to entry were largely
superficial and can be easily solved with some clarifications:

The most problematic issue is the editor. There are too many options
to check and to choose from and there is no "best" option. I remember
I got analysis paralysis myself when I had to choose an environment
(thinking about configuring slime takes the zest away out of any
exciting new language). If you go with emacs+clojure-mode, you get
something very basic and for those not familiar with emacs, something
that looks very foreign. You want the powerful slime? You will be
exhausted with its setup or worse, defeated by it. The netbeans and
eclipse IDEs are still shaky. People usually tried to install
enclojure because its site looks the slickest but even with the alpha
tag the experience was disappointing to all. People who got my
recommendation after netbeans released v6.5 couldn't get enclojure to
run at all.

I think the solution to this problem is to give a definitive
recommendation to a single simple editing option at the Getting
Started section and enumerate the other options with their ups and
downs, so people will have the right expectations about them.

The second major problem is the gap between the old release (20080916)
people get when they click download and the documentation, code
examples, newsgroup messages, etc. It used to be no big deal. Now, it
just seems broken because there is too much that doesn't match the
docs. Also, when I showed people clojure on my machine, I kept getting
"how do you make it not print the entire stack on every error" and
"why can't I use *1,*2,*3" questions.

Now that the svn is at googlecode, it will get even more confusing
with all the links in the official site and wiki to sourceforge.

Another problem is that there is no definitive starting point to
learning the language. There are too many places to start: the
official site, the screencasts, the google group, the source, the
wiki, the blogs, the beta book. And they don't always match one
another. The official docs don't match the release, and generally are
too thin in API description for the current svn code. The wiki is
usually out of date and a mess. The google group has grown too large
to read as an archive or to follow meticulously. The screencasts,
which are the best choice in my opinion, are numerous, you don't know
which one to see or in what order, there are no links to example code
or slides for the awesome concurrency cast (the links are available,
just not in an obvious place near the video), and blip.tv is awful
because you can't fastforward. Excellent introspection tools such as
clj-doc[1] and find-doc don't appear prominently anywhere.

The solution to this problem I think is simple: in the Getting Started
section, a simple "reading guide" which points to specific screencasts
(with links to slides and code) and specific wiki-pages and
introspection functions and tools, and only then gives the general
advice to check out the docs, group, faq, code, irc, and wiki (btw:
which wiki is *the* wiki now, wikibooks or googlecode? another
confuser).

Last thing is an issue I have, but I'm sure I'm not the only one
bothered by this: the google group has grown too large and broad to
track in email or to occasionally scan all messages for new changes
and important info. I noticed I now go to the group frequently to scan
for "Rich Hickey" posts announcing new developments. The unused RSS
feed would be the perfect solution to announce new additions, breaking
changes, new developments (like moving the repo), useful links, and
maybe general thoughts about where this is all going, which I'm sure
all are interested in.

Mibu

[1] http://d2nbqsesuabw8o.cloudfront.net/tmp/doc-1116/index.html

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to