Category Archives: mono

Mono splits from Novell/Attachmate to form basis of new company

Mono is an open source implementation of .NET, formerly sponsored by Novell, and its future following Novell’s acquisition by Attachmate has been the subject of speculation.

Today Mono leader Miguel de Icaza has revealed new plans. In a blog post, he announces Xamarin, a new company focused on Mono. This company will build new commercial .NET tools for Apple iOS and Google Android, to enable .NET development on those platforms. Note that they will not be called MonoTouch and MonoDroid, the Novell offerings for this, but will be “source compatible”. I am sure there are brand and intellectual property ownership issues here; but de Icaza is no stranger to negotiating tricky issues of this kind, bearing in mind Mono’s relationship with Microsoft .NET. However I am not sure why the new company cannot acquire the existing brands, since it seems that Attachmate will no longer be able to support them.

The plans are not exactly new, but have been forced by Attachmate’s decision to lay off the entire Mono team:

We have been trying to spin Mono off from Novell for more than a year now. Everyone agreed that Mono would have a brighter future as an independent company, so a plan was prepared last year.

To make a long story short, the plan to spin off was not executed. Instead on Monday May 2nd, the Canadian and American teams were laid off; Europe, Brazil and Japan followed a few days later. These layoffs included all the MonoTouch and MonoDroid engineers and other key Mono developers.

Apparently Xamarin has “angel funding” but is looking for more.

The advent of MonoTouch and MonoDroid has been good for Mono, since it gives the project a stronger business model than it had previously. These mobile platforms are hot, and the ability to code for them in C# is great for Microsoft Platform developers. This factor could enable Xamarin to succeed.

On the other hand, Novell’s name gave Mono enterprise credibility as well as the backing of a large company, and these it now lacks.

The curious thing is that Mono is valuable to Microsoft. The company seems at times to hate Mono, because it removes the need for Windows, and at other times to love it, because it extends the breadth of .NET to include Linux and now iOS and Android. Microsoft gave some sort of official status to Moonlight, the Mono implementation of Silverlight, though the company’s support for Moonlight has always seemed hesitant.

So can we expect now that the company which can afford $8.5 billion for Skype, could expend a few million in support of Xamarin? Or will it stand by and hope that Mono fades away?

I have no idea, though I would like to see both Mono and Xamarin succeed. It is no threat to Microsoft, but does take .NET to places that Microsoft will never support. Without Mono, C# is merely a language for programming Windows.

Adobe AIR 2.6, MonoMac 1.0, cross-platform is not dead yet

It is a busy time for cross-platform toolkits. Adobe has released AIR 2.6, and reading the list of what’s new you would think it was mainly for mobile, since the notes focus on new features for Apple iOS, though AIR is also a runtime for Windows, Linux and desktop Mac. New features for iOS include GPU rendering – a form of hardware accelerated graphics – access to the camera, microphone, and camera roll, and embedded Webkit for apps that use web content. On Google Android, you can now debug on devices connected via USB.

There is also a new feature called “owned native windows” which lets you have a group of windows that remain together in the Z order – this lets you have things like floating toolbars without odd results where toolbars get hidden underneath other applications.

Asynchronous decoding of bitmaps is another new feature, allowing images to be processed in the background. This seems like a stopgap solution to overcome the lack of mullti-threading in AIR, but useful nonetheless.

Since the Flash runtime does not run on iOS, Adobe has a packager that compiles an AIR application into a native app. This is now called the AIR Developer Tool or ADT. You can use the ADT to target Windows, Linux or Android as well; however platforms other than iOS still need the AIR runtime installed.

Adobe is dropping support for the original iPhone and the iPhone 3G. iPhone 3GS or higher is needed.

If you want to build a cross-platform app but prefer .NET to Adobe’s Flash and ActionScript, the Mono folk have what you need. I’d guess that the Mono team has a small fraction of the resources of Adobe; but nevertheless it has delivered MonoTouch for iOS and is working on MonoDroid for Android. Just completed in its 1.0 version is MonoMac, for building Cocoa applications on Apple OSX. Mono is not fully cross-platform, since the GUI framework is different on the various platforms, but you do get to use C# throughout.

I am happy to agree that true native code is usually a better solution for any one platform; but at a time when the number of viable platforms is increasing the attraction of cross-platform has never been greater.

Mono project: no plans for cross-platform WPF

Miguel de Icaza’s report from the Game Developer Conference is upbeat, rightly so in my view as usage of Mono is continuing to build, not only in game development with Unity, a development tool that uses Mono as its scripting engine, but also for mobile development for Apple’s iOS with Monotouch and for Android with Monodroid. These mobile toolkits also give Mono a stronger business model; many sites use Mono for serving ASP.NET applications on Linux, but without paying or contributing back to the project.

Mono is an open source implementation of C# and Microsoft’s .NET Framework.

That said, it is interesting that Mono is still struggling with an issue that has been a problem since its first days: how to implement Microsoft’s GUI (Graphical User Interface) framework on other platforms. Mono does have Gtk# for Windows, Mac and Linux, but this does not meet the goal of letting developers easily port their Visual Studio client projects to Mono. There is also an implementation of Windows.Forms, but de Icaza mentions that “our Windows.Forms is not actively developed.”

Apparently many tools vendors asked the Mono team at GDC when Windows Presentation Foundation (WPF) would be implemented for Mono. WPF is the current presentation framework for Microsoft.NET, though there is some uncertainty about where Microsoft intends to take it. I remember asking de Icaza about this back in 2003, when the WPF framework was first announced (then called Avalon); he said it was too complex and that he did not plan to implement it.

This is still the case:

We have no plans on building WPF. We just do not have the man power to build an implementation in any reasonable time-frame.

That said, Mono has implemented Silverlight, which is based on WPF, and there are some signs that Microsoft might merge WPF and Silverlight. What would the Mono team do then?

Miguel de Icaza says:

Silverlight runs on a sandbox, so you can not really P/Invoke into native libraries, or host DirectX/Win32 content inside of it.
There are other things missing, like menubar integration and things like that.

Of course, this is no longer true on Windows: Platform Invoke is coming in Silverlight 5.

Perhaps the Mono team will knuckle down and implement Silverlight with desktop integration, which would be good for cross-platform Silverlight and compatibility with Microsoft .NET.

Then again, it seems to me that Mono is increasingly divergent from Microsoft .NET, focusing on implementing C# in places that Microsoft does not touch, such as the mobile platforms from Apple and Google.

That is actually a sign of health; and you can understand why the Mono team may be reluctant to shadow Microsoft’s every move with Silverlight and WPF.

Trying out MonoTouch – C# for Apple’s iPhone and iPad

I’ve posted an article on trying out MonoTouch, which builds on the open source Mono project to provide a means of developing apps for Apple’s iOS using C# and the .NET Framework.

It is easy to assume that since the .NET Framework is Microsoft’s technology, using a non-Microsoft implementation is risky. Then again, Mono is open source; and the more usage it gets, the better it becomes. MonoTouch is an important development for the project, since it is a commercial project which might actually be making some money for Novell/Attachmate. While it would be nice to get it for free, it is important that Mono makes business sense as well. MonoTouch has given the Mono project a significant boost.

What you are saying about the Java crisis

A week or so ago I posted about the Java crisis and what it means for developers. The post attracted attention both here and later on The Guardian web site where it appeared as a technology blog. It was also picked up by Reddit prompting a discussion with over 500 posts.

So what are you saying? User LepoldVonRanke takes a pragmatic view:

I’d much rather have Java given a purpose and streamlined from a central authoritative body with a vision, than a community-run egg-laying, wool-growing, milk-giving super cow pig-sheep, that runs into ten directions at the same time, and therefore does not go anywhere. The Java ship needs a captain. Sun never got a good shot at it. There was always someone trying to wrestle control over Java away. With the Oracle bully as Uberfather, maybe Java has a place to go.

which echoes my suggestion that Java might technically be better of under more dictatorial control, unpalatable though that may be. User 9ren is sceptical:

Theoretically, the article is quite right that Java could advance faster under Oracle. It would be more proprietary, and of course more focussed on the kinds of business applications that bring in revenue for Oracle. It would be in Oracle’s interest; and the profit motive might even be a better spur than Sun had.

But – in practice – can they actual execute the engineering challenges?

Although Oracle has acquired many great software engineers (eg. from Sun, BEA Systems, many others), do they retain them? Does their organizational structure support them? And is Oracle known for attracting top engineering talent in general?

In its formation, Oracle had great software engineers (theirs was the very first commercial relational database, a feat many thought impossible). But that was 40 years ago, and now it’s a (very successful) sales-driven company.

There’s an important point from djhworld:

Java is hugely popular in the enterprise world, companies have invested millions and millions of pounds in the Java ecosystem and I don’t see that changing. Many companies still run Java 1.4.2 as their platform because it’s stable enough for them and would cost too much to upgrade.

The real business world goes at its own pace, whereas tech commentators tend to focus on the latest news and try to guess the future. It is a dangerous disconnect. Take no notice of us. Carry on coding.

On Reddit, some users focused on my assertion that the C# language was more advanced than Java. Is it? jeffcox111 comments:

I write in C# and Java professionally and I have to say I prefer C# hands down. Generics are very old news now in .Net. Take a look at type inference, lambdas, anonymous types, and most of all take a look at LINQ. These are all concepts that have been around for 3 years now in .Net and I hate living without them in Java. With .Net 5 on the horizon we are looking forward to better asynchronous calling/waiting and a bunch of other coolness. Java was good, but .Net is better these days.

and I liked this remark on LINQ:

I remember my first experience with LINQ after using C# for my final-year project (a visual web search engine). I asked a C# developer for some help on building a certain data structure and the guy sent me a pseudocode-looking stuff. I thanked him for the help and said that I’d look to find a way to code it and he said "WTF, I just gave you the code".

From there on I’ve never looked back.

Another discussion point is write once – run anywhere. Has it ever been real? Does it matter?

The company I work for has a large Java "shrinkwrap" app. It runs ok on Windows. It runs like shit on Mac, and it doesn’t run at all on Linux.

write once, run anywhere has always been a utopian pipe dream. And the consequence of this is that we now have yet another layer of crap that separates applications from the hardware.

says tonymt, though annannsi counters:

I’ve worked on a bunch of Java projects running on multiple unix based systems, windows and mac. GUI issues can be a pain to get correct, but its been fine in general. Non-GUI apps are basically there (its rare but I’ve hit bugs in the JVM specific to a particular platform)

Follow the links if you fancy more – I’ll leave the last word to A_Monkey:

I have a Java crisis every time I open eclipse.

The Java crisis and what it means for developers

What is happening with the Java language and runtime? Since Java passed into the hands of Oracle, following its acquisition of Sun, there has been a succession of bad news. To recap:

  • The JavaOne conference in September 2010 was held in the shadow of Oracle OpenWorld making it a less significant event than in previous years.
  • Oracle is suing Google, claiming that Java as used in the Android SDK breaches its copyright.
  • IBM has abandoned the Apache open source Harmony project and is committing to the Oracle-supported Open JDK. Although IBM’s Sutor claims that this move will “help unify open source Java efforts”, it seems to have been done without consultation with Apache and is as much divisive as unifying.
  • Apple is deprecating Java and ceasing to develop a Mac-specific JVM. This should be seen in context. Apple is averse to runtimes of any kind – note its war against Adobe Flash – and seems to look forward to a day when all or most applications delivered to Apple devices come via the Apple-curated and taxed app store. In mitigation, Apple is cooperating with the OpenJDK and OpenJDK for Mac OS X has been announced.
  • Apache has written a strongly-worded blog post claiming that Oracle is “violating their contractual obligation as set forth under the rules of the JCP”, where JCP is the Java Community Process, a multi-vendor group responsible for the Java specification but in which Oracle/Sun has special powers of veto. Apache’s complaint is that Oracle stymies the progress of Harmony by refusing to supply the test kit for Java (TCK) under a free software license. Without the test kit, Harmony’s Java conformance cannot be officially verified.
  • The JCP has been unhappy with Oracle’s handling of Java for some time. Many members disagree with the Google litigation and feel that Oracle has not communicated well with the JCP. JCP member Doug Lea stood down, claiming that “the JCP is no longer a credible specification and standards body”. Another member, Stephen Colebourne, has a series of blog posts in which he discusses the great war of Java and what he calls the “unravelling of the JCP”, and recently  expressed his view that Oracle was trying to manipulate the recent JCP elections.

To set this bad news in context, Java was not really in a good way even before the acquisition. While Sun was more friendly towards open source and collaboration, the JCP has long been perceived as too slow to evolve Java, and unrepresentative of the wider Java community. Further, Java’s pre-eminence as a pervasive cross-platform runtime has been reduced. As a browser plug-in it has fallen behind Adobe Flash, the JavaFX initiative failed to win wide developer support, and on mobile it has also lost ground. Java’s advance as a language has been too slow to keep up with Microsoft’s C#.

There are a couple of ways to look at this.

One is to argue that bad news followed by more bad news means Java will become a kind of COBOL, widely used forever but not at the cutting edge of anything.

The other is to argue that since Java was already falling behind, radical change to the way it is managed may actually improve matters.

Mike Milinkovich at the Eclipse Foundation takes a pragmatic view in a recent post. He concedes that Oracle has no idea how to communicate with the Java community, and that the JCP is not vendor-neutral, but says that Java can nevertheless flourish:

I believe that many people are confusing the JCP’s vendor neutrality with its effectiveness as a specifications organization. The JCP has never and will never be a vendor-neutral organization (a la Apache and Eclipse), and anyone who thought it so was fooling themselves. But it has been effective, and I believe that it will be effective again.

It seems to me Java will be managed differently after it emerges from its crisis, and that on the scale between “open” and “proprietary” it will have moved towards proprietary but not in a way that destroys the basic Java proposition of a free development kit and runtime. It is also possible, even likely, that Java language and technology will advance more rapidly than before.

For developers wondering what will happen to Java at a technical level, the best guide currently is still the JDK Roadmap, published in September. Some of its key points:

  • The open source Open JDK is the basis for the Oracle JDK.
  • The Oracle JDK and Java Runtime Environment (JRE) will continue to be available as free downloads, with no changes to the existing licensing models.
  • New features proposed for JDK 7 include better support for dynamic languages and concurrent programming. JDK 8 will get Lambda expression.

While I cannot predict the outcome of Oracle vs Google or even Apache vs Oracle, my guess is that there will be a settlement and that Android’s momentum will not be disrupted.

That said, there is little evidence that Oracle has the vision that Sun once had, to make Java truly pervasive and a defence against lock-in to proprietary operating systems. Microsoft seems to have lost that vision for .NET and Silverlight as well – though the Mono folk have it. Adobe still has it for Flash, though like Oracle it seems if anything to be retreating from open source.

There is therefore some sense in which the problems facing Java (and Silverlight) are good for .NET, for Mono and for Adobe. Nevertheless, 2010 has been a bad year for write once – run anywhere.

Update: Oracle has posted a statement saying:

The recently released statement by the ASF Board with regard to their participation in the JCP calling for EC members to vote against SE7 is a call for continued delay and stagnation of the past several years. We would encourage Apache to reconsider their position and work together with Oracle and the community at large to collectively move Java forward.  Oracle provides TCK licenses under fair, reasonable, and non-discriminatory terms consistent with its obligations under the JSPA.   Oracle believes that with EC approval to initiate the SE7 and SE8 JSRs, the Java community can get on with the important work of driving forward Java SE and other standards in open, transparent, consensus-driven expert groups.   This is the priority.   Now is the time for positive action.  Now is the time to move Java forward.

to which Apache replies succinctly:

The ball is in your court. Honor the agreement.

Why we love to hate Microsoft

Mary Branscombe has an excellent ZDNet post on Why do we (love to) hate Microsoft, and asks:

What would Microsoft need to do and say to you for you to be happy to call yourself a fan?

In part she’s reacting to Frank Shaw’s Microsoft by the Numbers in which he highlights the success of Windows 7, and makes the point that Windows netbooks will likely outsell Apple iPads by 7 or 8 times in 2010, that Linux has not ousted Windows either on the desktop or the server, and that Nokia smartphones will likely outsell iPhones by 2.5 times in 2010.

That last one is interesting. Why is Shaw puffing Nokia, when he is VP corporate communications for Microsoft? Well, the enemy of my enemy applies; it’s a jibe at Apple.

Unfortunately for Shaw, Nokia itself admits that Apple iPhone and Google Android are hurting its market share, or at least that is how I interpret this remark:

Nokia now expects its mobile device value market share to be slightly lower in 2010, compared to 2009. This update is primarily due to the competitive situation at the high-end of the market and shifts in product mix.

Nokia is being driven down-market. The same thing has happened to Microsoft in the laptop market, with the high-end going to Apple. This is a worry for both companies, since if a company becomes known as “the best” in a particular sector, it may well extend its market share simply by lowering prices or introducing cheaper product variants. This happened to some extent in the portable music player market – only to some extent, because Apple is still more expensive than most of its competitors, but its market share is now huge.

I digress. Here are a few observations on the ZDNet post. First, has Microsoft really changed as stated?

Microsoft is still paying for the bad old days of arrogance and dubious business practices. I think they’re the bad old days – I spend a lot of time talking to Microsoft insiders, partners and competitors and the attitudes I see have changed, inside and out.

The trouble is, Microsoft is so large and complex that it is hard to generalise. I think of it more as a set of united (or disunited) states than as a single corporate entity. This has always been the case – at least, as long as I can remember, and I don’t go back to the very early days.

I can believe that regulation has mitigated the worst practices of the past. But why on earth is Microsoft suing Salesforce.com (and getting itself counter-sued)? It’s terrible PR; it looks as if Microsoft wants to compete in the courts and not on product quality. If it wins and hurts Salesforce.com, what is the benefit to the industry? I realise Microsoft is not a charity, but we are talking business ethics here.

More broadly, there are two separate topics that need to be addressed. One is about the quality and prospects for Microsoft’s products and services, and the other is about how it is perceived and why.

I’ll take these in reverse order. Microsoft has history, as Mary Branscombe says, and more history than just Clippy. It’s the perceptions of the web community that are most visible to many of us, and the piece of history that counts for most is over the web browser. Microsoft beat off the competition, then froze development, an evil act that is particularly hard to forgive because of its cost in terms of devising workarounds for web pages. Yes, that’s changed now, and we have had IE7, IE8, and the promising IE9; but has Microsoft convinced the community that it would not do the same again if it had the opportunity?

There are other things I can think of. The whole Office Open XML (OOXML) saga, and hints that Microsoft is not following through on its promises. The BlueJ incident.

There is also the question of pricing, especially for business users. When I reviewed a Toshiba Netbook recently I figured that installing Windows Pro (to join a domain) and Office would cost more than the hardware. I suppose you cannot blame a company for charging what the market will bear; but when the commodity software costs more than the commodity hardware, you have to wonder whether monopolistic pricing is still present.

OK, what about product quality? I tend to agree that Microsoft often does better than it is given credit for. Windows 7 is good; Visual Studio 2010 is great; Silverlight 4 was a bit rushed but still impressive, to mention three offerings about which I know a good deal.

Nevertheless, Microsoft still had deep-rooted problems that I’ve not yet seen addressed. I’ll mention a couple.

First Microsoft still has an OEM problem. Going back to that Toshiba Netbook: it was nearly wrecked by poor OEM software additions and the user experience of a new Windows machine often remains poor. Many users do minimal customisation and as a result get a worse experience of Windows than they should. Apple will carry on winning if this is not addressed.

Second, Microsoft is conflicted, caught between the need to preserve its profits from Windows and Office, and the need to keep up with the new Cloud + Device model of computing. It is drifting towards the cloud; and developments like Office Web Apps and other one about which I am not allowed to tell you yet are encouraging (wait until next month). This issue will not go away though.

Third, mainly as a result of the above, Microsoft still does not convince when it comes to cross-platform. Silverlight is cross-platform, sure; except on the Mac you don’t have the COM integration or any equivalent, sorry, and on Linux, well there’s Moonlight or maybe we’ll work something out with Intel. It is the Windows company. Having said that, I put the Live Messenger app on the iPhone 4 I’ve been trying and it’s great; so yes, it sometimes gets it.

What can Microsoft do in order to be better liked? The key to it is this: ensure that our interactions with the company and its products are more often pleasurable than painful. Windows Phone 7 will be an interesting launch to watch, a product where Microsoft has made its best effort to break with past and deliver something users will love. We’ll see.

Microsoft – make up your mind about Moonlight

I’ve been trying out Microsoft’s Office Web Apps, as provided for the release version of SharePoint 2010. The cross platform story is uneven, whether across Mac/Windows/Linux, or across different browsers, or even across different versions of Windows and Office. So far it does mostly work though, even if there are problems with certain tasks like printing or opening an online document in a desktop application.

The biggest problem I’ve had is on Linux. Supposedly Firefox 3.5 on Linux is supported. I ran up Ubuntu and Firefox 3.5, and went to look at a document in Word Web App. When I selected the document, Firefox quit. Every time.

After checking that Firefox was up-to-date it occurred to me that the problem might be related to Moonlight, the Linux implementation of Silverlight done by the Mono team. I disabled it. Suddenly, everything worked, even Edit in browser.

Moonlight is not just an open source project like the original Mono. It has a certain amount of official blessing from Microsoft. Here’s what VP Scott Guthrie said back in September 2007:

Over the last few months we’ve been working to enable Silverlight support on Linux, and today we are announcing a formal partnership with Novell to provide a great Silverlight implementation for Linux.  Microsoft will be delivering Silverlight Media Codecs for Linux, and Novell will be building a 100% compatible Silverlight runtime implementation called “Moonlight”.

Moonlight will run on all Linux distributions, and support FireFox, Konqueror, and Opera browsers.  Moonlight will support both the JavaScript programming model available in Silverlight 1.0, as well as the full .NET programming model we will enable in Silverlight 1.1.

You would think therefore that Microsoft would test the Firefox/Linux/Moonlight combination with its shiny new Office Web Apps. Apparently not. Here’s what the user experience is like for Office Word App. I figured that the solution might be to upgrade Moonlight to the latest version, so I did, installing what is now called Novell Moonlight 2.2. I went back to Word Web App. Firefox no longer crashes, but I now get a blank area where the Word document should be shown, and an error if I resize the browser window:

Now let’s see what happens if I disable Moonlight:

Everything is fine – except now there is a banner inviting me to “Improve my experience” by installing Silverlight. If I follow the link I eventually get back to the same Moonlight install that I have just enabled, which would actually break rather than improve Word Web App.

It is obvious that if users have to disable Moonlight to work with Office Web Apps, this will not help Moonlight adoption on Linux.

Office Web Apps are new and I’d hope this is something that Microsoft, Novell and the Mono team can soon fix between them. One reason for highlighting it now is the hope that something could be done before the full roll-out of Office and SharePoint 2010 on May 12th.

The real point though is what this says about the extent to which Microsoft cares about Moonlight and Linux users, and how much or little communication takes place between Microsoft and Novell. Silverlight isn’t required for Office Web Apps – as you can see from the above – but it is used to good effect where available, and this Office release is therefore an important release for Silverlight as well.

Microsoft should make up its mind. Is Novell really a trusted partner for Silverlight on Linux? Or a third-party product that has to take its chances?

Mono Tools for Visual Studio: code on Windows, run on Linux

I have just com across Mono Tools, a Novell add-in for Visual Studio that lets you test Mono compatibility. It adds a Mono menu which has options to run locally or remotely in Mono, analyze for compatibility issues, and create deployment packages. No sign of Mac support, which is a missed opportunity, but understandable given that Novell owns SUSE Linux.

For those few still unfamiliar with Mono, it is an open source implementation of Microsoft’s .NET Framework, enabling your .NET applications to run on other platforms. One compelling use is to have your ASP.NET web applications run on the free Apache web server, rather than Microsoft’s IIS.

image

Mono Tools works with both Windows Forms and web projects.

image

This is just the sort of thing Mono needs to move it further into the mainstream, though another less welcome sign of business acceptance is that this is a commercial product, currently costing $99.00 for an individual or $249.00 per seat in an organization. There is also an Ultimate edition at $2,499, which comes with a commercial non-LGPL license to redistribute Mono.

The Mono Tools team is now looking for testers for its 1.1 edition, which supports Visual Studio 2010.

Windows 7 booms for Microsoft, everything else is flat

Microsoft has had a bumper quarter driven by Windows 7, as expected. I’ve put this into a table as I have before.

Quarter ending December 31st 2009 vs quarter ending December 31st 2008, $millions

Segment Revenue % change Profit % change
Client (Windows + Live) 6904 69.9 5394 98.9
Server and Tools 3844 0.24 1491 8.4
Online 581 4.60 -466 -49.5
Business (Office) 4745 -2.78 3010 -0.36
Entertainment and devices 2902 -10.87 375 288.5

The poor performance of Vista meant latent demand for Windows 7, as both individuals and organisations deferred upgrades, which was unleashed in this quarter. Microsoft said it was a “record quarter for Windows units” and “the fastest selling operating system in history”. Windows 7 is also a strong product in its own right.

There isn’t much else to cheer about, though given the general weakness of the server market the sliver of growth there is impressive. There is still no sign of a profitable online business, which is of major concern as interest in cloud computing accelerates.

Entertainment (Xbox) is now a steady business; I’m guessing that the huge growth in profits reflects lower investment and a reduction in cost of fixing endless red rings of death thanks to better quality hardware. Revenue on the other hand is somewhat down.

Windows 7 will continue to do well, though once the upgrade bump is passed the results will be less spectacular. Windows 8 will not get the same easy ride, unless Microsoft delivers something that surprises us all with its excellence.

The positive spin on these figures is that the company still has an opportunity to reinvent itself, financed by Windows profits. It needs its own iPod equivalent to show that it can escape its Windows and Office legacy. Windows Mobile 7? Laugh if you like; but the two things with obvious growth potential in the market generally are mobile devices, and cloud computing – the two go together, of course. That said, there is no evidence yet that Microsoft has the energy and agility to reverse its poor performance to date in both areas.

Who knows, perhaps after a couple of months of mobile focus, with details to be revealed shortly at Mobile World Congress and Mix10, the picture will look more promising?