As developers we live in interesting times. The advent of Windows 8 has changed the landscape for many developers and the move from the desktop to tablets and mobile presents even more challenges. We turned to Dave Wheeler, the keynote speaker at next month's DevWeek for help and advice.
"...developers need to take on board the fact that the computing ecosystem is changing. Windows 8 is a wake up call to developers that change is coming: the exact pace of that change is up for debate."
What are the new and important technologies being introduced or highlighted at this year's DevWeek?
Windows 8 has to be the most important, but as we had a fair idea of what was coming in 2012 it can't really count as new. Even so it will be in the limelight throughout this year's conference. Similarly, we’ve known about HTML 5 and CSS 3 for a while. As a client developer, these are the obvious areas to focus on.
There are some fun novel areas to take a look at, such as functional programming, Roslyn, Rx and SignalR, which it would be easy to overlook. And there are some interesting talks on technologies such as PhoneGap (AKA Apache Cordova).
My tip to anyone attending DevWeek would be to choose at least one talk that’s outside his or her normal area of work: you never know what it might trigger.
How does Windows 8 change the Microsoft programming ecosystem?
Not at all, for the majority of corporate developers.
Clearly, developers that are targeting home users will consider embracing Windows 8 Store Apps. However, I’m forecasting that the vast majority of usage of Windows will continue to come from traditional applications that work across the range of Windows XP, 7 and Windows 8.
Which means that they will be continue to be developed in classic C++ and .NET.
However, developers need to take on board the fact that the computing ecosystem is changing. Windows 8 is a wake up call to developers that change is coming: the exact pace of that change is up for debate.
What are the most important things that developers need to understand about developing for and in the Windows 8 environment?
It’s different, in every way.
Many developers are simply not used to designing applications that work on low-power devices, which are driven through touch, and which run under such stringent platform constraints.
They’re not used to dealing with the Application Lifecycle Model, monetizing applications through advertising or in-app purchases, and which work on the different form-factors.
So it is not just a new API for writing Windows applications: the shift in thinking that is required is as great as that in moving from desktop Windows to iOS.
Of course, the good news is that developers can work with languages and tools that they are familiar with, thus making the transition as painless as possible.
Given the prediction that users will increasingly move from the desktop to mobile devices, how best should .NET programmers protect themselves from the future?
The best solution is to win the lottery! Or become a plumber.
More seriously, though, .NET is still an excellent platform for developing on mobile devices, with support via Mono on Android and iOS/OSX, and with great support on all flavours of Windows. .NET remains an excellent server-side technology with ASP.NET MVC, and WPF is still the best technology for building robust, complex desktop applications.
So there’s absolutely no need to rush off to another technology just yet.
Whilst it is easy to assume that HTML is the “better” technology for working across the different devices, anyone who has tried to build an app that looks good and works well in HTML will realise that it is non-trivial.
"Clearly, there are fad technologies that might be “hot” right now, but the key to being a good developer is having a breadth of skills, and excellence in a few key areas such as OO principles, testing and knowledge of the entire software development lifecycle."
And what technologies are vital to learn to ensure a successful future?
There is no one technology. Developers are still maintaining systems written in C on Windows, so there is scope for a good career across a range of technologies. Clearly, there are fad technologies that might be “hot” right now, but the key to being a good developer is having a breadth of skills, and excellence in a few key areas such as OO principles, testing and knowledge of the entire software development lifecycle.
As much as anything, developers need to ensure that their other skills are in good order: their ability to contribute to teams; their attitude; their business awareness; their professionalism and their willingness to learn.
Finally, canyou give us your impressions of DevWeek for those anybody who hasn't attended it
One of the great things about DevWeek is that it encompasses so many different areas of development, design and architecture. When I used to attend as a delegate, and it was much smaller then, I always used to find it a challenge as I wanted to see nearly all the talks! And now its even larger that must be even more of a problem.
What hasn't changed is that it's still a laid back, informal conference where the speakers don’t disappear from sight and there’s lots of opportunity for an informal chat, preferably over a drink, as well as the many breakout sessions.
DevWeek 2013 runs from March 4-8. It starts and ends with two sets of full-day workshops with the 3-day conference beginning on Tuesday March 5.
Dave Wheeler is an independent software consultant specializing in Microsoft .NET technologies. He’s also an instructor for DevelopMentor, where he’s co-author of the upcoming class on Windows 8.