Next programming language #programming, #software #development, #devops, #java, #agile, #web, #iot, #database, #mobile, #big

#

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

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

Get Your Apps to Customers 5X Faster with RAD Studio

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.

Leave a Reply

Your email address will not be published. Required fields are marked *