Rob Ashton

The Exponential Ashton Disinterest Curve

The catalyst

I was lucky enough to be able to attend Dan North's recent closing keynote at Oredev in Sweden (and he was lucky enough to be played on by our last-minute rag-tag ukelele troupe).

It's worth checking out in its entirety as he's a wonderfully engaging speaker and there were some great stories told during this hour long closing speech.

At one point in the session when discussing passion and motivating people to try new things he made a few remarks concerning the "Exponential Ashton Interest Curve" or something to that end. The gist being that while he might not agree with the way I do it sometimes (Fair: I'm don't agree with the way I do it sometimes either!), the passion and energy being expended by myself and others like me are what often fuel other people's interest to go along and start trying something out.

The curve

Over the years many technologies and opinions have appeared on this blog and on the conference circuit as I discover something and decide they are worth discussing. The flipside of this of course is a general perception that once I stop talking about something the only time I'll ever mention it is if I want to talk about the things I didn't like about it.

I had more than a few jokes made at my expense on this subject over the next few days as I hung about at the Cheers Booth (The Jetbrains stand where everybody knows your name).

"Is there anything you've used and actually like Rob?"

One of the big problems with launching yourself wholeheartedly into learning something deeply enough to do more than simply make a Pluralsight video about it (oof), is that you end up covering a lot of ground with the chosen technology. You internalise a lot of the good things and start storing up a list of the reasons that the technology wasn't such a good fit for the project you embarked on.

A good example of this is is the database I wrote in Clojure two years ago; shuffling binary data from the public endpoints into an unmanaged storage engine, the concurrency issues over the top of unmanaged resources and the event loops that ended up solving those problems led me to the conclusion that Erlang would have been a better fit for the task at hand. I say that freely when I give talks on Clojure because I think it's a good example of where Erlang would have shined. What I don't often mention in these talks is that I really liked working with the REPL (and I miss this every day in Erlang), I miss the polymorphism (Erlang's built in data structures and modules are a mess) and I miss the terseness of expressions written designed to perform logic around data.

Possibly because I'm British, I tend to focus on the negative aspects of things that I've used rather than the positive ones. I also find that in an industry where people constantly wave flags for whatever they're selling that being loud about the problems I've had personally with those technologies helps keep beginners grounded in their expectations. If you've ever talked to the Erlang crowd you'll have encountered the kool-aid addicts and know what I'm talking about.

This tends to give the outward impression that I only like the things I'm currently using and dislike everything else I've ever used. In a break from my usual "Urgh, all of this is crap" spiel, let's have a look at an obvious example: How I currently feel about each language I've used over the last decade and whether I actually do indeed hate my past decisions. (I'll ignore my brief Ruby phase, I couldn't find it in my heart to say anything nice about it).

First off will be C# (coming tomorrow). Originally I was going to write this as a single blog post but on hitting 3000 words I have decided to split it up into a single technology per entry... If anybody wants anything in particular covered that I've gone off about over the last decade feel free to ask how I currently feel and I'll squeeze it in too.