Windows 8 Dev - Day 1
This is a bit of an unfair comparison versus the Android development. I have a lot of auto-generated .Net code from some internal tools that I leveraged here which saved a ton of time and effort, but the experience is worth talking about. And I'll try and avoid the pieces specific to those auto-generated libraries. But I think I'm too biased to take this too seriously.
So, first is the development environment. Basically, I had a fresh Windows 8 RTM image and Visual Studio 2012. The install of Win8 is irrelevant, but the use of this particular OS is of note. VS2012 was a "next, next, next" type install. This is first place where I noticed a difference. Firstly, the Android SDK doesn't come with an IDE, and there are multiple steps to the setup process. Visual Studio for me is the winner.
Next is the emulator. With Win8 I can use either an emulated tablet or my own as a development environment. Either option worked out of the box. There were no configs and things worked spectacularly. Android, providing you got everything you needed allows you to setup an image fairly quickly. The Visual Studio process for Win 8 is clearly quicker and easier. Android also has a lot of options. I tried toying witha few however (and fairly basic ones at that) and those virtual devices then failed to launch. The launch time itself was another hassle with Android. So, again I'd have to say that even with the flexibility of the Android images considered Visual Studio is the winner here as well.
So, we'll skip the backend code. This is where all of that generated code came into play. I would say Win8 wins but that is likely only due to all of the "free" stuff.
This leaves non-backend development. While I think the above comments are fairly accurate regardless of my bias, on the UI side, obviously I've spent more time with .Net than Android. But the difference to me as a .Net developer is huge. Both the android application and my current WinRT application are/were only at the stage where all screens were built using standard platform controls. Nothing fancy. The difference? In just a few hours of WinRT development I have a multi-screen application with workflow. And it is pretty. After days of Android dev, I had 1 working login screen, and had started a second screen. And it was ugly as sin.
Like I said, biased, but I simply cannot see Android development, even by a pro being considered on par with the experience in WinRT applications. I'm glad to be back using what feels to me like a proper development environment for a proper SDK.
Disclaimer: Do not think I'm trying to say that someone coming from just an Android or Java background would find XAML and C# easy to pick up. They are radically different design paradigms, truly getting into my first XAML based application (a WPF desktop application) took some real world motivation and a bit of time and trial and error to get the hang of. Likewise, I would expect someone with only a background in .Net to have more problems than I diving into Android without some good resources.
I also think it is important to note the difference in transferability of skills. Android is based on Java, a desktop programming language I am familiar with. And WinRT is based on XAML which is also used in WPF and Silverlight which I am also familiar with. I don't personally think there is any comparison here though, my Java skills provided almost no help or insight writing Android applications whereas my background in WPF/Silverlight had me feeling right at home in minutes.
So, first is the development environment. Basically, I had a fresh Windows 8 RTM image and Visual Studio 2012. The install of Win8 is irrelevant, but the use of this particular OS is of note. VS2012 was a "next, next, next" type install. This is first place where I noticed a difference. Firstly, the Android SDK doesn't come with an IDE, and there are multiple steps to the setup process. Visual Studio for me is the winner.
Next is the emulator. With Win8 I can use either an emulated tablet or my own as a development environment. Either option worked out of the box. There were no configs and things worked spectacularly. Android, providing you got everything you needed allows you to setup an image fairly quickly. The Visual Studio process for Win 8 is clearly quicker and easier. Android also has a lot of options. I tried toying witha few however (and fairly basic ones at that) and those virtual devices then failed to launch. The launch time itself was another hassle with Android. So, again I'd have to say that even with the flexibility of the Android images considered Visual Studio is the winner here as well.
So, we'll skip the backend code. This is where all of that generated code came into play. I would say Win8 wins but that is likely only due to all of the "free" stuff.
This leaves non-backend development. While I think the above comments are fairly accurate regardless of my bias, on the UI side, obviously I've spent more time with .Net than Android. But the difference to me as a .Net developer is huge. Both the android application and my current WinRT application are/were only at the stage where all screens were built using standard platform controls. Nothing fancy. The difference? In just a few hours of WinRT development I have a multi-screen application with workflow. And it is pretty. After days of Android dev, I had 1 working login screen, and had started a second screen. And it was ugly as sin.
Like I said, biased, but I simply cannot see Android development, even by a pro being considered on par with the experience in WinRT applications. I'm glad to be back using what feels to me like a proper development environment for a proper SDK.
Disclaimer: Do not think I'm trying to say that someone coming from just an Android or Java background would find XAML and C# easy to pick up. They are radically different design paradigms, truly getting into my first XAML based application (a WPF desktop application) took some real world motivation and a bit of time and trial and error to get the hang of. Likewise, I would expect someone with only a background in .Net to have more problems than I diving into Android without some good resources.
I also think it is important to note the difference in transferability of skills. Android is based on Java, a desktop programming language I am familiar with. And WinRT is based on XAML which is also used in WPF and Silverlight which I am also familiar with. I don't personally think there is any comparison here though, my Java skills provided almost no help or insight writing Android applications whereas my background in WPF/Silverlight had me feeling right at home in minutes.
Comments
Post a Comment