Category Archives: software development

Microsoft unveils Office 365, wins vs Google in California. What are the implications for its future?

Today Microsoft announced Office 365, though it is not really a new product. Rather, it pulls together a bunch of existing ones: Business Productivity Online Suite (BPOS), Office Live Small Business, and Live@edu, the cloud  . It also impacts the desktop Office business, in that with at least some varieties of Office 365 subscriptions, users get the right to download and install Office 2010 Pro Plus edition.

This rebranding is a smart move. I have long been mystified by the myriad brands Microsoft users for its online offerings. I hope this will all integrate nicely with the new Small Business Server “Aurora”, a forthcoming version of SBS designed to bridge the cloud and the local network. If it does, this will be attractive for small businesses – who will pay $6.00 per user per month, we were told today – as well as for larger organisations.

Enterprises will pay between $2.00 and $27.00 per user depending on which services they buy, and can get extra features such as unlimited space for email archiving.

I also find it interesting that Microsoft has won what sounds like a bitter battle with Google for the migration of the State of California to online services.

Why would anyone choose Microsoft rather than Google for cloud services? Google was born in the web era, has no desktop legacy weighing it down, has helped to drive browser standards forward with HTML 5 and lightning-fast JavaScript, promotes open standards, and has a great free offering as well as subscriptions? Further, with Android Google has a fast-growing mobile platform which it can integrate with its services.

No doubt Microsoft can make a case for its cloud offerings, but I suspect a lot of it is the power of the familiar. If you already run on Office documents and Exchange email, moving to online versions of the same applications will seem a smoother transition. There is also the document format issue: you can import Office documents into Google Apps, but not with with 100% fidelity, and the online editors are basic compared with Microsoft Office.

When Microsoft seemingly had no idea what the cloud was about, it was easier for Google to win customers. Now Microsoft is slowly but surely getting the idea, and the value of its long-standing hold over business computing is being felt.

Google is also winning customers, of course, and even if you accept that Office 365 is the future for many existing Microsoft-platform businesses – and, Microsoft will hope, some new ones – there are still a host of interesting questions about the company’s future.

One is how the numbers stack up. Can Microsoft as cloud provider be as profitable as Microsoft has been with the old locally installed model?

Second, what are the implications for its partners? In today’s press announcement we were told that customers migrating to BPOS report a 10%-50% cost saving. The implication is that these companies are spending less money on IT than before – so who is losing out? It could be Microsoft, it could be hardware suppliers, it could be integration partners. Microsoft does include potential for partners to profit from Office 365 migrations, presuming it follows the BPOS model, but partners could still be worse off.

For example, if support requests diminish,because cloud services are more reliable, and if Microsoft does some support directly, there is less opportunity for partners support services.

Finally, what are the implications for developers? The main one is this. Organisations that migrate to online services will have little enthusiasm for locally installed custom applications, and will also want to reduce their dependence on local servers. In other words, custom applications will also need to live in the cloud.

PyCharm: JetBRAINS IDE for Python and Django

JetBRAINS has released PyCharm, an IDE for Python and the Django web development framework.

The company is best known for the IntelliJ IDEA Java IDE, and indeed PyCharm is mostly written in Java, but now has other tools for languages including PHP and Ruby and Rails. It also does add-ins for .NET developrs working in Visual Studio.

PyCharm

PyCharm has a small number of refactorings, lots of code search and assistance features,  integrated support for CVS, Git, Mercurial and Subversion version control, unit testing with a graphical test runner, graphical debugger, built-in deployment to Google App Engine as well as error highlighting for GQL queries, and editing support for HTML, CSS and JavaScript as well as Python.

IBM to harmonise its open source Java efforts with Oracle

IBM’s Bob Sutor, VP of Open Systems and Linux, says in a blog post that the company will now shift its open source Java effort from the unofficial Apache Harmony, to the official Open JDK. The announcement is also covered in an Oracle press release.

Sutor’s post is curious in some ways. He focuses on a long-standing issue, the refusal of Sun and then Oracle to make its testing suite available (TCK – Testing Compatibility Kit) under a suitable license so that users of Harmony could have confidence that its implementation is correct:

We think this is the pragmatic choice. It became clear to us that first Sun and then Oracle were never planning to make the important test and certification tests for Java, the Java SE TCK, available to Apache. We disagreed with this choice, but it was not ours to make. So rather than continue to drive Harmony as an unofficial and uncertified Java effort, we decided to shift direction and put our efforts into OpenJDK. Our involvement will not be casual as we plan to hold leadership positions and, with the other members of the community, fully expect to have a strong say in how the project is managed and in which technical direction it goes.

We also expect to see some long needed reforms in the JCP, the Java Community Process, to make it more democratic, transparent, and open. IBM and, indeed Oracle, have been lobbying for such transformations for years and we’re pleased to see them happening now. It’s time. Actually, it’s past time.

The interesting question is what has really changed, since the situation with the Java TCK is not new. It reads as if some intense negotiation has been going on behind the scenes, of which this is only part of the outcome. It is not yet clear, for example, exactly what changes are happening to the JCP, which controls the Java specification subject to Oracle’s approval, although Sutor refers to them almost as if they are a done deal.

IBM’s announcement gives a boost to the official Java platform at a time when it is under a cloud, following a JavaOne conference which was run as a sideline to the Oracle OpenWorld event last month, and rumblings of dissatisfaction from the JCP and from Java inventor James Gosling.

Another important player is Google, whose Android operating system uses the Java language but an incompatible virtual machine called Dalvik. IBM’s move will strengthen Oracle’s position as steward of the official Java platform.

This is a blow to Harmony. The current list of contributors  has 31 names, of which 9 are from IBM, 3 from Intel, 1 from Joost, and the others independent. It is a shame to see an important open source project so much at the mercy of corporate politics.

Can Microsoft repeat history and come from behind with Windows Phone 7?

This week is Windows Phone 7 week. Microsoft is announcing details of the launch devices and operators, and I shall be watching and reporting with interest on the joint press conference with CEO Steve Ballmer and AT&T’s Ralph de la Vega.

But how significant is this launch? I think it is of considerable significance. Mobile devices are changing the way we do computing. It is not only that more powerful SmartPhones and tablets are encroaching on territory that used to belong to laptop and desktop computers. We are also seeing new business models based on locked-down devices and over-the-air app stores, and new operating systems, or old ones re-purposed. It is a power shift.

Despite its long years of presence in mobile, it feels like a standing start for Microsoft. A recent, and excellent, free day of training on developing for Windows Phone 7 was only one-third full. Verizon will not be offering the phone, and its president Lowell McAdam suggests that the market belongs RIM, Google and Apple, and that Microsoft’s phones are not innovative or leading edge.

I disagree with McAdam’s assessment. Although I’ve not yet had a chance to try a device for myself, what I have seen so far suggests that it is innovative. While the touch UI does borrow ideas with which we have become familiar thanks to iPhone and Android, the dynamically updating tiles and the hub concept both strike me as distinctive. What McAdam really means is that the phone might not succeed in the market, and such views from someone in his position may be self-fulfilling.

The application development platform is distinctive too, being based on .NET, Silverlight and XNA. I have followed Microsoft’s .NET platform since its earliest days – which as it happens were on Windows Mobile, in the form of the Common Executable Format – and Silverlight seems to me the best incarnation yet of the .NET client. It is lightweight; it performs well; it has a powerful layout language that scales nicely, and it has all sorts of multimedia tricks and effects. Visual Studio and the C# language form a familiar and capable set of tools, supplemented by the admittedly challenging Expression Blend for design.

Still, having a decent product is not always enough. Palm’s webOS devices were widely admired on launch, but that was not enough to rescue the company, or to win more than a tiny market share.

Microsoft has resources that Palm lacked, and a reach that extends from cloud to desktop to device. It may be that Windows Phone 7 has better chances. The problem is that the company’s recent history does not demonstrate the success in coming from behind that characterised its earlier days:

  • Microsoft came from behind with a GUI operating system, even though Windows was inferior to the Mac’s GUI.
  • Microsoft came from behind with Excel versus Lotus 1-2-3.
  • Microsoft came from behind in desktop database managers with Access versus dBase.
  • Microsoft came from behind in networking and then directory services versus Novell and others.
  • Microsoft came from behind with .NET versus Java, which I judge a success even though Java has also prospered.

I am sure there are other examples. Recent efforts though have been less successful. Examples that come to mind include:

  • Internet Explorer – still the most popular web browser, but continues to lose market share, even though Microsoft has been working to regain its momentum since the release of IE7 in 2006.
  • Zune – now a well-liked portable music player, but never came close to catching Apple’s iPod.
  • Silverlight – despite energetic development and strong technology, has done little to disturb the momentum behind Adobe Flash.
  • Tablets – Microsoft was an innovator and evangelist for the slate format, but Apple’s iPad is the first device in this category that has caught on.
  • Numerous examples from Windows Live versus Google and others.

Now here comes Windows Phone 7, with attention to design and usability that is uncharacteristic of Microsoft other than perhaps in Xbox consoles (red light of death aside). In one sense Microsoft can afford for it to fail; it has strong businesses elsewhere. In another sense, if it cannot establish this new product in such a strategic market, it will confirm its declining influence. The upside for the company is that a success with Windows Phone 7 will do a lot to mend its tarnished image.

Windows Phone 7 development hits the big screen

I spent yesterday in the dim light of a Manchester cinema, attending the Windows Phone 7 developer day.

The event was organised by DeveloperDeveloperDeveloper, which is a .NET community group run, as far as I can tell, by a group of Microsoft MVPs. The sponsors were Microsoft, Appa Mundi, and NxtGenUG. Towards the end of the day, Andy Wigley (from Appa Mundi) made a statement that this was a community event and not an official Microsoft event. It was true up to a point, though as far as I can tell Microsoft paid for most of it -“Microsoft UK very kindly provided the venue and logistic support.” says the event description. Microsoft was present showing real Windows Phone 7 devices, and the presenters included Andy Wigley (from Appa Mundi) and Rob Miles, who have also presented the official Jump Start training for Windows Phone 7, and regular TechEd speaker Maarten Struys who is a Windows embedded and Windows Phone evangelist working for Alten PTS in the Netherlands. Community, or Microsoft PR?

Regardless, they were excellent speakers and well informed on all things Windows Phone 7. The community aspect did come to the fore when it came to the catering – there was none – and the venue itself which felt as you would expect a cinema out of hours to feel. I’m guessing Microsoft the community was disappointed with the attendance, around 100 in a venue that seats 330.

image

There is one significant benefit to presenting in a cinema. The screen and projection was first-rate.

image

The sessions themselves were introductory but struck me as useful for anyone getting started with Windows Phone 7 development – which given the devices are not yet available, is probably most of us. Andrej Radinger’s session on creating apps that work offline was particularly interesting to me. I had previously seen the Jump Start course so some of the material was already familiar, though the refresher did no harm.

Much of the challenge of Windows Phone 7 development is coping with the fact that your app will frequently get killed and have to resume later as if nothing happened. We got a lot of input on this topic.

Another challenge is coping with Expression Blend. Designer Tricky Bassett gave a short but insightful view of the design process for a Windows Phone 7 app, with some intriguing asides along the way. He is a design professional, and said that his team had been excited about SketchFlow, the prototyping tool in Blend, but in practice found it little use because they only need sketches, rather then the working controls which SketchFlow gives you. He also commented on Blend, saying that Blend with Windows Phone 7 projects was more stable than it had been before, in his experience with other projects. In previous work with Blend, solutions that did not load have been a recurring problem – I take it that either they loaded in Visual Studio but not in Blend, or vice versa.

Bassett also said that Blend takes some effort to learn, and this was confirmed by the way some of the presenters struggled to do basic operations with the tool. The Blend UI is perplexing and at events like this one I’d suggest that a Blend Basics piece would go down well.

The Silverlight and XNA platforms strike me as pretty good, though I think that lack of native code development will be a problem among the best developers – there are interesting rumours about certain developers getting special privileges.

image

My overriding impression though is that the phone is good, the tools are good, but the demand is lacking. One developer told me that he has been trying to sell an idea for a custom Windows Mobile application to a small business client with 12 employees. They are keen but their employees want either Apple iPhone or Google Android phones. Windows Phone 7 may help by being a better and more attractive device, but getting past the perception that Windows phones are not much good is going to be a problem.

But what can Microsoft do? It is going to take devices that deliver on the promise, a stunning marketing campaign, and aggressive pricing, for this thing to flourish.

NuPack brings package management to Microsoft .NET

Microsoft has announced the beta release of NuPack, which is a package manager for .NET projects, mainly focused on open source libraries. NuPack itself is open source.

I downloaded NuPack and took a look. It installs as a Visual Studio extension, and I used it with Visual Studio 2010. Once installed, you get a new Add Package Reference option for any .NET project, which opens this dialog:

image

There seem to be around 40 projects currently available, including some familiar names:

  • Castle Inversion of Control
  • fbConnectAuth Facebook Connect authentication library
  • JQuery – though this already appears by default in many ASP.NET projects
  • log4net logging library
  • Moq mocking library
  • NHibernate object-relational mapper
  • NUnit unit-testing framework

Once you find the package you want to add, click install and it is automatically added to your project, complete with any necessary configuration changes. There is also a PowerShell-based console. In some cases it is better to use the console, as a package can add new commands which you can call from there.

NuPack strikes me as a great idea; one comment to Scott Hanselman’s post on the subject calls it GEM for .NET, GEM being the Ruby package manager. That said my quick go with NuPack has not been entirely smooth, and I got an error on my first attempt at adding NUnit to a project, fixed after restarting Visual Studio.

My main reservation is whether Microsoft will really get behind this and support it, or whether it will end up as another promising initiative that after a while is abandoned.

Data analysis hot at Future of Web Applications Day One

I’ve been attending the Future of Web Applications conference in London. I spoke to several attendees in the evening and the general perception was that the event had been weaker than usual so far. Complaints concerned uninspiring sessions, lack of deep technical content, and information on HTML 5 that was really nothing new.

That said, several said how much they enjoyed a session from Hilary Mason at bit.ly on data analysis. Bit.ly does url shortening, with 70% of so of its traffic coming from Twitter clients, and Mason is a statistical expert who has worked on analysing and visualising the resulting data. She told us, for example, that news links are more popular than sports links, and sports links more popular than food links. She was also able to discover the best time to post a link for any particular Twitter account, if you want maximum clicks. There is no quick way to discover this, so this type of analysis is valuable for companies using Twitter as a PR tool. Another snippet of information was the half-life of a typical bit.ly link – in other words, the time interval by which it has recorded 50% of its likely total clicks – which in the example she showed us was between 20 and 25 minutes.

The consequence was that I went into the next session, on social gaming, with data analysis on my mind. The  session was presented by Kristian Segerstrale at Playfish, part of Electronic Arts focused on casual games for Facebook and the like. Gaming by the way is a huge part of Facebook, accounting for 30% to 40% of overall engagement, according to Segerstrale. As an insight into the future of gaming, it was a good session, but perhaps did not connect well with typical FOWA attendees.

Nevertheless, Segerstrale made a compelling point about how his company’s games evolve, which is also applicable to other kinds of web applications. He said that there is intense analysis of what works and what does not work, based on the flow of data that is available with web applications. You can see who is playing, when they are playing, which features are used, and get a level of insight into the strengths and weaknesses of your application which is typically unavailable for desktop applications. I imagine this works particularly well within Facebook, because of the rich user profile information there. If you take advantage of that data, you can get a lead over the competition; if you fail to make use of it, you will likely fall behind. There is now a data analytics skills gap, Segerstrale told us.

It was thought-provoking to see how data analytics was a common thread between such different sessions.

Rethinking Developers Developers Developers

I’m waiting for Microsoft CEO Steve Ballmer to speak at the London School of Economics, which seems a good moment to reflect on his well-known war cry “Developers Developers Developers”.

Behind the phrase is a theory about how to make your platform succeed. The logic is something like this. Successful platforms have lots of applications, and applications are created by developers. If you make your platform appealing to developers, they will build applications which users will want to run, therefore your platform will win in the market.

Today though we have an interesting case study – Apple’s iPhone. The iPhone has lots of apps and is winning in the market, but not because Apple made it appealing to developers. In fact, Apple put down some roadblocks for developers. The official SDK has one programming language, Objective C, which is not particularly easy to use, and unlikely to be known other than by existing Apple platform developers. Apps can only be distributed through Apple’s store, and you have to pay a fee as well as submit to an uncertain approval process to get your apps out there. Some aspects of iPhone (and iPad) development have improved since its first launch. A clause in the developer agreement forbidding use of languages other than Objective C was introduced and then removed, and the criteria for approval have been clearly stated. Nevertheless, the platform was already successful. It is hard to argue that the iPhone has prospered thanks to Apple’s developer-friendly policies.

Rather, the iPhone succeeded because its design made it appealing to users and customers. Developers went there because Apple created a ready market for their applications. If Apple CEO Steve Jobs were prone to shouting words in triplicate, they might be “Design Design Design” or “Usability usability usability”. And as for developers, what they want is “Customers customers customers.”

Well, there are vicious and virtuous circles here. Clearly it pays, in general, to make it easy for developers to target your platform. Equally, it is not enough.

Microsoft’s own behaviour shows a shift in focus towards winning customers through usability, thanks no doubt to Apple’s influence and competition. Windows 7 and Windows Phone 7 demonstrate that. Windows Phone 7 is relatively developer-friendly, particularly for .NET developers, since applications are built on Silverlight, XNA and the .NET Framework. If it succeeds though, it will be more because of its appeal to users than to developers.

What do developers want? Customers customers customers.

Google’s web app vision: use our store

I’m at the Future of Web Applications conference in London, a crazy mixture of tips for web start-ups and general discussion about application development in a web context. The first session was from Google’s Michael Mahemoff who enthused about HTML5 and open web standards, while refusing to be pinned down on what HTML5 is, which standards are in and which may in the end be out.

Microsoft is here showing off IE9; but one of my reflections is that while the HTML5 support in IE9 is impressive in itself, there are going to be important parts of what, say, Google considers to be part of HTML5 that will not be in IE9, and given the pace of Microsoft’s browser development, probably will not turn up for some time. In other words, the pressure to switch to Chrome, Firefox or some other browser will likely continue.

I digress. Mahemoff identified four key features of web apps – by which he means something different than just an application on the web. These are:

  • Local storage – encompassing local storage API and also local SQL, though the latter is not yet well advanced
  • Application cache – Cache Manifest in HTML 5 that lets your app run offline
  • Local installation – interesting as this is something which is not yet widely used, but clearly part of Google’s vision for Chrome, and also in IE9 to some extent.
  • Payments

The last of these is interesting, and I sensed Mahemoff showing some discomfort as he steered his way between open web standards on the one hand, and Google-specific features on the other. He presented the forthcoming Chrome Web Store as the solution for taking payments for your web app, whether one-time or subscription.

I asked how this would work with regard to the payment provider – could you freely use PayPal, direct debits or other systems? He said that you could do if you wanted, but he anticipated that most users would use the system built into Chrome Web Store which I presume is Google Checkout. After all, he said, users will already be logged in, and this will offer the smoothest payment experience for them.

The side effect is that if Chrome Web Store takes off, Google gets to make a ton of money from being the web’s banker.

Outside in the exhibition area Vodafone is promoting its 360 app store, with payments going through the mobile operator, ie in this case Vodafone. Vodafone’s apps are for mobile not for web, but it is relevant because it is trying to draw users away from Google’s Android Marketplace and onto its own store. PayPal is here too, showing its developer API.

The app store and payment provider wars will be interesting to watch.

Oracle versus the JCP as Java’s future is debated

There has always been an uneasy balance between Java as a cross-platform, cross-vendor standard; and Java as a proprietary technology. Under Sun’s stewardship the balance was tilted towards the cross-platform standard. Eventually, Java was open-sourced as the OpenJDK. However, Sun, and therefore now Oracle following its acquisition of Sun, still owns Java. The official Java specification is determined by the optimistically-named Java Community Process (JCP). The JCP is a democratic organisation up to a point, the point in question being clause 5.9 in the JCP procedures:

EC ballots to approve UJSRs for new Platform Edition Specifications or JSRs that propose changes to the Java language, are approved if (a) at least a two-thirds majority of the votes cast are "yes" votes, (b) a minimum of 5 "yes" votes are cast, and (c) Sun casts one of the "yes" votes. Ballots are otherwise rejected.

In other words, nothing happens without Sun’s approval.

Now the Register reports that Oracle and the JCP have fallen out. According to this report, the JCP does not like Oracle’s suit against Google; and does not have confidence in Java FX or Java ME both of which were promoted at the recent OpenWorld/JavaOne conference (though Java FX is to change significantly). The JCP still wants true independence – as, amusingly, proposed by Oracle in 2007:

… that the JCP become an open independent vendor-neutral Standards Organization where all members participate on a level playing field with the following characteristics:

  • members fund development and management expenses
  • a legal entity with by-laws, governing body, membership, etc.
  • a new, simplified IPR Policy that permits the broadest number of implementations
  • stringent compatibility requirements
  • dedicated to promoting the Java programming model

Oracle seems now to have changed its mind, wanting to tighten rather than loosen control over Java. Oracle still needs to work through the JCP in order to progress the Java specification so it will need either to mend relationships or reform the JCP somehow in order to deliver what was promised at JavaOne.

What does this mean for Java and its future? Perhaps surprisingly little. Alex Handy at the sdtimes reports this comment from Rod Johnson, now at VMware, whose SpringSource business was built on building Java frameworks outside the JCP:

There’s been very little activity on the [JCP] executive committee. I think we just have to wait and see what Oracle comes up with for JavaOne," he said. "The rest of the world is moving along fairly quickly. It’s not like we need Oracle or the EC of the JCP to get things done.

Java is the world’s most popular programming language. Further, Oracle is a smart company and although it is doing a good job of alienating members of the Java community – not least inventor James Gosling, now a loose cannon on deck – its technical work on Java will likely be excellent. That said, we are heading into an increasingly fractured world in terms of development platforms, especially in mobile, and that looks unlikely to change.