Taking quick peek in Windows 8 programming, and at first there is really odd separation of products:
So if I want to experiment all three cases in Windows 8 (metro, desktop, phone), I’ve to install separately 3 different visual studio installation (and maintain all settings and everything separately in them). Ow! I would have expected to have single visual studio installation where I can have as modules separate parts for different cases.
Based analysis into this: stackoverflow: No metro project templates in Visual Studio Express 2012 for Desktop?
Well, perhaps I can throw few hundred extra megabytes of disk space to install all three.
As side note, I noticed that Android SDK utilizes a bit similar approach in their SDK: there is version which includes its’ private copy of Eclipse, meaning multiple Eclipse installations to maintain. However, there is seemingly also plain Android SDK, which should work separately installed SDK (didn’t try that yet).
Side note of sidenote: Private Eclipse installation of Android SDK is somewhat crappy, keyboard shortcuts of *BASIC* operations are broken. I wonder who is doing quality control in Google? Blind monkeys perhaps? For example, accessing menus using standard ”ALT + x” mnemonic shortcuts is broken. Especially hurting a lot, since ”Run” menu especially is broken in that sense. In addition to that special remote debug view for Android device seemingly haven’t even heard about context menu, shortcuts or any usability constructs. Actions in that view are accessible seemingly only via tiny toolbar buttons. Also otherwise using this Android SDK is a bit clumsy feeling. Surely low quality of development tools affects quality of apps produced, since with low quality tools (usability wise) is hard to create good quality software.
Back to windows 8 side. It seems that I’ve to postpone experimenting with Windows 8 Phone SDK, since M$soft has stupidly bound usage of Windows phone emulator into their own Hyper-V product. And since I’ve only ”Windows 8” not ”Windows 8 Pro”, no change of experimenting with that (since I don’t yet have Windows 8 phone for testing either). Anyway, I’m not sure if I would even bother with this ”hyper-v” path since clearly M$soft is aiming to kill competition, since if hyper-V is used then appearently neither vmware nor virtualbox can work concurrently with it. Since I’m utilizing virtualbox for virtualization that is clear deal break for me (since as cross platform product is allows me to move virtual machines between M$windows and Linux).
Now, after initial look in to Windows Phone SDK, it’s self clear that developing with M$soft tool set feels absolutely primitive compared to Java SDK (+ Eclipse) combination. In eclipse it’s trivial to access source code of JDK to find out about implementations (yes, in real life, details of implementation are actually sometimes needed to to get things working properly), but in Windows Phone SDK seeing implementation is ”out of scope”. So it’s 10 points for java and 0 points for M$soft tools.
I was quickly peeking into windows UI stuff, and I was really wondering if even now at year 2012, layout manager concept doesn’t really exist in windows forms. It seems that default layout concept is still based into pixel coordinates. Wow, 10 – 0, in benefit of Swing here.
Important historical note
Once upon a time I was involved with M$windows software development, and there was one aspect what made me really pissed off with environment. Namely, magical black boxes and hell with development tools. I.e. You have some source code, and commit all things in your projects into version control… Well, good luck trying to recompile that later on, in new computer after new install of M$soft development tools. Very likely something is broken, since new SDK deploys with new versions of libraries, which are incompatible with your project, and good luck trying to get old libraries to allow your problem to compile and work. Pure hell…
Well, in that sense I’m not 100% sure if these new M$soft development tools are any better; still mystical black boxes, installing random stuff into your computer, and creating semi-random installation specific dependencies into code.
Understanding what is the problem can be actually a bit difficult for someone utilizing such blackbox development environment. But if you compare this to ”java SDK + Eclipse” environment, where IDE and project is separately from each other. IDE is not one providing magical dependencies, but everything exists in project, and project compiles fully with and without existence of Eclipse installation. Good luck trying that with M$soft tools.
Note: This blackbox combined with arbitrary dependencies is one core reasons why I will be always strictly against such in java development. I.e. project and IDE must be kept as separate entities, project must never depend from particular IDE what you’re using. Otherwise, as history has many times shown, project will be doomed in long term maintenance.
It seems that for privilege to develop application to exist in M$soft application store, one should pay 49$ yearly fee to M$soft. Well, that is nice indeed. In practice it means that developing freeware applications ain’t possible. Okey, thank you, it was nice to check options, and options appear to state that windows 8 SDK is ”no go”.
And more… M$studio for Windows 8 comes with extremely ugly color schema as default. Incredible that product is released with such unusable color set.
Checked through details and seems that I don’t need to worry about hyper-v issues. Why so? Simply because there is no point on that. I’m starting to shovel 99$ to M$soft for luxury of experimenting with Windows Phone applications development (Fee for signing to send apps to M$app store). So thank you very much. If they would have setup schema where you shall pay from the possible profits of app then it would have made sense, but if one is just wanting to test potential, then it becomes utterly fruitless effort. It’s hard to imagine who would create free app on such basis, or even cheaply priced app.
It appears that for time being I’ve to focus into Android SDK, which at least allows me to test apps in real device without paying ridiculous 99$ fee.