Building a great Windows 8 app Step 4: Pick your programming language

Windows 8 start screenWhat’s the best programming language for your Windows 8 app? .NET, JavaScript with HTML/Canvas, or C++?

This blog is part of a series, you can see the rest of the series here.

If you want to develop for Windows 8, you need to decide which programming model best suits your needs and skills and find some resources to help you get started with your chosen model. Don’t forget in Canada, any app you publish before end of March 2013 can earn you rewards through the Developer Movement, and students building apps can enter them in Imagine Cup!

Let’s look at options for different types of developers:

  • Are you a web developer?
  • Are you a game developer?
  • Are you a .NET developer?
  • Are you a Java developer?
  • Are you a C++ developer?
  • Are you an iOS developer?
  • Are you an Android developer?

Are you a web developer?

If you’ve been coding HTML, HTML5, CSS or JavaScript you can use those same programming skills to build a Windows 8 app. To get started check out the Roadmap for Windows 8 apps using 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 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. So if you are already developing websites with HTML and JavaScript take what you know and apply it to Windows 8 app development.

Are you a game developer?

There are a number of options for game development on Windows 8, what makes sense for you depends on your existing game experience and the complexity of the game you plan to build.

C++

I would not recommend C++ and DirectX for a beginner programmer, but, when it comes to high performance games, serious gamers turn to C++ and DirectX. With DirectX and C++ you can build great games for Windows 8. To get started, check out the Developing Games for Windows 8 or Developing apps with C++ and DirectX (scroll down to the section Game Programming in C++.)

JavaScript with HTML and Canvas

Easier for beginners than DirectX, you might be surprised at the games you can build with HTML and Canvas. It is growing in popularity for web games, especially with fewer platforms supporting Flash. The same HTML and Canvas capabilities that exist on the web can be used to build cool games for Windows 8. To get started here’s a good post by David Rousset called Everything you need to know to build HTML5 games with Canvas

Have you already built XNA games?

XNA is not included on Windows 8, however there is an open source cross platform implementation of the XNA framework called MonoXNA that you can use to build Windows 8 apps. To get started check out Tara Walker’s blog on Windows 8 development using C#, XNA and MonoGame 3.0

Do you prefer a 3rd party tool which generates the code for you?

There are a lot of companies out there who produce tools for beginner and experienced game developers. These products have their own development environments and generate the application code for you. Some of these tools are free, some charge you either for the development environment tools, or to publish the apps. To get started check out cross platform tools that support Windows 8

Are you a .NET developer?

If you are already familiar with the .NET framework, you will probably find it easiest to develop your apps in C# or VB .Net with XAML. To get started check out the Roadmap for Windows 8 apps using C# or Visual Basic.

Are you a Java developer?

If you have already coded in Java, you will find it pretty easy to pick up C#. Consider building your apps with C# and XAML.To get started check out the Roadmap for Windows 8 apps using C# or Visual Basic.

Are you a C++ developer?

Go ahead and build your app using C++ and XAML. To get started check out Building your first Windows Store app using C++.

Are you an iOS developer?

There’s some great resources to help you bring your knowledge of Objective-C, Cocoa Touch, and XCode to Windows Store app development. To get started check out Resources for iOS developers. If you are planning to build a new app and want to target multiple platforms you may also want to check out Cross platform tools that support Windows 8.

Are you an Android developer?

The platforms are different, but you can certainly take an app you built for Android and port it to Windows 8. To get started check out this article Porting Android apps to Windows 8 . If you are planning to build a new app and want to target multiple platforms you may also want to check out Cross platform tools that support Windows 8.