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

Reply via email to