Skip to main content

The dawn of consumer computing ... [Warning no XML content!]

James Fuller's picture
Posted in

A good friend and I were at the pub the other evening enjoying Prague's finest pilsner and amongst many interesting topics we got to discussing the release of the iPad.

This conversation started a line of reasoning which seems to have been repeated after the iPad launch which I fully agree with e.g. that the iPad may represent (as the iPhone does somewhat now) a new (old?) form of vendor lockin where distribution is controlled and the client device is a closed system.

I argued that wherever closed distribution channels develop then we all suffer e.g. would we ever see innovation akin to a Google emerging on a closed device like the iPad, against the wishes of Apple or the mobile network owners ... probably not. In fact in such a situation we would never know of the potential for existence ... and that causes me real issues. Basically anyone in direct competition with the owner of a closed system and network gets redirected to /dev/null.  

You see I have pretty much avoided most of the mobile development surge that has gone on over the past few years, but thats because mobile development seems (correct me if I am wrong) to have been reduced to what I would call clientside web development, you know XML, HTML, CSS and javascript ... web stuff. Yes I do my fair share of wrangling with javascript frameworks (extjs, jquery), but only where my server stuff (written in Perl or underpinned by eXist XML Database) needs it and I probably hammer out enough competent HTML and CSS to be considered knowledgable but you would never want me to design your website.

This conversation seemed to confirm me as a snob where it comes to  mobile development (which fit neatly next to my snobbery of all things javascript). But before I reveal some of the conclusions of this conversation let me digress and provide some background for the reader.

Except for a short stint in Manchester UK (where I met some nice people), all of the past decade I have worked for myself ... living (as others have put it) the 'portfolio lifestyle'. Its not as glamourous as that phrase makes it sound, but it does give me the freedom to pursue what I think is important, albeit accompanied with rare moments of financial terror that comes with striking out on your own.

With the anxiety that filled most of 2009, I had thought it would be inevitable that I would have to leave this independence and work for someone else so I decided to arrange some interviews. Oddly enough, my fears became unfounded as I have never been busier (knocking all wooden objects around me as I type) and thanked whatever karma balance was responsible for such good luck. The only relevence to this story was that whilst I was tarting up my cv I was given the chance to be reminded of some of my earlier work history.

You see whilst I would never have considered myself a 'mobile developer' I seemed to have done quite a bit of 'mobile/telephone development' and not just recently, it looks like I started doing it way back in 1994 when I was hired by British Telecom to be their technical architect for their entry into Telecom 1995 in Geneva, Switzerland. That was a neat project, which I did in their Martlesham Heath Labs, near Ipswich, where I got to work with some incredibly talented disabled programmers to show how the 'disability house of the future' would work (obviously with as much BT stuff as we could make use of). Of course back then it was more 'telephony' and whatever u could do with sms ... mobiles were limited. In addition we tried to use whatever you could push down a telephone line and any other neat telephonic devices (like telemedicine) British Telecom was working on.

Then there was the content management system for sms content and delivery for a large european network provider in the early noughties.

To my surprise, I found that since 2005 I had been involved in countless smaller 'mobile' projects involving the gamut of sms integration, video on mobile, pure applications and just recently augmented reality' on iphones.

So it seems for all my snootiness of the mobile development platform I had done my share of propping up a 'closed network of devices' and supporting the 'vendor lockin' I perceived wrong with the iPhone and now the iPad.

So back to the pub ....

After the second pint (or was that the third Pavel?) we both agreed that the iPad represented the serious start of consumer computing e.g. devices that were created for consumption. Its only natural that such devices, in the eyes of people who tinker with computers, look less powerful.

Put another way, its hard to explain to my family what quicksilver, terminal or emacs represents to me from a power computing point of view and whilst these things serve my purpose, they don't for most of the people. This analogy breaksdown somewhat as i suspect someone is running emacs on an iphone somewhere but I think you get the point; I am not a consumer user of computers.

My good friend then presented the salient point that triggered this blog post. That computing is just evolving away from a 'hobbyist' endeavor to something much more mature. I know there are a lot of articles and posts on this subject written in the past by more knowledgable people then I, but it never really sunk in before as it did in that smokey pub with pints and excitable germans beside us devouring large slabs of meat.

To make an analogy with the auto industry; all the way up to the late 1970's one could pop the hood on a car and maintain a signicant amount of the engine. In fact, I remember when I understood most of what was happening with a car engine ... a significant proportion of my peers spent inordinate time tinkering with cars when I was young (whilst I tinkered with electronics and computers). Most of the male members of my fathers generation (my father was a mechanic) were born with the seemingly innate knowledge of how to fix a car. This was the golden age of the 'hobbyist' auto owner. If you open the hood on any modern car today I think most people would be hard pressed to identify basic components.

The recent recall by car manufacturer Toyota seems to be a handy reminder that the Auto 'golden tinkerer' age has passed; and I note the slight irony that this is due to to the fact that cars tend to contain a lot of computer chips with lots of lines of code.

So I accept that computers are changing and thus the nature of our job changes, but that has always been the case with programming. I now have a more nuanced understanding of the iPhone and iPad 'place' in the larger scope and hope that I have dropped the snobbery (mostly). I will still be pushing for the use of Open Source and the usage of things like XML where data needs to be free; though I am left with the impression that rushing towards the future as espoused by the iPad represents a compromise which has yet to be fully analyzed.

 

 

 

 

 

Re: The dawn of consumer computing ... [Warning no XML content!]

Kurt Cagle's picture

I've kind of been on that portfolio lifestyle ride for a while now, and I have to admit that having gone that route it is proving difficult to get back into the traces and work as part of a company "team" again. As a consultant, you often have an extraordinary influence on the ability to push technology into a company that I believe you lose as an employee, and having shifted from doing largely large scale architecture work to going back into the formal programming trenches has been difficult, at best.

As to the thrust of your post, I see things a bit differently, though I agree with you in the main. I think the days of the hard core programmer are probably on the wane, because frankly most of what such programmers worked on was infrastructure. We've built a lot of infrastructure in the last few decades, different approaches in thinking about how to apply programming in different contexts, but in many ways the infrastructure has now been built: it's the web. You don't need as many as c++ developers building standalone applications when everyone is building their apps to work within the constraints of browsers (desktop or mobile).

The difference between Windows, Linux, and Apple for the most part comes down to which well supported set of support applications you wish to use - I think they are all developing a roughly equivalent level of sophistication. This is why its harder to sell operating systems now; most have become good enough, and the release of a new OS can often bring considerable transitional costs that make the switch over to a new OS less and less worthwhile, even if it's just an upgrade along the same path.

What this means in practice is that the core programmer space is consolidating (even in the web arena) and shrinking, but at the same time you're seeing app specialists emerge. An app specialist isn't a programmer per se. They are people who know a particular app or set of apps especially well, may know how to tap into the scripting apis and the like, but in general are trained in a given profession distinct from programming who use the app in their line of work. An early example of this were the Excel gurus - they were people who probably couldn't write a program from scratch to save their life, but who, when given a copy of Excel to work with, could make it do tricks that the original developers could never have imagined. Many of them are business people who have set up business communities of practice around these apps, but who would never think of themselves as being coders.

I think something like the iPad and similar mobile endeavors will only serve to highlight this even more. When we were both young hot-shot computer geeks, hobbyist programming was really the dominant meme, because the market was still in its infancy. I cut my teeth on an Apple II+, spending hundreds of hours writing 6502 code. The computing "community" in my area was maybe a hundred people that might meet once a month or so at a tech swap meet, buying, selling and trading computer parts and software as well as passing on tidbits and ideas about how to improve your art. Most were intimately familiar with programming because there was no code base to speak of, and the idea of consumer electronics applied primarily to sound systems and speakers.

Today the hot-shot programmers are all writing web APIs, programming widgets, and "web apps". Most have no clue about how microprocessors work and couldn't care less. Many are even losing the fine art of command line development. More are in the database sector, whether relational, XML, couchdb or the data store flavor of the month, and I suspect as data as a service becomes a more predominant meme, the data abstraction layer itself will become the operating system du jour (I think eXist/XQuery is a remarkably good example of that).

It's an evolution. Most people don't want to think about how the programs work - they only what it to work for them. It's the ones that want to customize the apps, to go beyond the intent of the original developers, that will become the programmers of the next generation.

Re: The dawn of consumer computing ... [Warning no XML content!]

James Fuller's picture

a timely example, Opera browser trying to get on Apple iphone

http://www.theregister.co.uk/2010/02/11/opera_and_iphone/

Re: The dawn of consumer computing ... [Warning no XML content!]

Dominique Rabeuf's picture

The story of Toyota illustrates the defects of an industrial era which comes from the nineteenth century.

Toyota has cloned GM processes without be aware of the fact, may be that was included in the ADN of this kind of industry.

Throughout the twentieth century one tried to improve manufacturing processes and maximize savings budget.

This trend has been exploited by vendors of costly software licenses as for instance ERP softwares and their associated consultants and also financial foolish reporting done by banks.

A good practice of language facing the reality should be founded on well understood words and sentences.

Formal language (linguistic) description and semantic analysis of them are now at our finger tips.

A good sample is XML family