Every now and again it’s good to take stock of the languages and frameworks you use every day. A technology that is actually dying or losing ground to some younger tech is probably not worth getting into or worth getting out of. It’s stressful fretting about choosing or sticking with the “right” programming language. If this is you then here is far from complete, totally arbitrary and partially overlapping list of reasons why C# is smart bet in 2018 and beyond.
1. It’s not the same Microsoft as before
Developers who have never touched Microsoft tech still think that embracing its tools is synonymous with vendor lock-in, crazy proprietary licenses, blue shirts and khaki pants. And to be fair, until not long ago that was kind of true. It will take a while before the broader development community is able to shake off this stigma. It’s not fun when you’re stuck on a Windows development machine and expensive Windows servers are you sole deployment option while the world is so much bigger. This was one of the reasons I left .net and Microsoft for a little while to explore Ruby and Rails, but that’s a different story. What matters is that with Microsoft new found love for open-source you can be confident that Microsoft and C# have its priorities straight.
Your worries would have been justified, though, if Microsoft hadn’t embraced open-source. It would not have been able to compete with the now common idea that developer tools should be open and there are plenty of alternatives out there.
With the rumors stacking that Microsoft is about to acquire GitHub, is looks like Microsoft is getting even closer to its roots: building software development tools.
2. It’s still the same Microsoft as before
Microsoft got a lot of flak back in the day and it’s easy to forget the contributions the company has made to software development. Having such a powerful force behind C# and its eco system should keep C# relevant for years to come.
3. C# has earned its place
In StackOverflow’s Developer Survey 2018 C# ranked 8th in their list of most popular technologies. In 2017 C# was 4th. In the 4 years before that C# was 4th as well. The “drop” from 4th to 8th between 2017 and 2018 can be partially explained because StackOverflow added html and css to the Most Popular Technologies list in 2018, and those are hard to beat. Still, in 2018 34.4% of software developers have C# on their tool belt. It’s not going anywhere soon. Let’s revisit this when that numbers drops below 10.
4. Build native mobile apps
5. Develop on your Mac, deploy on Linux
This one ties back to .net core since .net core is cross platform. .Net core runs on Windows, Mac and Linux with no extra effort. This means you can develop .net apps with C# on your Mac or Linux box. Microsoft has provided all the tooling and sdk’s for a smooth development experience on both platforms.
With .net core running on Linux it also means that you never have to touch a Windows server ever again, unless you want to.
6. Build fast and modern (web) apps with .net core
.Net core and asp.net core are the latest iterations of the .net and asp.net frameworks. The once closed, monolithic, khaki and blue shirt framework is now, well, not that anymore. Getting into too much detail is beyond this article, but C# + (asp).net core is a powerful combination and for developers like yourself reason enough in and of itself to get or stay into C#.
7. Visual Studio is optional these days
Coding C# meant using Visual Studio. Some devs swear by it, others despise it. Whatever floats your boat, you can now opt out of Visual Studio if you prefer a text editor + command line work flow. Visual Studio has a Mac edition these days which is good but is not yet at the level of its bigger Windows brother.
8. Anders Hejlsberg & Mads Torgersen
Anders Hejlsberg is the creator of C#. He works full time at Microsoft. Hejlsberg is one of the brightest living minds in computer science today. As his focus has shifted away from C# to the development of TypeScript, Mads Torgersen has taken over as C#’s program manager.
9. Asynchronous programming that doesn’t suck
Asynchronous programming becomes a lot less painful using C#’s
async keywords. From the Microsoft docs: “By using those two keywords, you can use resources in the .NET Framework, .NET Core, or the Windows Runtime to create an asynchronous method almost as easily as you create a synchronous method.”.
async/await is inspired by C#’s implementation.
10. Calm, composed, compiled
Granted, the fact that C# is a compiled statically typed language does not make it special. But should you be considering C# coming from an interpreted dynamically typed language like php, python, ruby, etc, know that C# comes with a more grown up development experience. Static typing powers code completion, code references, finding definitions, safe refactorings, etc. In short, many of the features that make coding a bit less painful.
Flip side is that each time you want to run your C# code it needs to compile first. This turns off some developers that are used to a interpreted dynamic language because it feels like it hinders your work flow as you need to wait for your code to compile before you can run it. In the long run though, the benefits of a compiled static language become more obvious as the intelligent tools based on the C# compiler watch over your back when you are debugging, refactoring or expanding your code.
How does this help you?
The arrival of .net core has opened a lot of doors for C# and everything .net. Are you on the fence about C# or worried that it’s “dying”? Don’t be. Its future is bright and its cross platform features will appeal to a whole new generation of developers.