10 reasons Windows 8 will be painful for developers
原文:http://www.techrepublic.com/blog/10things/10-reasons-windows-8-will-be-painful-for-developers/2885?tag=content;siu-container
10 reasons Windows 8 will be painful for developers
Takeaway: If you plan to develop Windows 8 native apps, be prepared for some hurdles. Justin James looks at some of the biggest problems you’re likely to face.
Since the release of the Windows 8 Developer Preview, people have had a lot to say about the experience of playing with it. But few folks are talking about the changes it represents for developers. Windows 8 is the biggest update to the Windows development model since the move from Windows 3.X to Windows 95. While there are lots of good things, there are also a lot of pain points. If you are looking to develop Windows 8 native applications with the new Metro UI and WinRT API, be careful of these 10 things.
1: Market reboot
If you want your applications to be fully compatible with Windows 8 (including running on ARM CPUs), you’ll need to do a full rewrite in Metro/WinRT. This may be great for developers looking to break into markets with established players. But if you are the established player, you are suddenly back at square one.
2: The asynchronous model
Windows 8 development is highly dependent upon asynchronous operations for anything that is long running. While that may be a cute trick in some scenarios, it is downright frustrating in others (like trying to download a file). It isn’t just the work needed to handle the async call; it’s things like error handling and reporting problems back to the user. It requires a whole new approach to the UI from what developers (especially WinForms developers) are used to.
3: Lack of direct disk access
Windows 8 cuts off direct access to the system in quite a few ways, but the one that will hurt typical developers the most is the lack of disk access. Windows 8 follows an extreme isolation model for applications, and if your application requires access to data outside its own confined little world (including networked services you can access), you can forget about porting it to Windows 8.
4: Touch UI paradigm
Unless you have been writing a lot of mobile apps, shifting to the new UI style, which is designed for touch interaction, is going to pretty tough. It took me a long time to get a feel for what works well and what doesn’t. To make things more difficult, what looks and works well on a screen using a mouse and keyboard can be a poor experience with touch, and things that work well with touch often are a struggle to use on the screen. It’s a tricky balancing act, and as the uproar over the Metro UI in Windows 8 shows, even Microsoft is struggling to get it right despite having had a few years of Metro experience.
5: Playing by Microsoft’s app store rules
If you want to be using the Microsoft app store, you will need to learn to play by its rules. While the rules are fairly reasonable, it will be a jarring experience if it is anything like the WP7 App Hub. For starters, Microsoft rigorously inspects the application and looks for all sorts of things, like unhandled exceptions and circular UI paths. Although this ensures a high quality app, it can be a surprise to developers. In addition, you need to work with an approval process. The details of the Microsoft application store are still under wraps, but recent experience with WP7 suggests that it won’t be fun.
6: Heavy emphasis on cloud
While there is no mandate to use the cloud, Web services, and other off-premise techniques and technologies, it is most definitely encouraged. Things like automatic syncing of settings and data between devices (regardless of how it is done) will become the rule, not the exception, and users will be expecting it. Windows 8 makes this easy (you can have your locally saved information synced automatically with Live), but you will want to be judicious about how you do it for sensitive data. Encryption and other privacy and security techniques will become more important than ever.
7: Shift to “contracts” and “interfaces” for interop
One unique aspect of the Windows 8 paradigm is the idea that applications can provide services to the OS (such as acting as a source of contacts or pictures), as opposed to just dumping the data into a common directory. This allows all sorts of sweet application concepts. But even though this is easy at the technical level, it’s difficult to figure out how to leverage at the conceptual level.
8: Market uncertainty
Now we get into the more high-level pains. Microsoft is clearly pushing Windows 8 for tablets and maybe even phones. Right now, we’re seeing Android struggle in the tablet space, and at the same time, it seems like the Metro UI is universally panned by people who have tried the Developer Preview. But again, the Metro experience is geared for touch, and the Preview is usable only on a virtual machine, so the true tablet experience will be much different.
In addition, the people who have seen the Developer Preview simply do not represent the typical user one bit. Will the market adopt Windows 8 or reject it? Will Microsoft cave in and let people skip the Metro UI entirely? Will the tablet market for Windows 8 take off? These are all questions that won’t be answered until it is far too late to be a first mover in the market. If you are going to bet on Windows 8, you simply can’t properly assess the risks right now.
9: Lack of tablet hardware
Speaking of the disliked Developer Preview, not having tablets to try Windows 8 on is a major problem. There is just no good way right now to get an idea of what the user experience will be like for your applications on those tablets. Not just in terms of the UI either, but of performance. Can the tablet CPUs run your app well? Is it too “chatty” for a device on a cellular connection? Are you using more storage than makes sense for the typical tablet we’ll see? Without a few tablet models easily available, we don’t know the answers here.
10: The trail of dead tech
This is the one that really breaks my heart. Microsoft has a history of pushing a technology as “the next big thing” and then leaving it dying on the vine a few years later. We don’t know if Microsoft will back off its Windows 8 strategy before launch, right after launch (Kin), or a few years down the road (Zune, Silverlight). If the new Windows 8 paradigm is not a success, Microsoft may very well change course in a way that renders all your hard work on Windows 8 native applications a waste of time.