Rich Hickey
unread,Oct 16, 2008, 12:36:21 PM10/16/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Clojure
A year ago today I 'released' Clojure, by sending a message to my jFli
and Foil mailing lists. It got blogged, picked up by Planet Lisp and
redditted in the course of a day or so, and has been a wild ride ever
since. I couldn't have possibly imagined the year Clojure (and I) have
had.
Community
Releasing a language means hoping others will use it, and I truly
appreciate the risks taken by those very first users, trying Clojure
of their own interest and initiative with no recommendations or
testimonials. I've tried to repay that interest with support and
explanations, bug fixes and enhancements. Most satisfying has been
seeing a community grow, and gain a collective experience it can
share. We're now at 650 members on the Google Group, and have had over
4500 message over the year, 500 messages in the first half of October
alone! Even better, only 15% of those messages were mine (down from
50% in the early days). There are newcomers kicking the tires, people
who've spent enough time to know their way around, and those who,
through their extended experience, really 'get' the model behind
Clojure, and have developed idiomatic sensibilities. In addition, it's
a diverse community, including some Java experts, and some Lisp
experts, with experience in a wide variety of domains, all of which is
being shared too.
The discourse and attitude has been consistently positive and
supportive, and Clojure has benefitted tremendously from the feedback
and suggestions of the user community.
Contributors
Releasing something as open source means hoping that, eventually,
giving something away will yield returns of contributions that will
allow your project to grow in ways you couldn't achieve alone. I'm
happy to see that starting now, as people get familiar enough with how
Clojure works to make tangible contributions.
A substantial source of contributions that don't end up in Clojure
itself are on the tools side. People have built editor support for
emacs and vim, the enclojure IDE for Netbeans, swank/slime etc. Other
contributions take the form of additions to the wiki, tutorial blogs,
and answering questions on the group and IRC.
Awareness
Clojure has gotten a lot of attention - I've been invited to give
talks at the Dynamic Languages Symposium at ECOOP, the European Lisp
Workshop, IBM Research, the JVM Languages Summit, Boston Lisp, and
next week at Lisp 50 at OOPSLA. There has been a lot of blogging,
which continues to grow. Clojure has made its presence felt in both
the Lisp and JVM communities it bridges, which have very little
overlap otherwise. The feedback has been overwhelmingly positive.
The Language
I've done almost 600 checkins in the past year. Many were small bug
fixes and enhancements, others were significant features like first-
class namespaces, in-source docs, gen-class and proxy, primitives
support, ad hoc hierarchies, destructuring, list comprehensions, var
metadata, regex support, zippers, first-class sets, agents, struct
maps, java.util integration, parallel support, etc. All of this
happened in a context of considerable stability and robustness, which
is a testament to the Lisp model of using a small core, with most of
the language provided by independent functions and macros.
Moving Forward
The net result is that the prospects for Clojure going forward are
very good. The core model of Clojure has held up well and continues to
appeal - accessible, robust, thread-safe, efficient dynamic functional
programming, on a world-class infrastructure, with a huge set of
libraries. Oh yeah, and it's great fun!
People coming to Clojure now find a vibrant community, plenty of
support, a variety of tools and more on the way, a wiki and blogs full
of examples, a book on the way, many online screencasts and talks, a
huge message archive etc. The language itself continues to grow in
capabilities while remaining stable, and the growing pool of
contributors promises more hands in pursuing bug fixes and new
features. There's still more to do, but more people to do it as well.
I designed and built Clojure so that I could pursue the next 20 years
of my career in a language I wouldn't mind thinking in. In order to be
commercially accepted, a language needs to be technically viable and
have wide enough awareness and use. I think Clojure has great
prospects in both of those areas, as it continues to improve and usage
grows.
Thanks to all for being part of Clojure!
On to year two,
Rich