Windows 8 - A Developer's Perspective

Started by Blizzard, November 08, 2012, 03:43:38 pm

Previous topic - Next topic

Blizzard

November 08, 2012, 03:43:38 pm Last Edit: November 08, 2012, 03:50:53 pm by Blizzard
First of all, it's not all that bad. But as a developer, I don't see much point in switching to Windows 8. And here's why.

The number of "normal" users exceeds the number of developers and power users by far. Desktop PCs aren't really the future of computers for the average person. Tablets seem more like it. Gaming will either move mostly to consoles or cloud gaming. Even though OnLive wasn't the success some people hoped it would be, one can already see that there are other companies attempting a similar approach at cloud gaming. The huge advantage here is that you can play a high-quality graphics game on a crappy device as all you are getting is just the video stream. Of course this kind of approach has its disadvantages, but this is not what we're here to talk about today.

Today I will give you an insight on Windows 8 as a developer. I have used Windows 8 a bit for Metro-style app development at work over the past month, running it in VMWare's player as a virtual machine (first with 1 GB RAM, but as that proved to be not enough, I changed it to 1.5 GB).
First of all, Windows 8 was never intended to be for desktop PCs. Its primary platforms are tablet and smartphones (aka Windows Phone 8 ). Microsoft is aware that they are losing a big share of the market to Apple and the Android manufacturers so Windows 8 is pretty much meant to be a good shot to catch up with them. And as far as tablets are concerned, they did a pretty good job. But for a desktop PC, it's not very well suited.

I will single out a few nitpicks that really irked me while working with it for the last month. It's true that some of these can be avoided and circumvented in ways (which I will also list here), but the fact remains that Microsoft has made simple things complicated and tried to make complicated things simpler.

1. Turning of a Windows 7 PC takes 2 steps while Windows 8 requires 4. In Windows 7 you either press the Windows key or the start button and simply select "Shut down". In Windows 8 it's not only made more complicated, it's also counter-intuitive. First you have to either move the mouse in the upper right or lower right corner in order to make the side-menu appear. Then you have to select "Settings" (which still puzzles me why this functionality is in settings) where you can find a Power icon which you have to press for a menu to appear where you can select "Shut down" or one of the other options. Now, I am not so angry at the few additional steps, it's really not a big deal. What I am mostly angry at is the fact that I can't make the side-menu appear in a normal way using a keystroke (Windows key opens the Metro menu) and that the functionality is hidden in Settings. Even on a tablet (which you would rarely actually power off), it's still confusing while such a thing would be hidden in Settings.
The suggestions that I've heard to avoiding this problem is to set the hardware power key to shut down the PC. Cool idea, except that it doesn't work if you're running Windows 8 in a virtual machine.

2. The side-menu that I mentioned earlier is kind of weird. Sure, making it appear with a simple gesture by moving your finger into one of the right corners of the screen is a pretty good idea, but on a desktop PC it's not only bothersome, it's also completely software-based. That means, if for some reason Windows 8 freezes, the menu won't appear until Windows 8 gets running again. This is quite an inconvenience for power users who might sometimes use more of their PC's resources than they have at their disposal and then cause the PC to stutter like this.

3. The metro menu really gives Windows 8 a tablet feel. If you have ever owned/used/tried an iPhone or Android smartphone, you probably noticed how it is possible to arrange all tiles and app icons are around and so on. The metro menu offers exactly that kind of nice overview over all the apps. Microsoft has also implemented something called live-tiles (which apparently exists for Android as a special app, IDK about iOS). Live-tiles give you the impression as if the app could be still running in the background while actually getting new information or displaying something from the app. e.g. a weather app could be dynamically updated or a game could show an image of the current game's state or level. While this seems to be a really cool feature and definitely something the average user will enjoy, there are potential problems. Live-tiles work as background processes (usually not all the time, but still) and this consumes additional resources. Power users usually need all the memory and CPU time their PC can offer and they'd like to have only a minimum of applications running in the background to conserve memory and CPU time. Live-tiles make that harder as suddenly the OS takes over that part. Some of you may remember Prefetch on Windows XP and the additional Superfetch on Windows Vista/7. While in concept a really good idea, it never worked quite well (at least Superfetch didn't for me). Whenever I supposedly needed the RAM that Superfetch filled with programs I might run, it never actually emptied it so that I can actually use it. Superfetch always took about 1 GB of my memory and it would never let go. In any case, live-tiles are one of the things that great for average users, but bad for developers and possibly power users.

4. The new task manager is great. Not only are the tasks now grouped into categories, you can also immediately see how much memory, CPU time and disk read/write load each of the applications is currently using.

5. They made the copy/move file dialogs even better and simpler. Now you even get a live stat as a graph about data transfer. Also, the overwrite dialog is now much smaller without the oversized icons (as it should be IMO).

6. It's true that Windows 8 is graphically much simpler and I'll be the first one to crack a Windows-3.11-on-steroids joke, but frankly I actually like it. I was never a fan of the too fancy design that was Aero. In fact one of the major reasons why I never used Vista was Aero. Since Windows 7 was running so smoothly I don't mind Aero being there. But now that they moved away and back to basics, I actually welcome it. Sadly, performance has not improved (read below). I like the non-intrusive layout and simplicity of the new GUI. It's clean and minimalistic without being shabby. I am only disappointed at Visual Studio 2012 in that area as they messed up badly. The top menu bar is not visibly separated with a line or something from the toolbars which makes it really irk me. Also, the VS2012 for Windows 8 edition (the one that you need to use for Metro-style app development) has a dark GUI with dark backgrounds and white text. And you can't change it. I really don't know what they were trying to do with this, but it's annoying. At first I didn't like the dark GUI of VS2010, but it wasn't so bad as it kinda made a better distinction between the separate windows within the UI. But VS2012 for Windows 8 messed it up badly. Surprisingly both VS2012 for Windows Desktop and VS2012 for Windows Phone 8 had the same bright color theme as the rest of Windows 8.

7. The performance is unsatisfactory. I've ran it for some time on 1 GB RAM and it was really causing a lot of problems. Once I changed it to 1.5 GB, things were sped up, but the memory load is still way too high. I understood the high memory load in Windows Vista/7 due to Aero (which alone could eat up to 50-100 MB), but now? Even when Windows 8 is running so much fewer applications in the background by default? And it's still that slow? As I said, it's true that I was running it in a virtual machine, but this kind of bad performance is really not acceptable, because it's often quite slow even if the RAM is not above 80%.

8. The desktop is now actually an application and the missing start menu button kinda makes me want to slap somebody sometimes. IDK about you, but I generally open new Explorer windows by pressing Windows key + E. But sometimes I also open it up pressing the start button and selecting "My Computer". Why? I didn't know about Windows key + E until about 1-2 years ago I think so the old habit was still there. Well, Microsoft has decided that my old habit can go fuck itself (which is not a bad thing in itself as it was a bad habit), but I should be the one to root them out, not somebody else forcing me to do it. Besides, it's inconvenient for a normal user who doesn't know about Windows key + E.

9. I really don't like the new Windows Search. When you press the Windows key, it opens the Metro menu and once you start typing, the Windows Search window will appear. In Windows 7 I often use Windows Search to access EVERYTHING on my PC by just typing a few letters. I would say that this is THE most used feature by me personally. And they messed it up. Now there are 3 categories ("Apps", "Settings" and the last one was "Files" I think). While you still can directly activate which one of the categories you want to search (e.g. by pressing Windows key + W the "Settings" category will be searched), the separation actually adds a level of complexity. Now you can't just hit Windows key and start typing. No, now you have to first think in which category the thing belongs that you are looking for and after that either selecting the category first or pressing the other shortcut button with the Windows key (e.g. Windows key + W) to open the right category in the first place. I found out about these extra shortcuts just recently so I didn't use them so much, but I can tell you that it was quite frustrating when I had to type "Control Panel" first and then select the option I wanted to adjust than being able to simply type "Power Settings", "Programs and Features" (the new "Add/Remove Programs" which is actually a better name than the old one) or "User Accounts". I'm not sure if those can be found under the category "Settings".

10. For some reason the whole OS feels ruggish. I believe that Microsoft wanted to release Windows 8 as early as possible and then patch up stuff afterwards as I have the feeling that it's not quite working as it should. As I said, it feels ruggish.

Well, that would be it. I still believe that the average user can really profit from most of these changes, especially since Windows 8 gives off a different feel and differs in usability patterns from iOS and Android (which are frankly quite similar) which Microsoft also uses as a selling point. Microsoft will definitely gain back some market share with Windows 8 tablets and Windows Phone 8 smartphones, but the developers and power users will hate them for it. Some of you may remember how Microsoft was going try some really radical moves for Windows 8, but the developer community was very upset with those moves so Microsoft abandoned these ideas. That was basically a manifestation of it. The current Windows 8 is actually a compromise between what it was supposed to be for average users and what developers wanted it to be. It seems to be still doing a good job at being what it was supposed to be, but it's not a good developer platform.

It's not official yet, but it's likely that my boss and me will do a presentation on game development in Windows 8 at Microsoft's conference here in Zagreb, Croatia. This will definitely be interesting. I won't go into details about that here as this is a topic about Windows 8.

I hope that I've given you some insight into the future that is Windows 8. It may not as bad as I make it sound, but if you're used to the commodities that Windows 7 offers you, Windows 8 is simply half a step back and makes you feel frustrated that you can't have those commodities back. Sure, there are probably tons of hacks out there already which will make it feel and work more like Windows 7, but that's not really a solution IMO. The saddest part is that Windows 8 could be a great OS, just like Windows 7 was, but it needs some more work.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

G_G

Wow. Thanks for taking the time to type this up. I think I'm going to hold off on trying Windows 8. The Start menu has always been there. I can't believe they took that away. D: I'm like you and often use Win + E. Sometimes I use the Start menu and if I'm on the desktop, I'll just open it from there. It's sad, it has so much potential to be great, but I think Microsoft really half-assed it and just wanted to push out a release. Hopefully future updates and patches will help it out. Then again, it could be following the same trend, every other Windows version sucks ass. 2000, Vista, and now Win 8. I guess we'll see how this all turns out.

Holyrapid

As a gamer, i see little to no point in switching to 8, since i have everything running more or less smoothly on 7...
And i have to say that even for a basic user on a PC, win8 seem like it's not an ideal choice (mainly thinking my mom who is just now starting to learn about using computers properly, without me having to guide her step by step), so i won't be getting it to my folks either.
When i leave home to go study, and will most likely take my laptop (which my mom mainly uses atm), i will convince dad to buy her a decent enough cheap win 7 laptop when they go for cheaper when the win8 laptops start to pop up...

Memor-X

Quote from: Blizzard on November 08, 2012, 03:43:38 pm
I didn't know about Windows key + E until about 1-2 years ago


i've only just learned that now from reading you post Blizz

a guy at work got Windows 8 on his laptop, from the looks of it, Metro is supposed to be the new start menu however i'm concerned how installers work which have the option to create a start menu shortcut, from what i saw, you don't have paths in Metro so when you install something and have the option to create the start menu shortcut you can't do something like "Type-Moon/Tsukihime/Melty Blood/Meltly Blood Actress Again Current Code"

also from what i keep hearing, older programs as just as incompatible as they were with Vista meaning that they have to have a separate version just to work for Windows 8, not sure if this is true, if so then i'm going to stay away from 8 it's already bloody annoying that my version of 7 is 64-bit and alot of programs which have 32 and 64-bit versions demand i use thr 64-bit version of the program and refuse to run (iTunes, AppLocal, Switch), i don't want to upgrade and find my archive of installers is useless and i have to download a new version of every single installer

i kinda have high hopes for 8 solely because of the fact that in theory, if you develop for a desktop using 8, a slight change with keyboard oriented stuff would then allow the program to seamlessly work on a tablet but i keep hearing that's not the case

my guess is that next year we'll probably see a Windows EX (Eight-Extreme) which will be like XP and 7 as they were to their predecessors, if not, there probably will be some unofficial patch created by someone which attempts to fix the problems

Ryex

put it this way, a friend of mien's laptop burned out and he brought me with him to best by to get my thoughts on the laptops they had on display. while I was there I attempted to figure out windows 8, I couldn't even figure out where the "My Computer" equivalent was!
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Blizzard

I've had no problem installing and running a few 32-bit programs. Our own games (compiled for Win XP/Vista/7) worked just fine in Windows 8 as well as other software such as Notepad++ or Opera. I think that 32-bit programs will be around for a while longer. Not everybody is going for 64-bit right now as everybody wants to maintain compatibility with older OSes.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ryex

what exactly do you have to do differently for 64 bit programs anyway?
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Blizzard

November 09, 2012, 03:07:04 am #7 Last Edit: November 09, 2012, 03:08:20 am by Blizzard
Not too much. A frequent problem can be integer limits as they are 232 anymore but 264. So if you are using ints to an extent where you actually use the limit for some kind of special calculation or if the limit is important in some way, you will need to take this into account.

Here's a good example. This function calculates the CRC32 value of a stream (the crc32_table data is precomputed).

unsigned int calc_crc32(unsigned char* data, long size)
{
create_crc32_table();
unsigned int crc = 0xFFFFFFFF;
for (long i = 0; i < size; i++)
{
crc = (crc >> 8) ^ crc32_table[(crc ^ data[i]) & 0xFF];
}
return ((crc & 0xFFFFFFFF) ^ 0xFFFFFFFF);
}


Notice the last line. You have to make sure that you & the final result with 0xFFFFFFFF to ensure it's actually 32 bits (hence the name CRC32).

Serialization can also cause a lot of troubles, depending on how you implemented it. e.g. If you have 64-bit ints, but you keep saving only 32 bits, you might have a problem if the actual value in the program exceeds the 32-bit limit.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Blizzard

OH GOD, I FOUND THE OPTION FOR THE LIGHT THEME!
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Apidcloud

Hey Blizzard, could you tell me if there has been any problem with computer drivers so far? I mean, do the windows 7 drivers work correctly in windows 8?
I've been wondering if I should use it...

Thanks  :haha:
Instead of wanting to be somebody else, rather become somebody else



"I will treasure the knowledge like a squirrel treasures acorns."


Gibbo Glast 2D Engine - The sky is no longer a limit

Blizzard

I have tried Win 8 mostly on a VM so I wouldn't know. But they should work. Win 8 is v6.2 after all (with Win 7 being v6.1 and Vista v6.0).
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Apidcloud

Instead of wanting to be somebody else, rather become somebody else



"I will treasure the knowledge like a squirrel treasures acorns."


Gibbo Glast 2D Engine - The sky is no longer a limit

SBR*

I'm no fan of Windows 8 either: http://www.gamasutra.com/view/feature/179420/the_next_twenty_years_what_.php?page=1

Mind you, I've only read the first page, but I got the message.

Also, that Win+E thing is pretty cool. I didn't know about that. Thanks!

Blizzard

I scrolled a bit through it and that argument that Skyrim (and other games) wouldn't be released on Windows 8 app in 2032 is a complete bullshit argument. He compares a game for a release in 2032 with today's app store requirements. Who is to say that Microsoft won't change their PEGI 16 requirement within the next 2 decades?
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

SBR*

I agree, but I think the general argument still stands: indie developers may have a harder time in the future.

PhoenixFire

I think that once people get used to it, they won't have a very hard time at all getting to know their new computer and its' new features. I have been using eight since the original beta, and, I currently have it as my only OS installed on my laptop. Runs flawlessly, and it's an older Dell Latitude D830, with basic stock features. Never had it crash, only freezes occasionally when I'm running multiple game apps, the desktop app with firefox open, and, usually it has to be a flash or video intensive site like youtube. Even under that type of load, it only stutters for a few seconds or so.

Specifically for developers, I would tend to agree with you Blizzard. There is no 100% guarantee that you will be able to use all of your development tools, nor do you know if your sandbox environments will work the same. If you're going to build an app for 8, then yes, you should be running it to test it natively, and since it seems many people are making the jump to win8, you may want to at least consider attempting an app version of your program. Most big businesses and services have an app for win8 now. I personally use the Bank Of America app, Skype, IM+, Facebook, Skydrive, Netflix, and ABC all as apps on here, and they're all great in regards to their functionality.



This part I actually have to point out..

Quote from: Blizzard on November 08, 2012, 03:43:38 pm
1. Turning of a Windows 7 PC takes 2 steps while Windows 8 requires 4. In Windows 7 you either press the Windows key or the start button and simply select "Shut down". In Windows 8 it's not only made more complicated, it's also counter-intuitive. First you have to either move the mouse in the upper right or lower right corner in order to make the side-menu appear. Then you have to select "Settings" (which still puzzles me why this functionality is in settings) where you can find a Power icon which you have to press for a menu to appear where you can select "Shut down" or one of the other options. Now, I am not so angry at the few additional steps, it's really not a big deal. What I am mostly angry at is the fact that I can't make the side-menu appear in a normal way using a keystroke (Windows key opens the Metro menu) and that the functionality is hidden in Settings. Even on a tablet (which you would rarely actually power off), it's still confusing while such a thing would be hidden in Settings.


There's an easier way to do it, they just don't make it extremely obvious. You press the start button, click the pull down menu in the top right area next to your name, and select either lock or log out, and from that screen, select the power button which allows you to tell it to shut off. No, there is not a smaller number of steps, but it's quicker, and therefore more pleasing to most people switching over. I personally use the hardware button, but then again, it's my OS, not running in a virtual sandbox.
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?

Ryex

Quote from: DigitalSoul on December 09, 2012, 11:59:39 pm
There's an easier way to do it, they just don't make it extremely obvious. You press the start button, click the pull down menu in the top right area next to your name, and select either lock or log out, and from that screen, select the power button which allows you to tell it to shut off. No, there is not a smaller number of steps, but it's quicker, and therefore more pleasing to most people switching over. I personally use the hardware button, but then again, it's my OS, not running in a virtual sandbox.


that's still 2 more click than in windows 7
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />