It has been 16 years since Microsoft publicly announced C# language in 2000. Over the years, C# language has matured and has become one of the most popular and loved programming languages among Microsoft developers. As a matter of fact, C# language is #4 among the most popular programming languages behind Java, C, and C++.
Today, C# is not only a Windows development programming language but can be used to build Web applications, Windows store apps, and mobile apps including iOS and Android. C# can also do more than that. If you’ve not already read my article, I highly recommend going and reading What C# Can Do For You.
At the Build 2016 event, Microsoft made several exciting announcements and one of them was integrating Xamarin as a part of Visual Studio “15” and beyond. Now C# developers can build iOS and Android apps that can spit out native iOS and Android code.
- You can write C# in any editor you want
- C# is open source now
- C# runs on Windows, Mac, and Linux
- C# can be used to build Windows client apps, Windows Store apps, iOS apps, and Android aps and can also be used to build backend and middle-tier frameworks and libraries.
- Supports all IDEs and editors
- All the linters and analysis tools
- All the fixing and refactoring and code generation tools
- All the scripting and all the REPLs
- C# 7 comes with new features including tuples, record types, and pattern matching. Here is a good article that explains these features: All about C# 7.0 Features
Watch this 59 min video to learn more details on the future of C#.
C# is young and evolving.
Unlike other programming languages, C# is still young and evolving. Now being open sourced, C# is getting community involvement and new features are being decided by community. The following table summarizes the improvements made in each newer version of the language.
Version | Year | Key features introduced |
1.0 | Jan 2002 | |
1.2 | Oct 2003 | Modern, object-oriented, type safe, automatic memory management, versioning control |
2.0 | Sept 2005 | Generics, partial classes, anonymous types, iterators, nullable types, static classes, delegate interface |
3.0 | Aug 2007 | Implicit types, object and collection initializers, auto-implemented properties, extension methods, query and lambda expressions, expression trees, partial methods. |
4.0 | April 2010 | Dynamic binding, named and optional arguments, Generic covariance and Contravariance, Embedded interop types |
5.0 | June 2013 | Async methods, Caller info Attributes |
6.0 | July 2015 | Roslyn (compiler-as-a-service), exception filters, Await in catch/finally block, auto property initializer, string interpolation, nameof operator, dictionary initializer |
7.0 | 2016 | Tuples, pattern matching, record types, local functions, Async streams |
As you can see, unlike other languages, C# is a continuous work and now it is open-source, expect more changes in future versions.