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.

72 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.

gak
gak

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

apotheon
apotheon

"Hello. This is Sybil, from Microsoft QA. I'm afraid we have to reject your application. It exceeds our quality standards; you need to make it worse."

apotheon
apotheon

Apple restricts things a lot. The difference is that Microsoft is using these restrictions to try to funnel development by independents toward ends that will supposedly help Microsoft muscle in on Apple's market -- which might be a really bad idea, because in that market Apple is the 900 pound gorilla.

CharlieSpencer
CharlieSpencer

The OS developers have the bigger stick. IT types are too independent to unionize. No one who ever hit it big with his own startup company came out of a union environment.

Deadly Ernest
Deadly Ernest

few issues with people complaining about no worthwhile apps on their devices until they comply with the standards.

Snak
Snak

Have Microsoft forgotten what computers are for? That last answer suggests that computers are for making money. And only making money. No hope then, of having a computer to solve a problem?

CharlieSpencer
CharlieSpencer

The first ones may have more potential customers, but the second ones are making way more money. Framing questions as 'Either / or' ignores all the other possibilities. It ignores developing a business application LOTS of companies are interested in.

aaronjsmith21
aaronjsmith21

Why are you choosing to dual boot vs build a Virtual Machine of XP? I had a similar issue when being the only one in the company to use a Mac and so I had to run a VM of Windows XP and Vista to run some stuff but I work mostly on Linux based operating systems so it didn't effect me that bad. But still, why not VM?

Mark Miller
Mark Miller

He stuck WinME in there as a "skip" after Win2K. That doesn't make sense. Win2K was the successor to WinNT. WinME was the last of the Win9x line. They were two different codebases. I remember hearing complaints about Win2K, mainly about security. If I remember correctly, the most virulent worms took advantage of exploits on Win2K. So it would've been more like: WinNT - OK. I have to reboot once a week, but OK Win2K - (Say hello to my little friend.) AHHH! WinXP - Nice, but a few bugs here and th... Oh crap! WinXP SP 2 - Nice! and then what he said... I remember developers saying at the time that XP SP 2 was like a whole new OS release. It was that significant a difference.

Justin James
Justin James

... I see it as a nearly clean break from the past. Microsoft is clearly throwing in the towel on the desktop market, and sees it rapidly declining into a niche market (developers, multimedia editors, etc.). Basically, they see desktop app users becoming at best a bit more common than OS X users, and everyone else moving to Web apps or the tablet (or tablet + docking station) model. If you don't like it, they'll be more than happy to let you sit on Windows 7 for as long as folks sat on XP. Indeed, I suspect it was the folks who had the "you can't pry XP from my cold, dead fingers" that finally made Microsoft just go all-in on Windows 8 being a clean break. Why invest resources in trying to improve a desktop model that, for all intents and purposes, is more than feature complete, really can't become any more stable or secure given the base assumptions of the OS that the applications depend on being there, etc. when users will yawn and not upgrade anyways? What would they do to Windows 8 that Windows 7 doesn't already do? Windows is at the point that Office reached 10 - 15 years ago, where "upgrades" barely even changed the color of the car. Windows 7 was a refinement to Vista. Vista was a refinement (mostly security based) to XP. Most of the non-security things that came in Vista/Windows 7 went unused or underappreciated (Silverlight/WPF, the identity stuff, Media Center, etc. etc. etc.). The market has spoken clearly, the desktop model holds no interest for most folks, so long as they can continue using the 1 - 3 native apps (at most!) that they need. Dump Office and only an extraordinarily few people on the consumer end, and increasingly fewer people on the enterprise end need the desktop at all. In nutshell... if you currently use Windows 7 in a manner that you couldn't easily switch to OS X, *Nix desktop, an iPad, an Android tablet, etc., then Windows 8 isn't for you anyways. If your workload is basically Windows-independent, then Windows 8 can be a good to great move for you, depending on your hardware and work style. J.Ja

apotheon
apotheon

"Maybe it is time to make the break and go GNU." Nah. Give BSD Unix a shot (FreeBSD, maybe, or PC-BSD if that's more your style).

Justin James
Justin James

WinRT is aimed at the needs of tablets, and you really don't need to do those things on a tablet. Tablets are designed to "just work", and when apps get that access, they do things that break devices. Just look at Windows! How many times has a rogue app made the whole system unstable? With the tablet model, you really don't need apps to have that access. No defrag? Who cares, with a tablet you aren't going to be putting enough data (or the kind of data) locally for it to matter. No registry editing? Good, the last thing I want is a trashed system anyways, apps should use their own, isolated configuration and that's it. No access to the system files? Great! Because if an app has a security exploit in it, wouldn't you rather that it not have access to that stuff? Etc. J.Ja

Justin James
Justin James

I've like some examples of x86 tablets... not "convertible PCs" but true tablets in the size, form factor, and with performance characteristics like an iPad or an Android tablet. Oh, and what about the ARM tablets? J.Ja

Justin James
Justin James

I've come to learn that nothing is entirely "bad" or "good" with this stuff... as they say in "Dune", "fortune flows everywhere". J.Ja

apotheon
apotheon

"No one who ever hit it big with his own startup company came out of a union environment." No kidding.

jkameleon
jkameleon

... computers are, and have always been for making money. That's why Bill Gates is so rich. Microsoft's core business is not problem solving, it's publishing. Publishing of software.

jkameleon
jkameleon

All other presentations about server, desktop, and other business apps had Linux or open source in it. Specifically: Azure, Apache Hadoop, and Service Bus. Earlier I've also discovered, that Microsoft actively supports Drupal. It's as if Microsoft is trying to get rid of desktop/server business stuff by pushing it to the open source community like "Here, it's all yours, you deal with it, we have much, much more profitable things to do". The aforementioned Windows 8 app lecturer lady was very specific and clear about what Win8 apps are meant for: The biggest population possible is supposed to use them in as many different situations as possible (sitting, while walking, lying on the bed, etc), on as many different fancy new gadgets as possible (with touchscreen UI, kinect instead of touchscreen, or something yet undreamt of). The primary design goal was to make it as intuitive and easy to use as a book or magazine. Having this in mind, all the weird stuff around Win8 makes perfect sense. It's a well considered mass product, designed for the majority of the population to use. And the major turning point as well.

dlovep
dlovep

I have encounter many CRASHED with VM when close to dry up resources, like when you have heaps of network drives doing some copying now you pop in a USB stick, the host try to read it then VM try to take over it, you will see how great the VM is, it will only works when you mostly idle your host. Beside Vista really keen on BSOD.

apotheon
apotheon

Win2K was the first attempt to unify the two lines in a new OS release, but home users essentially revolted because they didn't like the security provisions of the OS (logging in, for instance). Microsoft was not getting anywhere near the needed uptake, so it threw some fancy new crap on top of the Win98 codebase without sufficient testing just to get something out the door that home users would find comforting in its familiar dumbed-down state, and called it Windows Millennium Edition. Meanwhile, they worked on something a bit less thrown-together, providing dumbed-down interface options with rounded corners and glossy effects, as a second attempt at unifying the product lines, and a little over a year after Win2K they had WinXP. Under the hood, WinXP (no service pack) was essentially indistinguishable from Win2K. Only the Fisher-Price widget set and other home user oriented interface nonsense significantly differed. SP1 and SP2 edged WinXP closer to what Microsoft had originally intended to be the next release after Win2K, which is why by the time SP2 was released it was essentially a different OS than the original WinXP release (though it had the same skin). Discounting the changes made in service packs, Win2K was actually the better OS between it and WinXP. The rapid obsolescing of Win2K is what gave people the impression it did not measure up to WinXP, because it did not get the same attention to improvement over time. The biggest changes pushed out to Win2K in its service packs were EULA alterations. If Win2K had gotten the same sort of technical attention over time as WinXP (but without the "push it toward a new OS" growth curve), I'm sure it would have continued to be the better OS, in fact. Instead, it got left in the swamps to moulder.

Mark Miller
Mark Miller

I talked with the editor of an industry magazine, who's been writing about the computer industry since the late 1970s, about W8. He said 1) that MS was pretty much forced into the consumer devices market by Apple's success there, and 2) W8 Metro on the desktop/laptop is an effort to provide software compatibility between Microsoft's platforms. The idea being that you can write your app. once for all devices, and you can run the app. on the desktop/laptop as well. I've heard others describe this, but more in the sense that desk/laptops will be able to run apps. written for phones and tablets, not so much the other way around. The kind of software you can run on the traditional Windows platform is not so easily brought into the phone/tablet world. It is a statement, though, that MS believes devices are going to be their growth market in the future, and they're just bringing desk/laptops along. I asked him about what this does to business IT that's using Windows now. It seemed to me MS was abandoning that market. He disagreed, saying that the consistency between platforms would be seen as a boon to business IT, though he conceded that on phones and tablets there's a "feature max" you can run into quickly with business apps., and that not all applications will be able to transition to devices, because the method of interaction on the device is too limited.

Heatlesssun
Heatlesssun

Asus EP121, BP121 and Samsung Series 7 Slate, there a number out there.

apotheon
apotheon

Mad props for the Dune reference.

jkameleon
jkameleon

The usual tiny minority of frustrated users will be dismissed as usual. No big deal.

Editor's Picks