Microsoft is retiring Visual Studio for Mac in 2024
visualstudio.microsoft.com
visualstudio.microsoft.com
[0]: https://news.ycombinator.com/item?id=37325427 [1]: https://news.ycombinator.com/item?id=37326419 [2]: https://news.ycombinator.com/item?id=37369946
This is...not a super accurate way to describe VSCode
That "niche market" likely pulls in billions of dollars from enterprises.
They tried to displace Java but failed.
C# is currently #5 on Tiobe right behind Java:
https://www.tiobe.com/tiobe-index/
It is just as mainstream as Java and everything else in the top ten.
>> They tried to displace Java but failed.
Enterprises used to be either Linux / Java shops or Windows / C# / VB shops.
Now both Java and C# are being slowly displaced by Containers, Go, and Rust.
JetBrains Rider's a bigger competitor but even then (at least at my org.) most devs have a Visual Studio Professional/Enterprise subscription as a backup.
The amazing debugging, stepping through, etc that Eclipse and Visual Studio has, were leaps and bounds more superior to all the stuff that was lacking in the simple text editors.
LSP has helped tremendously. And there are similar debugging protocols. It's kind of getting there, but again, nearly 20 years ago, I could start up a project and hit the debugger immediately without fiddling around with settings and googling around.
And I feel the lack of such good tooling has enabled a whole generation of "print string" debugging (which I totally do now) because we simply can't easily run and step through.
Is this other people's experience? Hopefully the debug world is better in Go/Rust land than it is in Elixir/Ruby land.
It's working in VS Code now, too. For popular languages, you just have to install the respective plugin (only TypeScript is builtin), but it's just a click on the prompt. I've been doing lots of Python debugging and it's pretty much a seamless experience.
So for a large number of use cases, they have to be talking about retiring VS eventually too.
This multi-process architecture (with language servers, debug servers, remote SSH mode, etc probably making much better use of multiple cores has to be easier to migrate to)
I’ve used it before on a mobile tethered line with Tailscale and it was magical.
That's weird, it works for me just fine.
But then I debug with console.log (nee System.out.println) so probably I'm some sort of neanderthal.
I sorely miss its code changing capabilities.
Just simple things like automatically reordering aliases in elixir would be nice.
They all have extension architectures that expand on what that means, but they all cover the same kind of use cases and they all stop short of traditional Integrated Development Environments.
Unless you’re saying that none of the others should be called text editors either (a daunting uphill fight against history), it’s an exactly accurate description.
On personal note: my company pays for Visual Studio Ultimate + Jetbrains for me and I rarely open it these days and use VSCode 99% of the time.
Emacs users saw the benefits of a single text editor a long, long time ago. Back when I started programming it was common for people to use a different IDE per language. There was VS, Eclipse, Dreamweaver etc. I thought that was insane. It's been funny seeing people finally realise the same a decade later.
JetBrains IDEs are the sweetspot between absolute single purpose IDEs (like Eclipse) and text editors that require plugins to be useful (broadly speaking).
I am all in on JetBrains, to be perfectly transparent, but I have yet to see anything come close to the seamless experience I've had with their IDEs
Run natively on Linux:
Someone mentioned the visual aspact of vs. That I've literally used once, at the very start of my bachelor. Vs is confusing, huge, and densely feature packed. I think I just never took the time to enjoy the features vs has.
This isn't weird when you consider my top choices: vs code and emacs both share the characteristic that they get out of the way when I'm doing my stuff. I usually want the bare bones, vim keybinds enabled workflow when I'm working, because it's fastest and it's what I know. I can use smart features like var renaming, autorefactoring etc. in all of these options, but in vs code and in emacs I feel less like they're butting in when I don't want them to, and when I'm changing settings or executing commands I'm not traversing a dense jungle of menus, settings and options like in vs.
In short for me the experience is easier and therefore more flow like.
[EDIT] It seems folks won't classify Word/GDocs as "text editors" due to their additional features. Great point! I'm getting deja vu...
emacs, vim, and VSCode are _Source Code Editors_ which are a type of text editor. You can make a source code editor into an IDE by adding integrated compiling and debugging tools.
And that works pretty darn well, but struggles to integrate all of the toolchain's development opportunities into the workspace environment.
Horizontal integration across workspace modules would help too. Most text editor extensions rely on a least common denominator UX language through command palettes and button arrays and human-editable config files.
And that also works pretty darn well, but struggles to integrate all of the workspace environment's features into coordinated development workflows.
There is no slight being made against VS Code to say that it's not the same as a more fully integrated development environment. It's a very powerful tool in itself, capable of meeting most developer's needs and is far more extensible and adaptable than IDE's aim for.
I resent that emacs is a full on OS that just happens to have a less than stellar text editor.
Distinguishing VS Code from IDEs seems so forced and unintuitive to me. What's the point?
However it was designed really well in that it has a lot of good integrations which make plugins feel almost integrated and natural. Not to mention the plugin process is the smoothest i've seen of any text editor so for many people it is transparent, they just think they are enabling features and don't realize they are actually just downloading 3,000 plugins.
I'm not trying to argue a no-true-scottsman here. If people want to call it an IDE they can.
But download something from JetBrains and give that a go or something like xCode or the real Visual Studio and you'll see how deeply "integrated" it is, so that it feels like a full featured developer environment from the start, hence the IDE moniker.
There's nothing wrong with VSCode. You can do your whole job in it i'm sure. But compare it to something like JetBrains and it is really really hard to put them truly next to eachother. With enough customization you can get VSCode close, but it sure isn't like that without a lot of customization and plugins from 100 different developers with varying levels of support and reliability.
Fwiw, the Wikipedia page for Visual Studio calls it an IDE and the wikipedia page for VSCode calls it a "source code editor". So maybe as a "source code editor", thats where it bridges the gap between IDE and Text Editor.
AFAIK there were at least 2 of such plugins available, but this was the more popular one, and I don't remember what I tried before giving up, but I do not want to be playing Linux with my IDE. I need it to actually work.
VSCode feels pretty bog standard in the pantheon of IDEs that I've (ab)used over the decades. By default VSCode searches symbols/references, formats code, debugs, has an integrated terminal, handles source control, has smart autocomplete and snippets, etc. I've never harkened back to my days with PhpStorm/PyCharm/VS/Eclipse/CLion/etc and thought "gosh, I wish VSCode did <this-feature>".
To me, if VSCode is closer to Notepad than to NetBeans, then the "text editor" vs "IDE" distinction is virtually meaningless. Ditto for the term "source code editor." I guess it's just personal preference though.
Not that I want those things in VSCode, and if I did there's likely a plugin for that. This is just where I happen to dilineate the two.
If I suddenly want to do C++ development - I need to install it. And it's not easier than it is in VSCode.
[1] https://learn.microsoft.com/en-us/visualstudio/install/modif...
What other things need to be integrated before it can be blessed as an IDE?
Though this whole thread could really be considered off-topic since the original post is about Visual Studio for Mac!
Support for specific languages/debuggers/build systems is provided by extensions.
Look up how LSP and DAP work for example. A hugely successful extensible IDE system.
It always felt like it to me. From the get go. But they deny it. Still, Visual Studio is so heavy, feels sluggish, written in WPF, and not from an era of modern, plugin-based software development.
Visual Studio Code also offers many features VS don’t. Oh, and it perfectly debugged Python code on Windows for me (VS somehow failed to attach its debugger to Python.exe) and auto-detected venv’s for me from the mere folder structure, none of which Visual Studio did.
Code feels like the .NET Core of Microsoft editors to me. Not only new thing for cross-platform development, but the next thing for Windows development too. Just like .NET Core.
Sure, Code still miss things but those only feel like extensions away at best. A far better and less monolithic design. Now, if we could only have it be WebView2 based rather than Electron on Windows and cut 50% RAM use right off the bat…
It takes a significant amount of clicks debugging C++. I can't just have the file and debug views present at the same time, I have to keep jumping back and forth.
The launch json config system also introduced a ridiculous amount of verbosity, not to mention it's insanely easy to multi launch instances and confuse yourself.
(Edit: I forgot to point out that Visual Studio for Mac never appeared to be a port. It always appeared to be a "clone" of Visual Studio with a very similar UI.)
They've always been rather buggy and unstable compared to Visual Studio on Windows. They were a nice way to do C# on Mac without needing to load a VM; and for the last few years I really appreciated that C# was getting "first class" support on Mac.
I hope C# works well under VS Code.
How well does VSCode work with the Unity engine? My understanding was that for game C# programming on macOS Unity recommended(required?) Visual Studio for Mac™.
Visual Studio starts faster not much more though noticeable but these two have same base.
So just wonder why is that or it is just my imagination.
They either needed to kill it, or make it at least as good as it was on Windows - guess they decided killing it was easier.
Care to add any detail, and reason?
I tried to use it on a Xamarin project a few years ago, and between the poor autocomplete and frequent crashes, I switched to JetBrains Rider for everything but XAML editing. There were also features that were locked behind a $250/month Enterprise subscription which other IDEs provide for free.
https://en.wikipedia.org/wiki/MonoDevelop#Visual_Studio_for_...
The number of .NET shops that have their developers on Macs has got to be quite small.
Our modern .NET Core codebases aren't much of an issue (pre core 3.1/5 are tricky without Arm support but those are easy enough to upgrade) but we have a bunch of older Framework codebases that forces them to run Windows VM's.
The equation for MS is probably that VSMac was good for those targetting the older .NET systems but with Apple going for ARM it's just too much work to get them decent (and Mono's Framework support didn't seem good enough for even a fairly simple project we tried to get running recently) and with the new C# SDK for VSCode mostly giving parity for newer projects there is fairly little reason to spend any effort on VSMac.
We tried the Rider trial and it was a far superior experience, but the price wasn't justified for our use case.
I and others configured nvim to just work, and some others just stuck to vscode with the cli. Not one person wants to use the Visual Studio anymore. It's wild how Microsoft missed a great opportunity as I find the machines quite good, and the Windows experience with Visual studio is genuinely impressive.
Can you elaborate? I've done some dotnet work on macOS and it wasn't materially different from working on Linux, in my experience.
Edit: Other, not older.
There was a few issues (incomplete in the dotnet core) that would involve particular cases with threat priorities and pooling.
This recent project though, all of the System libs seem to be perfect. My previous comment might have sounded disparaging to Microsoft, but they've done an incredible job recently and deserve credit.
1) A lot of it is just muscle memory that doesn't work in MacOS. Can't do Ctrl+C, it's Cmd+c. Figuring out the equivalents of things you haven't even thought about doing in a decade can be tough.
2) Not all, but many of them only knew how to work via GUI. Visual Studio for Mac does enable you to do most of that, but learning new stuff like Node requires you to drop into a command line, and more than a few felt like that was way less intuitive and easy to use. They preferred menus you can click through over man pages.
3) A surprising one: case sensitivity. Windows doesn't care, but Mac does for things like filenames. This in combination with 2 would mean there would be some frustration as to why the OS couldn't find a file that was "right there".
4) A lot of them (I'd venture to say all of the ones I was in charge of) were still in .NET mostly because they had gotten comfortable with it, and weren't particularly invested in learning something new unless they had to. So of course throwing a whole new OS at someone with this mindset would be a little frustrating.
5) Building off of #4: some of the old guard came up when Macs were something you bought for the graphics designers and "real" developers used Windows. So they would still crack jokes about having to use a "Crapintosh" without realizing how powerful the ecosystem has become.
So I expensed a nice KVM and dug the backup Windows laptop out of the closet and got to work without a hitch.
I'm in the habit of preemptively ordering a Mac and a Windows machine for anyone on my team who's so unlucky as to even infrequently have changes to effect on both our iOS and backend systems.
That said, a comment in one of the open issues indicates that it is incompatible with .NET Core.
I think they are killing it for two reasons:
* Cross-platform .NET development on VS Code has gotten very good.
* JetBrains Rider is even better, especially for professionals, and becoming very hard to compete with.
Getting VS Code as popular as it is today was the strategy. For that, it needed to not be shitty.
The enshittification only began after they took over the market
What a strange take. Why wouldn't they rather not create it in the first place if they were so worried about cannibalizing their free product by ... another free product?
The most logical explanation would be something like "they released this product because they were making a huge effort to get C# to be a truly cross platform language but the mac adoption remained low so they decided to retire this product and focus more on VS code which has massive adoption on mac"
But that would be too aligned with most developers priorities so it is not even on the radar for most people.
Not that I'm the biggest VSCode fanboy although I use it constantly. And not that I even own a Mac anymore come to think of it. But still, the wording of this post definitely contributed to global warming.