Category Archives: software development

Microsoft Oslo: now where have I heard this before?

“Oslo” is Microsoft’s latest pronouncement on the vexed subject of software modeling. This is from the backgrounder, which you can find here:

We are building a general-purpose modeling language, tools and repository to bridge all the models within an application, moving models to the center of application development. Models will no longer just describe the application, they will be the application.

Cool. But isn’t this reminiscent of what the OMG has talked about for years, with UML 2.x and Model Driven Architecture?

Why has MDA failed in mainstream development? I suspect the key question is whether it complicates rather than simplifies the software development process. In other words, the MDA overhead may exceed its benefits for the majority of applications. Looking at the list of OMG specifications that’s not hard to believe.

In relation to Oslo, I have a few questions.

First, why will Oslo succeed when other smart people have failed? Point of interest: they may even be the same people. Note this quote from Microsoft’s Jack Greenfield, whom I interviewed for the Register:

“We are the UML guys, that’s the funny part of it,” says Greenfield. “I was one of the chief architects at Rational; I spent a lot of time deeply steeped in the UML and in the committee work in the OMG. Other guys on team go deeper than I do.

Second, how serious is Microsoft about Oslo? When I spoke to Greenfield, I had the strong impression that modeling is an area of factional conflict within Microsoft. Thus, it could be the big thing one moment, then pushed to one side the next.

Third, how does Oslo simplify development, as opposed to giving developers yet another layer of complexity to worry about?

Irrespective of the above, it the parts of Oslo that talk about better integrating between BizTalk, the .NET Framework, and System Center do make sense:

There will also be investments aligning the metadata repositories across the Server & Tools Business products. System Center “5,” Visual Studio “10” and BizTalk Server “6” will utilize a common repository technology for managing, versioning and deploying models.

Further, who know whether Microsoft may yet do something wonderful with modeling that delivers on promises like:

In short, we want developers to be able to build [distributed] applications with one-tenth the code that is required today. And we want to establish a rich context in which those developers can interact with business analysts and IT professionals easily.

But count me in the sceptics camp until Microsoft comes up with something more convincing than rhetoric we have heard before.

How ASP.NET began in Java, and the truth about Project Cool

A bit of nostalgia for you. Cast your minds back to 1999 or thereabouts. Microsoft is finishing off IIS 4.0 and there is no such thing as C# or ASP.NET. However, there are rumours that Microsoft is creating a Java-like platform codenamed “Cool”, in the aftermath of a dispute with Sun that was making it impossible to use Java itself. Microsoft denies the rumours. Here’s a report from February 1999:

There is no Java-like language under development at Microsoft, said Michael Risse,  Microsoft’s product manager for application development tools. Risse said the company is talking to developers about a concept called Cool, a much less ambitious project intended to tie Microsoft’s Visual C++ development tool more closely to its COM+ middleware. However, Cool is not yet in development, and is unrelated to Java, said Risse. He said Cool is strictly a “whiteboard” concept, and that no software code connected to the concept has been written at Microsoft. Cool is also unrelated to any Java technology within the company, Risse stated. “There’s no connection between Cool and Visual J++, and the Java lawsuit is irrelevant to the thinking we are doing [with Cool],” he said.

Even after C# was announced in 2000, Microsoft denied that it had anything to do with Cool:

Yesterday, Microsoft executives denied that C# was related to the rumored Cool project.

Now, over to Mark Anders, co-inventor of ASP.NET, whom I interviewed earlier this month at Adobe Max Europe. I asked Anders how ASP.NET came about.

Anders: “ASP.NET happened after we shipped IIS 4.0 and everyone went on vacation. Scott Guthrie and I – Scott worked for me at the time, he was 22 years old, straight out of college – and we took advantage of the time everyone was on vacation to start brainstorming new ideas. We looked at ASP and how it was being used. I had worked on Visual InterDev so I had a lot of friends on that team, and we were looking at the new version, I think it was Visual InterDev 6.0, and we noticed how messy the code was. We said, how can we do better? Scott and I worked for a month and a half, and then when everybody came back from vacation in January we showed them a prototype and a PowerPoint deck, showed them this vision, and people said, ‘keep working on it’.”

I asked whether the prototype was based on .NET from the beginning, or “Project Cool” as the rumour went?

Anders: “No, it was not. The original prototype was written in Java. I loved Java as a language and Scott did too. So it was done in Java, and we took that around to lots of different groups. The first group that we took it to was the tools team. The VB and the InterDev teams were in a feud, and when they saw our demo they liked it. They said, ‘If you build that, we will target it with our tools.’

“The VB team was working on developing a new runtime, what became the Common Language Runtime. It was not as complicated as COM, and it had a nice object system, it was garbage collected. So we made a decision that we would write our thing, which at the time was called XSP, in this new runtime. So we were the first ones to commit to writing anything on it. The VB team was going to be using it as their runtime, they were doing their forms, but we actually built the whole thing in .NET.

“The funny thing is, you mention Cool. It was called Cool at one time, but Microsoft denied it. Scott and I presented what was then called ASP Plus, but we presented it a long time before anybody talked about .NET. We went to a conference, I think it was in Washington DC or something, and Scott and I were up on stage. He is doing this demo, and he says, ‘Here is a directory listing’. And I glance up at the screen, and I see file1.cool, all these .cool files, and we’re busy denying that there is anything called Cool, and he has this directory listing. So I was worried that somebody would see that and put two and two together… but nobody picked up on it. They had asked if they could videotape me to re-broadcast, and I’d said fine, but when I realized that the Cool screenshot was shown, I contacted them and said, ‘I can’t let you have that videotape’, and they sent it back. So it never leaked.”

All these efforts did not prevent The Register posting a story in September 2000 which describes how a reader working with early C# samples:

…discovered that the original C# compiler was called coolc, subsequently renamed as csc.exec. Elsewhere, sample C# code has the HTML tag <script language=’COOL’ runat=’server’>, and Larry notes a couple of references to the string “C\temp\fact\factorial.cool”.

So why did Microsoft deny it? I’m guessing, but maybe the company felt that ‘Project Cool’ was related to Java in people’s minds, and wanted to emphasize that .NET was 100% Java-free. Any resemblance is purely coincidental, as novelists like to say.

Microsoft Ruby

In what is partially a response to my earlier post, Bob Warfield asks:

Sun has “cultivated and vigorously supported” Ruby.  When will we read something similar to either announcement from Microsoft, instead of reading things like they’re going to quit shipping the JVM at the end of the year?

At least this one is easy. Microsoft announced Iron Ruby back in April.

But Iron Ruby runs on .NET. Right, so what does Sun’s Ruby run on? The JVM, of course.

By the way, I cannot think of any good reason why Microsoft should revive its JVM – withdrawn, you recall, at Sun’s insistence. Microsoft’s JVM was horribly out-of-date anyway; and there are several perfectly good JVMs that run fine on Windows.

Technorati tags: ,

Considering Microsoft’s “rift with the web”

I enjoy the SmoothSpan blog but I’m not convinced by this article on Microsoft’s rift with the web.

Bob Warfield says:

Ever since their spat with Sun over Java, Microsoft has been on an increasingly proprietary path called .NET.

I am not sure why .NET is “increasingly” proprietary. Why is it more proprietary now than it used to be? Arguably it is less so; Mono is more advanced; and in addition Microsoft is going cross-platform with the CLR, by bundling it into Silverlight. That does not make it less proprietary in itself, but means that it is less closely tied to Windows.

Warfield does not quite say, but strongly implies, that .NET is failing in the market:

It’s symptomatic that you can find about 18 million Google hits on “SQL Server” but there are 77 million hits on mySQL.  There are 2+ billion hits for PHP and 135 million for Java.  C# gets a modest 15 million hits.

Right, so by the same logic PHP is vastly more important than Java. For some reason, I get different results on MySQL, which reports 171 million hits. Just for fun I tapped in Oracle, which gets only 105 million, inflated by all sorts of non-database references, so we must conclude that MySQL is far more important in the Enterprise than Oracle.

No, this sort of Google-diving is lazy analysis. Sure, the results are interesting, but they are skewed in all sorts of ways.

I am not suggesting that .NET is bigger than Java. Nevertheless, it has been a success story for Microsoft, particularly on the server which is the focus of Warfield’s comments. So too has SQL Server; in fact if I remember rightly, the server side of Microsoft has been showing healthy growth versus the more stagnant Windows/Office side of the business.

Look at what Netcraft is saying: in its October 2007 web server survey it show gaining market share for IIS and implicitly .NET technology, and has done for several months. Don’t take the Apache drop too seriously; Netcraft’s figures are skewed by the decision to remove Google’s servers from the Apache figures. Nevertheless, Microsoft seems to be growing its web business on the server side.

Jobs? I track these from time to time in the UK, and C# has shown remarkable growth since its introduction, partly at the expense of VB, but also versus Java. Yes, Java is bigger, but you would expect that.

Why has C# succeeded despite Java? Ease of use, productivity and tools. All of these can be debated; but there is some consensus about the excessive complexity of JEE, which has benefited Microsoft. I’ve also noticed innovations in C# being quietly adopted in Java. Given its false start with Java in the early days, I think Microsoft has done well to establish its new language.

Now, I do partially agree with Warfield. Microsoft is an island and I notice strong polarization when I attend conferences and the like: there is a Microsoft crowd and a non-Microsoft crowd. And I agree that the open source community builds largely on open source technology, within which Java is more widely accepted than .NET. However, the .NET island is relatively large and so far has proved resilient.

Should Microsoft drop .NET and embrace Java or PHP, as Warfield kind-of implies? No. There is no technical need for it, because .NET works well. It is not really a rift with the web, because it is server technology and actually plays pretty well with others, through web services for example. The key thing on the web is to be cross-platform on the client. Writely, acquired by Google, was a .NET product. Did anyone care? No; in fact I doubt many were even aware of it. Now Google has incorporated it into Docs and I should think it has been rewritten in Python or something. Few care about that either; but if it did not work properly on a Mac or in FireFox we would all hear about it.

I don’t mean to minimize Microsoft’s problems. More than any other company I can think of, Microsoft has difficulty in balancing the needs of its OS and desktop application business with the migration we are all making to the Web. Further, it has big PR and image problems, and poor market acceptance for Vista must be a headache. Yes, there is a Microsoft crisis brewing. I’d suggest though that the company can succeed best by building on .NET, not by abandoning it.

Technorati tags: , , , , , ,

A tale of two Adobe conferences

I am just back from Adobe’s MAX Europe. The previous Macromedia/Adobe conference I attended was Macromedia DevCon in 2002. Remarkably, the gold sponsors at the earlier conference included Microsoft, there to promote .NET technology to Dreamweaver designers. Such a sponsorship seems impossible now. Back in 2002, the big product announcement was Contribute, and its competition was FrontPage. Today, it’s war. Adobe is talking “platform”: hosted services, web applications, desktop applications, and none of it dependent on Windows; while Microsoft has suddenly got the cross-platform habit with its own Flash-like browser plug-in called Silverlight. On Adobe’s side, an amazing, ubiquitous, graphically-rich runtime that just works. On Microsoft’s side, huge resources and armies of .NET developers.

Max Europe was a good conference. There’s a buzz around the products, and I didn’t meet any disappointed delegates, although there was a little bit of concern that strong designer content was getting squeezed out by the new focus on developers. The Adobe speakers seemed very approachable, and I appreciated the willingness of senior executives to talk to the press. In fact, the company has retained something of a small company feel, at least among the ex-Macromedia team which seemed to dominate at MAX. Adobe also has a clearer focus than Microsoft, which comes over as more bureaucratic and internally conflicted.

Nevertheless, it is possible that some at Adobe are under-estimating Silverlight. One speaker assured us that it only runs in one browser (false). Flex Builder is slow and awkward in comparison to Visual Studio. Adobe does have a big advantage in mobile devices – Nokia was at MAX and is putting Flash in all its high-end phones – but I am not yet convinced of the merits of Flash Mobile.

Mac count at MAX: about 50-50 with Windows on a very rough estimate. That’s proportionally fewer Macs than at FOWA earlier this month, which was maybe 80% Apple.

Flash, Silverlight the future of video games?

According to the BBC, gaming giant Electronic Arts is fed up with having to code the same game three, four or five times over. That’s the downside of the console wars – several incompatible systems.

The article says that streamed server-based games will be increasingly important.

A few observations. First, the PC is the nearest thing to an open platform right now, and it’s interesting that PC games typically cost around 30% less than those on the top consoles. For example, the hot new FIFA 08 typically sells for £40.00 on PS3 or Xbox 360, £25.00 on PC. It’s cheaper on DS or PSP, but must be considerably cut down on these low-powered devices. The Wii is somewhere in between.

Second, I’m writing this after seeing the amazing things being done with Flash. Microsoft’s Silverlight is also interesting in this context, as is Canvas 3D – OpenGL running in the browser.

That’s still three separate platforms; but since they are all cross-platform, there would be no necessity to code for more than one of them.

Third, Flash games are already very popular. If you calculate market share by time spent playing, I guess Flash games would already show a significant portion (I’d be interested to see those figures).

Fourth, the success of the Nintendo Wii proves that although geeks care deeply about who can shift pixels and calculate transforms the most quickly, the general public does not. All they want is a playable and enjoyable game.

All this suggests that the business model behind Microsoft’s and Sony’s console strategy is flawed. The idea is to buy market share by subsidizing the hardware, then profit from the software sales to your locked-in users. What if users can get the same games by subscribing, say, to a hypothetical EA Live, and play the games on a variety of devices? The money is still in the software, but there is no hardware lock-in. Prices could fall, and game developers could spend more time being creative and less time re-implementing the same game for different platforms.

Flash is actually in the PS3 and PSP, but appears to be an old version. If Microsoft isn’t thinking about Silverlight for the Xbox 360, then it should be. But if my logic is correct, then the investment Microsoft and Sony have put into game studios is actually more valuable, long-term, than the money they have put into hardware.

That said, the online experience is not yet good enough to threaten the consoles. I doubt it will be long though. A key point is hardware acceleration in the Flash player. H.264 video will be hardware-accelerated in the forthcoming Moviestar release of Flash 9. I am confident that a hardware accelerated gaming API will not be far behind.

Adobe: friend or enemy of open source, open standards?

I’m sitting in a session at Adobe Max Europe listening to Senior Product Manager Laurel Reitman talking about what a great open platform Adobe is creating. She refers to the open sourcing of the Flex SDK; the open bug database for Flex; the ISO standardization programme for PDF; the donation of source code to Tamarin, the Mozilla Foundation ECMAScript 4.0 runtime project, and the use of open source projects such as SQLite and Webkit within AIR, the Adobe Integrated Runtime which lets you run Flash applications on the desktop, and the fact that AIR will run in due course on Linux, though the initial release will be Mac and Windows only.

So is Adobe the friend of open source and open standards? It’s not so simple. Adobe is more successful than any other company in promoting proprietary standards on the Internet. It ceased development of the open SVG standard for vector graphics, in favour of the proprietary Flash SWF. Adobe’s efforts may well stymie the efforts of John Resig and others at Mozilla to foster open source equivalents to Flash and AIR. View the slides of his recent talk, which include video support integrated into the browser, a canvas for 3D drawing, HTML applications which run from the desktop without browser furniture, and web applications which work offline. Why is there not more excitement about these developments? Simply, because Adobe is there first with its proprietary solutions.

Adobe is arguably more a consumer than a contributor with respect to open source. It is using the open-source Eclipse for Flexbuilder and Thermo, but as far as I can tell not doing much with existing open source projects within Eclipse, preferring to provide its own implementations for things like graphics and visual application development. It is using SQLite and Webkit, and will no doubt feedback bugs and improvements to these projects, but they would flourish with or without Adobe’s input. Tamarin is perhaps its biggest open-source contribution, but read the FAQ: Adobe is contributing source code, but not quite open-sourcing its ActionScript virtual machine. The Flash Player itself remains closed-source, as do its binary compilers.

Like other big internet players, Adobe is treading a fine line. It wants the world to accept its runtimes and formats as standards, while preserving its commercial advantage in controlling them.

My prediction: if Adobe succeeds in its platform ambitions, the company will come under pressure to cede more of its control over those platform standards to the wider community, just as Sun has experienced with Java.

Adobe shows how anything can be a web application

The closing session here at Adobe MAX Europe was a series of “sneak peeks” at forthcoming technology, presented with a disclaimer to the effect that they may never appear commercially. I am not going to do a blow-by-blow account of these, since it was mostly the same as was shown a couple of weeks ago in the USA, and you may as well read one of the accounts from there. For example, this one from Anara Media, if you can cope with its breathless enthusiasm.

So what was interesting? Overall, Adobe is doing a good job of challenging assumptions about the limitations of web applications, and I am not just talking about AIR. A few years ago you might single out something like Photoshop as an example of something that would always be a desktop application; yet this evening we saw Photoshop Express, a web-hosted Photoshop aimed at consumers, but with impressive image manipulation capabilities. For example, we saw how the application could turn all shades of one colour into those of another colour, so you can make a red car blue. Another application traditionally considered as local-only is desktop publishing, yet here we saw a server version of InDesign controlled by a Web UI written in Flex.

The truth is, given a fast Internet connection and a just-in-time compiler anything can be a web application. Of course, under the covers huge amounts of code are being downloaded and executed on the client, but the user will not care , provided that it is a seamless and reasonably quick experience. Microsoft should worry.

We also got a glimpse into the probable future of Adobe Reader. This already runs JavaScript, but in some future version this runtime engine will be merged with ActionScript 3.0. In addition, the Flash player will be embedded into Adobe Reader. In consequence, a PDF or a bundle of PDFs can take on the characteristics of an application or an offline web site. A holiday brochure could include video of your destination as well as a live booking form. Another idea which comes to mind (we were not shown anything like this) is ad-supported ebooks where the ads are Flash videos. I can see the commercial possibilities, and there are all kinds of publications which could be enhanced by videos, but not everyone will welcome skip-the-intro annoyances arriving in PDF form.

This was a fun and impressive session, and well received by the somewhat bedazzled crowd of delegates.

How much “branded desktop presence” will you put up with?

We saw a lot of AIR applications at this morning’s keynote here at Adobe MAX Europe. AIR lets you take either Flash applications, or Javascript/HTML applications, out of the browser and onto the desktop. The additional richness you get from running outside the browser is currently rather limited – we saw lots of drag-and-drop, because that is one of the few additional things you can do. However, AIR has a huge advantage for web vendors, because it puts their application and/or their content onto the user’s desktop. A great example is an Allurent-developed online shopping catalog called Anthropologie, which we saw this morning. Here’s a quote from the case study, headed “Branded desktop presence”:

“The idea underlying our Adobe AIR applications is to enable retailers to push relevant content to the consumer and let the consumer consider it from the comfort of their desktop,” says Victoria Glickman Hodgkins, vice president of marketing at Allurent. “The retailer avoids mailing a circular or catalog to promote special items, and the consumer can interact with digital catalog information in highly engaging ways.”

Right. Now we realize how the web browser has actually protected us from intrusive commercial presence on our desktop. The beauty of browser-based applications is that they completely disappear when you navigate away from the page, with only perhaps a Favorites shortcut to take us back there when we choose. An AIR application by contrast installs into our machine, probably puts an icon on the desktop, can run minimized and fire system notifications.

This isn’t a bad thing in itself, provided the user remains in control. But how many such applications will you want to install?

Put another way, AIR developers will need to exercise restraint in their efforts to inflict branded desktop presence on hapless users.

Technorati tags: , , ,

Mark Anders remembers Blackbird, and other Microsoft hits and misses

Here at Adobe MAX Europe I had an enjoyable chat with Adobe’s Mark Anders about his time at Microsoft. Anders is well known as one of the inventors of ASP.NET, along with his colleague Scott Guthrie. However, when he joined Microsoft in the mid nineties he worked initially on the project codenamed Blackbird. This was a kind of Windows-specific internet, and was surfaced to some extent as the MSN client in Windows 95. Although the World Wide Web was already beginning to take off, Blackbird’s advocates within Microsoft considered that its superior layout capabilities would ensure its success versus HTTP-based web browsing. It was also a way to keep users hooked on Windows. Anders told me that he never believed in Blackbird and argued that Microsoft should support HTTP instead. According to him, the executives at the time did not want to listen at first, but Blackbird had severe performance problems because of an over-complex architecture which made excessive use of multi-threading. Another colleague came up with the first prototypes of the Trident rendering engine, which we now know as MSHTML, and showed that in principle Blackbird’s layout goals could also be achieved with HTTP. In consequence Blackbird was scrapped before it was released.

What would have happened had Blackbird performed better? The momentum behind the World Wide Web would have ensured the eventual death of Blackbird, but Microsoft would have been further behind in the web server and web browser market. In retrospect, the slowness of Blackbird was the best possible thing for the company, because it enabled an earlier move to HTTP.

According to Anders – and bear in mind that he now works for a competitor – the tendency to over-complicate its software is one of Microsoft’s biggest problems. The projects that work best tend to be those which simplify what already exists, rather than those which make it more complex. Thus, the success of C# and the .NET Framework came about because of its ease of use in comparison to C++ and MFC. Anders recalls the 2000 PDC, when C# and the .NET Framework was introduced to the world, as a great success. By contrast, at the Longhorn PDC in 2003 Microsoft introduced new technology that was not fully thought-through. These were the “three pillars of Longhorn”: Avalon (now Windows Presentation Foundation), Indigo (now Windows Communication Foundation) and WinFS (now scrapped). Although WPF and WCF have been shipped, they are not in any sense pillars of Windows Vista, which is largely native code. The Longhorn Alpha that was given to PDC attendees (I still have my copy somewhere) was worked on for another year, and then much of the code was scrapped in favour of a conservative upgrade from Windows 2003 – the famous reset that became Windows Vista. Like Blackbird, the original Longhorn had performance issues. I put it to Anders that the failure of Longhorn cost Microsoft two years of momentum; he replied that it was even more than that.

When Anders was working on ASP.NET he says there was always an element of disapproval from others at Microsoft who wanted to tie users more closely to Windows. Although ASP.NET runs on Windows, it supports cross-platform browser clients. There are parallels today with what the Silverlight team is doing. Silverlight is the right direction for Microsoft, but not everyone will like the idea of a rich cross-platform client and the Silverlight team may be under that same kind of pressure. Of course Anders would say that, because he now works on Flash, but I suspect there is truth in it. Microsoft does at times lurch back into Windows-only mode, as it is did when it ceased development of Windows Media Player for the Mac. That was an extraordinary decision when you consider the wider context of the multimedia and DRM wars. With Silverlight Microsoft is once again on the cross-platform track, not just for multimedia but for .NET code. It seems to be serious about it, but it will take a lot to convince long-term Microsoft watchers that cross-platform Silverlight will endure. Personally I hope it stays the course; competition is good.