What consumers want is different from what makers want.

When DVD Jon was arrested after breaking the CSS encryption algorithm, he was charged with “unauthorized computer trespassing.” That led his lawyers to ask the obvious question, “On whose computer did he trespass?” The prosecutor’s answer: “his own.”

If that doesn’t make your heart skip a beat, you can stop reading now.

One particular angle about the iPad is that it’s a closed system.  As a developer, I tend to like open systems myself.  I can do whatever I want with it, and I can tinker with it. However, instead of complaining about apple, developers should do better work on open platforms.

Most products aren’t used to make more of itself.  Crowbars are used to open doors, not make more crowbars.  Pans are used to make food, not make more pans.  The person eating the food (consumer), and the person making the food (maker) are two different parties.  Part of the problem for general purpose computers that it serve two masters, the consumer, and the maker.  And each has different needs.

The consumer just wants things to work.  They’re trying to get something else done, so they can go home, make more money, raise their status amongst their peers, socialize with other humans, and ultimately get laid.  They’re not interested in tinkering because this is not what they tinker with.  Apple has shown that in order to achieve this, you need control from top to bottom of both the hardware and software stack, especially if you allow 3rd party developers running native code on a device.  If the days of Windows systems crashing were any indication, you shouldn’t trust any joe developer to have the same sense of quality as you.  

The maker, however, wants to be able to do with their hardware and software, whatever they want.  The openness of a platform allows you to learn, to play, to grow.  And it’s with this very sandbox and playground that you’re able to learn how to innovate the technologies of tomorrow, which ultimately drives our economy.  If many of us weren’t able to tinker and make things with the computers we used, it’s doubtful that many of us would be innovating as programmers and engineers today.  

However, part of the motivation for making things is so people can use what we built, and consumers can only use things where makers are making them.  In order for both to happen, makers and consumers have to be on the same platform, and therein lies the dilemma.  And thus far, Apple has leaned towards catering to the consumer, because they’re the ones that pay money.  That’s not to say everyone is one or the other.  I may be a web maker, but I’m a video chat consumer.  I don’t mind making web applications, but I hate futzing around with video drivers.    

So far web apps are the only thing that bucks the trend.  There, developers can make on open platforms, like linux, and the consumer with their browser are shielded from difficulties.  However, with a foreseeable future of different types of devices, native apps are going to be around on smartphones, tablets, and who knows what else.  Until wireless bandwidth is cheap, abundant, and ubiquitous, this will the case for a while.

The only way out of a closed system of native apps is to develop use-centric applications on open platforms.  Developers and engineers are going to have to care very much about design, aesthetics, and user experience.  Something that works and is simple.  This will have to start with developers being able to empathize with frustration and with others.  Instead of lamenting about how Apple has a closed system, develop really great, simple, easy to use, and useful applications on open platforms.  

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s