Why .NET Core Made C# Your Next Programming Language to Learn
Is C# now the next cool language to learn? With its versatility, new features and being OSS, it just might. Find out how .NET Core has made C# the next big thing.
Join the DZone community and get the full member experience.Join For Free
For years I have read about polyglot programmers and how some new language was the new cool thing. Over time, it has been programming languages like Ruby, Python, Scala, Go, Node.js, Swift, and others. It is amazing to see what Microsoft, and the community, have done with .NET Core and how it has become the cool new thing.
It is hard for me to apply my skills to a broad set of problems if I have to learn many programming languages. It limits my job opportunities. The awesome thing about C# is the wide versatility of it that can be used for a wide variety of types of applications. Now with .NET Core working on MacOS and Linux, there truly is no limit to what you can do. We will explore this in more detail below.
Why C# and .NET Core Are the Next Big Thing
I have been playing with .NET Core for over a year now and have been very impressed with it. I have even ported a .NET app over to run on a Mac, which was pretty amazing to see in action after all these years!
Since our company creates developer tools that also work with .NET Core, I feel like we are more plugged in to what is going on. It feels like .NET Core is picking up steam fast and I predict there will be a huge demand for .NET Core developers in 2018. We talk to customers every day who are already running .NET Core apps in production.
According to the TIOBE programming index, C# is already one of the top 5 programming languages.
Top 6 Things to Know About C# and .NET Core
If you are thinking about learning a new programming language, I want to provide you some of my insights as to why C# and .NET Core should be on the top of your list.
Easy to Learn
There are lots of online resources to help you learn C#. Many are free and there are some that are low cost as well.
- Pluralsight – Low-cost subscription to great educational content.
- Microsoft Virtual Academy – Free videos and assessments.
- Microsoft Getting Started with C# – Free interactive tutorials.
Modern Language Features
.NET has been around a long time now and has steadily changed and improved over 15 years. Over the years I have seen awesome improvements like MVC, generics, LINQ, async/await, and more. As someone who has personally dedicated myself to the language, it is awesome to see it improve over time. With .NET Core, a lot has changed, including all of the ASP.NET stack being completely overhauled.
Here are some the top features:
- Strongly typed.
- Robust base class libraries.
- Asynchronous programming – easy to use async/await pattern.
- Garbage collection, automatic memory management.
- LINQ – Language Integrated Queries.
- Generics – List<T>, Dictionary<T, T>.
- Package management.
- The ability to share binaries across multiple platforms and frameworks.
- Easy to use frameworks to create MVC web apps and RESTful APIs.
Versatility: Web, Mobile, Server, Desktop
The versatility is a big deal because your investment in learning the language can be used for a wide array of things. Your skillset is highly portable. You can also jump from building web apps to mobile apps if you want to mix up what you are doing. This is a stark difference to most other programming languages that only work server side.
And let’s not forget the first class support for Microsoft Azure. It’s never been easier to get up and running and then deployed to the cloud in just a few clicks. Docker containers are also supported which makes it easy to deploy your app to AWS or other hosting providers as well.
Awesome Developer Tools
Visual Studio has always been regarded as one of the best IDEs available for developers. It is a great code editor that supports features like code completion, debugging, profiling, git integration, unit testing, and much more. Visual Studio now offers a full-featured, free Community edition.
It is also possible to write code for .NET Core as basic text files with your favorite text editor. You can also use Visual Studio Code on any OS as a great basic code editor. For those of you who will never give up your vim or emacs, you can even do C# development too. You could also install a plug-in for Visual Studio to add all of your favorite shortcut keys.
The whole .NET ecosystem is also full of amazing developer tools. For example, I couldn’t imagine living without Resharper from Jetbrains. There are dozens of awesome tools that exist, including a mixture of open source and commercial products.
Standardization of Skills
.NET comes with a very good set of base class libraries. Unlike Node.js, simple string functions like LeftPad() are built in. The wide array of base classes really decreases the need for external packages. Microsoft does lean on some community projects as well, like JSON.NET, to be key libraries widely used in most projects.
Microsoft provides a very good set of patterns and practices for .NET. For example, there are standard data access (entity framework) and model-view-controller (MVC) frameworks built-in. Most developers use those standard frameworks. This makes it easy as a developer to move between teams and quickly understand how things work. Your knowledge and skills become more portable due to this.
.NET Core Is Open Source
One of the biggest changes to ever happen to .NET was the open sourcing of the code. Virtually all of the code is now on GitHub for anyone to review, fork, and contribute to. This is a huge change that most people in the industry never thought would happen.
As a developer, from time to time you need to look under the covers to see what your code is really doing. For example, in the past, I once wondered if I called
Dispose() on a database connection if that closes the connection or not. If you can access the source code somehow, you can quickly verify these types of questions.
Even if you don’t contribute to the source code, you benefit from the huge community that is. Problems and improvements are quickly discussed, coded, and released for you to use on a regular basis. Gone are the days of waiting years in-between releases for major improvements or minor bug fixes.
Published at DZone with permission of Matt Watson. See the original article here.
Opinions expressed by DZone contributors are their own.