Why Clojure Cup?
by Tero Parviainen on September 9, 2013
To kick off the competition blog, I'm going to share some of my thoughts on what it is that makes the Cup an event you may want to join.
Clojure Cup is very much inspired by Rails Rumble and Node Knockout. I've participated in both competitions several times. I've never won, but it's been a blast each and every time. There's just something about these events that drives you to do great work and enjoy every minute of it. But what is it?
New Acquaintances And Friends
An event like Clojure Cup is a good chance to work with people you otherwise wouldn't get to work with. Whether it's people from other departments in your company, people you know from user groups, or even people you've never even met in person, this is a chance to get to know them. You also tend to learn a bunch of new tricks when you work with someone new.
Sense of Occasion
This is not just any old hacking session. Hundreds of people from all over the world will be participating in the Cup, and they'll all be hacking Clojure simultaneously with you. Twitter, IRC, and live data feeds on our website all connect you to them. It's an occasion you'll remember. Not to mention, getting to see the progress other people are making drives you to do even better work.
48 Hours Is A Short Time
48 hours is a short time to build a working application. It's 6 person-days in consultant speak, but it really feels much shorter than that since it's all compressed into one, continuous crunch. This does wonders to your concentration.
The deadline is always looming, from the very beginning. This forces you to separate the essentials from the cruft. If you do that successfully, you'll be amazed just how far you can get in those 48 hours.
…But Not Too Short
48 hours is also a period long enough to actually get something significant done. If you pace yourself well, you can not only execute but actually spend some time thinking about what you're doing.
For me personally, the most important thing is being able to sleep. I know many people who like to crunch through the whole thing in one caffeine-induced coding binge – nothing wrong with that – but I'm too old for that kind of thing (I think I always was).
The optimal timetable for me seems to be something like 16 hours of intensive work, 10 hours of rest, followed by another 16 hours of intensive work. During those 10 hours of rest your unconscious gets a chance to work on the problems you've been trying to solve. The most productive time is often just after you've had some rest.
Most of the Clojure enthusiasts I know are still in a situation where they don't get to use it much on their day job. If that's your predicament, what better way to get a Clojure project going than to spend a weekend doing intensive hacking? Who knows, you might even make something you can show off to your boss or customer. "See what I did in 48 hours with this new Java library called Clojure? Maybe we could use it in that next ERP extension project."
Even if Clojure is your bread and butter, this is a chance to play with something new, be it ClojureScript, core.async, core.logic, or whatever seems interesting.
A word of advice here, though: If you go overboard with novel technologies, you'll spend those 48 hours on the learning curve rather than building stuff. It's happened to me before. There's nothing wrong with that of course. Just be aware that it's a trade-off you'll be making.
Promoting Clojure as a "Getting Things Done" Platform
When I'm doing Clojure I feel more productive than with any technology I've used previously. There's something to be said about the combination of a simple dynamic language, an awesome library ecosystem, and the heft of the JVM underlying it all.
But to the uninitiated, somewhere along the way Clojure got a reputation as a language specialized for solving particularly hard problems. A weapon for special occasions, like when you have a wicked problem that has something to do with concurrency. It's true that Clojure is especially good where many other languages fall short, or course. But that's not the whole story.
In addition to the big ideas like the epochal time model and immutable data, Clojure has a vibrant ecosystem of libraries for the practical tasks working programmers face every day. Tasks like getting stuff out of a database and serving it out as a web page, for example.
All of this makes Clojure a language for truly getting things done. Organising Clojure Cup is an effort on my part to show that to the world. I'd like to invite you to join me in that effort: Sign up and build something awesome!comments powered by Disqus