Windows 8 Modern UI Apps: Choosing between XAML/C# vs. HTML5/JavaScript, what would your pick be?

Windows 8 Apps

Since the wrap-up of Tech.Ed Australia last year I’ve been meaning to get started learning to develop a Windows 8 Modern App so as to embrace the future of Windows software development. I think Windows 8 provides a huge opportunity for developers to tap into Windows’ market share with their own apps. There are some limitations of course but the changes Microsoft has made over the past year should not be something that gets overlooked by those in the Microsoft software development field. One of my favourite reads throughout 2012 was Paul Thurrott’s WinSuperSite so if you were hiding somewhere last year and missed a lot of the big news then a good place to catch up would be checking Paul’s site archive for 2012.

With all of these changes and learning some starting points for Windows 8 Modern App development I’ve been struggling to choose with side of the fence to fall to i.e. XAML/C# or HTML5/JavaScript. As a developer using Microsoft technologies I’ve spent the past few years using HTML, C#, VB.NET, JavaScript, a little bit of XAML among other things, with that in mind I thought I should be able to go with either path without too much fuss. My initial feeling was that using XAML/C# would be the better approach as I’m familiar with C# and I can build on my basic XAML knowledge to develop that skill further. However, I also though I should check out the JavaScript/HTML5 approach to see what that offers. As a result, at Tech.Ed I did some Hands On Labs for both to get a feel of each. When I did the JavaScript/HTML5 labs I must admit that the kind of JavaScript code that is required for Windows 8 Apps felt a little bit odd. It was like writing a foreign language using JavaScript syntax in a way. It’s true that it’s JavaScript, but to me it didn’t feel like the JavaScript I’m used to, however maintaining HTML5 was just as familiar to what I’m normally used to, CSS… etc. With that I was undecided, which way do I go? Design or Code?

Design vs Code

After some thinking, I decided to go with using XAML/C#, and I started reading a bit on building Windows 8 apps using that approach, and also did some C#/XAML tutorials as well as started watching some Windows 8 courses on Pluralsight, they have a great line-up of courses by the way. Now at that point I thought I have my direction set and was feeling happy with C# and a little tweaking of XAML. This was all well and good until, I started fiddling with the design for the app I’m working with – a Windows 8 app for this website. The thing to note here is that I’m a developer, I like using code editors and not designers, I feel I have more control. However, due to my basic XAML knowledge I thought I’d try using the Visual Studio and Blend designers to play around with the XAML. This is when things started turning ugly for me. To be fair, I haven’t yet given it much time to get over the hurdles, I interrupted myself to write this post. However, I really felt like a stranger when trying to use the designer to move things around in XAML, using the design space is uncomfortable, especially for someone who spends more time in text editors…etc.

So now I feel stuck, do I put up with this and force myself down the XAML/C# track or retreat back towards HTML5/JavaScript. The only selling point for me at the moment towards XAML/C# is potential skills reuse for Windows Phone 8 Dev. If you’re a Windows 8 Developer, which way did you choose and why? Also, Microsoft, any chance we could be getting HTML5/CSS/C# for Windows 8 dev. in the future?