Greg, thanks for this post, it's a helpful perspective. Many of us
have been working on this problem from various angles (though often
uncoordinated, but that's how it goes), and I do what I can. Here's
some general comments/thoughts in no particular order after re-
skimming your post and the comments on this thread so far:
- Clojure (and some environment for working with it) must be as
"friendly" and approachable for new users as possible. It is not an
"expert's" or "professional's" language, at least in my conception,
and thinking of it that way will doom it to irrelevancy. Our
community has been extraordinarily open and welcoming to newcomers for
years, and any change in that posture would be devastating. I
(thankfully) have little fear of this actually happening.
- Clojure is fundamentally a hosted language -- whether it's the JVM
or the CLR or Javascript or Cocoa or LLVM or Gambit or whatever other
platforms Clojure will be hosted on in the future, there will always
be some tension between Clojure and the underlying runtime. The key
is having tools around that effectively plaster over that tension for
long enough for newcomers to tinker, get comfortable, and become
effective in some small way before forcing them to peel back the veil
and understand things deeply. Currently, the classpath is the biggest
thing that needs to be plastered over, but that's a simple issue that,
honestly, existing IDE plugins fundamentally solved years ago.
- I suspect there will never be an "officially-sanctioned" toolchain,
unless one particular environment becomes so capable and ubiquitous
and approachable that it's pointed to because suggesting anything else
would just be mean. That's good, insofar as, to a certain extent,
we're not sure what that über-environment should look like (though
I've been trying to cultivate a conceptualization of that here,
haphazard as it may be: http://muckandbrass.com/web/x/DoBZ). Yes,
we'll "lose" some newcomers while efforts are splintered, but if and
until that changes, it's best to simply say, "here's our best effort
at getting you started, come find us in #clojure or on the ggroup if
you need help".
- Not all newcomers are alike. What a Java programmer needs is very
different than what a Rubyist or pythonista or old-time lisper need.
This fact needs to be taken into account when recommendations are
being made for build tools, editors/IDEs, etc. etc. (I'll bet the
correlation between prior Java usage:clojure-maven-plugin::prior Ruby/
python usage:lein approaches 1 ;-). That means, among other things
and all things being equal, don't recommend emacs to the Java dev, and
don't recommend maven to the guy who likes writing makefiles and bash
scripts. This is also a hit against the notion of there ever being an
officially-sanctioned environment or toolchain.
- The 1.1 vs. 1.2 "issue" is a canard, regardless of . One can start
with Clojure 1.0 if you really want to make the point -- lots have
been added since then, but little (almost nothing, actually) that was
there has changed. There is a certain tendency for a very, very large
portion of the community to follow bleeding-edge builds --
fundamentally not a good thing IMO, but a lot of factors are involved
there -- but those factors are not in play for true newcomers that are
just looking to learn. Feeling like 1.2 is a requirement for learning
clojure is unwarranted, and an unfortunate side-effect of the gestalt
of the community discussion.
Hrm, guess I rambled on long enough. Good discussion, keep having
it. :-)
- Chas
On Jun 27, 2010, at 5:58 PM, Greg wrote:
This weekend I've been diving head-first into Clojure, and I've
documented a lot of the sticking points that I've run into as a n00b.
I'd like to share them with the community here, in the hopes that we
might be able to improve the getting started experience for people
considering Clojure:
http://gregslepak.posterous.com/clojures-n00b-attraction-problem
In the post I cover issues with:
- Obtaining Clojure
- Running Clojure
- IDEs
- Emacs/VIM
- Build systems
- Documentation
Cheers,
Greg
--
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
Note that posts from new members are moderated - please be patient
with your first post.
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
--
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
Note that posts from new members are moderated - please be patient with your
first post.
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