Recently in Rants and Raves Category

Microsoft released Windows 8 in October 2012, with its key feature being a new tablet-friendly user interface and store-driven app model, though a slightly improved desktop lives alongside it.

It is not going well. Here is a user comment on Gizmodo that says a lot about the majority reaction to Windows 8:

Im still using a computer with win7 on it, so I had not had much experience with win8. That changed when I helped my girlfriend buy a new computer for her mom. In all honesty, we found the win8 interface a huge pain. It took forever to figure out how to use it, and in the end we did everything we could to get back to a normal non-tile setup. Heck, it takes like 3 menus just to get to the shut down screen! Its insane, and the overall experience for the 3 of us was negative (two of which are very experience computer users).

Spelling and grammar left as-is! Note a few features of this comment:

  • The person who wants the new Windows machine is the parent. I notice this frequently: a significant part of the Windows market is older (I am not saying elderly!) people who are less interested in the latest shiny new thing and more interested in sticking with their existing trusted apps and familiar user interface. The changes in Windows 8 are not welcome to this kind of user.
  • The new features in Windows 8 are perceived as obstructive.
  • There is no mention of touch control or new-style apps. It is a guess, but since the largest market for Windows is low-end laptops without touch screens, it is a fair bet that this is what it was.

The business world is different, of course, and here things like Hyper-V virtualisation or Windows To Go secure deployment are more likely to be appreciated. People are not so different though, whether they are at work or at home, and given that most Windows users spend most of their time on the desktop (hard to avoid however much you like the "Modern UI") I've noticed similar reactions from business people trying out Windows 8.

That is, if they have tried it at all. Most businesses I encounter are sticking with Windows 7.

With PC sales in probably permanent decline, in favour of other computing form factors, is Windows now set to become a legacy workhorse operating system? Will it ever break through on tablets?

Microsoft's official position, as far as I can tell, is that everything is fine. Leaked builds of the next major update, known as Windows Blue, show only minor changes:

  • New 50-50 Snap view for modern apps
  • Easier and richer Start screen customization
  • New tile sizes for the Start screen
  • Internet Explorer 11

Of course there will be more to come; the recently announced Build conference in June is when we will find out more. The stage is set for Blue to be generally available by the end of the year.

I am guessing though that Microsoft does not intend to implement what many users would like, things like:

  • Making the Modern UI easier to ignore, by booting straight to the desktop and having file associations set by default to desktop rather than Metro apps
  • The ability to run Windows Store apps in a desktop window
  • An option to use the old Start menu

I do see Microsoft's thinking here. There is not much point in making a brand new platform, and then designing it so users can easily ignore it.

It is also true that if Windows 8 had simply been like Windows 7, but a bit better, that would have done nothing to stem its decline.

On the other hand, Microsoft's attitude to the problems people have with Windows 8 seems to me denial. More could be done to help desktop (that is, most) users get to grips with Windows 8. For example, I would like to see small visual clues to the presence of menus and "Charms" features (the right-hand menu which hides many settings, search and sharing features), an easier way to raise the Charms menu with the mouse, and a visible Start button on the desktop.

Windows 8 usability is fine if you make the effort to learn it, but making that effort is hard to justify when the world of modern apps is uninspiring. This is the second and most important area that must be improved, if the world is ever going to want versions of Windows beyond 7. There are few delightful apps, and a large part of the reason is that the built-in controls available to developers for building apps tend to be blocky in appearance, inefficient in use of screen space, and short on important features.

Miguel de Icaza, of Mono, Gnome and Xamarin (C# for mobile) fame, said on The Register that "the new Windows basically has no style. The style is DOS with large fonts." A little unfair, but he has a point.

We also need to see further unification of Windows 8 and Windows Phone 8. The phone side does have some momentum now, and the app story is better. Why not enable Phone apps to run on Windows 8, as iPhone apps do on the iPad, as well as making it easier for developers to target both phone and tablet with new projects?

Finally, it is time Microsoft came up with inspiring examples of Windows Store apps that really are a joy to use. There are a few good ones. I still like the weather app, and Fresh Paint is a good effort though sadly has not made me into an artist. More is needed though, and I am guessing that Microsoft's own developers have the same problems that third parties have faced in trying to code for the new platform.

Yes, Microsoft does need to fine-tune the Windows 8 user interface to make it more enjoyable for upgraders; but what is even more important is that Windows "Blue" needs to improve the Windows Runtime platform. That is the thing to watch for at the forthcoming Build.

Microsoft launched Windows 8 late last month, to a storm of controversy and uncertain initial sales. What is going on with Windows and should you care about Windows 8?

joblogwin8.png

The controversy comes as no surprise to anyone who has been paying attention. Windows 8 is two operating systems in one.

On the desktop side it is a slightly upgraded Windows 7: slightly faster and quicker to boot, revamped File Explorer, better Copy function, improved Task Manager, Hyper-V virtualisation, and a few other things, though a little less pretty thanks to the removal of the transparent Aero theme in favour of a plainer appearance.

These are nice improvements, but the real innovation is in the new Windows Runtime platform, in which apps are sandboxed, support touch control, run full screen, and are easily installed from the Windows Store or by distributing an application package, which is called sideloading. Sideloading is mainly restricted to developers or enterprise deployments.
Microsoft ensured that the tablet personality would not be ignored by replacing the Start menu with the Start screen, a new-style app. This also ensured that newcomers to Windows 8 would find it unfamiliar and difficult to navigate.

Another contentious issue is that Windows Runtimes apps - officially called Windows Store apps - look stupidly large and bold on large desktop displays and do not work at all across multiple monitors.

Underlying Windows 8, especially in the new tablet personality, is a design concept with a couple of notable features. One is "content before chrome", the idea that content rather than screen furniture should be foremost. This has led Microsoft to have many essential controls hidden by default; you have to right-click or swipe to see them. You can see the point, but unfortunately this is bad for learnability.

Another is a grid layout, giving rise to the tiled appearance which characterises Windows 8. It is neat and logical, but constantly looking at boxes can be wearisome.

That is the preamble. What is the business impact of Windows 8? Here are a few observations.

One is that the learnability issues in Windows 8 are sufficient to deter upgrades, both in the consumer and business market, even though it is an improvement on Windows 7 once learned. Bearing in mind that the desktop improvements are relatively minor, most IT administrators will conclude that Windows 8 is not worth the hassle.

Therefore, we can expect only a slow uptake by businesses.

Against that, Windows 8 does work much better than Windows 7 on a tablet without keyboard and mouse. What if you have a project which is suited to tablet deployment, or users who simply prefer to use a tablet, does Windows 8 make sense then?

In many ways it does, with easy app deployment and a touch-friendly user interface - provided you stay away from the desktop side. However, it is up against Apple iPad and Google Android which are more mature as tablets, and already well understood by users.
The availability of Office and compatibility, in the case of the x86 version of Windows 8, with existing applications may swing it for Windows 8 in some instances, though since existing applications are generally not designed for touch control that compatibility is less useful than it first appears, if what you want is a tablet.

Windows 8 strikes me as a decent version 1.0 of a new tablet platform, though with some of the weaknesses that you associate with a 1.0 platform. The modern-style Mail app is poor, for example, which is surprising given how critical it is.

Considered as a tablet OS, Windows 8 is already usable and has plenty of potential; but the hard question is whether Microsoft is able to establish a third tablet platform at this stage in the game. The company has the money and the resources, but has struggles to engage its developer community, OEM partners or retailers to fully understand and support Windows 8. In this context, the unexpected departure of the key executive driving the platform at Microsoft, Steven Sinofsky, looks like a disaster.

On the developer side, Microsoft lost substantial trust and goodwill over the repositioning of .NET in Windows 8. After telling developers for a decade that .NET was the future, the company now says it is one among three equals, with C++ and HTML/JavaScript the other two. The way this was communicated, with little flow of information especially during most of 2011, left developers unsure how to plan future client applications and some simply migrated to other platforms.

Microsoft's biggest problem may seem nebulous, but it is real. The Windows brand is strongly associated with desktop, keyboard and mouse; the name also brings to mind unwelcome associations like forced reboots, virus warnings and troublesome setups. The new Windows 8 tablet platform is designed to escape that legacy; but changing public perception is not easy. In addition, it has to support its legacy since much of the world's business runs upon it.

The task of making Windows a successful tablet platform may be as hard for Microsoft as for Polaroid or Kodak trying to make the transition from film to digital; and those stories do not end well.

This translates to a whole lot of uncertainty, which is not what businesses want to hear.
Personally I like Windows 8, but its success and in particular the success of its tablet aspect is by no means assured.

That brings me back to the current state of play. Windows 8 is out, and it is controversial. Where is the Start menu? Why are there so few decent apps?

Since these issues were well flagged in advance, you would think that Microsoft was prepared for them, and ready to suffer some difficult quarters while building up the app ecosystem, working with its partners to help them with the transition, and energetically preparing service pack 1 with performance and usability fixes.

The alternative scenario is that Microsoft allowed itself to believe that the world would be instantly won over and when disappointed will respond with a lurch in another direction which would be fatal.

It is all fascinating to watch, but from a business perspective the right word is caution.

Microsoft is "trying to ruin the PC as an open platform", according to Markus Persson, creator of the popular Minecraft game, commenting on Twitter. Shortly after I saw a tweet from developer Casey Muratori, "I am very sad to say that Windows 8 is apparently going to be a closed platform. Why isn't anyone covering this?"

The issue has been covered, of course. Microsoft was clear about this (with the exception of one aspect) from the first detailed unveiling of Windows 8 in September 2011. In the Windows 8 dual personality, the desktop side is an updated Windows 7 and apps are installed in the same way, from setup files obtained from anywhere, but on the touch-friendly side formerly called Metro, apps are, for most of us, only installed from the Windows Store.

The ARM version of Windows 8, called Windows RT, is where the lockdown really bites. No desktop applications can be installed at all, so it is Windows Store or nothing for consumers.

The rules are different for businesses deploying custom apps, and this is where Microsoft has not been quite so clear. Deploying apps without the Store is called sideloading, and is possible subject to certain limitations. Sideloading is described here. In summary:

  • On Windows 8 Enterprise edition, you can sideload by setting a registry key and signing apps with a trusted certificate.
  • On other versions of Windows 8, including Professional and the ARM edition, you need to "activate the sideloading product key" before sideloading will work. What is this? It is not clear, but normally a product key means the long serial number used to install Windows. This does not sound like something that most users will have access to.
  • Developers can install apps using a developer license, but such licenses will expire so this is not a long-term deployment option.

The immediate conclusion then is this:

  • The desktop side of Windows 8 on Intel is equally open as older versions of Windows
  • The tablet side of Windows 8 is designed to be restricted to apps downloaded from the Store in most cases, other than for businesses with custom apps

Since Windows 8 on Intel is open on the desktop side, smart people will likely soon work out how to overcome app restrictions on the tablet side as well. Windows RT may be more challenging, but I imaging jailbreaks will come along for that as well. The rules still make a difference though, because only a minority is willing to hack their machines.

Is this the beginning of the end for Windows as an open platform? That is an interesting question, and I have seen predictions that the desktop will wither away, such as this from former Microsoft employee Hal Berenson:

The Start menu, and indeed the entire desktop, are legacies that will have to be removed from Windows over time.  While the desktop itself is probably with us for a couple of additional major Windows releases (though there may be truly desktop-free editions sooner than that) ...

Still, even if Berenson is right, desktop Windows on Intel will be with us at until Windows 10 in say four or five years time, which means maybe six or seven years before a potentially desktop-free Windows 11. None of us can see that far ahead though. If Windows RT takes off, we could be thinking of Windows as mainly a tablet OS much sooner than that.

On the other hand, if the tablet personality in Windows 8 fails to achieve its goals, desktop Windows may remain the main version forever until Windows fades away.

Nobody knows, though it is fun to speculate. However, it is interesting to examine why Windows is becoming less open and whether or not this is a bad thing.

Microsoft could not get away with this so easily without Apple, which came up with the "App store only" model for the iPhone and iPad. That makes them closed platforms, and makes Apple a ton of money from store fees, but users are happy because app store prices are generally low, plenty of apps are free, and there is no uncertainty about "where do I get apps for my iPad?", and the App Store is curated so that it should be malware-free, and if malware were to sneak through, it would soon be removed.

In a business context, where administrators want full control over which apps are installed for security and stability reasons, a closed platform is mostly a good thing. A closed platform in combination with the sandboxing of apps on the tablet side is a very good thing.

What about open source? What about consumers? There are fundamental objections to closed systems, which inherently put too much power in the hands of the platform owners. How can we be sure that Microsoft, for example, will not favour its own applications over competitors for things like Office? This is already the case with Windows RT, which comes with Office pre-installed and no way to install an alternative on the desktop side.

On the other hand, the openness of Windows, once a benefit as it encouraged a strong application ecosystem, has become a disadvantage. Users love the performance, stability and clean user interface they get on an iPad, versus Windows machines which more times than not are spoilt by apps running on startup that are not needed, mysterious toolbars that appear unasked in web browsers, along with adware and sometimes malware.

Anybody looking at Windows today would conclude that the system needs to be brought more under the user's control; and that is hard to do without lockdown. Windows Store apps in Windows 8 are easy to install and, more important, easy to remove.

There is every likelihood than that both businesses and consumers will see the lockdown in Windows 8 more as a benefit than a burden; which is actually a good reason for those who may in consequence lose out (like Valve which runs a games store for Windows) to shout loudly about the issue.

The case is not simple though, and on balance most users may well be better off with a less open system than they currently enjoy.

Finally, remember that Intel Windows 8 on the desktop side remains as open as ever, and will be for the foreseeable future.

Windows 8 has been released to manufacturing, along with Windows Server 2012 and Visual Studio 2012. There is also a major new version of Office, Microsoft's other mainstay, due for completion around November this year.

These releases are more than just the usual round of updates. On its tablet-friendly Metro side, Windows 8 has a new runtime and user interface which is almost a platform within a platform. Microsoft consciously reformed the Windows API, with much of it unavailable from the Metro side, applications sandboxed, and asynchronous programming enforced.

If you do development in Microsoft Office, you will find a new application model there as well. Called Apps for Office, this is a way of embedding web applications either in a document (only supported in Excel at the moment) or in a task pane alongside a document (supported in Excel, Word and Project). Outlook 2013 does not have a task pane, but uses a similar approach for new-style Mail apps, a separate pane that displays alongside an email.

The significance of Apps for Office is that being web-based, they also work in Office Web Apps. This means that an application developed for the new model will run on platforms where the Office 2013 client is not available, including tablets and Macs.

There is a lot of sense in Microsoft's approach, whether or not you like the blocky Windows 8 Start screen, or the washed-out user interface in Office 2013. That said, it is a big ask for developers. The problem is not only the amount that developers will have to learn, but also what they need to throw away.

When Visual Studio 2010 was released, frameworks including Silverlight, Windows Presentation Foundation and XNA (for games) were positioned as strategic APIs in which developers could invest their time and effort with confidence. A few years later, and all those frameworks look like legacy.

If Windows RT (that is the ARM version) takes off, developers have to come to terms with a wave of Windows devices that do not run their desktop applications at all.

On the mobile side, loyal Microsoft-platform developers have endured a rollercoaster ride trying to keep up with how the company says you should develop today. Windows Mobile 6: C/C++ is in. Windows Phone 7: C/C++ is out. Windows Phone 8: C/C++ is in again.

The question developers will be asking as Windows 8 and Office 2013 roll out is this: how can we be sure that innovations like the Windows Runtime or Apps for Office will still be worth developing for by the time Visual Studio 2014 comes around?

I am inclined to agree that the Windows platform needed reform, and despite a few jarring changes there is a lot to like in the 2012 wave. But what the company now needs is a period of consistency and consolidation, otherwise its developer community will simply lose faith.

 

Why would a company take its core product and mess with it so that a significant proportion of its customers will almost inevitably dislike it? Welcome to Windows 8. Microsoft has taken its familiar operating system and bolted on a Tablet OS called variously Metro-style, or the Immersive UI, or from the developer perspective WinRT (Windows Runtime).

I have been working with Windows 8 since the launch of the Consumer Preview at the end of February, both on a slate device and on my usual desktop PC. It has not been a bad experience, but it has been distinctly odd, and at times distinctly annoying.

Putting two disconnected web browsers with different user interfaces in Windows 8 is a usability disaster, for example. I find myself losing tabs, or right-clicking to raise the tab selection UI forgetting that I am in the desktop browser.

Another problem is that the taskbar, reliable task-switcher since Windows 95, is broken in Windows 8, since it does not show which Metro apps are running.

Presuming you are not using a slate, the pragmatic solution is to avoid the Metro side and just use the desktop. This is difficult too though, partly because of the Start menu which is Metro-only, and partly because some utilities are now Metro. Sometimes these also exist in their old versions, at least in the Consumer Preview, leading to a surreptitious Metro-avoidance search.

Take the new Remote Desktop Client, for example. Raise the Start menu, type Remote, click Remote Desktop, and off you go. Then you discover that the settings are minimal and hard to find, and that when you do connect, it only runs full-screen (like all Metro-style apps). What if you do not want it full screen? Maybe the old one is buried here somewhere?

So you press Windows+R for the Run dialog and type mstsc, and up comes the old one. Thank goodness, pin to taskbar.

This is all very well, but if you run a corporate helpdesk the prospect of constantly advising users on how to avoid Metro or work around its limitations is unwelcome. Unless Microsoft can work some magic between now and launch, businesses will be patting each other on the back for sticking with Windows 7 for years to come, at least until Windows 9 arrives.

That will a shame, since there are also plenty of good things in Windows 8, even leaving aside Metro. Hyper-V virtualisation is one, Storage Spaces another (though probably of little relevance to businesses), networks connect faster, and performance feels snappier overall.

So what is Microsoft up to? The problem it faces is encapsulated by a conversation I had with someone who works in the City of London the other day. "I am getting an iPad," he said. "It is changing the way we do meetings."

Apparently it is now common for documents to be sent out as PDFs and viewed on an iPad. Somehow, the difference in usability, portability and battery life between a laptop and an iPad is enough to tip the balance from paper to electronic documents.

Microsoft fears this, because it sees that as iPads and other tablets improve, and the apps become more powerful, the moment will come when there is no need for a laptop at all.
Put another way, it is touch-controlled tablets that will be the growth area in personal computing, not the usual cycle of Windows upgrades.

This is why Microsoft cares more about the tablet experience in Windows 8 than about the desktop experience. In particular, the Windows on ARM devices, which should be equally as lightweight and power-efficient as an iPad, will in theory be a compelling option for City users who want an e-reader for meetings. They get real Excel and Word as well as all the usual Tablet benefits.

That is the theory, though after using Windows 8 on a tablet at a conference last week I have concerns there as well. The snag is that it is even harder to avoid the desktop when in Metro, than it is to avoid Metro when in the desktop. Windows 8 has a much better on-screen keyboard than Windows 7, but all the fundamental usability issues of touch-control in Windows remain in the Windows 8 desktop.

The fix will be more and better Metro apps, but by the time Microsoft has it right, how far behind Apple and Android will it have fallen in this market?

I am reserving judgement, because despite the annoyances, Metro-style Windows does work well on a tablet, and I do value having a combination device that runs everything. Microsoft is apparently re-working Office for Windows 8, even though it remains a desktop application, and this combined with improved Metro apps should considerably improve the tablet experience.

The controversial Start menu becomes one of the best features when you are working with touch, and apps are easier to find and launch than on iPad or Android.

It is not all bad then; but there are plenty of reasons for caution when it comes to Windows 8 in business. Perhaps the real significance of Windows 8 is not so much Metro, Windows on ARM, and the debate about how well they will do, but rather the underlying trend which has caused Windows 8 to be what it is: the unexpectedly rapid ascent of tablet (and by implication, cloud) computing thanks to Apple's iPad.

Gil Zilberfeld, an agile practices expert, has posted on 4 warning signs that Agile is declining. I will not re-iterate his points; you should read the article for yourself. The overall theme though is this. The software establishment - including the managers, the consultants, the trainers, the vendors - has embraced Agile, to the extent that, according to Zilberfeld, more than half of software projects at least nominally use Agile methods. The results are disappointing though, because companies have simply absorbed bits of Agile into their existing top-down management culture. Therefore:

At this point, I feel Agile is declining into what TQM [Total Quality Management] was. A brilliant success in the beginning, and now just a history fact. In a few years, months even, the business side will wake up and say: Agile is snake oil. It doesn't deliver on its promise (and it doesn't matter if it's done wrong). The backlash will be grand.

I am reminded of something I learned from one of the excellent QCon conferences in London, which covers Agile in depth. It was not so much a specific speaker or talk, more a common theme running through many presentations. Software projects generally do not fail for technical reasons. They fail because the team - using the word team in its widest sense, to include all project stakeholders from users to executives - fails to communicate effectively. Many Agile techniques, such as the daily meeting which is part of the Scrum methodology, are designed to facilitate communication. I have also heard recommendations such as moving developers into the same office as managers in order to get them talking to each other. Another example, at a micro level, is Pair Programming, where two developers work side by side on the same code. You cannot do this without communicating your intentions, ideas and solutions to the person alongside you.

Kent Beck, one of the pioneers of Extreme Programming and Test Driven Development, highlights the human factor in software development. Take a look, for example, at his essay on Accountability in Software Development:

... while programming I offer accountability as a way of demonstrating my trustworthiness and encouraging my own best behavior. Pair programming; test-first programming; continuous integration; visible daily, weekly, and quarterly cycles; slack; and estimation are some of the way I make public commitments and render account of my activities. Knowing I will be honest and accountable affects how I do my work, just as knowing that I am hiding and concealing negatively affects how I do my work. Taking responsibility for my choices and actions deflects blame. There is no hidden shame if everything I do is above board.

What is important here is not the techniques in themeselves, but the trustworthiness and accountability they facilitate.

Human problems are harder to solve than technical problems, and seen in this light it is not surprising that companies which adopt bits of Agile methodology without changes in corporate and management culture will miss out on most of the benefits.

Another common experience at software development conferences is to talk to developers who enthuse over the insights they have received, but then lament that they cannot be applied in their workplace. The reasons are old and familiar: inflexible management, longstanding broken processes that nobody seems able to fix, little kingdoms which protect their borders at the expense of the effectiveness of the whole corporation, and so on.

A few thoughts in conclusion. First, if Agile projects are failing, that does not necessarily imply that something is wrong with Agile methodology. It all depends on how it is done and whether the people involved are embracing or resisting the change and communication that goes along with it. Second, irrespective of the methodology, effective communication is key to the success of a project; and if it is not possible to change the methodology or even the tools and technology, working on team communication may still yield amazing results.

Enhanced by Zemanta

It is a little early for a review of the year, but not too early to state that 2011 has brought profound changes to the software development world. Although I am thinking mainly of the client, I would also argue that client and server are so intertwined that both are affected. As an example, I have heard developers moving away from SOAP web services not because of any conviction that REST is a better approach, but because the move away from Windows and towards HTML clients makes SOAP web services more difficult to consume.

So what's changed? Simply put, three platforms which once seemed strategic are now in obvious decline. Getting the nuance right for these platforms is tricky. Lots of software still runs and is still widely used long after it has ceased to be strategic for the company which supports it. All the platforms mentioned negatively below are still in active development; they are not going away and will still be running ten years and more from today. They come with health warnings though: depending on these platforms means that your software will gradually become more difficult for users to run and will be left behind by new technologies.

The decline of Silverlight

In the run up to the launch of Microsoft's Visual Studio 2010 I spoke to a number of Microsoft platform developers. The consensus then was that Silverlight was very important and possibly the future of Microsoft's client. The view was supported by the company's energetic development efforts for Silverlight. It also made a lot of sense: a lightweight, secure, cloud-centric client that escaped the GUI limitations of Win32, worked in the browser or as a desktop application, and as a bonus run on Mac as well as Windows. Silverlight, as I noted in several articles, is client-side .NET done right.

This is not the place to write a long screed about why Silverlight failed, but rather to note that at the end of 2010 it became obvious that Microsoft was changing direction. At the Professional Developers Conference, October 28-29 2010, it was hardly mentioned, and the company focused instead on HTML and Internet Explorer 9. The full extent of its new strategy was not shown until this year, at the BUILD conference in September.

It is not only external developers that were surprised by what seemed a sudden change of direction. The same seems to be true of many within Microsoft itself. Nor am I sure exactly when someone decided that Silverlight was no longer strategic, though there are clues in the Silverlight release schedule. When Silverlight 4 was unveiled in November 2009 it was still ascendant. Silverlight 5, due out shortly, suggests that it was still considered important in early 2010. Visual Studio LightSwitch released this year was likely planned in part as a way of boosting Silverlight, since it builds Silverlight applications. But nobody is talking about Silverlight 6.

Silverlight is still the development platform for Windows Phone 7, but many observers, myself included, believe this will give way to a variant of the new Windows Runtime (see below) in a future version.

This has been a costly experiment for Microsoft. If the company had done the Windows Runtime, rather than Silverlight, back in 2007, imagine how much stronger would be its position now. That said, it is not all wasted. XAML, the presentation language in Silverlight and in Windows Presentation Foundation, continues in the Windows Runtime, and so does the essence of the cloud-centric, client-secure development model.

Adobe Flash Deprecated

Back in 2007 Silverlight seemed to be in part a competitive response to the increasing popularity of Adobe Flash. This month though, Adobe went though wrenching changes of its own, announcing the end of Flash on mobile browsers and a fundamental shift in business strategy away from enterprise development and towards content creation and distribution.

There are plenty of parallels with the Microsoft case. One is that the changes also came as a surprise to many within the company, who just a few weeks before, at the MAX conference in Los Angeles, were talking confidently about the future of Flash and of Flex, the application-centric SDK for Flash. Here is Doug Winnie, a casualty of the inevitable layoffs:

The product managers, evangelists, community managers, and developer relations team members found out the news and the way it was communicated at almost the same exact time you did. They are wrestling with the news and your reaction in real time--so please be supportive of them as they dig through everything.

and here is Duane Nickull:

While on the 3rd day of my vacation in Mexico, I got the call with the explanation that Adobe is doing a major refocus and as part of that, many of us "enterprise" types are no longer required. "Überflussig" I guess is the correct German word for the situation. Keep in mind that I now speak as an individual, not as an Adobe employee. I missed most of the official story due to the timing of my vacation but caught up with a few news outlets to get the rationale.

But isn't Flash still going strong on desktop browsers, and the Flex SDK heading for great new things as an open source project at the Apache Foundation? Well, maybe. Adobe is not betting on that though; it is betting on design tools for content, HTML5, and packaging and distributing publications and apps. Its Flash technology is still critical to how that is done under the covers, but Flash itself will be invisible.

Adobe also says that its LiveCycle middleware will continue to evolve in two specific niches:

We will continue to sell and support our LiveCycle products in the government and financial services markets, two areas where the LiveCycle value proposition remains especially strong.

Again, maybe. This sounds more like Adobe keeping faith with some important customers, than a strong future for LiveCycle.

Win32 Deprecated, .NET changes

Microsoft announced another profound change in direction at its BUILD conference in September. Although related to the decline of Silverlight, this one deserves its own heading. What we saw was that the Win32 platform on which Microsoft has built its prosperity for the last twenty-one years or so (Windows 3.0 came out in 1990) is now being shunted aside. "Shunted aside" is the right term because it is still there in the forthcoming Windows 8, but it is side by side with the new Windows Runtime (WinRT) and a touch-friendly user interface called Metro. The company's goal is to create a platform that will succeed against Apple's iOS. It runs on ARM as well as Intel x86 and has its own Windows Marketplace, similar in concept to Apple's App Store.

Leaving aside the merits of WinRT, the big news here is that Microsoft is finally moving away from the Windows desktop on which most of us have done our work day to day for the last two decades. The reasons are obvious: mainly the rise of iOS and the iPad, but also the success of the Mac among developers and at the premium end of the laptop market. Windows was already in decline.

Your Win32 applications will work forever, but Microsoft's energy is now going elsewhere.

What about the .NET Framework on the client? It is still there, and thanks to the excellence of the C# language I expect it will be the most popular approach for coding for Metro. Parts of the Framework will no longer work in Metro though, and it may even be that HTML5 and JavaScript, which is equally well supported, will gradually supplant it. Nor do I take the success of Windows 8 for granted; Microsoft may find the tablet market already largely absorbed by iOS and Android.

That is speculation; but the long-term decline of Win32 is not.

Platforms ascendant

If these platforms are in decline, what the ones that are rising fast? That is simple to answer. Apple iOS, Google Android, and HTML5 in general. Are these good for the next two decades as in Win32, or will be on the deprecated list in a few years? That is hard to say; if I had to rate them in order of likely longevity I would guess this:

1. HTML, JavaScript and CSS

2. Apple iOS

3. Google Android

Predictions though are a dangerous game, and I would be interested in other opinions.

I attended Microsoft TechEd USA last month, where the news highlight was a bunch of new features in Visual Studio. Although Microsoft is not revealing what is coming for Windows 8 development, it has shown a bunch of new features ranging from code clone detection, which aims to find code that was copied and pasted rather than being properly refactored, to new IntelliTrace agents that are designed to find bugs after deployment, rather than just in code you are developing.

They are decent features, and it seems that the new Visual Studio will further extend what is already an impressive range of capabilities. I have spent a lot of time researching Visual Studio 2010, the current version, and considering the scope of the tool, from mobile devices to multi-tier enterprise applications, I hold it in high regard.

Talk to developers about what they want to see in Visual Studio though, and you can bet that neither code clone detection nor IntelliTrace agents will be on their list. They would rather Microsoft fixed annoyances rather than adding features which they might not ever use. Performance is always high on the list: not doing new things, so much as doing the same things faster. Quick access to documentation is another. If you are like me, you often end up searching Google rather than pressing F1, since somehow Google can search the entire internet faster than Visual Studio can summon its own documentation.

Why is Windows Vista considered a flop, whereas Windows 7 has flown off the shelves? I doubt it is to do with thumbnails in the taskbar, or even the Libraries feature, presenting multiple folders as one, a neat feature but often not well understood.

My guess is that better performance is the main reason, followed by hundreds of small usability improvements which Microsoft made. Windows 7 is not perfect, but it generally runs better than its predecessor.

There is always pressure to add features. If you are a software giant like Microsoft, there are marketing reasons; you need those bullet points to win upgrades, or think you do. If you are a corporate developer, there is constant pressure to meet new requirements.

The problem: it is too easy to lose sight of what users often care about more, which is the performance and usability of the applications and features they already use most often.

Somehow, at planning meetings it is hard to justify spending time on improving features that already exist, rather than creating new ones, yet for improving the productivity and even the happiness of users it is often the right thing to do.

I was interested to read Martin Fowler's piece on Cross Platform Mobile. Fowler is Chief Scientist at ThoughtWorks, which does software development and IT consultancy:

I think cross-platform mobile toolkits are a dead-end. It's just too hard for them to really mimic the native experience. If it's worth building a native app, it's worth building it properly, including an individual experience design for that platform.

I do not altogether agree, though he makes a good case and I accept that there are significant obstacles to success. I recommend his piece; all the issues he mentions are real and considerable.

On the other hand, I see it more in terms of acceptable compromises than a binary choice. An Aston Martin is better than a Ford, but a Ford will get me to work and costs less.

The question then becomes: how much compromise do you have to accept if you build a cross-platform mobile app?

Another issue: Fowler says web apps are a capable alternative route, but he adds:

When you do the web app, don't try to make it look and feel like a native app - make it look like a mobile web app

It sounds like good advice; but is there a UI standard for mobile web apps? I am also not sure what this advice means if you wrap a web app as a mobile app using a tool like PhoneGap. Even if you do not want to do this, it may be necessary in order to get access to more native features of the device. Should such an app aim to look more like a web app, or a native app, or is the whole idea a mistake?

Another tricky problem is that with multiple form factors, it is not clear when to apply mobile standards and when to apply desktop and laptop standards. An Apple iPad is a mobile device, but its screen resolution is 1024x768, which is pretty much a full size screen.

There is also a cost involved in not doing cross-platform development. If you only need to support, say, Apple iOS, then fine, get stuck into Xcode 4 and Objective C in the Apple-approved manner. If you need to support more than one platform though, the case is more difficult. Creating an "individual experience design" for each platform means that you have two code bases to maintain, and ensuring parity of features and fixing bugs in both become issues. Multiply the platforms, and it gets worse.

Adobe's Creative Suite is an interesting case. It works on both Mac and Windows, but the UI is more tilted towards consistency between the two versions, rather than looking native to each platform. Dreamweaver CS5.5, for example, looks nothing like a standard Windows application, with its buttons in the top frame of the main window.

However, I would rather have that, than what Microsoft has done with Office on Mac and Windows. The UI is different, the release cycle is different, the features are different, and in general I find it a better experience on Windows than on the Mac, whereas I am equally happy with Creative Suite on either platform.

My guess is that Adobe, with its own internal cross-platform tools, succeeds in sharing more code between the two than Microsoft manages, which is why it is able to deliver synchronised releases. It has tilted the balance towards consistency across platforms, rather than looking native, and that is a valid compromise.

That said, I have been conducting my own experiments with cross-platform toolkits and it is not going all that well. Each toolkit has involved compromises, even with a simple app, and performance has been an issue.

I can also see that the way navigation between difference screens in your app generally works is different on iOS than on Android. Which do you choose?

Cross-platform toolkits may not be desirable then; but they may be inevitable (like death and taxes) unless you have huge resources or are willing to lock-in to a single platform.

I also believe that performance issues will reduce as devices get more powerful, and that web technologies which are common between all the main mobile platforms form a runtime that goes a long way towards solving cross-platform issues.

Last week I attended QCon London, a conference focused on enterprise development and which spans multiple technologies, including Java, .NET, open source, database, mobile, and general development methodologies.

It is among my favourite conferences thanks to its vendor neutrality and the high quality of the speakers and attendees it attracts. Nevertheless, only a tiny fraction of developers make it to QCon. Vendor events like Microsoft TechEd or Oracle OpenWorld/JavaOne are bigger, and great for keeping up with what that vendor is up to, but tend to be less though-provoking as the content is steered by what one company wants to promote. It still seems to be only a small minority of developers that make it to such events.

There are lots of reasons for staying away: they are too expensive, or your company will not make the time available, or you are not convinced that there is enough signal above the noise, or you are too busy simply keeping up with the work you have already. Are conferences an unnecessary and costly distraction?

My view is the opposite. Of course I am a journalist and it is my job to track what is new; but I do some development as well, and feel that there is a real risk of falling into a safe pattern of work that makes us blind to new ideas that can quickly repay in productivity or quality the time spent in learning about them.

It is also remarkable how a good event can recover enthusiasm for the craft of writing software, something easily lost in the humdrum world of requirements and deadlines and sometimes dysfunctional corporate structures.

As for QCon, there were several things I came away with - though bear in mind that there were six tracks, so one person could only attend one sixth of what was on offer, keynotes aside.

I spent some time on the mobile track. A session by Fraser Spiers on the Apple iPad in education was irritatingly Apple-centric, but also stimulating in showing how a new model of computing can bring about profound and beneficial changes. I think we will see a lot of iPads in business computing too.

Jerome Dochez spoke on the future of Java EE, not the most exciting session but helpful to see how Java is embracing the cloud computing model.

Google's Patrick Copeland spoke on innovation at Google, with the underlying question being how to create a culture that is friendly rather than hostile to innovators and their ideas.

At the .NET State of the Art track I learned about creating RESTful services, both with the open source OpenRasta and with the official WCF Web APIs; I had not been paying attention to this area and it was an example of how attending a conference can highlight existing and important developments that you might otherwise miss. Of course being QCon the speakers were OpenRasta's author Sebastien Lambla and on WCF Microsoft's Glenn Block; exactly the people you would want to hear on these subjects.

On the last day at QCon I got best value from the NoSQL track. A simple example in a talk on graph databases and Neo4j, where the database needed to model social connections and answer questions like "Who are this persons friends, and the friends of his friends", convinced me that SQL relational databases are not the answer to every kind of data storage problem. Note that NoSQL stands for "Not only SQL" rather than "Never SQL"; you should choose the right data store for what you are storing.

The Guardian's Matt Wall described how the Guardian web site is migrating from Oracle to mongoDB, giving the rationale and describing the benefits. I had never looked at mongoDB before and it was a fascinating talk.

At a high level, QCon has its roots in Agile development methodology; and if you study this you find that much of it boils down to fostering communication between all of a project's stakeholders (not just developers). If you came away with one good idea for improving communication in your own organisation, the whole event may well have been worthwhile.

It does not have to be QCon. My point is that going out, talking to your peers, and getting this kind of input is enormously worthwhile, even in busy or economically testing times.

 

 

 

Current Vacancies from CWJobs

(* Required field)










Preferred format