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.
With the arrival of 2013, it’s time to set goals for the new year. Xamarin can help you achieve your mobile development aspirations.