Category Archives: visual studio

Visual C++ will implement all of C++ 11 and C++ 14, some of C99 says Microsoft

Microsoft’s Herb Sutter spoke at Microsoft Build in San Francisco on the future of C++.

image

Microsoft has been criticised for being slow to implement all the features of ISO C++ 11. Sutter says most features are now included in the public preview of Visual Studio 2013 – which has a “Go Live” license so you can use it in production – including the oft-requested variadic templates. The full list:

  • Explicit conversion operators
  • Raw string literals
  • Function template default arguments
  • Delegating constructors
  • Uniform int and initializer_lists
  • Variadic templates

More features are coming in the RTM (final release) of Visual Studio 2013 later this year:

  • Non-static member initializers
  • =default
  • =delete
  • ‘using’ aliases

A technical preview will then follow and Sutter listed possible features of which there will be a subset. Full conformance will follow at an unspecified time.

Microsoft is also promising a full implementation of C++ 14, the next update to the standard, even though the exact specification is not yet fully agreed. Some C++ 14 features will be implemented ahead of C++ 11 features, if they are considered to add high value.

Two other points of interest.

Async/await (familiar to C# developers) will be implemented in the post-RTM CTP because it is such a useful feature for Windows Runtime app developers, even though it is not part of the ISO standard.

Finally, Microsoft will also several C99 features in the RTM of Visual Studio 2013:

  • Variable decls
  • C99_Bool
  • compound literals
  • designated initializers

The reason for implementing these is that they are needed to compile popular open source libraries like FFmpeg.

I asked Sutter why Microsoft is not planning full conformance to C99. He said it was a matter of priorities and that work on C++ 11 and C++ 14 was more important. If there are particular additional features of C99 developers would like to see implemented, contacting Sutter with requests and rationale might eventually yield results.

image

Microsoft Build: Windows 8.1 for developers, Visual Studio 2013, Xamarin for cross-platform

Microsoft’s Build developer conference is getting under way in San Francisco.

image

Today Microsoft is expected to announce the public preview of Windows 8.1 together with technical details of what is in the latest Windows update. Sessions include What’s new in the Windows Runtime (the tablet platform in Windows 8), and what’s new in XAML (the interface design language for Windows 8) and WinJS (the interop library for apps written in HTML and JavaScript).

Gartner’s Hype Cycle for new technologies runs from the Peak of Inflated Expectations through the Trough of Disillusionment, eventually settling at the Plateau of Productivity. Inflated expectations for Windows 8 – the iPad killer – expired many months back and we are well down in the trough, with little momentum behind the Windows 8 tablet platform, OEM partners still searching for the right way to package Windows 8 and coming up with unsatisfactory and expensive hybrid creations, and iPad and Android tablets ascendant.

At this point, Microsoft needs to win over its core market, much of which is determined to stick with Windows 7, as well as injecting some life into the tablet side of Windows 8. The platform has promise, but it is fair to say that the launch has been difficult.

The advantage now is that Microsoft is in a period of incremental improvement rather than reimagining Windows, and incremental improvements are easier to pull off. More reports soon.

The schedule also includes news of Visual Studio 2013 and there is likely to be a new preview for this as well. A smoothly integrated development platform across Windows client, Windows Phone, and the Windows Azure cloud, with a dash of XBox One for game developers? Microsoft has all the ingredients but with questions about whether it is able to deliver, as it is currently losing the battle for the client (PC and devices).

One answer for C# developers hedging their bets, or just trying to take advantage of the huge iOS and Android market, is the Xamarin toolset which lets code in C# and .NET and share non-GUI code across all the most popular platforms. Xamarin hosted a large party for Microsoft-platform developers last night in San Francisco. Xamarin’s approach is winning significant support, since it ensures a native GUI on each platform while still sharing a large proportion of your code.  Mono and Xamarin founder Miguel de Icaza was there to evangelise the Xamarin tools.

image

There was also a giant Jenga-like game. Here’s hoping that neither Xamarin’s nor Microsoft’s development stack looks like this.

image

Microsoft and mediocrity in programming

A post by Ahmet Alp Balkan on working as a developer at Microsoft has stimulated much discussion. Balkan says he joined Microsoft 8 months ago (or two years ago if you count when he started as an intern) and tells a depressing tale (couched in odd language) of poor programming practice. Specifically:

  • Lack of documentation and communication. “There are certain people, if they got hit by a bus, nobody can pick up their work or code.”
  • Inability to improve the codebase. “Nobody will appreciate you for fixing styling or architectural issues in their core, in fact they may get offended.”
  • Lack of enthusiasm. “Writing better code is not a priority for the most”
  • Lack of productivity. “I spend most of my time trying to figure out how others’ uncommented/undocumented code work, debugging strange things and attending daily meetings.”
  • Lack of contribution to the community. “Everybody loves finding Stack Overflow answers on search results, but nobody contributes those answers.”
  • Lack of awareness of the competition. “No one I met in Windows Azure team heard about Heroku or Rackspace.”
  • Working by the book. “Nobody cares what sort of mess you created. As long as that functionality is ready, it is okay and can always be fixed later.”
  • Clipboard inheritance. “I’ve seen source files copy pasted across projects. As long as it gets shit done (described above) no one cares if you produced unmaintainable code.”
  • Using old tools. “Almost 90% of my colleagues use older versions of Office, Windows, Visual Studio and .NET Framework.”
  • Crippling management hierarchy. “At the end, you are working for your manager’s and their managers’ paychecks.”

There are a couple of points to emphasize. This is one person in one team which is part of a very large corporation, and should not be taken as descriptive of Microsoft programming culture as a whole. Balkan’s team is in “the test org”, he says, and not making product decisions. Further, many commenters observe that they have seen similar at other organisations.

Nevertheless, some of the points chime with other things I have seen. Take this post by Ian Smith, formerly a Microsoft-platform developer, on trying to buy a Surface Pro at Microsoft’s online store. From what he describes, the software behind the store is of dreadful quality. Currently, there is a broken image link on the home page.

image

This is not how you beat the iPad.

Another piece of evidence is in the bundled apps for Windows 8. The more I have reflected on this, the more I feel that supplying poor apps with Windows 8 was one of the worst launch mistakes. Apps like Mail, Calendar and Contacts on the Metro-style side have the look of waterfall development (though I have no inside knowledge of this). They look like what you would get from having a series of meetings about what the apps should do, and handing the specification over to a development team. They just about do the job, but without flair, without the benefit of an iterative cycle of improvements based on real user experience.

When the Mail app was launched, it lacked the ability to see the URL behind a hyperlink before tapping it, making phishing attempts hard to spot. This has since been fixed in an update, but how did that slip through? Details matter.

A lot is known about how to deliver high quality, secure and robust applications. Microsoft itself has contributed excellent insights, in books like Steve McConnell’s Code Complete and Michael Howard’s Writing Secure Code. The Agile movement has shown the importance of iterative development, and strong communication between all project stakeholders. Departing from these principles is almost always a mistake.

The WinRT platform needed a start-up culture. “We’re up against iPad and Android, we have to do something special.” Microsoft can do this; in fact, Windows Phone 7 demonstrated some of that in its refreshing new user interface (though the 2010 launch was botched in other ways).

Another piece of evidence: when I open a Word document from the SkyDrive client and work on it for a while, typing starts to slow down and I have to save the document locally in order to continue. I am not alone in experiencing this bug. Something is broken in the way Office talks to SkyDrive. It has been that way for many months. This is not how you beat Dropbox.

In other words, I do think Microsoft has a problem, though equally I am sure it does not apply everywhere. Look, for example, at Hyper-V and how that team has gone all-out to compete with VMWare and delivered strong releases.

Unfortunately mediocrity, where it is does exist, is a typical side-effect of monopoly profits and complacency. Microsoft (if it ever could) cannot afford for it to continue.

Build Mac and iOS apps in Visual Studio: Oxygene for Cocoa

Remobjects has released Oxygene for Cocoa, which lets you build apps for Mac and iOS using Visual Studio and the Oxygene language.

Oxygene is a Delphi-like language, making this an easy transition for Delphi developers. Until the most recent release, a version of Oxygene, called Prism, was bundled with Delphi, though this targeted .NET rather than Cocoa. Oxygene can also build apps for the Java runtime, making it a three platform solution.

The cross-platform approach is different from that taken by Embarcadero with FireMonkey, a cross-platform framework for Delphi itself. FireMonkey abstracts the GUI as well as the non-visual code, and in many cases controls are drawn by FireMonkey rather than using the native controls on platforms such as iOS. By contrast, Oxygene works directly with the Cocoa frameworks, so you will build the GUI in code or using the Xcode tools on the Mac.

More like Xamarin then? “We do work together with Mono and with Xamarin,” says Remobjects chief Marc Hoffman. “Oxygene for .NET works with the regular Mono framework for desktop or server apps. But when you get to the devices, the benefit with Oxygene is that you get much closer to the framework, you don’t have the weight of providing an abstraction for the classes you want to use.  If you write a UITableViewController to define a view, then you really write a UITableViewController, the same as you would in Objective-C, just the language is different, whereas in Xamarin you write a different class that sits on top and Mono does the mapping.”

Why not just use Xcode? This is in part a language choice. Remobjects says that Oxygene is “better than Objective-C” thanks to features like automatic boxing of integers, floats and strings, and generic arrays. There is more about the language here. Perhaps more important, if you know Pascal or Delphi it will look more familiar. You also get the ability to share code between Windows, Android, Mac and iOS, though this will be the non-visual code. Developers can also work mainly in Visual Studio rather than in Xcode.

The disadvantage is that you need two machines, or a VM running Windows on a Mac, and a remote connection to a Mac in order to debug.

I plan to try out Oxygene for Cocoa soon and of course will report on the experience.

Microsoft’s Windows 8 app problem will not be solved by incentivising junk

Microsoft has launched a “Keep the cash” offer to developers. Publish up to 20 apps, 10 for Windows Phone and 10 for Windows 8, and get $100 for each of them.

image

The offer is little use for most of the world. The terms state that “Offer good only to legal residents of the 50 United States & D.C. aged 18 or older”.

It is little use for Microsoft either. How much development time does $100 buy? Still, there is a way to make sense of it for hobbyists or developers with some spare time. What you do is to create one of those apps that does very little but is specific to something like a particular sports team or pop star, and maybe searches the web for news about them. Then you replicate it 10 times over for 10 different teams or celebrities. Then you adapt it for both phone and Windows 8 store. That’s 20 apps, $2000.

In other words, the only thing this will achieve is to increase the amount of dross in these two stores. Microsoft is pumping the numbers, so that there is an appearance of success on the most naive analysis, counting the apps.

Incidentally, this is something that Windows Store VP Antoine LeBlond assured me Microsoft would not do, at the launch of Surface RT in New York last year.

Does Microsoft have an app problem? Yes, particularly on Windows 8. Windows Phone 8 is less of a problem; Microsoft’s phone is actually building some momentum from what I can tell and app availability is not too bad, despite some gaps such as Instagram and BBC iPlayer.

The app problem is nothing to do with quantity though. 10 good apps for the Windows Store is worth more to the platform than 10,000 poor ones. In fact, filling the store with junk is a negative that will cement the perception that there is little there that is worthwhile.

Rather, the app problem is the consequence of several factors:

1. The development platform is not good enough. Most things can be done, but not easily, and the default look and feel results in blocky apps that tend to scale badly on big screens. The built-in controls are too primitive. The user interface is insufficiently intuitive and users struggle to discover the menus and features hidden in the Charms bar.

2. Microsoft has so far failed to establish Windows 8 as a tablet platform. The reasons are complex and to do with the Windows heritage, the way OEM and retail partners treat Windows, and the fact that there are other tablet platforms (iOS and Android) out there which meet the need for many people.

3. Windows 8 is out there in reasonable numbers, but most users spend most of there time in the desktop, making the Windows Store app platform less successful than the quantity deployed would suggest.

4. Businesses are mainly standardising on Windows 7, not Windows 8, to the detriment of the new app platform.

In this context, the best thing that could happen for Windows 8 is the appearance of new compelling apps that will drive users to the underused tablet personality. Microsoft could and should do some of those (there are a few efforts, like Fresh Paint).

Those apps, though, will not be developed for $100. They will be developed either by enthusiasts who love the platform (which will not happen until the platform is improved), or by businesses who invest real money and effort in building them.

As it is, this misguided initiative does little other than to draw attention to the problems Microsoft has with its new Windows.

Microsoft’s Visual Studio and Team Foundation Server get Git integration

Microsoft has announced Git integration in both the Visual Studio IDE and the Team Foundation Service hosted source code management system. According to Technical Fellow Brian Harry:

1. Team Foundation Server will host Git repositories – and more concretely, Team Foundation Service has support for hosting Git repositories starting today.

2. Visual Studio will have Git support – and concretely, we released a CTP of a VSIX plugin for the Visual Studio 2012 Update 2 CTP today.

Git is an open source version control system originally designed by Linus Torvalds to support the development of the Linux operating system. It is a distributed version control system, which means every working directory is itself a full repository, enabling easy forking and offline work.

Team Foundation Service is a version of Team Foundation Server hosted by Microsoft.

Git integration was also recently added to Perforce, another version control system, in the form of the Perforce Git Fusion add-in, emphasising the fact that Git is now a mainstream, enterprise revision control system.

Hacking Windows RT and Surface RT to run desktop apps

A developer on the XDA Developers forum, known as clrokr, has figured out how to run unsigned applications on Windows RT (Windows on ARM), including Microsoft’s own-brand Surface RT device.

The technique is described here and involves patching the Windows kernel. Currently it is not possible to jailbreak Windows RT completely, because Secure Boot prevents tampering with the system files, but it can be done after booting by using the remote debugger:

The minimum signing level determines how good an executable’s signature is on a scale like this: Unsigned(0), Authenticode(4), Microsoft(8), Windows(12). The default value on x86 machines is of course 0 because you can run anything you like on your computer. On ARM machines, it defaults to 8.
That means that even if you sign your apps using your Authenticode certificate, the Surface or any other Windows RT device (at this moment) will not run them. This is not a user setting, but a hardcoded global value in the kernel itself. It cannot be changed permanently on devices with UEFI’s Secure Boot enabled. It can, however, be changed in memory.

There is further discussion on the forum here. The technique is not practical for most users yet.

According to clrokr:

The decision to ban traditional desktop applications was not a technical one, but a bad marketing decision. Windows RT needs the Win32 ecosystem to strengthen its position as a productivity tool. There are enough “consumption” tablets already.

Personally I have mixed feelings about this. If I understand the concept correctly, Windows RT is meant to have iPad-like ease of use as well as excellent security. Configuring the operating system so that only code signed by Microsoft or Windows Store apps will run is a key part of the implementation. Surface RT is not as good as it should be, in part because there is too much old-style Windows, not too little.

On the other hand, the usefulness of Windows RT is limited by the absence of key apps. There are certain things missing, like the ability to play FLAC files, and until recently, an SSH terminal client (there is one now). Looking at the thread on XDA Developers, note that among the first things users are keen to port are putty (open source SSH client) and VLC (open source multimedia player).

image

That said, personally I would rather see suitable apps come to the Windows Store, rather than introduce all the problems and complexities of desktop Windows to Windows RT.

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.

Android up, Apple down, Microsoft so near, so far: 2012 in review

What happened in 2012?

Windows 8

Whether you regard it as the beginning of the end for Windows, or a moment of rebirth, for me it was the year of Windows 8. Microsoft’s new Windows is fascinating on several levels: as a bold strategic move to make a desktop operating system into a tablet operating system, or as an experiment in how much change you can make in an established product without alienating too many of your customers, or as the first mainstream attempt to create an “immersive” user interface where users engage solely with the content and have to make an effort to summon menus and tools.

The context is also gripping. Microsoft’s desktop monopoly is under attack from all sides. Apple iPad and Google Android tablets, cloud apps that make the desktop operating system irrelevant, Mac OSX computers and laptops that have captured the hearts of designers and power users. Windows still dominates in business computing, but the signs of encroachment are there as well, with reports of iPad deployments and a shift in focus away from desktop apps.

Windows 8 is intended as the fix, making Windows into a first-class tablet operating system and establishing a new app ecosystem based on the Windows Runtime and the Windows Store.

How is it going so far? Not too well. App developers have not flocked to the platform. Users who were happy with Windows 7 have been bewildered. Most seriously, the Windows ecosystem of OEM vendors and general retailers has failed to adjust to the concept of Windows as a tablet operating system, treating it more as a somewhat awkward upgrade to Windows 7.

The work of Windows President Steven Sinofksy in overseeing the engineering and design of Windows 8 and delivering it on schedule has been amazing. He kept his team focused and shipped a release of Windows that is faster and with nice improvements on the desktop side, as well as offering a tablet personality designed for touch-first, in which apps are securely sandboxed and easily installed from an online store.

At the same time, it is easy to see ways in which Microsoft bungled Windows 8.

  • Why was Microsoft so unrelenting with its “immersive” UI that it would not tolerate an option to show things like time and battery status on screen all the time, or three dots for “more” so that users will more easily discover the app bar, as suggested by Paul Thurrott?
  • Why did Microsoft spend mind-stretching amounts on advertising for Windows 8 and for Surface RT tablets, but not allocate enough budget to create a decent Windows 8 Mail app, for example? The current effort is a constant annoyance, especially on the Surface where there is no alternative.
  • Why did Microsoft expend so much effort pumping up the number of apps in its Store, but so little effort nurturing quality? Very few outstanding apps were available at launch, and even now they are hard to find.

I say this as as someone who likes Windows 8 overall. The strategy makes sense to me, but the execution in some critical areas has been disappointing. So near but so far.

 

image

The sudden departure of Sinofsky immediately after the Windows 8 launch was unfortunate; a significant loss of a person with both vision and the ability to implement it.

That said, despite all the difficulties Microsoft has now launched this radically different version of Windows; it is over the first hump and provided that the company keeps its nerve, it can focus on refining the platform and creating compelling new apps that will persuade users to explore it. Further, users who have the patience to learn a few new ways to navigate Windows will discover that it is a decent upgrade, with strong features like Hyper-V, improved file operations, Windows to Go and more.

It is tablets that matter though. Tablet usage will continue to grow, and if Microsoft cannot establish Windows as a tablet platform, its further decline is inevitable.

Does CEO Steve Ballmer have a grip on this huge, dysfunctional, brilliant, frustrating company? Maybe 2013 will answer that question definitively.

image 

Surface RT

2012 also saw the launch of Microsoft’s first own-brand tablet. It is high quality, exceptionally strong, with long battery life thanks to its ARM processor and supported by keyboard covers that let you flip it between touch and keyboard/trackpad without making the device too bulky or complex.

image

Three things, no make that four things, have prevented Surface RT from taking off as Microsoft hoped:

1. Performance is barely adequate. It is usable, but Office is sluggish with large documents and apps are noticeably less responsive than on x86 Windows 8. That said, the NVIDIA Tegra 3 chipset is capable of fast graphics, and some games run surprisingly well, so it is not all bad.

2. The lack of strong apps affects Windows RT devices like Surface more than x86 Windows 8, since you cannot install desktop apps. Yes, it is a new platform, but Microsoft could have done better.

3. There is too much desktop in Windows RT and therefore in Surface RT, making the device more complex than it should be.

4. Microsoft has not yet established Windows 8 as a tablet platform in public perception, nor yet provided the apps that make it work fully as a tablet platform. One consequence is that when someone goes out to buy a tablet, they do not think of Surface RT as a candidate; it is iPad or Android. Another consequence is that reviewers tend to evaluate Surface RT as Windows rather than as a tablet. Considered as Windows, it is weak compared to x86 builds.

Despite all the above, I often slip Surface RT into my bag when travelling. The combination of small size, keyboard cover, long battery life, and Word and Excel is a winner for me. Surface RT 2, with faster performance and a more mature app platform could be great, if the product makes it to a second edition.

Apple: a bad year

2012 was a bad year for Apple. On one level everything is fine, with iPads and iPhones selling like fury, and the successful launch of iPad Mini. What changed though is that the concern of the late Steve Jobs, that Android is close enough to iOS to capture a lot of its market, became a reality. Android is the bestselling smartphone platform and Android tablets, led by Google Nexus and Samsung Galaxy, will likely overtake iPad for the same reasons: better value, more vendors, faster innovation. There was plenty of litigation in 2012 as Apple sought to protect its inventions, but despite some legal successes, Android has continued to grow and it looks unlikely that court action will do much to impede it. Another problem for Apple is that price pressure makes it difficult to sustain the high hardware margins which have made the company so profitable.

The other Microsoft

The Windows 8 drama caught our attention, but Microsoft has been busy elsewhere, generally with better success. The most significant development was the transformation of the cloud platform, Windows Azure from an also-ran to a compelling contender (though still small relative to Amazon), thanks to the addition of IaaS (infrastructure as a service), or plain old Windows VMs, along with a new management portal that makes the service easier to use.

Microsoft also released Server 2012, a substantial upgrade to Windows Server particularly in Hyper-V, but also in storage, remote access, server management, and general modularisation.

Windows Phone had a mixed year, with a sage in sales when Microsoft announced that Windows Phone 7 devices will not be upgradeable to Windows Phone 8, but ending more positively with relatively strong (in the context of a market dominated by iOS and Android) sales for new Windows Phone 8 devices.

image

It was a good year for Office 365, on-demand Exchange and SharePoint, which is now an obvious choice for small businesses migrating from Small Business Server and a plausible choice for medium and larger businesses too.

2012 also saw the launch of Office 2013. I am not so sure about this one. It is meant to be the version of Office that is touch-friendly and cloud-centric. It is not too bad, but with its washed-out appearance and various annoyances it hardly seems a compelling upgrade. Office needs a “Windows 7” release, one where Microsoft focuses on what Office users find slow and/or irritating and sets out to fix the issues.

Adobe’s cloud and HTML transformation

Microsoft took too much of my attention in 2012, something I hope will change in 2013, but one company which caught my attention was Adobe. Without great fanfare, it has successfully switched the business model for the Creative Suite (PhotoShop, Premiere, Dreamweaver and so on) which forms the largest part of its business to a subscription-based model with cloud delivery and additional cloud services. It has also moved its technical platform away from Flash and towards HTML with less pain that I had expected, and is coming up with interesting new tools in its Edge range. Most impressive.

RIM and Blackberry: all to prove in 2013

2012 was painful for RIM, which saw interest in its Blackberry platform decline to the point where many now consider it of little relevance in mobile, but mitigated by intense effort to engage its developer community in preparation for the launch of Blackberry 10 devices at the end of January 2013. It may be too late; but the new OS does have attractions, especially in business where there is innovation in the way it separates business and personal use of a single device. Is Windows Phone or Blackberry 10 the third mobile platform after iOS and Android, or will these two stragglers simply weaken each other while Apple and Google dominate?

Amazon web services: fast pace of innovation

Amazon dominates the IaaS market and with good reason: relatively low prices, high quality of service, and fast pace of innovation. It was this last that most impressed me when I attended an update last November. Amazon prefers to talk to developers and businesses rather than the press, and its services are perhaps under-reported relative to its competitors. An impressive operation, with an inspiring CEO.

Google the winner in 2012

It may not have vanquished Facebook, but of all the tech giants Google has had the best year, with sustained success in search and advertising, huge Android sales and the establishment of the operating system on tablets as well as smartphones, thanks to Samsung and Google’s own efforts with the Nexus range. Google also won some kudos versus Apple following the iOS 5 maps debacle, with Apple’s own mapping efforts found wanting.

Not everything has worked for Google, yet. The web-centric Chromebooks are out there, but whether there is much appetite for netbooks that run everything in the browser is an open question; there are security advantages to this computing model, but users would rather have Android with its rich app ecosystem and greater freedom.

How will Google monetize Android, in the face of further fragmentation and a competitor like Amazon helping itself to what is free but building its own commercial platform on top? Another open question, though my guess is that Google will find a way.

Google rationalised its services in 2012 and pushed hard on its social platform, Google+, but failed to make much dent on Facebook’s popularity.

At the end of 2012 we were reminded of the downside of reliance on cloud providers when Google pulled Exchange ActiveSync support from its free email service. Existing users are not affected, but new users will find it harder to set up Gmail accounts on devices such as Windows Phones. Free users can hardly complain, but if they have become reliant on a gmail address there is an element of lock-in which Google is now using to discourage users from using a competitor’s mobile device.

2013?

A few predictions. More Microsoft fireworks as the PC and laptop market continues to decline; Apple vs Android wars; a strong play from Google for the Office/Exchange/SharePoint market. What else? If the past is anything to go by, expect some surprises.

Microsoft scraps Expression Web and Design, blends Blend with Visual Studio

Microsoft is giving up its long effort to compete with Adobe in the design tools space. The Expression range of products is being discontinued, in favour of enhanced design capabilities in its developer-focused Visual Studio. Blend for Visual Studio continues, as a design tool for Windows Store apps and Windows Phone apps. A future edition of Blend for Visual Studio, currently in preview, will add WPF (Windows Presentation Foundation), Silverlight, and SketchFlow support. The release version of this upgraded edition is promised for Visual Studio 2012 Update 2.

The new product plans are announced here:

Microsoft is consolidating our lead design and development offerings — Expression and Visual Studio — to offer all of our customers a unified solution that brings together the best of Web and modern development patterns.

Expression Web, the web design tool which evolved out of FrontPage, and Expression Design, a vector drawing tool, will be discontinued completely. Microsoft’s web design tool will now be Visual Studio.

One consequence of this decision is that Expression Web 4 and Expression Design 4 are now free downloads, though unsupported.

Expression Encoder, for converting media for streaming, is also being discontinued, though Expression Encoder Pro will remain on sale throughout 2013. Microsoft says it is still investing in format conversion as part of Windows Azure Media Services.

Is this a good decision? In one sense it is a shame, since Expression Web is a decent product. At least one longstanding user of the product is disappointed:

For Microsoft, the web is dying and the future lies in Windows 8 apps. When asked what we web developers should be doing the answer was the same: Make Windows 8 apps. Which is about as useful as telling a contractor to start erecting tents instead of houses because houses are no longer relevant. Anyone outside the reach of whatever reality distorting force field they have running at the Redmond campus can see how idiotic this is, but that hasn’t stopped the people in charge for pulling the plug on one of the few applications from the company that had something new to offer.

That said, Expression Web has been available for a number of years and made little impression on the market, so how much value is there in continuing with a tool that few use, irrespective of its merits?

The decision makes sense in that Microsoft is shutting down an unsuccessful product line in order to focus on a successful one, Visual Studio.

Further, the end of Expression illustrates the difficulty Microsoft has had in attracting designers to its platform, despite high hopes in the early days of WPF and Mix conferences in Las Vegas.