Category Archives: software development

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: , , , , , , ,

The psychic powers of the man from Mozilla

I spoke to Dean Hachamovitch, General Manager of the Internet Explorer team at Microsoft, and used some of his comments in a piece for Guardian Technology. I’m pondering putting the whole transcript online.

One of the topics was whether Internet Explorer will ever support ECMAScript 4.0 (aka JavaScript 2), which has been a contentious subject. For the sake of balance I also spoke to Mike Schroepfer, VP of engineering at Mozilla, who was also at Mix08. I told Schroepfer that I’d spoken to Hachamovitch and that he had said he could not commit to ES 4.0 when it was not yet finalized. Schroepfer then said:

…but what he didn’t say was, we’re actively working on it, we’re excited about it, we hope when it’s finished we will implement something in the future. He didn’t even go anywhere near that. He gave you a correct and politically astute answer.

Schroepfer was spot-on and I was impressed by his psychic powers, since he had not been present when I spoke to Hachamovitch. Microsoft has lots of experience in implementing languages with features similar to ES 4.0 and it seems to me that its reluctance to embrace it must be for strategic rather than technical reasons.

Technorati tags: , , , ,

Beck on Agile: it’s all about the team

Kent Beck is really a relationship consultant, or should that be counsellor? This is not a bad thing. Beck gave a keynote this morning here at Qcon and talked a bit about techie topics like frequent deployment (he claims that Flickr deploys every half an hour) and creating more tests more often, but the main focus of his talk is relationships within the development team and between the team and the business people (if they regard themselves as separate).

Beck says that the ubiquity of computing is changing the typical characteristics of a programmer. When only geeks had computers, programmers were inevitably geeky – and for whatever reason, that often meant something of a social misfit. Today everyone grows up with computers, which he says makes programming more accessible to non-geeks, who have better social skills.

Reflecting on this, I’m not quite convinced. Yes, everyone grows up with computers, but few have any inclination to understand how they work. A nation of car-drivers does not make a nation of engineers.

Still, that doesn’t affect his main point, which is that characteristics like trustworthiness, transparency, honesty, accountability, and the ability to get on well with others, are critical to successful development:

I focus on what developers can do to have better social skills and be better business partners.

In an aside on accountability, Beck makes a point about Windows and the “beginning of the end of the Microsoft monopoly.” He says that people are realising that they don’t have to put up with computers that are unreliable or require frequent restarts:

How many hours are spent worldwide waiting for Windows to restart, do the maths. Software needs to be effective and needs to work; increasingly there are alternatives.

Windows can work pretty well in the right circumstances; but it’s a fair point nonetheless. I recall the effort it took to set up a laptop recently. Microsoft’s fault, or third-party problems? Both; but the user doesn’t care whose fault it is, but only wants a better experience.

Incidentally, the team theme came up again when Peter Goodliffe spoke on good and bad application design. He observed that bad design is damaging to teams; uncertainty about what the code does or where new code should go stresses relationships, and working with a bad design damages morale. My reflection was that the team is primary, not the design. A bad team will never come up with a good design. A good team could still find itself working with a bad design though, so focus on design is never wasted.

Does my bus look big in this? Martin Fowler and Jim Webber debunk middleware

Entertaining session to close a slightly disappointing first day at Qcon in London. Martin Fowler and Jim Webber from ThoughtWorks discussed the history of application integration: how to get diverse applications on diverse platforms talking to each other and sharing data.

TIBCO, BizTalk, webMethods, you name it, “they’re a pain in the neck to use”, said Webber.

Enterprise Service Bus? Should be called the “Erroneous Spaghetti Box”. SOA? “A dog’s breakfast.”

According to Fowler and Webber, the Web is the answer. “The dumbness of the internet is a real win…it allows you to do things that you did not think of.” The Web is ubiquitous middleware, incremental and low risk.

Squid is your Enterprise Bus … We’re not going to need all this crazy middleware that middleware vendors try to sell us. We don’t like ESBs … The big up-front middleware approach just isn’t very sensible.

Right or wrong? To me, the question to ask of these complex middleware products (and I don’t want to pre-judge the answer) is this: what can I do with this, that I can’t do without it, or do equally well with a simpler solution?

Imagine this: A REST microkernel

Here at QCon, I realised that the Googly “cloud as middleware” track was probably not going to deliver what I want to discover, which is where Google thinks it is going with all its diverse offerings, being mostly about third-party services such as Yahoo Pipes and Amazon Web Services with which I am already familiar. I therefore went instead to what proved to be a fascinating session on programming REST (REpresentational State Transfer). Peter Rodgers of 1060 Research spoke about his NetKernel, which is a kind of REST runtime. “I’m typing byte code”, he explained, as he put together URI strings that performed various operations. He observed that much computing can be reduced to doing something to some resource with another resource, and that this can be expressed as a URI. Here’s an example:

Active:toUpper+operand@ffcpl:/demo/data.xml

In effect this is functional programming via URIs.

Unfortunately I had to leave a little before the end of the session; but one of the points I notice from the 1060 research site is that URI-based programming is tailor-made for caching results, with potentially improved performance.

A thought-provoking session; my quick reaction is that he may be onto something.

The session was packed; I’m not sure if this is because folk were interested specifically in NetKernel, or whether like me they just went along because REST is a focus of activity right now.

Technorati tags: , ,

Erich Gamma on Eclipse and Jazz

Erich Gamma spoke at Qcon London on the subject of “How Eclipse changed my views on software development.” Or did he? This was a somewhat schizophrenic talk; in part an articulation of general development principles, and in part a description of how Eclipse is developed. Gamma spelt out the Eclipse philosophy, the starting point being that everything is a a plug-in; that APIs matter a lot and its better to get a small API right rather than get it wrong and have to support it for ever.

He then talked about iteration, a key tenet of agile development. He showed a great slide which charted the progress of some projects, from “all the time in the world” at the beginning, to “say goodbye to your loved ones” at the end, followed by total exhaustion after the thing is shipped. Iterative development with continuous builds and sign-offs every 6 weeks is less stressful and more productive.

It’s a great point, but does this work in every instance? What if you have a game to ship for the Christmas market?

He also talked about the benefits of open source development: transparency between developers and customers, critical mass of community activity, frequent feedback, and so on. Nothing new here; but perhaps this simply demonstrates the extent to which the merits of the open source model have become accepted.

Gamma then focused more sharply on Eclipse. He says there is a major new release every year, and they don’t want to ship in the summer or near Christmas, so they ship in June.

He described how the Eclipse project manages its large international team. It comes down to components: developers are divided into teams on specific sites, and each team manages one or more components, and has its own process for planning, building and testing. A weekly integration build prevents incompatibilities between components from getting out of control.

Towards the end of his session, Gamma gives us a tour of Jazz, IBM’s open source but commercial project for collaborative software development. Interesting, but I’m not sure that this product pitch belonged in a talk that was billed as something more general.

Overall: good insight into how Eclipse comes together, but not too exciting. I don’t envy these guys who face heightened expectations because of significant contributions they have delivered in the past. Nobody can change the world daily.

Technorati tags: , , , ,

QCon London

Today I’m at QCon in London. I enjoyed this conference last year, when among other things I got the scoop on Microsoft’s Volta (then LINQ 2). First up this year is Erich Gamma of Design Patterns and JUnit fame, who will be talking about how Eclipse has influenced his view of software development (others would talk about how Gamma has influenced Eclipse). I’m also intrigued by what Google’s Gregor Hohpe is going to say about “The Cloud as the new middleware platform.” It’s going to be an interesting contrast to Microsoft’s Mix08 conference last week. Be sure I’ll be reporting back here; or if you’re here too, by all means get in touch.

Technorati tags: , , ,

Mix08 is all online

Microsoft has put the sessions from Mix08 online. You can stream them with Silverlight, or hit the download button to save them in WMV or MP4 (“for iPod”). The quality of the sessions I’ve attended or watched was uniformly high, so I recommend these if you have any interest in Microsoft’s web development plans. In particular, the sessions on IE8 and Silverlight deliver lots of new information.

Technorati tags: ,

MSHTML: layout engine completely rewritten for Internet Explorer 8

MSHTML is the Windows component that renders HTML. It is part of Internet Explorer but also used by other applications (both from Microsoft and from third-parties) to embed HTML content; it is still sometimes called by its code-name, Trident. I’ve been interested in MSHTML for some time, and have worked on a free .NET wrapper called HtmlEditor.

At Mix08 I attended a session by Lead Program Manager Scott Dickens on cross-platform layout with IE 8. He told us that the layout engine in MSHTML “could not get us to where we needed to be” for the more standards-compliant IE8, which implements the CSS 2.1 spec. Therefore, the engine has apparently been completely rewritten.

As an aside, Dickens mentioned that the IE team worked with other teams in Microsoft that have layout expertise in order to rewrite MSHTML – he didn’t say which, but one imagines the XAML/WPF folk could have been helpful.

I clarified this point later. MSHTML actually lives on in IE8, but contains both the old and the new layout engines as different code paths. If you specify a quirks mode in IE8, it will use the old layout engine; but if you ask for best standards support (now the default), it will use the new layout engine. However, where MSHTML is embedded into another application, it will still use the old layout engine by default. “For hosted Trident, it will maintain that IE7 compatibility,” Dickens told me, though it will still be possible to opt-in to the new layout engine.

Technorati tags: , , , ,

Steve Ballmer: post Yahoo, we will be a PHP shop

Steve Ballmer took a few questions yesterday at Mix08 in Las Vegas, and I asked him what Microsoft would do with all Yahoo’s PHP applications if its takeover bid succeeds, especially where they duplicate home-grown applications that are running on ASP.NET.  PHP is deeply embedded into Yahoo’s culture, and Rasmus Lerdorf, who invented PHP, works at Yahoo as Infrastructure Architect.

He gave me a fuller answer than I expected, which is worth quoting in its entirety:

There’s really two different questions. In a number of areas, and I won’t go into specifics, but we will have to make some kind of integration plans after presumably we reach deal and it will be appropriate to talk to the Yahoo guys. We shouldn’t have two of everything. It won’t make sense to have two search services, two advertising services, two mail services, and we’ll have to sort some of that through. Some of that technology undoubtedly will come from Microsoft’s side, and some will undoubtedly come from Yahoo’s side, whatever technology comes, it will also come with an infrastructure that runs it.

You ask what we will do with those PHP applications? I’m sure a bunch of them will be running, at high scale and in production for a long time to come.

I think there’s going to be a lot of innovation in the core infrastructure which we have on Windows today with ASP.NET, and Yahoo have in Linux and PHP today, and over time probably most of the big applications on the Internet will wind up being rebuilt and redone, whether those are ours, or Yahoo’s, or any of the other competitors. But for the foreseeable future we will be a PHP shop, I guess if we own Yahoo, as well as being an ASP.NET shop.

One of the things I love which we got into the new Windows Server, is that we put a lot of attention in to making sure that PHP applications run well on Windows Server. That’s not the current Yahoo environment and I’m not suggesting that we would transition that way, but for those of you who do have PHP skills, we are going to try and make Windows Server the best place to have PHP applications in the future.

It was a good answer, though I’d still expect integration to be difficult. One danger is that post-merger infighting over what gets preserved and what gets scrapped could stifle innovation. Microsoft’s Live platform actually looks increasingly interesting, as we’ve learned here at Mix, and I imagine that some of these teams will be nervous about what will happen to their efforts in Microsoft-Yahoo becomes a reality.