

Clojure 2012 Year in Review - andymoe
http://stuartsierra.com/2013/01/01/clojure-2012-year-in-review

======
dizzystar
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.

~~~
Sandman
_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.

~~~
dizzystar
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.

~~~
Sandman
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.

~~~
dizzystar
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.

------
codewright
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.

------
kinleyd
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.
:)

