Category Archives: microsoft

Introspective QCon asks hard questions about Java, SOA, REST

Last week I attended QCon in London and have been mulling over the experience. Two themes stood out for me, though bear in mind that having recently attended Adobe and Microsoft events, I avoided the sessions which related to those companies and focused on Java and more general issues.

The first was the extent to which QCon accepted that mistakes made in the early years of J2EE have been costly for the industry. In this respect the key speech was from Spring inventor Rod Johnson, whose session was called The Cathedral, The Bazaar and the Commissar, “an opinionated view of the story of Enterprise Java innovation.” Johnson stated that the rush to standardize everything in the Java platform had done almost as much harm as good (though he did say it was a “net positive”). He identified numerous problems in the standardization process. In particular:

  • The expert groups are dominated by large vendors whose interests are not aligned with those of developers. Johnson gave the example of JDO. “What happened was, this was intensely political. Database vendors hated JDO. Application server vendors hated JDO. Because in each case it wasn’t good for their business. And the result was that JDO was indeed taken out and shot.”  Johnson also noted that J2EE serves to protect the existing licensees:

“It pretty much ensures that there will be no competition, because who at this point would want to implement the whole enchilada of J2EE?”

  • The JCP has a history of ignoring prior art, which means on occasion it comes up with specifications that duplicate the functionality of existing products, or which are inferior to what is already available. In consequence good technology that was outside the JCP was lost. He cited O/R mapping, persistence and logging as examples. Here’s Johnson on Toplink:

“Hibernate is the de-facto standard for O/R mapping today. It’s a pretty good product. How many things does it do that TopLink didn’t do in 1998? The answer is not many. There’s probably just as many things that TopLink did in 1998 that Hibernate doesn’t do now. Toplink wasn’t as robust back in those days. But … what we’ve done is somehow managed to kill all innovation for ten years in O/R mapping, while in the meantime Microsoft has both figured out that O/R mapping is interesting and with new technologies like LINQ they’ve actually started to push the envelope. They shouldn’t be relevant in this space because there was such a lead in terms of Java technologies.”

  • The JCP standardized specifications that did not work, in particular Entity Java Beans. The industry accepted them because there was an obsession with standards. “There was a complete transformation where non-standard technologies could no longer compete and competition was no longer on merit.”

Johnson asked what seems to me to be a key question: what should be standardized? He said that it is silly to try both to innovate and to standardize at the same time, because the committee will get it wrong. You should standardize in areas that are well known, understood, and proven in the market.

Despite appearances, Johnson is not an enemy of the JCP. He spoke warmly of the current chairman, Patrick Curran, who is trying to reform the organization; and feels that real progress is being made. Curran was also at QCon seeking opinions on the JCP and its future.

Johnson also feels that Java has moved on. “The Java world is no longer a one-party state,” he said.

What I found interesting was that everyone at QCon seemed to agree with what Johnson said. Even Curran did not try to dispute it. In the closing panel, Martin Fowler from Thoughtworks introduced Johnson as “the man who single-handedly destroyed EJB”, and was applauded.

I suspect there is a Microsoft factor in all this. In the early days of Java, there was huge fear that Microsoft would corrupt Java and make it a Windows-only technology. Standards would prevent this happening; hence the standards religion that Johnson claims was not thought through.

There is an interesting underlying issue here, which the extent to which our industry meekly follows the lead of influential gurus and big vendors in the solutions which it implements.

That brings me to the second major theme which I noticed at QCon: the rise of REST. Despite sincere attempts at balance, there was an unmistakable tendency to promote REST at the expense of other stuff including WSDL and SOA. In many ways this makes sense to me, but it would be rash to assume that this year’s fashion is immune from the issues that now beset fashions from previous years. One delegate asked what stuck me an an excellent question in the closing session:

“What if you came along last year and saw the rise of SOA, and perhaps went off and did a whole load of SOA, and came back this year and found, SOA is on its way out, I should have done loads of REST stuff – how are we supposed to recognize which are the good horses to back?”

It is this kind of fear that leads many senior IT folk to be conservative in their technology and vendor choices.

Technorati tags: , , , , , , ,

XBox 360: nearly great

Unhappily, I have joined the ranks of those who have suffered more than once from the XBox 360 red lights of death. It’s a known design fault, so hardly surprising, but annoying none the less. Mine was a launch console, and lasted over a year before succumbing. Ten months later, and it’s failed again. I don’t blame the repairer; it’s even a different error code (0103 vs 0020).

The 360 story resembles that of a Greek hero: great, but tragically flawed. I love the console and would hate to be without it. Pre-launch, there was much debate about whether a narrow disadvantage to the PlayStation 3 in graphic power would damage it; Microsoft said that the quality of the software was more important, and has proved its point. Few complain about the 360’s graphics. There are plenty of high-quality games; XBox Live is a strong service; the downloadable arcade games are compelling and good value; it does a decent job as a media center; it has the best wireless controller; and now you can even purchase movies through XBox Live.

But the flaws. Most notably, the fact that you know the thing will fail prematurely. Well, the current crop is said to be better, but how much better? It is unknown, though I guess I’ll find out because I’ve just gone out and bought an Elite at the new reduced price, tempted by HDMI, a larger hard drive, and the hope of longer intervals between red illuminations. Good money after bad? Not really, because the console has delivered value. It is just flawed, that’s all.

There’s also the noise of the fans and DVD drive, and I must mention a third problem, which has caused me some aggravation. This concerns the DRM. If you purchase a game from Live Arcade, it is fully unlocked for all the profiles on that console. However, if the console breaks and is replaced, and you re-download the game, it is only unlocked for the profile which made the purchase. Sounds a small point; but if you replace your console and have a family member who enjoyed playing a particular game under their own profile, it is annoying to find that it is now only a trial.

I thought I should check my facts, so I called Microsoft’s customer service and asked if I could transfer the licenses from my doorstop (formerly a 360 Premium) to the new Elite. No, I was told, the games were tied to the doorstop. Rubbing salt into the wound, the service representative said she would have helped, but I had violated my terms of use by tampering with the machine. In other words, it was my fault.

My crime, it turns out, was in sending my 360 (which failed before Microsoft extended its warranty to three years) to a third-party for repair. Not only did this void the (then-expired) warranty; it also meant that Microsoft would not help me recover the full rights to my purchased games.

I am sceptical about how much difference this actually made, since my understanding is that Microsoft never transfers licenses to those upgrading to an Elite.

Fortunately there is a workaround, discovered not from customer service but from my own research. If you have several controllers, it is possible for each controller to be signed in under a different account. Just press the XBox button on the controller and select a profile. Provided that one controller is signed in as the profile which made the purchase, other profiles can play the unlocked arcade game. Not ideal, but better than nothing.

It is interesting to speculate just how much the 360’s quality problems have cost Microsoft. There is the cost of constantly and repeatedly fixing consoles; even more serious are the sales lost to those reluctant to purchase a machine likely to break prematurely. I would likely be one of them, except there is a row of 360 games on the shelf. It’s called lock-in.

We like the Elite. The graphics seem a little better; it is quieter and even feels slightly more responsive than the old box. A great console. But flawed.

Technorati tags: , , ,