IMG_3158When building an app for Windows 8, you have three programming models to choose from: .NET, HTML/CSS JavaScript, or C++

My husband likes cherry ice cream. My son likes chocolate. I like mint chocolate chip. Our favorite ice cream shops sell all three flavours, so we all leave happy!

When I started coding, I quickly discovered that a big part of development was making choices. I also discovered myself frustrated when working with tools and platforms that did not give me choices and forced me down a specific path.

When Microsoft first released .NET, I liked having the option to code in VB or C#. Though many hard core programmers scoffed at VB, it was a language familiar to many and supporting it allowed more programmers to move to the .NET platform without having to learn a new programming language. If you were a C programmer you tended to gravitate to C#, if you were a Visual Basic programmer you coded in VB .NET

If you want to develop for Windows 8, you have no less than three options to choose from. If you are a web developer you can bring your HTML/CSS & JavaScript skills straight to Windows 8. If you are a hard core programmer you can build an app with C++. If you’ve already been building Windows Phone apps, or coded with Silverlight, or ASP.NET apps you can build an app with C # or VB .NET

HTML/CSS and JavaScript

Websites have been built with HTML, CSS and JavaScript for years. In the past few years the trend has been towards HTML5. Microsoft started to enter the HTML5 world with Internet Explorer 9. IE9 added a lot of support to HTML5 features, and IE10 took it even further. Windows 8 also continues the trend of supporting HTML5. If you haven’t explored it yet, HTML5 is more than just new markup tags like <video> and <audio> it includes improvements to CSS (like media queries to handle different screen sizes) and updates to JavaScript. HTML5 has been gaining in popularity in the web space because it does not require any plug ins and every year more HTML5 features are being supported by more browsers.

If you’ve been coding HTML, HTML5, CSS or JavaScript you can use those same programming skills to build a Windows 8 app. Check out the Roadmap for Windows 8 apps using JavaScript to learn more.

C++

I admit it, C++ scares me a little bit, but it’s a great programming language. I just haven’t spent much time using it. It’s very popular for gaming, and with DirectX and C++ you can build great games for Windows 8. (You can build great games with HTML5/CSS as well!) If you are a C++ programmer you can build apps for the Windows 8 store using C++. Check out the Roadmap for Windows 8 apps using C++ to learn more.

C# and Visual Basic .NET

If you are already familiar with the .NET framework, you may find it easiest to develop your apps in C# or VB .Net. For more information on getting started with Windows 8 apps using .NET check out the Roadmap for Windows 8 apps using C# or Visual Basic. By the way, if you’ve already coded with Java, C# will seem very familiar.

So which is best?

What do you think I am going to answer? Yup, you guessed it. The answer is: “It depends.” There are always situations where one programming language presents an advantage over another, sometimes it is just a question of personal preference. What I do want to make clear is that Windows 8 includes an incredible array of built in functionality you can access in your code through APIs which we refer to as Windows Runtime or WinRT. This library which allows you to do cool stuff like capture a picture from a webcam or display a file picker, can be accessed by any of the programming models listed above. Thanks to some clever code behind the scenes, you use C# to call the API from C# code, you use JavaScript to call the API from JavaScript code, and you guessed it, you use C++ to call the API from C++ Code. So regardless of the model you choose, you will have access to the WinRT library and all its functionality.

Pick the option which will get you up and coding the fastest. Windows 8 is here, and you can publish apps to the Windows 8 store. Download Windows 8 today and find your favorite flavor!