Search
you're on relativesanity.com

Thought up and written down by Jonathan Barrett

Blog Index
The journal that this archive was targeting has been deleted. Please update your configuration.
Navigation
Saturday
Jan072012

You're only supposed to blow the bloody doors off

I find it interesting that so many commentators seem to be equating Android market share with iOS failure and doom. I suppose it's because, to their eyes, the "last time around", Windows won because it took 90% of the market, and because Apple refused to license its OS to third parties.

If this is indeed the worry, then it's woefully off-target, and betrays a deep misunderstanding of what happened back in the 90s. The simple truth is that Windows "won" because it did something that no other OS had been able to do to the computing industry in the 80s: it defined what a computer was in the eyes of 90% of the market.

Let's take a look at what the computing industry looked like in the 80s. If you wanted a home computer, you could choose to buy, say, an Atari ST, or an Amiga 500, or a Sinclair Spectrum, or an Amstrad, or a Tandy, or even an IBM PC or an Apple Macintosh if you had the budget. Each of these ran an OS built by the manufacturer (mostly), and the OS your computer shipped with was likely the OS it remained with. The idea that you could, or should, be able to take an app from your ST and run it on your Mac was ludicrous, despite the fact that they were based on the same underlying chips, and could read each others disks.

If you read my previous article, this situation should sound remarkably like the mobile industry in up till 2007.

Now, let's look at what happened to the computing industry in the mid 90s: Microsoft released Windows 95. Its wild success homogenised the market, and within a couple of years, every computer ran Windows. Why? Because Microsoft introduced most of the world's population to a modern concept of "computing", and it looked like a button saying "start".

Microsoft didn't make its own computers, so had to license its OS to manufacturers in order to get its product in front of users, but here's the key point: the OEMs shipped what Microsoft gave them. MS didn't create Windows as a way to let Dell build its own OS, it created Windows in order to own the idea of computing. Dell didn't ship Dell OS, it shipped Windows. So did HP. So did IBM. So did everyone. MS retained an immense amount of control over its platform, in order to ensure that its users would recieve a consistent, unified experience of computing, and would insist on only purchasing computers that provided that experience.

Microsoft redefined what the computer industry was with Windows 95, in that it took a previous idea that had traction (you buy a computer, it ships with its own fixed OS) and flipped it (the version of the OS isn't tied to the hardware you bought, and your next machine feels exactly like your current one).

This is precisely what Apple did, and is doing, to the mobile industry.

The only difference between then and now is to do with how Apple and Microsoft chose to make money. A Windows license costs far less than a PC, and costs more to build and maintain. Software isn't cheap: You don't get economies of scale with software, unless you sell a boatload of them. Microsoft didn't make its own PCs, so it had to ship volume to become profitable. That's why market share mattered for Windows, that and the fact that, in order to turn the industry, MS had to "own" computing.

But make no mistake, market share was won in pursuit of profits. Android has market share, but how much profit is Google making from it? Market share is a meaningless business metric unless it's bringing in cash, and Android could have 100% market share but still make no profit for Google.

Compare with Apple's route to profits: It sells its own hardware, has an insanely well-tuned supply chain, and is simply gobbling up the cash in the market. Share doesn't matter when you make your own incredibly profitable hardware, and when you've locked up the supply chain so nobody else can hope to be as profitable.

And here is where the Android = Windows comparison finally breaks completely. Imagine a world where Microsoft had launched Windows 95 on its own hardware, not licensing it. Windows is still insanely successful (it's still Windows, after all). Suddenly, the PC industry is going to go out of business unless it can sell hardware with a comparable OS to Windows. What happens? Dell, IBM, Atari, Commodore et al turn to Linux. They can use Linux to build their own Windows-like OS, and remain competitive. So they do that. And Linux fragments. And nobody loses to begin with: Windows PCs are premium products, Linux knock-offs sell to those that don't know any better.

For a while, the Linux PCs are far more popular than the "premium" Windows PCs, despite the fact that Linus makes not a cent in profit from any of those PCs that run his OS.

But eventually people realise that Linux is just lipstick on the pig that was the "force them to upgrade the hardware" model that dominated the 80s, and that the real revolution is that Windows is a "computing platform" that grows as they grow, instead of the siloed "development platform" that the manufacturers are using as a stick to sell hardware. The truth is that there is no "Linux Platform", only old computers running a Linux-derived OS.

And all the while, Microsoft can't hear anyone say they're losing over the sound of the cash registers.

Of course, that didn't happen, and that's why the cries of "here we go again" are simply bullshit. What happened is that MS dominated the computing industry for a over a decade. And then, well, then it found out what happens when your profits are directly proportional to market share.

Microsoft's profits relied on manufacturers considering them the only game in town. Apple's profits rely on nothing other than continuing to make something people that want.

And Apple has a ten year head start on defining what people want.

Monday
Jan022012

Platforms and silos

iOS and Android are fundamentally different things, and the idea that they are competing for the same parts of the market betrays a misunderstanding of that difference.

So what are they, if they're not the same? I recently tweeted that iOS is a "computing platform", while Android is a "development platform". I'm not sure those appelations quite nail the meaning I'm after, but let's stick with them for now. I've made my bed, it's up to me now to persuade you to get into it.

Let's start with a look at what iOS provides the user with. If I buy an iPhone as a new customer, I'm presented with an interface to my phone that is likely unlike any other phone I have ever used. Even if I've used an Android phone, the differences are great enough that it's going to feel different. I can't install any apps that I used on my Android phone, for example, and the keyboard is not going to feel the same. I'm also going to have to get used to the idea of a single "home" button, the app store, and so forth.

As a regular user of cell phones, though, this newness is an entirely normal feeling. Since the cell phone industry's entrance into the mainstream in the late 90s/early 2000s, buyers are accustomed to each phone working differently and feeling like a new phone. That's how the industry works, and, to steal a Gruberism, the idea has traction.

Now, consider when I make my second iPhone purchase a couple of years later. I've probably already had a couple of system software updates which have added new functionality to my phone, while retaining the feel of it: It feels like I got a better iPhone each update, instead of a new, different phone. I buy my new iPhone and, lo, it's exactly the same feeling. It's faster, more responsive, maybe has some new hardware toys, but fundamentally, I feel at home. It's still my phone, and there's a continuity there.

This, in the cell phone industry, is a revolution. More than anything else, this is why Apple is selling iPhones as fast as they can make them, and it's why they can parlay that success into a tablet device that nobody else can even begin to touch.

So, whither Android? Android is primarily a barrage balloon defence on the part of Google. Google makes its money from advertising, as we all know, and that relies on people continuing to search the web using Google. Google doesn't care if Android wins or not, so long as nobody else in the space gets big enough to be able to threaten Google's access to eyeballs.

Android is thus targeted not at users, but at Apple's competitors in the mobile space: the handset manufacturers. HTC, Sony Ericsson, Samsung et al have long been used to making money by building phones, selling those phones with a fixed set of features, then building better phones with better features, and selling those phones. The handset market has been dominated by hardware advances for the past decade, and that's how those manufacturers make their money.

Android gives those manufacturers a kit on which to build a "feature phone" that can be marketed as a "smart phone", and hence remain relevant in the new market. Given the level of version fragmentation across the Android phone generations, and the continuation of the manufacturers aggressive obsolescence of old handsets, it seems fair to say that the experience of buying into the Android platform is far more like the old-world of "new phone, start again".

In other words, from the user's point of view, "iOS" provides a continuous, consistent experience which is novel to the world of cell phones. This is what most users think of when they hear the word "platform", for reasons that I'll discuss in a later article.

Android is not a "platform" in that sense. I buy an Android device from HTC, and another one from Amazon, and as far as I can tell, there's nothing in common between them. Heck, there's precious little in common between last year's HTC offering and next year's.

When users talk about "platforms", they're thinking about a platform upon which they can build their computing experience, and they want to choose a platform that will support them in what they want to do for years to come. The mobile industry has been used to building handsets where the experience for the user is tightly coupled to the hardware in their hand. The mobile industry has never had a concept of "platform" before, beyond the kind of platform only nerds care about.

iOS's platform mantra could be summed up by users as "familiar and better". Android's could be summed up by manufacturers as "business as usual".

Thursday
Sep222011

How many users does it take to change a paradigm?

John O’Nolan recently asked Twitter whether people actually used LESS (or any CSS preprocessor) in anger. Despite it being the new hotness, it seems that most of his respondents didn’t. I can’t say that this surprised me, but it did make me think about where I use preprocessors like SASS or LESS, and CoffeeScript.

I’ve recently written about CoffeeScript (more on that soon), and have been using it exclusively on a Sencha Touch application I’ve been working on. I’ve been using SASS on the same project, and both languages are lovely to work with. CoffeeScript, in particular, strikes me as the way JavaScript wants to be: it’s as though the language itself has been refactored.

But the real star of this story is neither CoffeeScript, nor SASS. The star—which I will introduce circuitously—is most notable when absent. At FreeAgent, I don’t use CoffeeScript, despite thinking it the most wonderful thing since discovering git autocompletions. Poor Robbie still hand-codes all our CSS (yes, even the amazing gradients you’ll see when the redesign hits), despite being desperate to use some SASS macros to tidy all that up for a much more declarative experience.

Personal project? I’m all over CoffeeScript and SASS like a cheap suit. Actual day job? Don’t touch it.

Why? Politics? Processing power? Reluctance to learn new stuff? If you’ve met any of the FreeAgent team, or seen the kind of kit we develop on, you’re laughing at all of these suggestions.

Simple: the personal project is on Rails 3.1. FreeAgent isn’t, yet.

Rails 3.1 has an amazing asset pipeline system that means you write your JavaScript and CSS using any language you like, with CoffeeScript and SASS being the defaults, and Rails automatically does the compilation steps before rendering the page. Write CoffeeScript, reload page, done.

As soon as you move outside a framework that does that for you, using any of these timesaving technologies requires you to invent a workflow upfront. Do you use Compass? Run a compiler from the commandline? Set watches on key-files? Keep your source out of the public tree?

These things are tricky enough for developers, as you’ll know if you’ve ever tried to get CoffeeScript compiling on Windows, but when it’s time for a designer to dabble with SASS, and they’ve suddenly got to manage dependency lists, console input and source-compile relationships, the barrier is too high. Hell, engineers outnumber the designers five to one at FreeAgent, and we haven’t got around to using Sprockets to bring the asset pipeline to Rails 3 yet.

So, am I surprised that the uptake on these new technologies is low? No, not at all. Do I think they’re overhyped? Also, no, not at all. I think that JavaScript’s future looks a lot like CoffeeScript’s present: after all, there’s nothing stopping browsers from running CoffeeScript directly, and the same is true of LESS or SASS. At that point, the skills you pick up now from dabbling are going to be invaluable.

I think that Rails’s role in all of this is interesting, too. I’m biased, of course, but it does seem that Rails has proved to be a weathervane in the last 5 or 6 years, promoting the good path of RESTful, Test Driven development by making those things so accessible that you feel stupid not using them. That thinking has spread to other languages and frameworks, and I don’t think it’s unreasonable to predict the same things happening with CoffeeScript and SASS, now that they’re the defaults in Rails going forward.

Regardless, we’re all getting back to the stage where maintainability is far, far more important than raw development speed, and that’s where all of these technologies shine. So adoption is slow just now, and may remain so, but getting in early will put you well ahead of the competition by the time the workflows have stabilised.

Besides, both CoffeeScript and SASS put a lot of the fun back into this whole racket, and the fun technologies always win eventually.
Thursday
Mar102011

LEGO rocks

I can’t think of a single toy that has managed to span generations in quite the way LEGO has. Mecano, maybe. Airfix models, perhaps, but LEGO truly is a leveller. Essentially unchanged since its introduction, LEGO has maintained backwards compatibility and appeal for decades.

My son loves LEGO. He started with some Duplo (possibly the biggest “compatibility” hurdle faced) but soon grew out of that. I always viewed Duplo as a sort of gateway drug: fun enough to hook kids without the necessary dexterity to manipulate the smaller bricks, but also kinda rubbish. Nobody sticks with Duplo for long, I bet. The appeal of “real” LEGO is far too strong.

So he graduated through to LEGO. The look of glee and excitement on his face at the sound of those rattling bricks behind wrapping paper is matched by nothing else, except perhaps the look on my face. LEGO makes me feel like a kid again, and somehow, it seems to make my son feel like a kid again, despite being one still.

I think that’s a big part of the allure. LEGO lets you drop the mundane and rediscover wonder. I’m starting to sound like a marketing shill now, but seriously, I think that’s the nub of it. It’s a hobby that has no risk, whatsoever, of turning into a job. Most other hobbies that I have (web development, photography, design, writing) I could turn into a paid job if I wanted. There’s always that risk, and hence that desire to get “good enough” that you could go pro if you wanted to. I wonder how much of that is true about most hobbies.

Building LEGO models, though, is unlikely to form the basis of a freelance career. It’s utterly free of that, while still exercising all the bits of my brain and psyche that the other hobbies I mention do: it’s creative, constructive, productive, enjoyable, communicative and so on. And unlike say Airfix models, or Mecano, you typically need nothing but your fingers and your imagination to play with LEGO. Airfix requires paint, requires glue. Mecano requires tools. Both of these provide you with real world manual skills. LEGO doesn’t. The skills LEGO provides you with, as a kata, are mostly (if not exclusively) abstract. It exercises your imagination, your ability to create and mould within constraints, your understanding of engineering requirements (such as what stands up, what falls over, what needs support, load bearing, how many wheels can be used to create a stable platform).

You will go nowhere in life where your ability to click bricks together lands you a job, but you will encounter plenty of situations where your “LEGO mind” helps you overcome obstacles or crack problems like nobody else.

And of course, it’s amazingly fun. The sense of discovery as you follow the instructions, the simple teaching of techniques through showing. Nobody ever “taught” you that door hinges could be used to create smoothly curved surfaces when arranged just so, but some model you bought used that technique and guided you through it on your way to a different goal. You’re continually learning, and then adapting and re-applying that knowledge: learning by doing, with a clear motivation.

Seriously, the LEGO manuals are a thing of wonder. So compelling, with narrative structure some novels struggle to match. A good LEGO manual guides you through while still delighting you with moments of discovery and understanding. “What on earth is this bit for?” you wonder as you’re taken on a detour of component construction. When you turn the page, you find a reveal every bit as striking as the best detective novels. “Ah HAH!”, you think, and snap the pieces into place, with a sense of pride at having constructed something so clever.

It’s difficult to think of an experience quite as close to building LEGO, or one that demonstrates such an ability to exercise the abstract portions of your brain through the manipulation of physical objects. Take complex models, where you receive numbered bags, and build separate assemblages which then form compoentes in the finished whole. This modular approach to problem solving (and make no mistake, the finished model is a problem to be solved) is incredibly advanced, especially for toys aimed at four year olds, yet here it is, being shown, not told, to anyone willing to listen.

The ability to teach is something that fascinates me, has formed a key component of my life thus far. LEGO teaches in a way so radically different from what we usually call “teaching”, but in such a successful way, that I can’t help but think there’s so much to learn from it.

Challenege, play, demonstration, goal. These are the tenants of LEGO’s model. That I’m still excited by that rattle behind wrapping paper on my 32nd birthday is testament to its success.
Thursday
Feb172011

Humanity

There are five battles we all face in being alive. They’re as simple to describe as they are difficult to win. Winning them all results in becoming a complete human being. The battles are:

physicality


As a baby, you have no control over your physical presence. You are completely subservient to the reflexes of your muscles and under the control of your physical needs. Your first years of being alive are a battle to master your physicality, beginning with smiling, crescendoing in your first steps, and finishing with your ability to eschew nappies.

emotion


Your emotions are the next adversary. As a toddler, you are entirely subject to your emotional mood swings. There is nothing unusual to you in this stage of being a mindless ball of rage one second, and then becoming as calm as a Hindu cow the next moment. You learn how to use your emotions as a tool during this phase, and that your emotions are just reactions, like the physical skills you now have a firm grasp of.

ego


After emotions, an awareness of self hits you. Your shyness and arrogance begin to own your experience of the world. You want to talk to that cute girl/boy, but your ego won’t let you. This is another tool, another skill you will acquire. You begin to understand that the key to winning these battles is to play them as games. Your teen years are spent learning how to play with ego, to play roles and characters.

reason


Rationality presents itself as an overarching tool. Play helps you understand the rules governing life: reason lets you codify and apply them. You now know how to overcome shyness and arrogance: with reason. You rationalise all previous stages and pat yourself on the back that you’re done. Reason can only take you so far, though. You can’t rationalise taste. You can’t reason luck. It’s still a crutch masquerading as a tool. Very few people move beyond reason, but those who do attain something special.

enlightenment


Moving beyond reason, with a firm mastery of all the previous tools, takes you into the realms of enlightenment. The full array of tools available to you now allows you to accomplish virtually anything. Kubrick, Welles, Disney, Branson, Jobs, Newton, Gandhi, Galileo: these are the craftsmen of our world. True artisans of humanity.

We should aspire to be as skilled in our humanity as we are in our professions. There is then very little that we can’t achieve.