The statisticians behind the Popularity of Programming Languages (PYPL) index have named C# the language of the year for 2012. Their data shows that C# popularity grew by 2.3 percent in 2012, more than any other programming language during the same period.
What accounts for the growth of C# in 2012? Well, the launch of Windows 8 has probably played a role — C# remains the dominant language of third-party application development on Windows devices.
But we think there’s more to it than that. Here are eight reasons why C# is increasingly the programming language of choice for mobile development:
- Cutting edge – asynchronous programming as a first-class language feature turns what is typically regarded as boring, repetitive and error prone coding into a simple and delightful experience. And anonymous types, lambda expressions, type inference, functional-style programming and LINQ allow developers to write code that is highly expressive and easy to maintain.
- Powerful features – object-oriented programming and encapsulation make it easier to structure code for maximum reuse. Capabilities like reflection and dependency injection offer developers a lot of power and flexibility.
- Advanced runtime – garbage collection greatly simplifies development by eliminating the cognitive overhead of manual memory management. Developers can focus on solving problems that matter instead of fighting with pointers.
- Reliability – type safety makes it faster and easier for programmers to detect and isolate bugs at compile time–an especially important characteristic in mobile development where the build/run/test cycle is lengthened by the need for specialized packaging and deployment to a device or emulator. With compile-time sanity checking, C# developers don’t have to wait until their program crashes in order to find obvious errors.
- Easy to adopt – extremely easy language to learn, especially for developers who are already familiar with the principles of object-oriented programming. The enormous body of available C# reference material ensures that new developers never get stuck.
- Fast execution – C# on iOS is powered by the LLVM optimizing compiler, the same backend used by C and C++ that powers the operating system, giving you the best of both worlds: the high productivity of C# and the performance of a low-level language. On Android, C# performs better than Java both because of language design choices (support for value types, real generic types, non-virtual method defaults) and the more mature Mono runtime compared to the relatively young Dalvik.
- Native access – seamless interoperability with native code gives developers the best of both worlds. You can bind native libraries and leverage the power of P/Invoke to expose additional functionality to the world of managed code. This is how Xamarin has exposed 100% of the native APIs on iOS and Android to C# developers, giving you access to the full expressive power of the underlying platform, as Rdio recently demonstrated with their C#-based iOS and Android apps.
And the big number 8: portability. Between Windows, iOS and Android, your C# code can run on over 2.2 billion devices. And beyond mobile, C# is highly portable in a wide range of environments across the spectrum of mobile, embedded, desktop, and server computing.
With the arrival of 2013, it’s time to set goals for the new year. Xamarin can help you achieve your mobile development aspirations. Consider making mobile C# development your new year’s resolution!