In the early days of Rails, a common dismissal of the framework and its Ruby roots were that these were just toys. Something for kids or amateurs to play with; to build a quick throw-away prototype or system of no consequence. It was most certainly not a tool for professionals building real systems for enterprise, king, or country.
Explicit in this charge against Rails and Ruby laid a grander, sweeping dismissal of toys of all kinds. And more specifically, a rejection of fun and enjoyment as valid reasons for adoption of technology that remains prevalent to this day.
The implication that real professionals do not bother with such childish indulgences. Making Serious Business Software is meant to be a chore. Something to be endured, not relished. An activity worthy of a stiff upper lip, not a smirk.
This charge against childish affection for unserious toys is often expanded to all sorts of wonder, and in particularly magic. In some circles, magic is now downright a dirty word. A label to be applied to anything appealing to greater aspirations than the khaki slacks efficiency of all that oh-so-serious Real Business Software.
But take a step back. Why on earth would we want to associate such joyful memories of learning about the world and its mysteries through toys and magic with that which is beneath us? Even though our goal may well be Serious, why must our approach? Since when is fun, novelty, and exploring the unknown at odds with productivity or value?
A phrase that’s been bothering me for a long time ties all this together: “Use the best tool for the job”. It implies that there is an objective, “best” tool for any programming job. And it leads the search towards those beige horizons of key-point comparisons and feature charts. This does X, Y, Z, thus it must be better than that which only does X and Y. It allows no room for simply preferring A to B on the account that it’s more fun!
Today Ruby and Rails are rarely accused outright of being toys. After more than a decade with roaring, overwhelming success creating an endless stream of “Yup, That’s Serious” business applications, the charge is now obviously preposterous.
But the same charges are still constantly brought against many things new, and as a favorite euphemism for toy goes, “unproven”. If there’s any sense of wonder or unexplained advantage, it readily gets that scornful label of “magic”.
It’s the lingua franca of the incumbents. The manifestations of a rigid minds trying so hard to appear above that childish sense of wonder.
The bottomline: Waging war on toys, magic, and wonder is simply a poor frame of reference. Many of us got into programming exactly because it seemed like magic, like playing with toys. Constructing intricate worlds out of nothing. Legos of logic and rabbit holes of learning.
Love thy toys; love thy magic.
Travis
on 29 Apr 15@DHH
What I like about this post is how it reminds me of the key takeaway from Clayton Christensen booked named “The Innovator’s Dilemma”.
Essentially, long established companies dismiss potential competitors because the competitors product is “just a toy” in comparison to the incumbents product.
The new competitors product lacks features and functionality over the established product.
However, over time, the competitors “toy product” become more established. Used more. Additional features added, etc and before you know it – it’s a decade later (like Rails) and this “toy product” has now taken over a large percentage of the market place and it’s too late for that original incumbent company to ignore the “toy” because it’s captured the market place.
Michael
on 29 Apr 15I think the objective fun/creativity/expressiveness of a tool needs to be separated from the attitude of the people who use it. Node/io is a good example of something that’s objectively better than the broad base of people who advocate for it. On the other hand, I really respect and have affinity for communities who can make magic happen with subpar tools (it works, you love it, you make me want to love it, that’s awesome!)
What’s really magic is the intersection between a magic tool and a broad base of users who have that magic attitude and mindset, and I think the Ruby community fits that definition. I think the best example of that might be the communities built some game development engines and woodworking tools.
Scott C.
on 29 Apr 15This post reminds me of iPad; Many people thought it was just a magical consumer toy for media consumption and not “the right tool for the job” for other purposes supposedly reserved for full-featured PCs. But people kept coming up with tons of fun and useful ways to use it. Look where it’s at now and how it is used for a variety of “serious computing” purposes. A seemingly simple and fun little tool can be so useful and powerful in solving problems.
I also wonder constraints and boundaries actually preserve magical and fun factors. It forces them to focus on essentials and drop all the extra stuff that doesn’t add values, and it probably protects fun/magical aspect of a tool in the process.
David Andersen
on 30 Apr 15The fact that entrenched companies resist change/toys/magic and new companies embrace them is why the new companies often eat the lunch of the former.
Kartick Vaddadi
on 01 May 15This is a poorly written, rambling article that mixes up several different things and then proceeds to paint them all with broad strokes. Let me try to untangle the claims so that we can hopefully have a more intelligent discussion:
- “We should have fun while doing our work, even if the outcome is a serious one”: Sure.
- “Fun is one of the factors based on which we should choose our tools”: Sure.
- “People criticise new tools are being unproven”: A new tool is, by definition, unproven. People who point that out aren’t being unfair; they’re merely pointing out the obvious. While the people behind a new tool obviously have a vested interest in its success, users don’t care about the tool per se. It’s rational for people to prefer a proven tool to an unproven one. You counter that by treating it as a marketing problem (How we make this new product successful? How can we convince people who don’t particularly care?) rather than complaining that the world is being unfair to you.
- “Use the best tool for the job”: I see where David is coming from, and I had an inchoate sense of discomfort with this saying, as well, which David brought out well. But I think David is taking it too literally when he counters by saying there isn’t exactly one best tool for a given job. Sure, there are multiple, but at the same time, not every tool is suited to every job. If you’re building an iOS app, sure, you can look at Objective C and Swift, but you wouldn’t write an Android app in Objective C or build a database server in Javascript, would you? That’s the sense in which I’ve seen this saying used, to counter claims that there’s one absolutely best tool. No, every tool is good for some purposes and bad for some others. That’s the sense in which you should take this saying. To make it more precise, I’d suggest changing it to “Use the best tools for the job”. Tools, in plural.
- “Magic as a negative term”: I don’t know what David is talking about here. To the extent I can think of “magic” used as a criticism, I’ve seen it used to describe frameworks where things work well out of the box that you wouldn’t expect, but when they break, it’s hard to diagnose and fix because you don’t know what went wrong. That’s a valid downside to “magical” tools. It doesn’t mean that they are bad tools. They have their advantages and disadvantages. But I don’t know if this is the way in which David has seen the term “magic” used negatively, so it’s possible this paragraph of mine misses the point (since I can’t figure out what it is).
gonzalo
on 01 May 15tremendo!!!
Tom C.
on 02 May 15Hey Kartick, something tells me you don’t like toys very much…?
Loved the article. Wasn’t expecting a conclusive dissertation on the Philosophy of Fun and Tools, complete with exhibits A-J, so I enjoyed it for what it was: a good reminder that “tools” can provide more than just need-to-have utility, but also mix in the nice-to-have enjoyment factor, A.K.A. fun.
Thanks.
Kartick Vaddadi
on 03 May 15I like toys very much. What I don’t like is mixing up several things and making vague, blanket statements that don’t mean much. I like people who are clear about what they’re saying, and actually end up saying something.
I already agreed with DHH (and you) that tools are more than just utility and can mix in fun. If you enjoyed the article, good for you.
Adam Thomas
on 05 May 15DHH does provide a punctuation to the idea of the magic of flex time in imagination land.
If you don’t venture into parts unknown how ever can you learn. One of the easiest ways to do that is to simply put the work down, and pick the toys up. Those neglected centers of your mind are more than ready to provide value, just have to wake them up.
This discussion is closed.