Windows 8

10 reasons Windows 8 will be painful for developers

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.

Ever since the release of the Windows 8 Developer Preview, people have had a lot to say about the experience of playing with the new OS. 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 UI and WinRT API, be careful of these 10 things.

Editor's note: This is an update of the original post, which published in December.

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 Windows 8/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 new UI in Windows 8 shows, even Microsoft is struggling to get it right despite having had a few years of experience with it.

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, the new Windows 8 UI has been heavily panned by people who have tried the preview versions.  Will the market adopt Windows 8 or reject it?  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

For developers, not having tablets to try Windows 8 on has been a major problem. Yes, we've seen some tablets on Web sites, but not in person. Some (like the Lenovo Twist and some of the Samsung slates) resemble current devices enough that you can use what amounts to their predecessors to test. Others (especially the ARM devices) are just too different from existing products to allow a comparison, so you have to wait until October 26 to get an idea of what they are like on real hardware.

There has been no good way 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.

About

Justin James is the Lead Architect for Conigent.

73 comments
leifur
leifur

nonsense, it's okidoki

Ian Ho
Ian Ho

Well written article which makes sense. However in order to make easier the on-boarding process, Microsoft has a more flexible revenue share model (20% > USD 25,000) which makes the decision slightly easier for developers. Another little known fact is that Microsoft has come out to say that for “In-App Commerce. You may elect to support purchasing options from within your app. You are not required to use Microsoft’s commerce engine to support those purchase” What this is means in essence is that if a developer chooses to develop their own or use a 3rd party commerce solution, they no longer have to pay the 20%-30% revenue share which is traditionally given to Microsoft (or 30% for Google and Apple). Which I believe, makes a lot of difference with increasing competition and declining margins in the mobile application world. And if you do not believe in creating your own commerce solution. Check out Lotaris which provides such a solution. They are 50% cheaper than what Microsoft is currently offering.

2000423403
2000423403

1. Ok 2. Really, if you write well written UI's it's all asynch. No one writes WinForms anymore. 3. It's like this everywhere. Why should a developer have complete access. malware. Just look at android. I don't even see why this is an issue. 4. Really...Get out of the PHP world 5. At least someone requires these garage programmers to think about their code 6. Many companies offer API's and if you're a dev who doesn't know how to encrypt your data and sends actual id's of your database. You shouldn't be writing sensitive apps 7. Learn to use OOP technologies. If you still don't use interfaces, stay with VB 6 8. Good point 9. Kinda see you're meaning. If you're storing data on a mobile device bigger than a few k, then you need to learn how to write differently. 10. True. Btw Silverlight died because of HTML 2 years ago. But, actually Silverlight is still used heavily. See dashboards, Sharepoint, etc..

jensgeyer
jensgeyer

Funny enough. The entire world works asynchronously and lots of things are happening in parallel, activities are forked and must be orchestrated and coordinated all day long. On top of that, parallelising and asynchronous events are neither new nor rocket-science. So why do some developers (not all, but a good part of it) still cringe when someone just mentions words like "asynchronous" or "parallel"? Why is it so hard for some developers (again: not all) to think parallel? Of course, synchronous singlethreaded straightforward programming is much easier, because everything happens neatly orderly like a charm. In an asynchronous and parallel world things are more on the chaotic end of the continuum. Of course, we still don't have adequate tools to deal with async + parallel adequantely, although we go step by step in the right direction. We still sometimes struggle while debugging race conditions, deadlocks and other problems that come along with the benefits of async + parallel. We already have some tools and some language support we never dreamt of only a few years ago, things like async/await, like TPL and Rx, like F# and much more beyond that (and of course also things beyond the MS world), that make asynchronous and parallel operation more and more feel like a natural extension of the way we are used to program for years. But I'm pretty sure that's just the starter. You (and me) ain't seen nothing yet. I really will praise the day, where it will sound like an odd tale from "ye olde days" of SW development, when some of the older guys around will grab itself a beer and start telling stories of how we used to develop software back then in the old days, at the beginning of the 21st century. When the young eleves will shudder from the thought of being restricted to only one thread or forced to have to do their calls synchronously. Ok, maybe I exaggerated a little. So please have mercy and omit the beer ... :-)

delroekid
delroekid

This will really hurt a lot. Microsoft will QA your work? I dont think this will last.

gauravkumar37
gauravkumar37

History and statistics reveal that every other version of Windows is a success...like WinXP then Win7...:-)

sbjiva
sbjiva

As a .Net Windows Forms & ASP Developer I am now required to Design a great UI which was never a big requirement in the past. System Development was core focus skill on development. Learning and adopting new tech is a critical requirement for developers in my opinion so I will just learn and learn again and again. That the way of the IT World.

bsf
bsf

You are a developer - you can write code for Apple devices or Windows 8 devices. With the restrictions listed above for Win8- what if any have Apple placed on writing code ?.

carrilion
carrilion

So, why do app developers allow the OS vendors to dictate APIs? The APIs should be specified by the developers, who should then expect the OS to comply with the specification. Developers need to unionize into a powerful association. Get with the program!

jkameleon
jkameleon

... where I witnessed very interesting conversation. The topic was Windows 8 application design for developers. Lecturer described grid, fonts, margins etc into great detail, and then she went on to menus, navigation, and so on. During this, she was interrupted by somehow irritated question from the public: "Hey, what about data entry?" Answer: "Windows 8 apps are not meant for data entry. They are meant to be used anytime, anywhere, in any situation, for information consumption, not production. You know, browsing shopping catalogues, news, and such." Question: "But what about business applications?" Answer: "They belong to desktop, not to Windows 8 app store. Business apps deal with tens of thousands of items or more. There is now way Windows 8 app UI could handle this. As a matter of fact, I can't even imagine things like Photoshop running under Win 8." Q: "B-b-b-but grumble grumble!?" A: "Consider this. What would you prefer do develop - a business application only a couple of companies are interested in - an application for App Store with at least half a billion of potential customers?" And that pretty much nailed it.

TsarNikky
TsarNikky

One OS with its associated platform is difficult enough for developers to handle. Now that MS want developers to create applications for a hybrid OS (supposedly running on either or both of two platforms) is going to be hellish. Two separate and discrete OSs would have been a much better choice--then developers could work with each OS separately.

richarderrico
richarderrico

One of my clients is running SQL2002 and refuses to upgrade because he said "as a business man why should I spend money replacing something that been working perfectly for 10 years?" Yes, I told him it's no longer supported, but he says "I'll switch when it stops working". So, I have to keep an XP PC to support SQL2002 (Vista won't install it). When I got another PC it came with Vista - that's when I discovered SQL2002 would not install. Moved all my development to the Vista PC EXCEPT the SQL2002 clients' apps. New client uses SQL2005 - ah! that installed on Vista AND XP. Considered moving all my development projects back to XP since at least all my projects work there. Then, another client informs me he's moving to SQL2012. Woops - installs on Vista but it won't install on XP. There went that idea. Spent many hours the past month purchasing/building up a new Laptop with dual boot XP and Vista so I can have all my work on one unit when I travel. Almost there. Conclusion, XP still works just fine. Vista works fine for the tools I use. I make money working on projects for my clients. I do not make money on hours spent going through hoops to keep up with what the OS allows me to do or not to do. So I really don't see any Win 8 in my near future.

bhahanan
bhahanan

Application closing feature is copy of fedora 16(Linux).

BALTHOR
BALTHOR

Can I use my audio cassette recorder to make a copy of my favorite albums then make a copy for my friend?The movies that you download from share sites do not have any FBI do not copy warnings.The Internet is the closest thing that we have to the original.I notice that some downloaded movies are definitely not the original!It's really common to see false impersonating bands in YouTube.

tootall3
tootall3

Developers are a pretty resilient breed; they adapt to the short comings of the OS and continue to produce wondrous products. I have been developing business solutions behind firewalls since the PCjr days and more than a few times I look over applications we developed and marvel at what they do! What I have found is that our productivity is not dependent on what Microsoft, Apple, or Linux ???allow??? us to do but what we want done. Go forth and produce the ???workarounds???!!!

brownw03
brownw03

I think their ad dept made a typo in the press release. The real product name is ME-T[b][u]O[/u][/b]O not metro. Windows ME-TOO is designed to follow it's namesake into history as another great joke foisted on M$'s customers.

SpiritualMadMan
SpiritualMadMan

After being dumped with the push to dotNET... I think it is time to re-evaluate whether I even want to be a pro-Windows developer! Sure, it is a Windows world, and there will be pain there, too. And, possible loss of revenue. But, Linux has been Linux "forever". Windows changes constantly. And, that without regard to either End User or Developer software and hardware investment. As much as I am pro-Windows... It may finally be time to cut the apron strings! And, I've been "Microsoft" since DOS 3.3! Too much Government, Too much Microsoft time to pare down!

mikifinaz1
mikifinaz1

Let's count the alternatives...Mac, Windows XP, Vista, 7, Linux versions (more than I can mention) why use Windows 8? It is just the next step of Microsoft to move back to the mainframe days. They want everyone to pay for everything, turning on the machine, using the apps, using the OS. I saw this coming a long time ago. Maybe it is time to make the break and go GNU.

vezycash
vezycash

I've read all the comments and they mostly make sense. My big question is this, is Winrt dev model powerful enough to provide all sort of tools that are responsible for making the windows experience special? Or would people be forced to use badly thought out programs from Microsoft. Take defrag for instance, Microsoft's own version is complete crap, "Smart Defrag" is wonderful. There are tons of other examples but I'm sure you'll get my point. Is winrt a toy?

Ekendra Lamsal
Ekendra Lamsal

Thank you for reminding once before we start coding!

12312332123
12312332123

This is simply untrue. There are plenty of x86 tablets to choose from.

gak1
gak1

A Metro app has 5 seconds to store the state when it looses focus. If I see that my app does that in 3 seconds, how can I be sure that it will still do that in less than 5 seconds on the client's hardware?

seanferd
seanferd

You really look at these issues from multiple points of view. :-bd

A&C; asociados
A&C; asociados

I don't understand why one thing is great for Mac OS and his developers and the "stability" of all the environment (Mac don't crash (false), restricted disk access, mac's rules for apps,...) the same this is painful for PC programmers...

BALTHOR
BALTHOR

Another Microsoft slowing down of our industries.Win Builder,one of the few software programs out there that is used to write operating systems,doesn't work.It stopped working!

Skruis
Skruis

I think you should revise your overreaching article to say 10 reasons why developing for win8 METRO might be painful. If half of the things you've said were true, none of the programs I'm currently using on my win8 slate, a PHYSICAL device and not a VM, would run but if you apply your statement to Metro specifically then yes, you're points are somewhat accurate but as someone who has written several Metro apps for Win8, I have to say that I didn't find the points you listed all that bad. Metro still allows .net so if you have a recently developed desktop application that you'd like to create a metro front end for, that code will migrate painlessly and you'll just have to recreate the gui...if you developed a web services based app, you'll be able to grab that data easily and use it in your application. This article raises some inaccurate points and to say Metro has been universally panned in also inaccurate as is your "virtual machine" requirement myth as evidenced by the fact that my reply was composed on my Samsung Series 7 Slate running Windows 8. I have serious doubts about the quality of this highly misleading article.

Slayer_
Slayer_

It will make people not adopt windows 8, and this will cause windows 8 to crash and burn, you will then see a windows 9 "Classic" which will basically be 7 with a fresh coat of paint.

TsarNikky
TsarNikky

Writing two sets of code within a single application IS going to be a real pain, not to mention the expense and the increased probability of bugs. One set for "touchy-feely" tablets, and another set for keyboard-centric notebooks and desktops. Since Microsoft has not publicly stated that the UI interface can be bypassed via a Control Panel element, developers have to allow for the fact "it" could or will appear. Now what? Write code to handle it? Write code to disable it and return to traditional interaction? Write code to handle either situation? A real mess.

Ninja1507
Ninja1507

Everything you've mentioned has gave me nightmares lol. I'm excited, but frightened at the same time. Another thing I'm concerned about is... well I'm primarily a PC game developer. I'm just wondering how the game market for Win8 will change from Win7 (if at all). I'm worried that we'll basically be expected to make touch friendly games that are more like Angry Birds than Team Fortress. It also makes me wonder how much of each kind of game we'll see. If we'll just see a flood of "Touch Style" games or if it won't change much. Either way, I'll jump onto "Touch Style" games if that is what gets popular.

Editor's Picks