Category Archives: software development

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.

Moonlight update: Silverlight 2 on Linux hardly started

Miguel de Icaza has an update on Moonlight, a third-party but official implemention of Silverlight for Linux.

Although progress is rapid, it is disappointing to read that a Silverlight 2.0 implementation is hardly started:

Silverlight 2.0 Other than the JIT support for Silvelright 2.0 at this point we have not done any work on it (well there are 3 classes stubbed privately).

There are two reasons for this: the updated 2.0 API is not public and although we have access to it, it is a bit of a mess to try to keep two separate trees (public and private) to support this and since Mix is just around the corner, we will just wait until next week.

The second reason is that we want to focus on shipping 1.0, completing the media pack integration and working on the configuration aspects of Moonlight (auto-update configuration for instance).

Good reasons; but the question it raises is this: by how long will Linux implementations lag the Windows and Mac releases of Silverlight? Silverlight 2.0 is hugely important because it enables .NET code to run. I constantly meet folk who are developing for Silverlight but waiting for version 2.0 as the real thing. Version 1.0 is browser JavaScript only.

More positively, at least we know that Mono already has a decent desktop implementation of .NET, so the fundamentals are there.

Technorati tags: , , ,

Silverlight steals the show at Microsoft’s UK Heroes launch

I attended Microsoft’s “Heroes Happen Here” launch in London yesterday, which overlapped the US launch presented by CEO Steve Ballmer. The launch is for Visual Studio 2008, Windows Server 2008, and SQL Server 2008, though these products are in varying degrees of readiness.

The event was marred by excessive reliance on buzzwords like “Dynamic IT” – someone should tell Microsoft that phrases like this, or “People Ready” which was used for the Vista launch, have no meaning. Dr Andrew Hopkirk from UK’s National Computing Centre enthused about the general benefits of virtualization, which led to a comical moment later. I asked one of Hopkirk’s colleagues what the NCC thought about Microsoft’s Hyper-V or other virtualization technologies. “Oh, we haven’t evaluated it,” he said. “Most people use VMware and they love it”.

I hate to be disloyal, but the US event which was relayed by satellite, and which hardly any of the UK journalists watched, was more up my street. Ballmer didn’t shout too much, and I liked the drilldowns into specific features of the three products.

Still, after several dry presentations the UK event brightened up when Paul Curtis from EasyJet, a UK budget airline, showed us a proof-of-concept Silverlight application which the company plans to implement on its web site towards the end of this year. We saw an attractive Rich Internet Application which was a mash-up of flight routes and fares, Microsoft Virtual Earth, and reviews from TripAdvisor. Here’s a blurry snap of how you might book a hotel in Barcelona. It’s a compelling visual UI which of course reminded me of similar things I’ve seen implemented with Adobe’s Flash and Flex. Behind the scenes the app will use Server 2008, IIS 7.0, and a SQL Server 2008 Data Warehouse, so this is the perfect case study.

I wanted to ask Curtis whether he was happy with Silverlight’s cross-platform capabilities, and why he was using Silverlight in preference to Flash. However, his bio states that he is a member of the Windows Live Special Interest Group and on the Microsoft Architect Council, so I suspect the answer would be, “it’s what we know.” It does support my impression that despite the rise of Flash, there is still a place for Silverlight within the large Microsoft platform community.

Finally, there was brief mention of high take-up for Microsoft Softgrid, which is described as “application virtualization”. I’ve made this the subject of a separate post.

PS: I met blogger Mark Wilson at the event; he has a more detailed write-up.

Microsoft Softgrid: virtualization for applications

At Microsoft’s Heroes Happen Here launch, I caught up a little with something to which I’ve paid insufficient attention: Microsoft Softgrid, which is described as Application Virtualization. Softgrid is a way of packaging an application and its dependencies into an isolated bundle that runs on the client, but hardly touches the client environment. Each application has its own virtual registery, DLLs, COM DLLs, and even a virtual file system. As a consequence, it “just works”. It also lets you run otherwise incompatible applications side by side. For example, you could have an old Access 97 application, for which the developer left long ago and nobody dares to touch the code, and run it alongside Access 2007. This is apparently a huge hit for Microsoft, which does not surprise me as it solves all sorts of deployment problems. Unfortunately it’s not that easy to get Softgrid: you need to sign up for a thing called the Desktop Optimization Pack for Software Assurance and it is hooked to other components of Microsoft’s enterprise server system:

I would like to see Softgrid’s technology also made available for more general use.

Technorati tags: ,