A few months ago I heard “Visual Studio is coming for Mac.” At first, I did not believe the person who told me. But once I gained confidence in their sensibilities, I was thrilled. And now that it has arrived … well, it really isn’t Visual Studio for Mac. This is Visual Studio Code.
The idea was great. I was going to dump my slow Windows 7 box containing my decked out Visual Studio 2012 — extensions and all — and my dev onto my super fast 4K iMac. All without conceding to Boot Camp; but it looks like that time has not yet come.
Visual Studio Code is an integrated development environment (IDE) that runs on Mac — as well as Linux and Windows (for some reason). But Visual Studio it is not.
I'm down here at the BUILD Conference in San Francisco and Microsoft has just launched Visual Studio Code - a code-optimized editor for Windows, Mac, and Linux and a new member of the Visual Studio Family. First, I apologize to Mac-haters. I know that there are some software packages, like Parralel Desktop for Mac, that let you run XP on a Mac. Does anyone know if Visual Studio.net, IIS, etc. Run good on a Mac, using. The most important thing in Visual Studio Code for me is the fact that it is a cross-platform editor, I use it on my Windows/Mac/Linux machines. It makes the development process much easier and convenient when you have your own environment setup on each of the platforms (which can be easily transferred to a text configuration file).
I gave it a good three hours of testing: the install was easy, until I needed to update Mono. And opening the first project from GitHub was easy as well. Here is what I found:
Pros
Light Weight
Yep, it is totally light. It is all about get in, code, commit and leave. Which is nice, because if you are used to Visual Studio, you know it can be very heavy. Visual Studio Code takes much less time to launch, and auto-complete is way faster.
JSON Settings
Love the fact that all settings for the IDE are project-based and JSON files.
Search
The search interface is really nice. It is responsive and supports Regex.
Cons
Language Support
For the supported languages — JSON, CSS, HTML, {less}, and Node.js — intellisense and autocomplete work. And it’s fast. But for other languages, like PHP, all you get is syntax highlighting.
Mono
Well it’s pretty cool they support Mono, but my testing intellisense and autocomplete are not supported. It is .NET for Mac, for God’s sake. Why would you not put more effort into the code support here?
Visual Studio For Mac Reviews
Build my Code!
You can only run Mono and Node.js projects. Which is pretty confusing, as the language support is not great for Mono, but you can debug for it. This was a freebie for them. All they do is call your locally installed mono compiler, which does the work. It is not likely, even with the really cute debug icon, you will be doing any debugging.
It was a bit of a let down, but it is still neat. The actual use cases must be pretty limited. I’m picturing a small team, or working on a very small component quickly. But I do not see Visual Studio Code replacing the developer’s dedicated IDE. Nor do I see it being used in any sustained capacity.
Visual Studio Code For Mac Review
So why does it exist? I think it’s mostly a marketing play. It certainly was developed well. But likely it was the the path of least resistance, to see how their all-important “Developer Tools” focus was going to fit into Linux and Mac. It also builds confidence in Microsoft’s reconciliation with other applications. If I am Microsoft, I’m watching the download numbers and reviewing all feedback to simply gauge the reality of people using it. If you can get developers across any platform addicted to an IDE, then you have an “in” for the entire VSO suite.
But I also get this weird feeling, which I also got at Build 2015, that Microsoft and Xamarin are up to something. Although on so many levels they are competitors, they go out of their way to work together. And the more Microsoft places products on the same machine as Xamarin tools, the better. Conspiracy, much?
So I do not get to dump my Dell just yet, and at this pace I might fully move to a Cloud IDE before I do Visual Studio Code. I think it’s worth a try. But after a few hours you will get the gist. And honestly, if you have the Git client installed and need to make a quick change to your code before bed, it’s great.
Feature image via Flickr Creative Commons.
Many people don't seem to understand the internals of all this... MonoDevelop is the core of XamarinStudio and Visual Studio for MAC, so essentially when these guys add features they are in reality adding them to monodevelop. So think of it as:
Visual Studio Mac = MonoDevelop + macOS extensions
Xamarin Studio = MonoDevelop + extensions
MonoDevelop = Libraries, ASP.Net, GTK#, Xwt, Console Apps, etc.
Visual Studio For Mac Download
What's important here is that porting over the real VS to Mac or even Linux is not practical. You won't also see mfc/win32 support on mac or linux (on the foreseeable future) because those are extremely tied to the windows architecture which is far from being compatible with unix, most people just don't get it. Same case for developing say, iOS applications, you just can't do that without macOS because you need the tooling, so its not really up to Microsoft.
What I think could be accomplished relatively easy is a XamarinStudio/VisualStudio/Monodevelop on Linux with support for Android development since you already have the tooling available there, the IDE would just wrap up the core code/tools. Also, there is no truly multiplatform desktop framework as each platform has its intricacies but there's an actual toolkit (poorly named, btw) called Xwt which is what monodevelop uses in some parts and draws native widgets depending on the platform is running, something like what Qt does.