Building the Right Environment to Support AI, Machine Learning and Deep Learning
Over the years, since .NET first appeared, there have been many languages created or adapted for use with .NET. IronLisp was one, but was ultimately superseded by IronScheme. J Sharp, created to ease the transition of Java developers moving to .NET, allowing them to bring their existing skills with them; saw its last stable release in 2007.
That said, and given the great work put into all the projects aimed at bringing a language to .NET, today we have a great array of languages to choose from. In this article, let's take a look at some of the popular languages now.
And, I'm going to start with F#.
A functional-first, general programming language, F# is a language supported by a diverse community from across the globe, who have brought it to the excellent choice of language it is today. F# has available to it—from the F# Software Foundation—a cross-platform compiler, bringing it to all major operating systems, GPUs, and browsers. It is stated by a number of sources that F# is influenced by C#, Python, Haskell, Scala, and Erlang. However, as a developer whose work is compromised largely of C#, I would say a lot of C#'s more recent features are indeed influenced by F#.
If you use Visual Studio, which I used to learn F#, F# interactive is great for testing and running code while writing it at the same time. This has been available for quite some time; and is a feature other languages are only just starting to receive. It's also worth noting that pay cheques for F# developers of able ability tend to be very good. The financial and scientific sectors of the industry are mentioned frequently in articles of who's adopting what tech, but many others are also turning towards this language for their core development teams.
If you'd like more information on F#, and even try it out through your browser, you may find more information here.
And for some information on F# Interactive, try here.
Built on the .NET Framework, PowerShell was made open-source in August of 2016. There's very little you can't do with PowerShell. Thinking off the top of my head and this hour of the day, I can't actually think of what it can't do in its most recent release; the time of writing, that is 5.1.14393 (stable release). Using PowerShell, it's very easy to create scripts, start applications, run tasks, manage systems—locally or remotely; and much more. And, given it is built upon .NET, you have all that functionality to add to that too. As for myself, I came to PowerShell a little late in the game; but I can say this, honestly and without bias… ignore PowerShell at your peril.
If you wish to read more about PowerShell; there is a great deal of study material on MSDN.
3. Visual Basic
As a work horse of the software industry building their products on the Microsoft stack, there are many established businesses out there that still consider Visual Basic to be one of their core programming languages, with vast systems developed using it. It's easy to read and work with; it continues to be actively taught by higher education establishments and Microsoft goes to great lengths to ensure continued support for Visual Basic just as they do for C#. It's also worth noting that this language is also supported by the very new .NET Core, so expect this language to continue to remain a cornerstone of the industry for some time yet.
If this is not a core language for you, I would recommend maintaining at least a basic knowledge (pun not intended) of the language. There is a good chance a project may come along, written in VB, and you're tasked with maintaining it.
Python is a highly popular language, and for many good reasons. It's easy to read, easy to learn; it has a very large community to gain knowledge from and contribute to. It's cross platform; and there's a good chance you'll come across in any business. Furthermore, the Zen of Python—a document of good software principle—is excellent at helping any programmer develop and refine their skills.
A Zen of Python resource found here if you wish to know more…
IronPython brings this language to the .NET Framework, allowing Python developers to harness .NET for their needs. With such a large amount of learning material out there for Python, having access to .NET through IronPython could be a game changer for the right project.
For many, this is the mothership language of .NET. It's an outstanding applications development language; also, it maintains a strong presence in the development of Windows desktop applications, using WinForms and WPF, UWP apps, and Web applications through ASP.NET and ASP.NET Core. There's a large library of open-source products out there for you to make use of and/or extend for your .NET applications. This language is actively support and developed with the latest version, C# 7, in preview.
If you're familiar with C#, and would like to know what's new in version 7; have a look here…
I'm going to leave you here, but the list of languages talked about here is in no way exhaustive. I always enjoy hearing from developers who are working in a language I know little or nothing about; I can often find a new language to learn that can solve a problem I may have at the time.