4 ms·
I certainly had very similar issues when starting out with Clojure (and am still running into them now), and I'd had previous development experience with Java a
by ihodes 16y ago
I certainly had very similar issues when starting out with Clojure (and am still running into them now), and I'd had previous development experience with Java and used Emacs before Clojure.
That being said, I do believe the "noob experience" is improving, and the community Clojure fosters is inviting and welcoming to newbies, as far as I've seen.
I've begun work on a tutorial to get people up and running with Clojure, but I will be recommending Emacs in it. As someone in the comments on the blog noted, if someone's goal with Clojure is to crank out a web app in 24 hours, they've come to the wrong place. Emacs enriches the experience, and I truly don't think it is as daunting as it is often made out to be. Gaining basic productivity in Emacs, even if not excellent productivity, takes little time, and the benefits of using Emacs seem large to me.
Regardless, the sentiment expressed here is important to consider. There should be a sanctioned IDE for Clojure, and it shouldn't just be Emacs and clojure-mode.el + Lein, at least not to start. Along with clojure.jar, I'd like to see Leibke's clj script packaged and promoted. That way, like with python, irb and newlisp, you can download and immediately get started with a functional REPL to see if you like the language before investing the time in setting up the ultimate IDE.
And yes, documentation. Please, documentation. It's in the style of LISP to have little to none documentation in code, as the code should explain itself. And it certainly should, but a little exlanation here and there can only help to enlighten those not as familiar with the language and save the time of those in a hurry.
But now is an exciting tine for getting into Clojure. Don't let the initial challenge of getting into it deter you!
- mahmud 16y agoIt's in the style of LISP to have little to none documentation in code, as the code should explain itself Nearly every Lisp data type and all special forms take docstrings; documentation that gets compiled into your code that can be queried at run time. Lisp was the model for online Unix manual pages; APROPOS and DOCUMENTATION and builtin Common Lisp functions. There is even a defacto commenting style for documenting code at various levels; file-wide, top-level form, and small inline documentation. The typical "Lisp experience" is a fat abundant system that rivals its underlying OS and platform. It even has a function, ED, to invoke the builtin editor/IDE, and some Lisps even have that builtin.
- technomancy 16y ago> That being said, I do believe the "noob experience" is improving, and the community Clojure fosters is inviting and welcoming to newbies, as far as I've seen. Indeed, if anyone complains about the noob experience in Clojure, it's probably a good sign that they don't use IRC. =)
- india 16y ago> I've begun work on a tutorial to get people up and running with Clojure, but I will be recommending Emacs in it. Oh no. I hope I do not come off as a troll but this is exactly why I never could get started with any of the lisps. I can't stand emacs or netbeans or eclipse. This a personal taste for me but a very strong one. They all just feel wrong to me. Associating a sanctioned ide with a language is a bad idea. It brings unnecessary baggage for a new user. By closely associating your language to an ide and by having every tutorial throw it in my face, your community is just creating an unnecessary entry barrier for me. Please consider making the tutorial ide independent.
- edanm 16y ago"I've begun work on a tutorial to get people up and running with Clojure, but I will be recommending Emacs in it." I'd like to strongly encourage against that. Here's my story: take from it what you will. 2 years ago, I decided to get started with Lisp. I looked around, and the most "official" path seemed to be using "Lisp Box", which is Emacs based. I didn't have any experience with Emacs, but I did keep hearing about it, so I decided to jump in and learn it (I was, after all, in a learning mood). Of course, learning Emacs isn't a one-day affair. Sure, I could learn enough to do some Lisp (and I did). But it feels like a waste. So I started to learn a bit more about Emacs. Then more. Eventually, I was spending so much energy learning Emacs, that I didn't have any time left to learn Lisp. To this day, I've never learned Lisp. In contrast, with Python, I spent a day with the IDLE shell that comes packaged as part of Python. Then I moved on to working in files, with IDLE as an editor. Eventually, I moved on to looking for a good Python editor/IDE, a search I spent a lot of time on. But the point is, I didn't need to learn a completely new environment to use Python. Don't forget, a n00b only has so much time/energy to learn, you don't want them wasting it on the editor but on the language. The editor can always come later.
- jimbokun 16y ago"Along with clojure.jar, I'd like to see Leibke's clj script packaged and promoted." This is the answer to so many of the concerns cited in this discussion, I'm shocked that it has not been more heavily cited in this thread. http://github.com/liebke/clj http://github.com/liebke/clj I haven't used it yet, but from the documentation it looks brilliant. Dead simple package management and REPL tied together in a single command line tool. A noob should be able to go far with just this plus text editor of choice.