Recently at Connect(), Microsoft made a slew of new announcements. First, the public availability of Visual Studio 2017 Release Candidate. This just isn't a new version of the signature developer tool, it also includes the latest bits for C# 7.0. Second, Google announced they were joining the .NET Foundation. This means that Google, technically a competitor of Microsoft, wants to be actively involved in the evolution of .NET (and indirectly C#). Third, the first public release of Visual Studio for Mac. As a native environment, Visual Studio for Mac will provide the same world class tooling support for Xamarin applications, using C# and F#.

We could go on, but there is a common thread that runs between many of these announcements. As a developer, choosing C# as a part of your technology stack is an excellent decision! But what if you are not a C# developer already? How does C# compare to other popular languages such as JavaScript, Java, Python, etc?

// "It's a Good Day to Be a C# Developer" is one of our top 5 .NET articles of 2017. See the full list here.

What's Life Like for a C# Developer?

Recently, I wrote a whitepaper, The State of C#, on exactly this topic. What does the landscape look like for someone who has either been working with C# for fifteen years or is looking at it as their first language?

In the whitepaper, I cover C# from three different aspects: career, tools, and platforms.

Career

If I know C#, does that make me better predisposed to earn more money? Maybe (no promises). You would have better luck if you combined C# skillsets with something like JavaScript. There is also a happiness factor to consider. StackOverflow surveyed their users, and asked what languages they LOVED working with. If you compare that statistic with the "top" technologies for the year, C# stands out as a perfect match.

Tools

What tools are available to а developer wanting to write C#? Most obviously, there is Visual Studio. It is considered by many developers as the premier development environment available. If you write C#, most likely you will write it in Visual Studio.

But what if you are on a Mac or Linux? Visual Studio is a Windows-only tool?

Visual Studio Code was released in 2015 as a lightweight, extensible, cross-platform code editor. Not only could a developer get a first-class experience writing C# on Linux and Mac, but VS Code also had built-in support for Node.js, Python, F#, Elixir, and more.

As I mentioned earlier, last week at Connect(), Microsoft announced Visual Studio for Mac. This tool is rebranding of the popular Xamarin Studio, but it provides Mac users with the same first class experience for building mobile and web applications Windows users have become accustomed too.

Platforms

When you learn C#, you are not electing to build desktop applications for the rest of your career. In fact, C# can follow you to any platform you may want to support.

Obviously, you can build desktop applications with Windows Forms, WPF, and the new Universal Windows Platform (UWP). Keep in mind, though, that UWP doesn't only target Windows 10. An application built against UWP can be easily deployed to Windows 10, Windows 10 Mobile, Xbox One, and even Hololens! All of this is powered by C#.

If you are a web developer, the latest advances ASP.NET will be to your liking. C# and web development go back fifteen years with the introduction of ASP.NET Web Forms. Want a more flexible web environment? ASP.NET MVC and WebAPI were designed specifically for you. The new ASP.NET Core platform was designed to work across all platforms. Write once, run anywhere!

Mobile

As discussed above, the new Visual Studio for Mac is a rebranding of the popular Xamarin Studio editor. If you are not familiar with Xamarin, it is a tool for building native iOS and Android applications that harness the power of C# and .NET as a common platform. This simply means that you don't need to write all of your application business logic in Swift (or Objective-C) and Java if you want to have multiple mobile applications.

Conclusion

This post doesn't have near the space to go in depth into any one particular part of the C# story. For example, we could have discussed the evolution of C# as a language. What features have been provided that other languages covet? With C# 7.0 on the horizon, what new features can we come to expect next year?

I highly recommend you download the free whitepaper on the State of C#. In it, we will discuss all the topics above in more depth. You are sure to leave with a better understanding of the current ecosystem, and a vision for the years to come.

Related resources: