What it is: Microsoft acquired Xamarin and released their cross-platform development tool as Visual Studio for the Mac.
Xamarin once developed a compiler that would let you use Microsoft’s C# programming language to develop Android and iOS apps. Xamarin proved so popular that Microsoft acquired them and rebranded Xamarin as Visual Studio for the Mac. Now Macintosh programmers can use C# to create Windows, Android, and iOS programs.
While this is great for C# programmers, it does highlight one huge issue. There’s no Visual Basic support. When Microsoft first created their .NET programming initiative, they insisted that C# and Visual Basic would be equally supported. Most programmers didn’t believe this and gravitated towards C# as Microsoft’s unofficial, official programming language.
Over time, Microsoft gradually lost interest in Visual Basic, which was no surprise because Visual Basic.NET was essentially C# with BASIC syntax so it made little sense to learn Visual Basic when you could just learn C# instead. By not supporting Visual Basic (which most programmers didn’t care about anyway), Visual Studio for the Mac simply confirms Visual Basic’s second class status. If you’re going to learn any programming language, the choices really boil down to C# or Swift.
C# is Microsoft’s real official language and now Visual Studio for the Mac lets you use C# to create macOS and iOS apps as well as Android and Windows programs. For maximum flexibility, you’ll probably want to learn C#.
The main reason to learn Swift is because it’s Apple’s official language. Just as Microsoft gradually lost interest in Visual Basic, you can expect Apple to gradually lose interest in Objective-C, their previous official language. Swift has been made open source so it’s gravitated towards Windows and Linux as well and will likely be ported to create Android apps eventually.
The big difference between C# and Swift is that C# is currently cross-platform while Swift is not quite there yet. If you already know C#, Visual Studio for the Mac is Microsoft’s way to keep you using C#. If you don’t know any programming language, then the choice between C# and Swift is a bit harder. For anyone who wants to focus exclusively on Apple products, Swift makes sense since Apple will always provide the latest features for Swift. If you want to create cross-platform apps, then C# and Visual Studio for the Mac is currently the better choice.
The ultimate goal of every cross-platform programming language is to let you write a program once and run it on multiple platforms. The reality is that this never works (think of Java). Instead, you have to tweak each program for a particular platform, but this is still far easier than rewriting an entire program from scratch.
Swift isn’t quite a cross-platform language yet, but its open source nature means somebody will create a similar program like Xamarin. Until then, C# gives Windows programmers a chance to tap into the lucrative Android, iOS, and macOS market without learning a new language like Swift.
Unless you have a really good reason to learn something else, C# and Swift are the two languages to focus on for iOS and macOS development. Don’t waste your time learning Visual Basic. Even Microsoft no longer cares about Visual Basic any longer so why should you?