Category Archives: professional

Making sense of Microsoft’s Cloud OS

People have been talking about “the internet operating system” for years. The phrase may have been muttered in Netscape days in the nineties, when the browser was going to be the operating system; then in the 2000s it was the Google OS that people discussed. Most notably though, Tim O’Reilly reflected on the subject, for example here in 2010 (though as he notes, he had been using the phrase way earlier than that):

Ask yourself for a moment, what is the operating system of a Google or Bing search? What is the operating system of a mobile phone call? What is the operating system of maps and directions on your phone? What is the operating system of a tweet?

On a standalone computer, operating systems like Windows, Mac OS X, and Linux manage the machine’s resources, making it possible for applications to focus on the job they do for the user. But many of the activities that are most important to us today take place in a mysterious space between individual machines.

It is still worth reading, as he teases out what OS components look like in the context of an internet operating system, and notes that there are now several (but only a few) competing internet operating systems, platforms which our smart mobile phones or tablets tap into and to some extent lock us in.

But what on earth (or in the heavens) is Microsoft’s “Cloud OS”? I first heard the term in the context of Server 2012, when it was in preview at the end of 2011. Microsoft seems to like how it sounds, because it is getting another push in the context of System Center 2012 Service Pack 1, just announced. In particular, Michael Park from Server and Tools has posted on the subject:

At the highest level, the Cloud OS does what a traditional operating system does – manage applications and hardware – but at the scope and scale of cloud computing. The foundations of the Cloud OS are Windows Server and Windows Azure, complemented by the full breadth of our technology solutions, such as SQL Server, System Center and Visual Studio. Together, these technologies provide one consistent platform for infrastructure, apps and data that can span your datacenter, service provider datacenters, and the Microsoft public cloud.

In one sense, the concept is similar to that discussed by O’Reilly, though in the context of enterprise computing, whereas O’Reilly looks at a bigger picture embracing our personal as well as business lives. Never forget though that this is marketing speak, and Microsoft consciously works to blur together the idealised principles behind cloud computing with its specific set of products: Windows Azure, Window Server, and especially System Center, its server and device management piece.

A nagging voice tells me there is something wrong with this picture. It is this: the cloud is meant to ease the administrative burden by making compute power an abstracted resource, managed by a third party far away in a datacenter in ways that we do not need to know. System Center on the other hand is a complex and not altogether consistent suite of products which imposes a substantial administrative burden on those who install and maintain it. If you have to manage your own cloud, do you get any cloud computing benefit?

The benefit is diluted; but there is plentiful evidence that many businesses are not yet ready or willing to hand over their computer infrastructure to a third-party. While System Center is in one sense the opposite of cloud computing, in another sense it counts because it has the potential to deliver cloud benefits to the rest of the business.

Further confusing matters, there are elements of public cloud in Microsoft’s offering, specifically Windows Azure and Windows Intune. Other bits of Microsoft’s cloud, like Office 365 and Outlook.com, do not count here because that is another department, see. Park does refer to them obliquely:

Running more than 200 cloud services for over 1 billion customers and 20+ million businesses around the world has taught us – and teaches us in real time – what it takes to architect, build and run applications and services at cloud scale.

We take all the learning from those services into the engines of the Cloud OS – our enterprise products and services – which customers and partners can then use to deliver cloud infrastructure and services of their own.

There you have it. The Cloud OS is “our enterprise products and services” which businesses can use to deliver their own cloud services.

What if you want to know in more detail what the Cloud OS is all about? Well, then you have to understand System Center, which is not something that can be explained in a few words. I did have a go at this, in a feature called Inside Microsoft’s private cloud – a glossary of terms, for which the link is currently giving a PHP error, but maybe it will work for you.

image

It will all soon be a little out of date, since System Center 2012 SP1 has significant new features. If you want a summary of what is actually new, I recommend this post by Mike Schutz on System Center 2012 SP1; and this post also by Schutz on Windows Intune and System Center Configuration Manager SP1.

My even shorter summary:

  • All System Center products now updated to run on, and manage, Server 2012
  • Upgraded Virtual Machine Manager supports up to 8000 VMs on clusters of up to 64 hosts
  • Management support for Hyper-V features introduced in Server 2012 including the virtual network switch
  • App Controller integrates with VMs offered by hosting service providers as well as those on Azure and in your own datacenter
  • App Controller can migrate VMs to Windows Azure (and maybe back); a nice feature
  • New Azure service called Global Service Monitor for monitoring web applications
  • Back up servers to Azure with Data Protection Manager

and on the device and client management side, new Intune and Configuration Manager features. It is confusing; Intune is a kind-of cloud based Configuration Manager but has features that are not included in the on-premise Configuration Manager and vice versa. So:

  • Intune can now manage devices running Windows RT, Windows Phone 8, Android and iOS
  • Intune has a self-service portal for installing business apps
  • Configuration Manager integrates with Intune to get supposedly seamless support for additional devices
  • Configuration Manager adds support for Windows 8 and Server 2012
  • PowerShell control of Configuration Manager
  • Ability to manage Mac OS X, Linux and Unix servers in Configuration Manager

What do I think of System Center? On the plus side, all the pieces are in place to manage not only Microsoft servers but a diverse range of servers and a similarly diverse range of clients and devices, presuming the features work as advertised. That is a considerable achievement.

On the negative side, my impression is that Microsoft still has work to do. What would help would be more consistency between the Azure public cloud and the System Center private cloud; a reduction of the number of products in the System Center suite; a consistent user interface across the entire suite; and simplification along the lines of what has been done in the new Azure portal so that these products are easier and more enjoyable to use.

I would add that any business deploying System Center should be thinking carefully about what they still feel they need to manage on-premise, and what can be handed over to public cloud infrastructure, whether Azure or elsewhere. The ability to migrate VMs to Azure could be a key enabler in that respect.

The cross-platform app problem. What should the BBC do?

The BBC released a new sports app last week. In the comments to the announcement though, there is little attention given to the app or its content. Rather, the discussion is about why the BBC has apparently prioritised iOS over Android, since the Android version is not yet ready, with an occasional interjection from a Windows Phone user about why there is nothing at all for them.

image

BBC I think you need to actually catch up on what’s happening. Android is huge now. You should be launching both platforms together. A lot of people I know have switched to an Android device and your app release almost feels like discrimination!

says one user; while the BBC’s Lucie Mclean, product manager for mobile services, replies:

Back in July, when we launched the Olympics app for iPhone and Android together, we saw over three times as many downloads of the iPhone version. Android continues to grow apace but this, together with the development and testing complexity, led us to the decision to phase the iOS app first.

BBC Technology correspondent spoke to head of iPlayer David Danker about this problem back in December. Danker claims that the BBC spends more “energy” (I am not sure if that means time or just frustration) on Android than Apple, and mainly blames Android fragmentation and the existence of more low-end devices for the delays:

It’s not just fragmentation of the operating system – it is the sheer variety of devices. Before Ice Cream Sandwich (an early variant of the Android operating system) most Android devices lacked the ability to play high quality video. If you used the same technology as we’ve always used for iPhone, you’d get stuttering or poor image quality. So we’re having to develop a variety of approaches for Android

A couple of things are obvious. One is that Apple’s clearly-defined iOS development platform and limited range of devices is a win for developers. Despite frustrations over things like the way apps are sandboxed or Apple’s approval process, it is easier to target iOS than Android because the platform is more consistent. iOS users are also relatively prosperous and highly engaged with the web and the app store, so that even though Apple’s overall platform market share has fallen behind that of Android, it is still the most important market in some contexts.

Another is that the BBC cannot win. From a PR perspective, it should probably do simultaneous iOS and Android releases even if that means a delay, but even then there will be complaints over differences in detail between iOS and Android implementations. Further, the voices of those neglected minorities, such as Windows Phone and soon, Blackberry 10 users, will grow louder if iOS and Android achieve parity.

In all this, it is worth noting that the BBC gets one thing right, prioritising the mobile web:

The decision to launch the core mobile browser site first (before either app) was itself to ensure that users got a quality product across as wide a range of devices as possible.

says Mclean.

Personally I wonder if the the BBC needs to do all these niche apps. The iPlayer app is the one that really matters, particularly when it offers download for offline viewing, but is a sports app so necessary?

Should it not concentrate instead on first, the mobile web site, and second, APIs that third-party developers can use, enabling developers on each platform to create high quality apps?

Another option would be to make cross-platform a religion, and cover all significant platforms while giving up some of the benefits of native code. High quality video is a problem; but in many scenarios the quality of the video is not such a big issue provided that it works and is intelligible.

Perhaps the BBC could make Cordova (an open source framework for cross-platform mobile apps) video work better. Having the BBC invest its publicly funded resources into open source cross-platform development is better PR than developing expensive apps for single platforms.

Got a Ruby on Rails application running? Patch it NOW

A security issue has been discovered in Ruby on Rails, a popular web application framework. It is a serious one:

There are multiple weaknesses in the parameter parsing code for Ruby on Rails which allows attackers to bypass authentication systems, inject arbitrary SQL, inject and execute arbitrary code, or perform a DoS attack on a Rails application. This vulnerability has been assigned the CVE identifier CVE-2013-0156.
Versions Affected:  ALL versions
Not affected:       NONE
Fixed Versions:     3.2.11, 3.1.10, 3.0.19, 2.3.15

and also worth noting:

An attacker can execute any ruby code he wants including system("unix command"). This effects any rails version for the last 6 years. I’ve written POCs for Rails 3.x and Rails 2.x on Ruby 1.9.3, Ruby 1.9.2 and Ruby 1.8.7 and there is no reason to believe this wouldn’t work on any Ruby/Rails combination since when the bug has been introduced. The exploit does not depend on code the user has written and will work with a new rails application without any controllers.

You can grab patched versions here.

How quickly can an organisation patch its applications? As Sourcefire security architect Adam J. O Donnell observes, this is where strong DevOps pays dividends:

Modern web development practices have made major leaps when it comes to shortening the time from concept to deployment.  After a programmer makes a change, they run a bunch of automated tests, push the change to a code repository, where it is picked up by another framework that assures the changes play nice with every other part of the system, and is finally pushed out to the customer-facing servers.  The entire discipline of building out all of this infrastructure to support the automated testing and deployment of software is known as DevOps.

In a perfect world, everyone practices devops, and everyone’s devops workflow is working at all times.  We don’t live in a perfect world.

For many organizations changing a library or a programming framework is no small task from a testing and deployment perspective.  It needs to go through several steps between development and testing and finally deployment.  During this window the only thing that will stop an attacker is either some form of network-layer technology that understands how the vulnerability is exploited or, well, luck.

This site runs WordPress, and if I look at the logs I see constant attack attempts. In fact, I see the same attacks on sites which do not run WordPress. The bots that do this are not very smart; they try some exploit against every site they can crawl and do not care how many 404s (error showing page not found) they get. One in a while, they hit. Sometimes it is the little-used applications, the tests and prototypes, that are more of a concern than the busy sites, since they are less likely to be patched, and might provide a gateway to other sites or data that matter more, depending on how the web server is configured.

Hands on Cross-Platform Windows and Mac development with C++ Builder XE3

I have been writing about Embarcadero’s RAD Studio XE3, which includes Delphi and C++ Builder, and as part of the research I set this up for cross-platform development on a Mac.

My setup uses a Parallels Virtual Machine to run Windows 7, on which RAD Studio XE3 is installed. This is convenient for Mac development, since the IDE itself is Windows only. That said, if I were doing this in earnest I would use multiple displays or perhaps separate physical machines, since it is no fun debugging in a VM with the application running in another operating system behind it.

Is it straightforward to configure? Not too bad. You have to install Xcode on the Mac, and in addition, you have to install the Xcode command line tools, which you can do from Xcode itself, in Preferences – Downloads – Components, or as a separate download.

image

Then you need to find the Platform Assistant (paserver), an agent which runs on the Mac to support remote debugging. I was annoyed to find that this has a dependency on Java SE6, which to be fair it downloaded and installed automatically. Actually I find this amusing, after hearing from an Embarcadero VP how native code is all the rage and nobody uses managed code any more. Except Embarcadero for the paserver.

Once that is all up and running you are done on the Mac side. On Windows, you then need to sort out a remote profile, after having installed RAD Studio of course. The way to do this is first to start a new cross-platform project, which means using the FireMonkey framework. Then right-click TargetPlatforms in the project manager and add a platform. If you add OSX but no remote profile exists, you will be prompted to create one.

image

This is where something went slightly wrong. I created a profile and could connect OK. However, when I tried to build the project, I got an error: Unable to open include file ‘CoreFoundation/CoreFoundation.h’. You get this if for some reason the required library files have not been pulled over from the Mac. The fix is to edit the profile and click Update Local File Cache.

image

After that I was away. Set breakpoints if needed, build and debug.

image

Cross-platform is not new in RAD Studio; it was in XE2, and in some ways better, since you could target iOS as well as OSX. C++ Builder XE3 is actually a new generation though. In the 64-bit update 1, it is the first release to use Clang and LLVM, and from what I understand this represents the future for Embarcadero’s tools.

Updates are promised in 2013 for both Delphi and C++Builder – this roadmap is most of what we have to go on – which will add first iOS and later Android support, at what the company calls a “low cost”. Unlike the iOS support in XE2, the coming update will not use the Free Pascal compiler, but the new architecture based on LLVM. This also suggests that the add-on will replace some of the guts of Delphi when it arrives, so it will be significant and somewhat risky.

The cross-platform capabilities look good, though I am somewhat wary of FireMonkey which is less complete and mature than the Windows-only VCL. For example no Webbrowser component is supplied, which is a significant limitation, though I am sure there are ways of hacking this, perhaps through ChromiumEmbedded for which a Delphi FireMonkey exists.

It is worth a bit of effort, since Delphi and C++Builder are productive tools, and the output is true native code which still had advantages.

More information on RAD Studio XE3 is here.

Microsoft updates .NET Framework 4.5 for Windows 8, Server 2012 to fix performance, bugs

Microsoft has released an update for .NET Framework 4.5 which you may have noticed flying past if you keep an eye on Windows Update in Windows 8. The update is described here, and it is a big one. For example, in the Network Class Library:

Assume that you run a .NET Framework 4.5-based application that uses asynchronous APIs to read chunked responses. In this situation, the chunked responses may be read synchronously.

The HttpWebRequest class lets callers read an HTTP response either synchronously or asynchronously. However, if the response is a chunked HTTP response, then parts of the response are read by using synchronous I/O (Winsock calls) even when the caller uses the asynchronous code path. In this situation, the calling thread is blocked until data is received on the network.

Given this and other issues, the update is highly recommended. Maybe we will see fewer pauses in Windows App Store apps, some of which have not delivered on the “fast and fluid” promise.

Visual Studio LightSwitch HTML: mainly for mobile

Microsoft’s Visual Studio LightSwitch is an innovative development tool that lets you build multi-tier database applications without ever designing the user interface directly. Instead, you work with defining the database and the the features you want on your screens. LightSwitch generates the user interface for you. You can also add code snippets, and advanced developers can create custom controls and extensions.

The thinking behind LightSwitch was to make it easy for non-developers to create database applications, though it is not the most intuitive of tools and in reality it is developers looking for rapid application development who are most likely to use it. There is a lot to like in the way it is designed, like the data-first approach and the easy to use database designer, but this is spoilt by some odd decisions. One is that the LightSwitch team are seemingly averse to reference documentation, preferring to deliver various how-to walkthroughs, which is frustrating if you want to find out in detail how it is meant to work.

The initial release of LightSwitch, as well as the new edition in Visual Studio 2012, generates only a Silverlight client, making it useless for mobile devices and somewhat annoying on desktop PCs since you have to install the Silverlight runtime. Microsoft has addressed this by creating an HTML client update, which lets you generate an HTML user interface. This is now at Preview two, and I downloaded it to have a look.

Since LightSwitch generates the user interface from metadata, you might hope that the HTML version would let you take a project created for Silverlight, and simply generate a functionally equivalent HTML application instead. Even if some touching up was needed, such as rewriting C# snippets in JavaScript, this would be a nice option. However that is not the approach Microsoft has taken. It has added an option to create an HTML client for a LightSwitch project, but you have to redo all the screens. In addition, the HTML client is intended mainly for mobile, and is designed for touch control, as explained by Microsoft’s Joe Binder here:

We are not expanding the HTML client’s scenario target to include desktop in our first formal release.  The first release will be based exclusively on JQueryMobile and be optimized for building touch-oriented apps.  We’ll stay tuned to your feedback to sort out where/when we go after that, but we still have some issues to sort out for our mobile story and we’ll remained focused until we feel confident that we have a viable mobile offering.

Of course it is still HTML, and will run on modern desktop browsers, though the generated user interface uses JQuery Mobile extensively. Another of the issues here is that HTML 5 may be better supported on smartphones running WebKit-based browsers than on desktops such as Windows XP running Internet Explorer 8, creating problems for LightSwitch. It is also hard to create a user interface that is equally well suited to touch control as to keyboard/mouse interaction; this issue is a common complaint about Windows Store apps on Windows 8.

The HTML client is still interesting, more so than the original LightSwitch with its Silverlight web or desktop clients. Rapid database app development for mobile devices is an key area, as businesses work to enable their mobile users to access company data.

After installing the preview, I built a quick HTML client app, based on a contact database.

image

It did not take long to build a working application, though there are some puzzles. My first effort at creating a contact list only displayed the firstname of each record. Apparently that is the “summary” layout, and I cannot see any quick way to change the summary definition to something more useful. Instead, I changed it to a Rows Layout which shows all the fields, but lets you delete those which are not required. Then I added an Edit contact button, though it appears as plain text without even an underline to show that it is a hyperlink, and I cannot see quickly how to change this:

image

The button’s “Appearance” properties are not helpful:

image

I also found an annoyance that may be a bug. I created several new contacts via a Contact details form (the first illustration above). I saved each contact with the tick button, whereupon they appear in the contact list. However they are not yet really saved. To save the contact to the database, you have to execute the save action, which is a built-in button on the BrowseContacts form. When I tried to save, the phone number fields (defined as Phone Number fields) failed validation, even though they would be valid phone numbers in the UK, and the records were not saved. Fair enough I suppose, but why did they pass validation in the Contact Detail form?

I am sure there are easy fixes for all these niggles, but I mention them to illustrate the point about this not being the most intuitive of tools.

The general approach also takes some mental adjustment. Here is a tool that makes web apps, but you cannot use a web design tool to customise the user interface.

As a tool for building mobile web apps, LightSwitch does show promise and I look forward to the final release. That said, it would be good if Microsoft could adapt the HTML output so you can make it suitable for desktop browsers as well.

Fresh Paint Windows Store app: in equal parts great and frustrating

Now that the initial shock of “where is the Start menu” is wearing off, some of the real issues and points of interest in Windows 8 are coming to the surface (ha!), one of which is what a good Windows Store (also known as Metro) app is meant to look like. Microsoft has not been helped by the fact that most apps in the Store are either simplistic, or poor quality, or both.

In this respect Fresh Paint is worth a look, since it comes from Microsoft and is the outcome of considerable work and research. There is a post about the history of the app on Steve Clayton’s blog which is good reading.

The title cleverly combines the sense of a new approach to Paint, the Windows app from way back, with the fact that this is a simulation of paint (the liquid stuff). I have not found much in the way of documentation, though there is a FAQ here, but even a few moments playing shows that this is a sophisticated painting tool, especially on a tablet where you can paint with a finger or stylus. It works on both x86 and ARM devices such as Surface RT though performance is laggy compared to that on a modern x86 PC, and the pencil and pastel tools are missing.

This is an example of immersive UI. While painting, few tools are visible. As a concession, there are five faint tools at the bottom of the screen for undo, redo, show template, centre artwork, and dry. Right-click or swipe in, and you get tools for selecting the painting tool (pencil, brush or pastel), a colour palette that really is like a palette, with the ability to mix your own colours, an eraser, a dropper tool which I have not fully figured out, and a dry paint tool that picks up wet paint from the canvas.

image

Click or tap surface and you can select the canvas type and background colour. The camera button lets you use an image as the background.

image

Paintings are saved automatically every five minutes or when you return to the home page. You can also export paintings as .PNG files.

You can zoom in and out using the mouse wheel or pinch gestures.

The app is free, but Microsoft offers paid-for add-in packs which provide templates. You can paint over the template, then use the template tool mentioned above to remove it from the canvas. There is a free Fun Pack to get you started.

image

This is not a replacement for the desktop Windows Paint. Features missing in Fresh Paint include selection, fill, cropping, resizing, rotation, clipboard support and printing, to name a few.

Concerning Fresh Paint, three things are obvious.

One is that this is innovative, bold, and excellent in the way it lets you paint in a manner that is much closer to the real thing than most computer graphics software.

Second, users are having real difficulty figuring it out. Some users have not worked out how to get the menus and tools showing at all, hence this is explained in the FAQ mentioned above. Others are like Terry Odell who says:

The problem I have is there’s no "help" or "right click to figure out what things do" in the app. It’s total trial and error, and perhaps if I were 5 like my grandson, I’d be able to figure it out. There are choices on the top of the screen, and more choices/icons on the bottom. The camera on the bottom opens up the ‘real’ camera on my computer, but there’s no ‘click here to take a picture’ (not to mention I have no idea what to do with one.  I’d rather see a tutorial of some sort than have to keep wading through forums to get a question answered. As for ‘dropdown’ I have no idea where that is? The top menu? The bottom menu. Windows 8 is hardly intuitive, and the apps, while great in theory, don’t have enough information provided for how to use them.

It is as if not having documentation is a point of pride, because the app should be so easy to use that documentation is not needed, and if the user does not get it, it is the user’s fault. It puzzles me, since it in a few hours the team could provide some simple documentation that would help users get the best from this app.

Third, it is not stable. I got several crashes in the course of playing around briefly to write this post.

image

Why is it crashing? There are hints that it may be to do with graphics drivers. I have the latest NVIDIA drivers and other apps and games are solid. It would be interesting to know the reason why it falls over so much, and whether this is caused by buggy app code or problems in the Windows Runtime itself. It is not just my system; take a look at the reviews in the Windows Store for more reports.

I do not mean to be snarky; in many ways this is a brilliant app both for children and for anyone with some artistic talent. It just needs a little more work, and seems to say a lot about the state of Windows 8 apps right now.

Mobile: Windows Phone appeal growing, iOS and Android secure say Titanium developers

Appcelerator and IDC have released their latest mobile developer report, in which nearly 3,000 users of the cross-platform development tool Titanium report on their views and intentions.

These reports are always interesting but experience suggests that they are poor predictors. A year ago, the Q4 2011 report told us:

Amazon’s new Kindle Fire ignites developer interest. When surveyed among 15 Android tablets, the lowcost, content-rich eReader was second only to the Samsung Galaxy Tab globally in developer interest. A regional breakdown shows Amazon edging Samsung in North America for the top slot. At 49% very interested in North America, the Kindle Fire is just 4 points less than interest in the iPad (53%) prior to its launch in April 2010.

Now, the Q4 2012 report says:

Amazon’s Kindle continues to struggle for developers’ interest. With less than 22% of mobile application developers “very interested” in building mobile apps for the device, the Kindle just barely breaks into developers’ top 10 app targets.

This is one example; a glance back through previous editions shows plenty of others, showing that developers struggle as much as the rest of us when it comes to guessing the value of future markets.

The report is still useful as a snapshot of how things look now, for cross-platform mobile developers. One question which is always asked, and therefore can be compared easily from one report to another, is the proportion of developers who are “very interested” in developing for each platform.

image

The top 5 contenders here are relatively stable, with Apple iOS top (iPhone and iPad), Android next (phone and tablet), and HTML5 Mobile Web also strong at about 65%.

The lower ranges are more interesting, as developers change their minds about prospects for the minority players. Windows Phone dived to around 22% in August 2012 but grew strongly to 36% in this report. Windows tablets, which we should probably take to mean the new Windows 8 app platform, is about the same. BlackBerry has declined from over 40% in March 2010 to 9% today, though I would suggest this will inevitably increase in the next report which will be after the launch of BlackBerry 10.

What else is interesting? One thing is Apple “fragmentation”. The problem here is that Apple iOS now has six screen sizes, once you add iPad mini and iPhone and iPad with or without high-res Retina displays. This gives me pause for thought. The challenge of mobile apps is now closer to that of desktop apps, where you do not know what display will be used or how users will choose to  size the application window. Intelligent layout and scaling is key.

Apple is also increasingly awkward to work with:

More generally, 90% of developers believe that Apple has become more difficult, or about the same, to deal with over the past three years when it comes to application
submission, fragmentation, and monetization.

Part of the report concerns Microsoft Surface. This focus is puzzling, in that it is the Windows 8 app platform which really matters, rather than Surface itself. Another oddity is the questions put, with no option to say “Surface is great”. The most positive option was:

It is a nice piece of hardware, but Windows 8 needs a lot more than that to be successful

A rather obvious statement which apparently won the agreement of 36% of developers.

The report gets even sillier when it comes to market disruption:

The top three companies that developers perceive to be ripe for disruption are a veritable who’s-who of the biggest tech darlings

say Appcelerator and IDC. It is true; but the figures are tiny:

Microsoft (8% of respondents), Google (7% of respondents), and Facebook (7% of respondents).

In other words, over 90% of developers believe these three companies are not likely to be disrupted soon; a figure that strikes me as conservative, especially for Microsoft.

More impressive is that over 60% of developers believe Facebook will lose out in future to a mobile-first social startup. This was also true last time round; 66% in Q3 2012 and 62% in Q4 2012.

The length of time it took Facebook to release just a single native iOS app, coupled with the fact that a corresponding native Android app is still MIA, has proven that the company does not yet have a viable cross-platform mobile strategy.

say Appcelerator and IDC. A fair point; but Facebook’s primary asset is its network of relationships rather than its software and it is not easy to disrupt. I would also guess that disruption is more likely to come from Google as it promotes Google+ and builds it more aggressively, perhaps, into Android, along with apps for iOS and other platforms as needed, than from a startup. But like the developers in this survey, I am guessing.

The Windows 8 app platform: how is it going? A few clues from developers

One way of looking at Microsoft’s Windows 8 strategy is as an attempt to establish a new tablet platform. By welding the tablet platform to the desktop platform, Microsoft ensured that every customer who wanted the latest Windows release would also get the tablet release, though some are stuck with keyboard and mouse to control it. The downside is that some users who would have upgraded to Windows 8 if it had been less radical will stick with Windows 7. Microsoft is betting that despite the controversy, the hybrid operating system is a better bet for the difficult task of creating a new ecosystem than building a completely new tablet operating system that few would have purchased.

So how is the new platform doing? I asked on Twitter for developers with apps on both Windows Phone 8 and Windows 8 to let me know how the rate of sales or downloads compare.

One was the maker of Cineworld, a cinema listing app for the UK and Ireland. He reported:

my cineworld app has about 1.8K downloads a month on WP.. on #win its a few hundred

The other was an app for fans of Manchester United football club called 1st4Fans:

Windows 8 is 70/day. Windows Phone is 130/day

Another was the maker of Barcode Generator:

Barcode Generator stats say 32K download since Aug and several hundreds dwn/day. Looks pretty good, isn’t it?

The author of TweeterLight says that he has “more downloads of W8 app in 1 month than WP7 app in 1 year”, showing that not everyone is finding the phone platform bigger than the tablet platform, though a key factor is that there is an official Twitter client for the phone but not for new-style Windows 8:

image

TweeterLight is also a paid-for app, which means fewer downloads and perhaps avoidance of the Twitter throttling that has afflicted the free clients.

Others are reporting a boom in Windows Phone downloads, like Lestyn Jones who says:

I’m finding that my #win8 app downloads are slowly growing where as my #wp8 have skyrocketed.

Put that together with the Cineworld stats – 1.8K per month for an app that is only relevant in the UK and Ireland. It does look as if Windows Phone has been considerably reinvigorated by the launch of Windows Phone 8.

Returning to Windows 8 though, my initial reaction was that these responses are not an impressive start for Microsoft’s new platform, considering the wide usage of Windows on the desktop.

My further reflection though is this. I find myself more willing to try out new-style apps on Windows 8 than desktop apps either on Windows 8 or previous versions, thanks to the ease of installation and removal, discovery through the store, and the additional security of the app sandbox. An interesting question to ask then: if Microsoft had not created this new app platform, how many of these niche apps would have been downloaded as desktop applications?

Despite its imperfections and mixed reception, at least Windows 8 now has an app platform.

This is a small sample and other reports would be welcome.

Embarcadero launches C++ Builder XE3: first built on Clang

Embarcadero has released C++ Builder XE3, the first version built on the open source clang front end for the LLVM compiler. This has enabled the product to support many new features, including extensive C++ 11 support and a 64-bit compiler.

image

While it is a shame that the old Borland C/C++ Compiler is no more, it makes sense for Embarcadero to bring its VCL (Visual Component Library) and FireMonkey framework to Clang rather than continuing to work on its own compiler.

The other big change is cross-platform support. Through FireMonkey, C++ Builder XE3 supports Windows (including Windows 8) and Mac OS X, with iOS and Android promised for 2013.

Although Windows 8 is supported on the desktop, there is no official support for the Windows Runtime (Windows Store apps). Instead, Embarcadero has a curious application framework called Metropolis which fakes the Windows 8 style but with desktop applications, as if the Windows 8 world were not already sufficiently confusing.

The big question is how compatible VCL applications created for earlier versions of C++ Builder are with the XE3 release. With a new compiler and major changes to the VCL in order to support the new compiler, you might expect some issues.

“That’s what we’ve been spending all of our time on,” Embarcadero VP Michael Swindell told me. “This is fully compatible with all our previous C++ dialects. We’ve completely re-engineered the C++ front end but it’s engineered to be compatible with C++ Builder applications and Borland C++ applications.”

I would rather hear that from developers though, rather than from Embarcadero.

Although C++ Builder is a cross-platform compiler, it only runs on Windows. A common scenario is to run in Windows emulation on a Mac, using VMware Fusion or Parallels.

Similar changes are on the way for Delphi, which uses the same VCL and FireMonkey frameworks but with the Delphi language based on Object Pascal.

Note that the new Clang-based compiler is 64-bit only. You are meant to continue using the old Borland compiler for 32-bit, making it hard to maintain a single code base for both.