It appears that I didn't do a good job of writing my previous post about Emacs and Clojure. I was trying to give a flavor of what someone new to Clojure would think when encountering "Emacs + Clojure is the best development environment". Seriously, getting it set up sucks. Really bad. I speak from experience, having tried to get someone set up using Clojure and Emacs recently.
What you should do is use Counterclockwise. It's wonderful. It's easy to set up. It has lots of features. It's a joy to program in Clojure when using Counterclockwise. That's what my friend is now using.
The other alternative is Clooj. That is truly the easiest way to get going. Just download and run. The disadvantage is that Swing apps don't look that great on Linux. I've gone through all the guides but the fonts still aren't what I want. To my knowledge it doesn't work with dual monitors. But if you want to get started quickly, you cannot possibly do better than Clooj.
Note: I'm not saying you shouldn't use anything else, just that these are awesome for beginners, and others may or may not be.
I'd argue that the time required to get up and running is a misleading metric.
ReplyDeleteThere's a great post about The Cognitive Style of Unix that suggests a steep curve of difficulty plays a key role in actually learning something.
When I approach learning a new technology, I try to find an established path to mastery and follow it. You can often identify the titans of a particular project, see what tools they use, and adapt them to your own style. I strongly prefer this form of jumping into the deep end to methods that are focused on (i.e. dumbed down for) beginners.
It's no coincidence, in my opinion, that so many of the paths I've followed involve Emacs.
I felt exactly this 'startup' pain when I began 3 mo. ago.
ReplyDeleteSetting up emacs + xxx is difficult to explain and is rarely as straightforward as one hopes (and I consider myself an avid emacs user).
Placing this approach front-and-centre creates an unnecessary hurdle to learning the language.
I'd argue that a gentle hand-holding intro is best, something like http://tryclj.com/ is fantastic.
Then listing the single binary solutions such as IntelliJ (or Eclipse).
Finally, the multi-binary/step approaches can be listed (including lein).
The fact that the current majority of Clojure users develop with tool x, does not imply that newer users will find x the best tool.
And once someone is comfortable enough they can easily switch dev. environments.
Think of yourselves as early adopters, thus the next wave of users will be less forgiving of an awkward 'startup' experience.
Remember we're trying to promote the language, not the tools.
Allowing the most seamless / easiest introduction as possible should be the goal.
emacs is good not only for clojure..you can use this for many languages and it works very well...then the time than you spend learn how use it..can help you for develop in many other langs..
ReplyDeletenow...config emacs for clojure can be a pain or be simple...you can download the packages from marmalade (it's really simple) and you are ready..if you considere than emacs has other interesting stuffs like autocomplete words (this work in the repl too!!) autoclose parentheses, many color themes and a very nice integration with leiningen..you has a wonderful editor...
clooj is really simple..it hasn't autoclose parentheses, autocomplete words, autoindentation, and I feel than is really a incomplete work...
about Ides, netbeans has a really good repl, and I feel than it's a good alternative (better than eclipse in my opinion) but lack for leiningen integration and autocomplete words (man the autocomplete in emacs really save time when you type)