Last day of 2013, and it’s time to look ahead to the year to come. Here are my tech aims for 2014:
I decided last year I wasn’t going to learn any new languages1. Instead I was going to double down & get really tasty at Clojure. There’s still plenty of deliciousness left in that journey, but I think I’ve done well enough to pick up a little something new.
But what new thing should I choose? Well, probably the best advice I heard all year was from Steve Purcell, which I’ll paraphrase as, “Figure out what the smartest, nicest people you can find are learning, and learn that.” I look around and see Clojure & Haskell fitting that description, so it feels like the time is coming.
(Actually, Haskell isn’t new to me. It’s just my Haskell skills are so crusty as to earn a seat in the House of Lords. A 15-year hiatus, by my calculations.)
Chances of it happening: Strong. I love a new language. Would be nice if I had a commercial reason to motivate it though.
Reports servers, universally, suck. In roughly-chronological order, I’ve used Oracle Reports, BIRT, Oracle Apex, JasperReports & Crystal Reports, and not one of them has shed a glimmer of hope. They’re tolerable, but they’re not good.
Here’s a test you can apply to see if your report-server sucks: Which is easier? Adding a pink circle to the top-left corner of a report, or adding a new column to it and pushing it live?
The fact that it’s easier to find the ellipse button than the deploy button is proof that something is tragically wrong.
I know why they all suck. I know exactly why. It’s because they’re designed on a lie. The lie is, “Use our tool and you can just drag & drop reports together. You’ll never need to learn SQL and you’ll never need to ask IT again.”
BS. Never happens. Putting a drag & drop interface on it doesn’t save
you from learning the database schema, so the job gets pushed to IT
anyway. Except now you’ve spent a packet on forcing a dumbed-down
interface on people who’d be happier with SQL and
git push. If we
assumed the report-reader was non-technical, but the report-writer was
a geek, we could get the turnaround time on new reports down to less
than half an hour. And everyone would be happier.
Chances of it happening: Unknown. I can see how to build it. I believe it’s commercially viable. But I can’t see how to market it. That’s something to mull.
I’ve been playing around with a few CIDER tricks lately - such as this bind-a-Clojure-command tip - to improve my Clojure-on-Emacs workflow. I could do some far cooler stuff if Emacs could read Clojure data structures, and an EDN parser’s the route to that.
For instance, I’m thinking a much better org-babel/Clojure
integration2 for starters. After that, I’d love to have a
buffer that pretty-prints the value of an atom, watches it for
changes, and does some
watch-style syntax-highlighting for any diffs.
That would rock.
Chances of it happening: Good. Geeky confession: I enjoy writing parsers. And I’m always buggering around with Emacs these days, so it’s probably just a matter of time.
If you’ve been here before you’ve probably gathered that I’m an editor junkie, and there’s a constant pull to scratch my own itch. My ideal editor would be a mashup of these principles:
Why is Emacs the only programming tool that assumes you’ll want to program it? Sure, almost every editor has some means of extension, but Emacs really is in a different league. It opens on a “Program Me!” buffer for chrissakes.
(If you don’t believe Emacs is uniquely extensible, check out my video, Writing A Spotify Client in 16 Minutes.)
For any tool you’ll use for 40 hours a week, for the next decade, the initial learning curve is irrelevant. It’s how productive it makes you after the first month that counts.
In short, I would trade terminal support for an
Chances of it happening: Slim, sadly. Writing a good editor - and a good one is the only kind I have any interest in writing - is a long, long road. Unless it can pay its way, I’m going to have to resist going down that rabbit hole.
2013 has been something of a sabbatical year for me. It’s been fantastic for feeding my brain, but too isolated, and if I’m brutally honest, a little navel-gazing. I’ve decided to brush up my CV and find some smart people to build interesting things with. I did a few contracts last year, and there is something delightful about building to spec. This year I’m going to dive in with both feet.
Chances of it happening: Strong. Tell me if you know of any interesting opportunities!