Category Archives: software development

Where is Microsoft going with its Rich Client API? Microsoft drops some clues as developers fret

A discussion taking place in a Windows Presentation Foundation (WPF) newsgroup, in a thread called WPF vNext, shows how Microsoft’s confused rich client development strategy is affecting developers, and offers some clues about what is coming.

Developer Rudi Grobler, who posted on his blog some wishes for Windows Phone, Silverlight and WPF, describes his difficulty in discerning Microsoft’s direction:

The strategy for the future is very vague… I daily get questions about should I use WPF or Silverlight? Is WPF dead? Is Silverlight dead? etc…

Jeremiah Morrill describes his frustration with WPF performance:

Microsoft has known of WPF’s performance problems since the first time they wrote a line of code for it.  You will be hard pressed to find a customer that hasn’t complained about perf issues.  And you will not have gone to a PDC in the last few years and not hear folks bring this up to the WPF team. This is 3rd party info by now, but I’ve been told the issues I have noted have been brought up internally, only to be disregarded.

and remarks his frustration with what has happened to Silverlight:

Silverlight’s strategy USED to be about cross-platform, get-the-runtime-on-every-device-out-there, but it’s obvious that is not the strategy any more.  What happened to Silverlight on set-top-boxes?  Android? I read an article that some people saw it on XBox, but nobody has talked about it since.  Cross-platform with OSX has become symbolic at best.

Developer Peter O’Hanlon describes how the uncertainty has affected his business:

I run a small consultancy, and I bet the company on WPF because I could sell the benefits of faster development time for desktop applications. We have spent a lot of time learning the ins and outs of the platform and saw that Silverlight gave us a good fit for developing web apps. In one speech Microsoft caused me months of work repairing the damage when Muglia seemed to suggest that these technologies are dead and Microsoft are betting the farm on Html 5. We hand our code over to the client once we have finished, and they ask us why they need to invest in a dead technology. I don’t care what you say on this thread, Microsoft gave the impression that html 5 was the way to go.

[…] Muglia’s statement about the future being html caused serious issues for my company. We lost two bids because the managers didn’t want to commit to "dead" technology.

Microsoft’s Jaime Rodrigues, WPF Technical Evangelist, offers the following response:

You are telling us to improve perf in WPF. We hear this loudly and we are trying to figure how to solve it. Unfortunately, there are a few pieces to consider:

1)      First of all,  a lot of our customers are telling us to invest more into Silverlight.  Let’s say (again made up) that demand is  4-to 1. How do we justify a revamp of the graphics architecture in WPF.  This is not trivial work; the expertise in this space is limited, we can’t clone our folks to 5x to meet everyone’s needs.

2)      Let’s assume we did take on the work.  My guess (again, I am not engineering) is that it would take two years to implement and thorougly test a release.  At the stage that WPF is at, a rearchitecture or huge changes on the graphics stack would be 80% about testing and 20% about the dev work.    It is not a trivial amount of work.   Would we get the performance you want across myriad of devices? We don’t know. WPF bet on hardware, and there is new devices out  there that are trading hardware for battery, weight, or simply for cost.  it would suck to do that much work, make you wait a long time, and then not get there. Let’s get real on the asks; you say "improve perf" but you are asking us to do a "significant re-write"; these two asks are different.

3)      By the time we get there, what will be a more powerful framework?  Silverlight, WPF, C++, or SuperNew.Next ??  we don’t know today.  We go back to #1 and look at demand We are in agreement that "customers" is the driving principle.

The WPF has looked at the trade-offs, and risk many times.  We are also looking at what customers need. Jer, to you it is all about graphics.  To many others, it is about data.  So, how do we serve all customers??
The strategy is exactly what you have seen/heard:

1)      WPF 4.5 is going to have some significant data binding performance improvements.

2)      We are not redoing the graphics framework, but we are doing a lot of work to let you interoperate with lower level graphics so that if you need more graphics perf you can get it, and still keep the RAD of the rest of the framework.

[…] Hope it helps; apologies if it does not, and again, wait for Rob Relyea or someone else to make it official.  That is just my 2c as a person who bet heavily on WPF but has seen the data that drives the trade-offs the team has to make.

This will be disappointing to former Microsoft evangelist Scott Barnes, who has initiated a Fix WPF campaign.

The problem though is lack of clarity about the strategy. Look at Rodrigue’s third point above. Nobody can predict the future; but what is Microsoft’s current bet? Silverlight, HTML5, or maybe SuperNew.Next – for example, the rumoured new native code UI for Windows 8 or some variant of it?

My own view is that the current difficulties are rooted in what happened with Longhorn and the fact that the Windows team abandoned WPF back in 2004. I’ve written this up in more detail here.

Lest this post be misinterpreted, let me emphasise that Microsoft has a good track record in terms of supporting its Windows APIs long-term, even the ones that become non-strategic. Applications built with the first version of .NET still run; applications built with Visual Basic 6 mostly still run; applications built for ancient versions of Windows often still run or can be coaxed into running. Build an application with WPF or Silverlight today, and it will continue to work and be supported for many years to come.

My guess is that events like the coming 2011 MVP Summit and Mix 2011 in April will bring some clarity about Microsoft’s mobile, tablet, Windows and cross-platform story for rich clients.

Update: Barnes has his own take on this discussion here.

Microsoft still paying the price for botched Vista with muddled development strategy

Professional Developers Conference 2003. Windows Longhorn is revealed, with three “pillars”:

  • Avalon, later named Windows Presentation Foundation (WPF)
  • Indigo, later named Windows Communication Foundation (WCF)
  • WinFS, the relational file system that was later abandoned

With the benefit of hindsight, Microsoft got many things right with the vision it set out at PDC 2003. The company saw that a revolution in user interface technology was under way, driven by the powerful graphics capabilities of modern hardware, and that the old Win32 graphics API would have to be replaced, much as Windows itself replaced DOS and the command-line. XAML and WPF was its answer, bringing together .NET, DirectX, vector graphics, XML and declarative programming to form a new, rich, presentation framework that was both designer-friendly and programmer-friendly.

Microsoft also had plans to take a cut-down version of WPF cross-platform as a browser plugin. WPF/Everywhere, which became Silverlight, was to take WPF to the Mac and to mobile devices.

I still recall the early demos of Avalon, which greatly impressed me: beautiful, rich designs which made traditional Windows applications look dated.

Unfortunately Microsoft largely failed to execute its vision. The preview of Longhorn handed out at PDC, which used Avalon for its GUI, was desperately slow.

Fast forward to April 2005, and Windows geek Paul Thurrott reports on Longhorn progress:

I’m reflecting a bit on Longhorn 5048. My thoughts are not positive, not positive at all. This is a painful build to have to deal with after a year of waiting, a step back in some ways. I hope Microsoft has surprises up their sleeves. This has the makings of a train wreck.

Thurrott was right. But why did Longhorn go backwards? Well, at some point – and I am not sure of the date, but I think sometime in 2004 – Microsoft decided that the .NET API for Longhorn was not working, performance was too bad, defects too many. The Windows build was rebased on the code for Server 2003 and most of .NET was removed, as documented by Richard Grimes.

Vista as we now know was not a success for Microsoft, though it was by no means all bad and laid the foundation for the well-received Windows 7. My point though is how this impacted Microsoft’s strategy for the client API. WPF was shipped in Longhorn, and also back-ported to Windows XP, but it was there as a runtime for custom applications, not as part of the core operating system.

One way of seeing this is that when Longhorn ran into the ground and had to be reset, the Windows team within Microsoft vowed never again to depend on .NET. While I do not know if this is correct, as a model it makes sense of what has subsequently happened with Silverlight, IE and HTML5, and Windows Phone:

  • Windows team talks up IE9 at PDC 2010 and does not mention Silverlight
  • Microsoft refuses to deliver a tablet version of Windows Phone OS with its .NET application API, favouring some future version of full Windows instead

Note that in 2008 Microsoft advertised for a job vacancy including this in the description:

We will be determining the new Windows user interface guidelines and building a platform that supports it. We’ll eliminate much of the drudgery of Win32 UI development and enable rich, graphical, animated user interface by using markup based UI and a small, high performance, native code runtime.

In other words, the Windows team has possibly been working on its own native code equivalent to XAML and WPF, or perhaps a native code runtime for XAML presentation markup. Maybe this could appear in Windows 8 and support a new touch-oriented user interface.

In the meantime though, Microsoft’s developer division has continued a strong push for .NET, Silverlight and most recently Windows Phone. Look at Visual Studio or talk to the development folk, and you still get the impression that this is the future of Windows client applications.

All this adds up to a muddled development story, which is costly when it comes to evangelising the platform.

In particular, eight years after PDC 2003 there is no clarity about Microsoft’s rich client or RIA (Rich Internet Application) designer and developer story. Is it really WPF, Silverlight and .NET, or is it some new API yet to be revealed, or will IE9 as a runtime play a key role?

There is now a little bit more evidence for this confusion and its cost; but this post is long enough and I have covered it separately.

Appcelerator releases Titanium Mobile 1.6

Appcelerator has released Titanium Mobile 1.6, an update to its cross-platform app framework for Apple iOS and Google Android.

The update adds 26 features for Android and 9 features for iOS. The Facebook API has been completely redone, keeping up-to-date with the latest Facebook API. There is beta support for the Android NDK – native code development.

Android 1.6 is now deprecated and will not be supported in future releases.

While not a big release in itself, Titanium Mobile 1.6 is require for using forthcoming Titanium+Plus modules, libraries which add support for features such as barcode reading and PayPal payments.

There is no sign yet of Aptana integration, following the acquisition of this JavaScript IDE in January.

Updating to the 1.6 SDK was delightfully easy on Windows. Just open Titanium Developer and click the prompt.

image

RunRev releases LiveCode for Android preview alongside iOS, Mac, Windows, Linux

RunRev has announced a preview version of its LiveCode for Google Android, which will join existing versions for Windows, Mac, Linux, Web and iOS.

image

LiveCode is like a modern-day HyperCard, an early database and simple application builder for the Mac. It includes a graphical development environment with scripting using the LiveCode language, described by RunRev as “A very high level language”. Here is a sample:

put “The fox jumped over the lazy dog.” into theText

put “ quick brown” after word 2 of theText

The advantage is fast development, once you have become familiar with the platform.

On a quick look I noticed that LiveCode looks great for building a business-oriented client, but looks more challenging when it comes to interacting with a remote server application, though it does have support for basic http and https requests as well as socket support.

Now that Android is supported LiveCode looks interesting as a quick and easy route to cross-platform mobile apps.

Mobile app developers can register to receive the Android pre-release version today at www.runrev.com.

Computer book stats show resilience of Java as Android booms

Mike Hendrickson at O’Reilly has posted four articles analysing the state of the computer book market in more detail than most of us care about.  The overall picture is not too good – sales are down – and there are some interesting trends.

Here is a good one for anyone who thinks Java is dying. The programming languages post shows that unit sales of books on Java increased by 17.2% in 2010 vs 2009, whereas the next most popular language, C#, declined by 1.7%. Objective C, in third place, also declined slightly. JavaScript unit sales were up by 14.5%.

Why is Java booming? There is a clue in one of the two bestselling Java titles mentioned by Hendrickson: Professional Android 2 Application Development

Another trend that caught my eye is in the first post. Some of the Down categories surprised me:

Adobe Flash –84.43%

Mac OS –32.12%

Web Design Tools –53.2%

Adobe’s Creative Suite 5 has sold well as far as I’m aware so although books on Flash and Dreamweaver have not been selling well, it is dangerous to draw obvious conclusions.

The influence of Android is unmistakeable though. Something for Oracle to consider as it pursues Google for breach of intellectual property.

Nokia’s Elop fears mobile duopoly, but it is already here

It is day two of Mobile World Congress here in Barcelona; and everyone is pondering the implications of Nokia’s Windows Phone partnership with Microsoft. It is a pivotal moment for the industry, but not necessarily in the sense that the two partners hope.

Let me state the obvious for a moment. This is not good for Nokia, though it might be “the least bad of all the poor choices facing Nokia”, as Mikael Hed of Rovio (Angry Birds) put it yesterday. Nokia has huge market share, but it was already falling sharply, as these figures from late last year illustrate. Nokia’s total market share declined from 36.7% in Q3 2009 to 28.2% in Q3 2010; and its Smartphone (Symbian) share from 44.6% to 36.6%. These are still big numbers, but will inevitably decline further.

Following last week’s announcement, though, Nokia will transition from a company which formerly commanded its own destiny with Symbian, to one that is an OEM for Microsoft. The savings will be substantial, as CEO Stephen Elop noted at the press event here on Sunday evening, but it is a lesser role.

Why has Nokia turned to Microsoft? It is not a matter of Microsoft planting its own man in Nokia in a desperate effort to win market share. On Sunday Elop said he was no trojan horse, and also laid to rest rumours that he is conflicted thanks to a large Microsoft shareholding; he is selling as fast as the law allows, he said, and his shareholding was nowhere close to what was alleged in any case.

Rather, the Nokia board brought Elop in specifically to make tough decisions and likely form an alliance with either Google or Microsoft. I am not sure that former Nokia exec Tomi Ahonen is the best source of commentary – he is unremittingly negative about the alliance – but I like his piece on the choices facing the board last year, when it must have decided that MeeGo, the mobile Linux co-sponsored by Intel, could not deliver what was needed.

Elop chose Microsoft, his argument being that the choice was between Android and Windows, and that going Android would have created a duopoly that was good for Google but bad for the industry. By going Windows Phone “we have created a three horse race,” he said.

It is a fair point as far as it goes – though maybe he takes too little account of RIM, especially in the enterprise market – but whether Nokia can really break that duopoly is an open question. It is not a question of how the duopoly can be avoided: it already exists.

image

Given the absence of Apple, this Mobile World Congress could almost be called the Android World Congress, such is the dominance of Google’s mobile OS. It works, it is well-known, it is freely customisable by manufacturers and operators. Android is not perfect, but it is a de facto standard which nicely meets the needs of the non-Apple mobile industry.

This morning three significant far Eastern manufacturers announced new Android devices; none announced Windows Phone devices. The three are HTC, Alcatel Onetouch (which claims to be the fastest-growing handset provider in the world), and Huawei. At the Alcatel Onetouch press conference I asked CEO George Guo why his company was focused on Android:

Why Android? Android is a phenomena. It is what every operator wants and also what the consumer is looking for. The iPhone is great but just has one type, and also it is highly priced. People want something different so are looking for variety. Android-based phones provide that opportunity. With Android phones you can range from $100 up to several hundred. Also we can make customisations based on the Android system. We can fit different kinds of customers’ needs. That’s why, from the whole ecosystem point of view, because recently (laughs) people talk about this a lot, we think that Android does provide quite an ecosystem.

Note how Guo (unprompted) makes reference both to the other member of the duopoly, Apple, and the new pretender, Microsoft/Nokia.

However good their products, rivals such as RIM with its new QNX-based OS and HP with WebOS will struggle to compete for developer and public attention.

Does Windows Phone have better chances? If Nokia could easily translate its Symbian sales last year to Windows Phone sales next year, then sure, but that would take a miracle that beleaguered Nokia is unlikely to deliver. Windows Phone 7, launched last year, demonstrates that despite its desktop dominance Microsoft cannot easily win mobile market share, and that partners such as HTC, Samsung and LG are focused elsewhere. Nokia’s commitment will greatly boost Microsoft’s market share in mobile, but to what percentage is frankly hard to guess.

There are a couple of other unanswered questions. One is about differentiation. In order to compete with Apple, Microsoft has made a point of locking down the Windows Phone 7 specification, despite its multiple manufacturers, requiring Qualcomm Snapdragon for the chipset, specific hardware features, and a relatively unmolested GUI. If Microsoft continues along these lines, it will be hard for Nokia to be truly distinctive. On the other hand, if it abandons them, then it risks spoiling the consistency of the platform.

Another big question relates to tablets. Microsoft has no announced tablet strategy, except insofar as it is not using the Windows Phone 7 OS for tablets and has hinted that the next full version of Windows  will be tablet-optimized. By contrast, both Apple and Google support both smartphones and tablets with a single OS; indeed, it is hard to define the difference between a small tablet and a smartphone. Here at Mobile World Congress, Viewsonic told me that a 4” screen defines it: less than that, it’s a smartphone; more than that, it’s a tablet.

What are Nokia’s tablet plans? Will it change Microsoft’s mind, or wait for Windows 8 following meekly in Redmond’s footsteps, or do something with MeeGo?

Elop has also in my view made a mistake in shattering Nokia’s Qt-based developer community. Qt was the unifying platform between Symbian and MeeGo, and could have been the same for Windows Phone 7. Why? Here’s what Elop told us on Sunday:

What is happening to Qt: “Will Nokia put Qt on Windows Phone? No that’s not the plan. Here is the reason. If we, on the Windows Phone platform, encourage a forking between what natively is provided on the Windows Phone platform and Qt, then we create an environment where potentially we could confuse the developers, confuse the consumers, and even create an environment where Windows Phone could advance slower than the competition because we are carrying two principal development platforms.

I respect Elop; but I think he has been sold a line here. Developers are not easily confused – how patronising – and Windows Phone already has a native code SDK, available to operators and manufacturers. Many of Microsoft’s own applications for the phone are native rather than Silverlight or XNA. In principle, there is no reason why consumers would be able to tell the difference. I think Microsoft is protecting its own development stack and sacrificing Nokia’s developer community in the process.

On a more positive note, I do not forget that Elop is a software guy. I think he recognises that unless you are Apple, hardware commoditisation is inevitable whatever OS you choose. Asked about Windows Phone, the Huawei exec at this morning’s briefing said his company would consider it when the next version comes out. What he means is: if the demand is there, they will make it. If they make it, then Nokia is competing with the same economies of scale and labour that apply to Android.

Elop sees an answer in apps, ads and services: the ecosystem about which he constantly reminds us. On Sunday he noted that the partnership with Microsoft includes an advertising platform, and that this is potentially a significant source of future revenue. The new Nokia may be a lesser company than the old, but one that is better able to survive the challenge of making money from handsets.

IE9 in Windows Phone will be good for cross-platform JavaScript and HTML5 apps

Microsoft CEO Steve Ballmer, accompanied by Nokia’s Stephen Elop, showed coming updates for Windows Phone 7 at a Mobile World Congress keynote last night.

A minor update due in early March will add copy and paste, and CDMA support is also coming in the first half of 2011.

The more interesting update is planned for the second half of 2011 – I’m guessing late this year – and will have multi-tasking for 3rd party apps, as well as a mobile version of Internet Explorer 9. We were told that this will feature the same HTML 5 standards support and hardware acceleration as in the desktop version.

Windows Phone VP Joe Belfiore showed the fish demo running on Windows Phone with IE9 alongside Safari on the iPhone. The iPhone fish jerk slowly across the screen.

image 

Note that Apple will likely have a new iPhone out before mobile IE9 is ready, which may well equal or exceed IE9’s graphics performance.

Nevertheless, this is interesting for developers since it means that the fast “Chakra” JavaScript runtime will be available on the device. HTML and JavaScript is one route to cross-platform mobile applications.

Silverlight on Windows Phone includes a WebBrowser control which has access to isolated storage. This means you could write most of your app in cross-platform JavaScript and HTML, but wrap it in Silverlight for access to native phone features.

It is a shame though that Microsoft does not include the Sqlite local database engine found in WebKit-based mobile browsers. Sqlite is in the public domain so this may be an example of the “not invented here” syndrome. Microsoft does not even have SQL Compact Edition in Windows Phone 7, though it would not surprise me if this also appears in the autumn update. Full details are being held back until the Mix conference in April.

Although it has not been stated, it would make sense for this update to be used in the first Windows Phones from Nokia. On Sunday evening, Nokia stated its desire to deliver a Windows Phone device before the end of the year.

Android Market not working for all customers, says Angry Birds CEO

Rovio (Angry Birds) CEO Mikael Hed spoke at Mobile World Congress in Barcelona about “Making apps profitable.”

image

He should know – but “There is no super secret sauce to this”, he said. Quality, hard work, money, and I suspect a lot of luck are in the recipe.

There were some interesting asides though. One was that the Android Market payment system, which uses Google Checkout, is not working well for Roxio.

On Android there are several challenges with the billing part. It’s not possible for all customers across all carriers to buy Android content. That’s why even the most successful paid content on the Android market is in the low hundreds of thousands, which is a huge disappointment. It’s a problem for customers because they can’t buy the content even if they want to. That leads to increases in piracy.

In response, Roxio is exploring other ways to sell its Android apps, including alternative stores and in-carrier billing.

These reservations do not apply to Apple, which manages the entire iOS platform from store to device. On the other hand, the freedom which Android offers means that there are ways to work around the issues.

Mobile World Congress kicks off in Barcelona

I’m at Mobile World Congress in Barcelona – and if you need any convincing about the power shift towards mobile in the industry, simply being here may be sufficient. Spread over 8 vast halls, it is huge, with 1361 exhibitors according to the latest available figures.

image

The size of the event makes it impossible to cover it all. My focus is on the developer story. I have started preparing a chart of mobile development tools platforms, which is proving to be a slippery task, but will post this soon for feedback and improvement.

Yesterday I attended the Nokia press event and will post separately on this soon. It is a fascinating story, whatever the outcome, and I doubt any of the other news this week will be as significant.