Spare us humans from XML

XML appeared in 1996, was refined during 1997, and was standardised in 1998.

I remember a lot of excitement about it at the time, from managers who imagined it would solve all their data portability problems. I was conscious of some of this enthusiasm before I really looked at the format.

When I did, I thought

ugh

But it wasn’t as bad as all that. The idea of XML was to standardise the lexical layer for a file format, helping to cut down on the programmer’s natural tendency to just bodge something up when saving and worry about loading later.

It worked, and it made and still makes a tolerable format for all kinds of things—within limits. Of course it’s horribly verbose and slow to parse, but hey, it compresses well. And you still don’t get reliable interchange unless you have a known storage structure on both sides, something a series of increasingly complex helper standards evolved atop XML to help you with.

One thing XML never was, though, was nice for humans to read.

At the time this seemed OK, because it obviously wasn’t intended to be for humans. We humans would never be editing it. We’d only ever be looking at it through filters and lenses and programs that knew what it really meant. We’d never actually have to see the format.

Fifteen years later, here I am sitting looking at

<if>
    <condition>
        <isset property="tested.project.dir" />
    </condition>
    <then>
        <property name="tested.project.absolute.dir" location="${tested.project.dir}" />
        <xpath input="${tested.project.absolute.dir}/AndroidManifest.xml"
            expression="/manifest/@package" output="tested.manifest.package" />
        <if>
            <condition>
                <isset property="tested.manifest.package" />

Oof! Enough of that.  But that’s Android development: of course that’s for robots.

Windows Phone is for people, though. How about:

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar Opacity="0">
        <shell:ApplicationBarIconButton Text="previous" IsEnabled="False"
            IconUri="/Shared/Images/appbar.left.png" Click="PreviousButton_Click"/>
        <shell:ApplicationBarIconButton Text="page jump"
            IconUri="/Images/appbar.book.png" Click="JumpButton_Click"/>
        <shell:ApplicationBarIconButton Text="settings" IconUri=

Aargh.

These aren’t pathological examples that I’m having to grub around the internals of some graphical environment in order to find. That last one, for example, is copied verbatim from a beginners’ programming book for Windows Phone 7.

I’d far, far rather see developers use XML than go back to rolling completely unique file formats for every application. But surely by now there are enough widely-supported data representation languages—formats that simplify the presentation by standardising object relationships as well as lexical details, such as JSON or RDF/Turtle—to cover the majority of situations in which humans may end up having to edit something?

Live Passport Net

Microsoft plans to drop Windows Live branding — Microsoft are apparently renaming their Windows Live user account system to “Microsoft Account”.

They’ve changed the name of this service a few times over the years. I first found myself with a Microsoft account in 1998 when Microsoft bought Firefly, an early music-discovery social network, and took over its user database. Firefly had already rather lost its original direction and had for some time been promoting its user database as a general-purpose online authentication product, called Passport.

The account login interface is one of Microsoft’s more consumer-visible products or services, and also one that is relatively easy for them to rename because, after all, nobody really chooses it for its brand name.

I think we can track the changing focus of the company through its names over the years:

  • Microsoft Passport (1998–2001): Gripped by fear of consumers moving many of their activities online, rendering Windows platform and applications less crucial: we need to get everyone using our service to manage their financial and identification needs.
  • .NET Passport (2001–2006): Corporate focus drifts from consumers (they’re ours, now) to developers. Wrap everything up in XML and sell it as a unified network ecosystem to bring ’em on board. Possibly a response to fear of Linux as a server platform, though as a Linux developer I might be overstating things.
  • Microsoft Passport Network (2006): I’m not quite sure where this one fitted in. Possibly a last-ditch attempt to get anyone other than Microsoft to use Passport by suggesting there could be such a thing as a community of sites built on it.
  • Windows Live ID (2006–2011): All hands on the Xbox, in response to a fear of getting squeezed out by initially single-purpose devices that begin to encroach on tasks previously carried out with a PC. A wave of newly capable consumer devices from other sources prompts a renewed focus on consumer appeal.
  • Microsoft Account (2012): The battle moves to the cloud! As Microsoft increasingly start to turn out applications for other operating systems besides Windows, the common theme is to ensure that the user is still part of the Microsoft “application platform” ecosystem, whether they are using Windows or not.

There’s been speculation that the forthcoming launch of the iPad 3 might see Microsoft release a version of Office for the iPad.

If this does come to pass, and Office ends up on the iPad, the one thing I really want to know is: will it sync with Microsoft’s SkyDrive, or with Apple’s iCloud?

Operating system updates

Google have released a version of their Chrome web browser for Android, and it seems to be rather good—but it only runs on the very latest version of Android, version 4. Which is a bit of an annoyance, because hardly anybody has that version.

Glancing at the 12 most popular Android phones on the Expansys site, I can see only two—the two variants of Google’s Galaxy Nexus—supplied with Android 4. That’ll change, but in the mean time there hasn’t been much of a rush to provide updates for older phones.

I’m generally ambivalent about operating system updates. I believe that both phones and PCs are bought on the basis of the way they look and work at the time, not in the expectation that updates will change anything significant.

As a long-term Linux user I’m all too familiar with the concept of the Ubuntu update that breaks everything, but I think my uncertainty about the wisdom of updates is common among people using most kinds of computer.

I updated my Galaxy Tab from Android 2.2 to 2.3: it improved battery life a bit, stopped cut and paste working in some applications, and provided no obvious interface improvements—not a big net positive. I know iPhone users who complain about Apple persuading them to install updates that slow down their previously perfectly good phones. My wife updated her WP7 phone recently, grumbling about the amount of time and laptop disc space used by the installer, only to find the update made no detectable change at all. OS/X 10.7 had a decidedly mixed response from users of earlier versions.

Why would anyone want to update anyway?

What drives updates is application support. The only time most users will start hunting for an operating system update—as opposed to installing one that’s thrust into their face by the device itself—is when they find they can’t run applications they care about because their OS is too old.

Even then, they’ll probably resent having to update to do it.

I don’t really care about Android 4 on my own device, which is fortunate because it doesn’t appear to be available. But I would like to try out Chrome. (There are several OK browsers for Android, but no really good ones—and the one I like best in principle, Firefox, itself gets less stable for me with every update.)

I wonder how fundamental Chrome’s dependency on Android 4 really is. Perhaps the only reason it didn’t exist before was that it needed some quite basic OS support that earlier versions couldn’t provide.

Or perhaps the dependency is seen as a serendipitous one, and the release of Chrome as a way to encourage users like me, and phone manufacturers, to update as soon as possible.

Windows 8: Mixed metaphors

I haven’t yet paid much attention to the Windows 8 Developer Previews, but having found Windows Phone 7 so likeable I thought I should take a look.

It’s very disorientating. It’s as if two different agencies are at work in designing it, one pushing for radical simplification in the mould of WP7 and the other for plenty of extra features. And whoever is responsible for running the show has decided the only way to make everyone happy is to do both, but to flip between them depending on context.

So there’s the Metro home screen with WP7-style squares:

Windows 8 MetroDevelopers are encouraged to produce applications that work in the same style, so when you start one up, it runs full-screen but with a “feel” that is familiar from the home screen.

But when you run up a traditional application like Windows Explorer, it flips to the old-school desktop and comes up with something with more accretions and fiddly bits than ever before:

Windows 8 TradI have a certain affection for that sort of complexity—it reminds me somehow of KDE3—and I can see the ribbon is intended to be more touch-friendly than traditional menus, but it’s not exactly coherent, especially since it isn’t obvious from the Metro home screen which tiles are going to launch you back to the desktop and which will leave you in Metro-land.

There are other idiosyncracies, like the way the right mouse button behaves quite differently in the different kinds of application, or the fact that Metro apps wouldn’t run at all for me at first because they have a fixed minimum size and my VirtualBox window was too small. All this leaves the impression that Microsoft are trying to crunch their way through a major change in interaction style by brute force, without ever really knowing where they’ll end up or how.

A bit like the early days of X11, before the question of what to do with all those mouse buttons had really been settled and the conventions from the now-traditional Windows application laid down. A fascinating business.

How come Windows Phone 7 isn’t a big hit?

I’ve read some speculation recently about why Windows Phone 7 hasn’t been more successful.  (For example, here by Charlie Kindel and here by MG Siegler.)  But they don’t seem to mention the Obvious Reason.

The Obvious Reason

HTC Sensation

Above, left: an exciting, vibrant, joyful-looking phone with appealing pictures on the front.
Above, right: a grey object ruefully displaying a handful of murky green squares.

Microsoft have missed any opportunity they might have had to compete directly against the iPhone for consumers’ attention.  Besides getting in first and making a compelling product, Apple have spent a decade building what turns out to be a very effective means of selling phones to people — by actually showing them to people and letting people try them — without asking anyone to deal with the horror of the mobile phone shop.  Microsoft haven’t got that option.

No, the competition for Windows Phone is Android, not iPhone. WP7 has to compete against Android on the shop floor, on the wall of plastic replicas, in the hearts and minds of mobile phone salespeople.

And it can’t do that, because it looks dull.

Why would anyone buy a phone that looked boring, but that was in fact the unusual, hazardous choice?  Who wouldn’t rather get the phone that looks exciting, especially when it is also, underneath the facade, the popular and safe choice?

“Good taste”

Windows Phone 7 is a lovely operating system to use; like many people I really appreciate its design, and I imagine that most people who do use it will enjoy it.

It emphasises information over decoration; creatively uses text itself as a responsive, dynamic interface element; and is as close as a mainstream OS has come to finding a successful replacement for every letter of the previous generation’s WIMP acronym.

WP7 exhibits “good taste” in a way that no other current operating system does.  I use the term “good taste” in a rather loaded way.  Apple show good judgement, but that’s not the same thing: when it comes to taste, Apple are always willing to exploit the appeal of the toylike, shiny, luxurious.  WP7 resembles minimalist architecture in comparison.

Unfortunately for Microsoft, minimalist architecture isn’t very popular.

Tired Technologists

WP7 might have been designed to appeal to people like me, long-standing technology users for whom the thought of another shiny glass-look 3D-effect icon is a tiring one.

I like it for that.  But for me to like something… let’s just say it’s not a good indicator of commercial success.  The products I like best largely seem to flop, and I suspect many people whose interest in products is broadly technical find the same thing.

Does the fact that I like WP7 mean that it’s doomed, or does the fact that I think it may be doomed mean that it could take off after all?  I’ll have to wait and see.