My name is Ram Rachum, and I'm a software developer based in Israel, specializing in the Python programming language.

This is my personal blog. I write about technology, programming, Python, and any other thoughts that come to my mind.

I'm sometimes available for freelance work in Python and Django. My expertise is in developing a product from scratch.

GitHub profile

Personal Website

6th November 2010

Text

Technology principle: The toy will win

In this post I will explain an important principle that I noticed in the technology world. I call this principle: The toy will win.

What does “toy” mean?

Here’s my definition for toy:

Toy [noun]: A technological product which is simple and fun to use, and which may be criticized by some people as being weak and not suitable for serious work.

The iPod is a good example of a toy; when the iPod first came out, it was criticized for its low specs, yet it grew to become the most popular music player ever.

On the other end of the spectrum we have “enterprise products.” While toys take pride in how small, fun, and cool they are, enterprise products take pride in how big and serious they are.

Examples of toys winning

Let’s look at a few examples of toys winning versus competing enterprise products:

  • Example 1: “Micro-computers”

    The computers that you and I use today, like our desktop computers and laptop computers and netbooks, were not originally called “computers.” They were called “micro-computers.” Even if you have in your office a 16-core hyperthreaded workstation with three huge monitors, it’s still technically a “micro-computer”. The reason they were called micro-computers is because real computers used to be the size of a room. The so called micro-computers were just a toy for hobbyists, a cute little version of “real” computers. They weren’t intended for serious work.[1]

    Yet, as time passed by, the toyish micro-computers became stronger and the “real” computers became redundant, until finally in our time mainframes have become a niche market and the word “micro-computer” has become meaningless. “Micro-computers” have effectively replaced mainframe computers.

  • Example 2: “Scripting languages”

    There’s a bunch of programming languages that some old-time programmers call “scripting languages,” so as to separate them from “real” programming languages. They are also called “dynamic languages,” which is a more accurate name. One of these dynamic languages is my own darling language, Python; a few more examples are Ruby, Perl and the variants of Lisp. These stand in contrast to classic programming languages like C.

    Dynamic languages are easier, allow for greater abstraction and have more elegant, readable and most importantly short code. Moreover they are fun. But when compared with traditional languages, they are criticized for being too slow. This is the reason they were called “scripting languages,” since they used to be good only for simple high-level scripts, while the “real programming” would be done in C.

    But as the years passed and hardware became faster the relative slowness of dynamic languages became less relevant, while their advantages in programmer productivity became much more relevant.

    Nowadays dynamic languages have replaced traditional languages in most areas. A new software startup typically does most of its programming in dynamic languages, like Ruby and Python. In fact, the appearance of dynamic languages is one of the reasons startups exist in the form that they do today— Without dynamic languages, software development would be at least 10 times more expensive, which would mean that the majority of startups would not be able to develop a non-trivial software product before an angel investment.

  • Example 3: The Arduino

    Hardware nerds will be familiar with the Arduino. The Arduino is a new and popular microcontroller. (It also includes a software suite to easily program the microcontroller.)

    A microcontroller is a programmable device that can control electric motors, LEDs, sensors, and other electric components. People use microcontrollers to build custom machines. A few examples are sophisticated door locks, pollutant-detectors, energy monitors, and now with the Arduino, also experimental art projects.

    The Arduino is currently the microcontroller of choice for knowledgeable hardware enthusiasts. In its short time on the market it sold more than 120,000 units. This is even though there are many more powerful microcontrollers, for example the BeagleBoard which is powered by a 1-GHz ARM Cortex A8 processor, much more powerful than the Arduino.

    But the Arduino is beating the BeagleBoard and its other competitors because the Arduino is cheap ($30), simple, and accessible for non-techies. This was enough to make the Arduino win despite not being as powerful as its competitors.

There are many more examples of toys winning, but we will not explore them all here. I’ll be happy to hear more examples in the comments.

Have you noticed a pattern in these examples? We can call this “The demeaning name pattern.” Many toy products receive a demeaning name when they are first introduced, but slowly that term loses its meaning as the toy product gradually comes to dominate the market, until finally the demeaning name disappears and young people don’t even know what it used to mean. For example, the term “micro-computer” is now completely archaic; “scripting language” is on its way there.

When you see a product category with a demeaning name like “micro-computer” or “scripting language”, watch out; this may be a sign of a toy just waiting to kick some enterprise ass.

Why do the toys win?

Let’s try to guess a few reasons why toys are beating enterprise products. I want to stress out that these are just guesses as to why this is happening. Like good scientists, we need to separate the empirical validation of the theory from the explanations we try to give it.

Without further ado, here are the reasons I identified:

  • User-orientation and UX

    One of the biggest causes for failure of technological products is that software developers tend to forget that the goal of their product is to serve the user. (I explored this in detail in an earlier post.) Software developers tend to get too attached to their own architecture and way of working, that they sometimes forget that the final goal of their product is to serve the user’s needs.

    A related point is that software developers usually don’t make enough effort to ensure their product has a good UX (user experience). Many software developers still underestimate how important a good UX is to the product.

    How does this relate to the toy issue? When the product you’re developing is a toy, it’s harder to forget that it’s supposed to be fun. An enterprise product can get away with having a bad UX; but for a toy to have a bad UX is simply unforgivable. A toy that doesn’t make people feel good gets thrown away quickly and does not justify the name “toy”.

    Therefore, toys (a) get better UX and (b) are more focused on the users’ needs. These are both important qualities that are currently underrated, and toys get the longer end of the stick in this department.

  • General bullshit

    Do you know how they say that a man wearing a suit can get away with anything? When you’re wearing a suit, people think, “wow, that guy’s all rich and serious, he must really know what he’s talking about!” Because of this sentiment, suit-wearing people can get away with saying and doing a whole lot of stupid stuff and still get people to take them seriously.

    Enterprise software is like software in a suit. It can get away with doing a whole lot of really stupid stuff— An example of that would be the Yahoo website in the late 90s, which gave terrible search results, just before Google came out. But suits only “get away” with this stuff in the PR sense, i.e., not losing face. But regardless of PR or face-saving, bad decisions lead to bad products which lead to unhappy users which lead to abandoning users.

    Note that there are two reasons that suits can get away with doing stupid stuff: (1) Other people perceive them as successful and (2) they perceive themselves as successful, so they’re less likely to stop and think “Am I doing the right thing here?” Reason 2 can also be called hubris.

    Sometimes the company making the enterprise product has been in the market for so long and has had so much success with their product that they feel very entrenched. From Microsoft’s point of view, Office is perfect and took forever to build; how can a competitor even come close? This also makes them blind to market changes. Oh wait, sharing documents in a browser environment might be such a killer feature that people will accept a far worse document editor just to have that feature?

    Another thing is that sometimes the company making the enterprise product doesn’t even acknowledge that the toy is a competitor. They become so used to the enterprise way of thinking that any non-enterprise toyish product seems like a non-entity for them— An example of that would be Steve Ballmer who allegedly said that “Google is not a real company.”

  • Bigger ecosystem

    When a product is a toy, it enjoys a wider audience. For example, the Arduino is usable by artists, who tend to be less technical, and Python is usable by programmers who don’t know or care about the technical details of compilation and pointers.

    Toys open themselves to new users who might find the competing enterprise product too technical or too expensive. This results in a bigger ecosystem for the product: There are more users, and the product is used in more diverse fields. (Such as the Arduino in experimental art projects.) There are more tools for working with the product, more essays and tutorials written about it, bigger communities using it, more freelancers available who are familiar with the product, etc.

    A big, healthy ecosystem makes the product more inviting to new users, because they know that if they have a problem with the product there’s a big community which can help them.

Again, I may be wrong on these explanations, and possibly there are more explanations that I haven’t thought about. I’d be happy to hear any suggestions in the comments.

Some conclusions

In my opinion, this trend is a good thing. Toys respect us as human beings much more than enterprise products do, so if toys become more successful, we humans will benefit. I don’t know about you, but I’m sick of having to spend my limited time on Earth reading broken documentation of poorly-designed enterprise products that take themselves way too seriously. The simple-to-use, toy-like products in my life make me so happy, because they respect my time. Therefore, I’m personally very happy that toys are coming out on top.

A more pragmatic conclusion is: Let’s bet on the toys!

Here are a few ways you can do that:

  • If you need to choose between a few technological products to solve a specific problem, whether it’s in your job or in your personal life, give more consideration to the product which is more toy-like than the others. Not only will you suffer less headaches, there’s good chance that the toy-like product will outlive its more “serious” competitors, and you’ll have to spend less time migrating from one product to another.

  • Are you a software developer building a product? Make your product more toy-like! This will make your project better for all the reasons we mentioned above. Your users will be happier and your product will become more popular. I’m taking this route myself— I try to make GarlicSim as toy-like as I can. I work hard to make it so the first-time user will have to type as little code as possible to build his first simulation package, and I try to keep the examples fun and interesting.

  • Another way to capitalize on this observation is to pick up skills in toy-like technologies. This is part of the reason why I spend so much time perfecting my Python chops— Python is a delightfully toyish technology, and its “stock” is currently undervalued because most people haven’t yet understood that toys are the future. (Ditto for Django.) By spending time improving my Python skills I’m “buying Python stock,” (where the currency is of course my time and attention,) and as people slowly become aware of how important toys are, the value of my stock is becoming higher and higher, i.e. I am able to charge clients more money for my skills.

Final words: The toys are winning. Try to be on the toy side and help us bring the revolution sooner.

———————————————-

Notes:

[1] Even the legendary Robert Morris made this mistake, as told by Paul Graham:

Robert Morris has a very unusual quality: he’s never wrong. […]

[…] Robert has, as far as I know, managed to be mistaken only once, and that was when he was an undergrad. When the Mac came out, he said that little desktop computers would never be suitable for real hacking.

———————————————-

Thanks to everyone who helped me write this essay: Amir Rachum, Aaron Staley, Tara Walters, Alexander L, Fireglo D, Gianluca R, Reinout D. (The last four are people who answered my questions on Aardvark.)

Comments
All content in this website is copyright © 1986-2015 Ram Rachum.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License, with attribution to "Ram Rachum at ram.rachum.com" including link to ram.rachum.com.
To view a copy of this license, visit: http://creativecommons.org/licenses/by-sa/3.0/