Hacker News new | past | comments | ask | show | jobs | submit login
Clojure 2012 Year in Review (stuartsierra.com)
62 points by andymoe on Jan 1, 2013 | hide | past | favorite | 7 comments



Thanks for the write-up. As a Clojure user, I really hope the language takes off, but I think the collective world isn't going to move much until there is a long list of projects that have been created using Clojure and people have real access to those who did it before. Obviously, there is Light Table and similar projects, but it will take a Reddit-level site to really push it into ubiquity. For example, I have two websites that are exclusively written in Clojure, though neither of them are impressive pieces of software (job "portal" and "blog"), but honestly, no one cares about my small piece of the world. Of course, if anyone ever got stuck with something and needed advice, I would be more than happy to offer pointers.

I think the other thing that will help -- and I can't imagine that there is much want from the Clojure community -- is a massive framework a'la RoR / Django. I definitely wouldn't use such a framework, but I think many people and professionals are to clung to the idea of these frameworks. Clojure, in its current state, demands a fearlessness that may not be viable for wide adoption.

With Clojure hosting so easy and affordable on Heroku, I can see a possibility for a Drupal- / WP- type CMS being viable.

I'm definitely going to pick up your ClojureScript book. Even at full price it is a good deal, but at 1/2 price, I'm all over it.


I think the other thing that will help -- and I can't imagine that there is much want from the Clojure community -- is a massive framework a'la RoR / Django

Have you heard of Luminus (http://www.luminusweb.net/)? What do you think about it? Mind you, it's still in early stages of development, so there are probably going to be some changes.


Doesn't look too bad. It's pretty close to what I'm doing at the moment, except I use Korma and the routes don't have their own folder. It would be pretty cool to see some of the logic behind the decisions you made for those who are first exposed to it. I get the overall logic, but a new person many not.

I most certainly wouldn't discourage anyone from using it, but as you said, it isn't complete yet, but I think its one direction. The only issue is that it still has the minimal, few batteries included attitude that I think may be scary for other people to use. The first thing I'm always asked about Clojure is the frameworks available, and when I say that what is available is ultra-minimal, the immediate reaction is fear of rewriting the wheel over and over again. It's unfortunate that this is the pervasive attitude at the moment as I don't believe Clojure suits this well, but that is my own observation in my limited discussions. In that regard, a Luminus-style framework isn't really what I was talking about.


Thanks for the observation. You're right that it's fairly minimal in the sense that the framework is basically a leiningen template for new projects and a set of libraries that work on top of Ring/Compojure, with most of the functionalities initially intended for Luminus being pushed to lib-noir, but I kind of like it that way. Just a quick note - Luminus is not my work, it's being developed by a guy who also runs a blog I like to read (http://yogthos.net/). BTW, I'd be interested in seeing your work, if you're hosting the source somewhere.


I'll probably open source all of coderedux.com and possibly open source an interesting part of solo resume. I don't see an email address in your profile. Shoot me an email and I'll send you links when I have them up on github. I'm currently moving all of it off of Noir and porting to Leiningen2, so it's not ready yet. yoghos.net has been a helpful resource for certain.


Thanks to Stuart Sierra for a great Clojure 2012 summary. Personally, I'm very pleased to have tracked close to 95% of what was mentioned as 2012 was a year of Clojure immersion for me. I had settled on Clojure after building a few toy projects in Arc, Ruby and Python. Yup, 2012 was a great year of programming. :)


I spent most of my vacation hacking on Clojure including prodding yogthos into getting Luminus ready for the outside world.

I am trying, very hard, to make Clojure + Ring/Compojure work for my web development projects but it's just not more productive than Python/Flask. Not by a long shot.

For one thing, the debugging story isn't as good as Python or Common Lisp. I'm accustomed to having a trivially injected in-language unified debugger/REPL environment in Python and CL. Swank/CDT comes close but is abandoned/awkward, Ritz is on nREPL but it's unclear to what extent it's just using Java debug tooling.

Another problem is templating. I'm sufficing with Hiccup for now, but it's a far cry from ERb and Jinja templates. Doing something relatively simple like pagination is out-and-out irritating in Hiccup. Kicking up random template overrides like for headers, footers, title tags, etc are more annoying in Hiccup and Ring.

This is partly due to the fact that in order to have a parent with a bunch of children functions generating the HTML, the only way to override is to manually and explicitly kick a map of data from the handler to the template function and back to the parent being overridden.

The only indication I've seen that anybody in the Clojure world truly understands the needs of web development is Kiln.

https://github.com/straszheimjeffrey/The-Kiln

Most others I've spoken to have brushed off my concerns as trivial. Well yes, sure, from an engineering standpoint. But I still need my projects to handle the whiplash of a fickle product manager whether you think it suits your "simple" design principles or not.

I've been trying to use Clojure for my projects since '08 or '09. I was excited when MMc announced Ring and less excited when he moved to Go. I'm tired of waiting for Clojure to become practical.

I get that the Clojure community needs to have their daily 5 minutes of hate for Rails and Django, but those communities have been shipping a lot of quality websites. I even understand their distaste as I use a minimalist web framework (Flask) myself.

Shipping > aesthetics.

I'll port my current project back to Flask/Jinja/Mongo unless I have an epiphany regarding templating and managing state in Clojure.

The simplicity of Clojure's ecosystem serves only to make my own life more complicated.

I still can't get over the fact that it's a Lisp without a good native inline debugger.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: