Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Why .NET Core Made C# Your Next Programming Language to Learn

DZone's Guide to

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.

· Web Dev Zone
Free Resource

Add user login and MFA to your next project in minutes. Create a free Okta developer account, drop in one of our SDKs to your application and get back to building.

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.

The problem with many of the existing programming languages is they are good at one use case. Ruby and PHP are awesome for web applications. Swift or Objective-C are great for creating iOS or MacOS applications. If you wanted to write a background service you could use Python, Java, or other languages. Besides C#, JavaScript and Java may be the only languages that can be applied to a wide set of use cases.

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

If you have done any programming in C, Java, or even JavaScript, the syntax of C# will feel very familiar to you. The syntax is simple to understand and read. Based on the TIOBE index I posted above, there are millions of developers who could easily make the switch from Java or C.

There are lots of online resources to help you learn C#. Many are free and there are some that are low cost as well.

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

One of the best things about C# and .NET is the versatility of it. I can write desktop apps, web applications, background services, and even mobile apps thanks to Xamarin. Besides C#, all I really have to know is a little JavaScript (aided by TypeScript) to hack some UI code together (which I still try to avoid!). ASP.NET Core templates even make use of Bootstrap layouts and npm for pulling in client-side libraries.

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.

Launch your application faster with Okta’s user management API. Register today for the free forever developer edition!

Topics:
c# ,.net core ,web dev

Published at DZone with permission of Matt Watson. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}