Over the years, Microsoft has developed and introduced a number of programming languages. One of its more recent additions, C# (pronounced See Sharp) is a powerful language that has grown in popularity since its release.
C# was introduced around 2000, and was approved by the Ecma as an international standard in 2002. According to the Ecma, there were a number of goals with C#, including:
• C# is intended to be a simple, modern, general-purpose, object-oriented programming language.
• The language, and implementations thereof, should provide support for software engineering principles such as strong type checking, array bounds checking, detection of attempts to use uninitialized variables, and automatic garbage collection. Software robustness, durability, and programmer productivity are important.
• The language is intended for use in developing software components suitable for deployment in distributed environments.
• Source code portability is very important, as is programmer portability, especially for those programmers already familiar with C and CSupport for internationalization is very important.
• C# is intended to be suitable for writing applications for both hosted and embedded systems, ranging from the very large that use sophisticated operating systems, down to the very small having dedicated functions.
• Although C# applications are intended to be economical with regard to memory and processing power requirements, the language was not intended to compete directly on performance and size with C or assembly language.
Early on, C# drew multiple comparisons to Java, with Java’s creator calling it an imitation of his language. There are enough similarities that it’s easy to see why such comparisons are made. Like Java, C# builds on C, incorporating object-oriented principles and improvements.
Just as Java requires the Java Virtual Machine (JVM), C# uses the Common Language Runtime (CLR). The CLR is a virtual machine that is part of the .NET framework. At first glance, it may not be obvious why C# would be designed around a virtual machine (VM). After all, in Java’s case, its dependence on a VM is because of its Write Once, Run Anywhere (WORA) paradigm. As long as the JVM is present on a given platform, that platform will run Java applications, with little to no changes needed.
In C#’s case, however, the language is primarily used for Windows development. Even so, Windows increasingly runs on a wide variety of hardware and processors, including Intel, AMD, ARM, desktops, tablets and phones. As a result, implementing the CLR helps ensure maximum compatibility and makes the language ideal for all types of Windows development, especially since the .NET framework is a bundled part of Windows. As a result, unlike the JVM, Windows users don’t have to worry about installing the CLR, as it’s automatically included.
Developers wanting to use C# outside of Microsoft’s ecosystem can use Mono, a free, open-source framework that is compatible with .NET. Mono supports virtually all the major operating systems, including macOS, Linux, UNIX, iOS, Android and, of course, Windows. As a result, a developer can use C# to develop applications for virtually any platform.
Additional Advantages of C#
Another significant, although somewhat intangible benefit, of using C# is Microsoft’s backing. While many programming languages and frameworks exist, not all go on to gain widespread success and support.
Having been created by Microsoft, and forming the basis of development for Windows, C# has steadily risen in popularity. Given Microsoft’s market share, there is virtually no chance the language will fall out of favor. This provides a measure of long-term security when a developer chooses to learn and specialize in C#.
What C# Developers Do
As the preceding information demonstrates, C# developers work on a wide variety of projects, including front-end applications and back-end development.
While C#/.NET developers will primarily work within the Microsoft ecosystem, including the open-source Mono framework opens up a world of possibilities. Developers using Mono can create applications for virtually any platform in use, including both desktop and mobile.
In addition, because the .NET and Mono frameworks support web-based applications, many C# developers are heavily involved in web development.
A Bright Future
Without a doubt, C# has stormed onto the programming scene since its debut in 2000, quickly becoming one of the more popular languages available. While much of that is because of Microsoft’s support and backing, a large portion is also because C# does what it was designed to do and does it well. Thanks to Mono, C#’s abilities go far beyond Microsoft’s ecosystem, opening up development on virtually any platform.
As a result, any developer who chooses to focus on C# development should have an exciting and varied career ahead of them. The sky is truly the limit, providing opportunities in desktop, mobile and web development. To learn more, check out the official C# website.