Come on, Microsoft. You've spent years cultivating your image as a good steward of open source. Don't throw it away for essentially nothing.Reply
Well then, sounds like it may be time for the .NET foundation to create a fork of v6 and add hot reloading back.
Perhaps call it ".NET 6 Open Edition".Reply
Well, I don't really think this would be considered truly evil except by the likes of Stallman.
They wanted to make an awesome plugin to C#, they chose to do it closed source to extend their vscode moat. It's quite corporate of them, but i still get their point.Reply
Microsoft can't have it both ways. Crippling open tooling in order to extract more revenue or drive lock-in will undermine their efforts to make .NET relevant outside of the niche occupied by traditional .NET shops.
I can't imagine that there's a business justification for this decision that is compelling enough to offset the long-term damage to .NET adoption and community trust.Reply
Microsoft pays quite a few people to work on Code. I assume the code is open because they gain some value from community submitting PRs and is good publicity to develop it in the open on Github.
But, make no mistake, this is not a OSS project in the true sense of the word. MS will ALWAYS be the decision maker here and will do whatever it benefits them. They pay people to work on this full time, they get to have the last word. IT'S THAT SIMPLE.Reply
Wouldn't happen if Vscode was GPL. Which of course MS would never have done either, of course.Reply
What was the outcome of the hot reload stuff?Reply
I can definitely say that for me, this is the straw that breaks the camel's back. I am turning my back on the .NET ecosystem, after having written C# for 7 years. The `dotnet watch` debacle from last year, still having key parts like the debugger closed-source and now again with this: It's just too much.
I do not want to build anything of value on top of such a shady platform that's completely controlled by one Megacorporation. It's too big of a risk.
No matter how many MVPs tout "MS <3 Open Source", how can anyone still believe them after these repeated violations?Reply
As I have said it on the original GitHub issue, there are multiple reasons for why the lives of .NET developers will always suck.
First of all every division at Microsoft needs to be cash positive. At DevDiv (developer devision) the main bread maker is Visual Studio. .NET is free and makes no money. VS Code is free and makes no money. OmniSharp is/was free and made no money. ASP.NET is free and makes no money. It's mostly SQL and Visual Studio licenses which pay the salaries of the .NET team. For that reason Microsoft can never let it happen that a free and open .NET extension can make VS Code a good enough experience for the vast majority of .NET developers. It's not by accident that despite Microsoft owning C#, .NET, VS Code and OmniSharp the C# experience on VS Code was the worst of its kind in comparison to any other programming language. It's by choice in order to push developers to use Visual Studio.
Another big reason is that Microsoft needs to keep a tight grip around their .NET developers, because .NET is the main driver to Azure adoption. Azure is an extremely unattractive product to any other development community. Azure is slow, it breaks, it over promises and under delivers and it is almost twice as expensive to AWS or GCP once you actually establish feature parity. It's mainly .NET devs who get cleverly pushed to Azure and siloed away from anything non-Microsoft by Microsoft. The world runs in the cloud nowadays and the cloud is a unix based environment. Microsoft has felt the bleed of its traditional Windows centric developer base migrating away to macOS and Linux and becoming more wise about their technology choices. In order to stop the bleed Microsoft tries hard to convince its remaining Windows developers to remain in the Windows/Azure silo by giving them just enough sugar coating so they never step outside. WSL, the new unix-like terminal in Windows, Windows containers, etc. are all attempts to keep Windows folks on Windows and therefore closer to Azure.
The irony with all of this is of course that if you are a software developer, you'll have a MUCH MUCH better experience with Microsoft owned products (GitHub, VS Code, etc.) if you choose any programming language which is NOT .NET, because (at least for now) they will not try to come after you to lock you into their Windows/Azure based silo.Reply
This reminds me somewhat of golang - ostensibly open source project but in reality all meaningful decisions are made by those at the company (including shameful throwing away of community work). Perhaps we need a different term to differentiate between open source projects that truly have open governance vs. ones that are essentially bolting on some open source shaped stuff.Reply
This sort of thing has been MS's playbook since I was a kid, or earlier. It surprises me that people are still surprised when things like this happen. I especially think someone with Miguel de Icaza's experience should know better.
It's interesting to see the generational difference here. Many of my somewhat-younger (even only by 7-10 years) programmer/techie friends just don't remember the Microsoft of the 80s and 90s, and see all the "good" they've been doing with the open source community in more recent times, and think MS is a pretty good corporate citizen in the tech world.
But in reality, MS has just done a great job whitewashing their image in the past 15 years, especially in the past 8 years since Ballmer stepped down and Nadella took the reins. I do believe they're a better, less anti-competitive company than they used to be. But they're still the same company in many ways. I think a big part of their "play nice" strategy was born out of necessity, since they heavily dropped the ball in the late 90s/early 00s when the internet/WWW was really coming into its own, and then again in the early/mid 10s when Windows Phone failed miserably. They just lost the clout to do the anti-competitive bullshit they used to pull. But the desire to do all this stuff is still there.
 It was clear to me that MS intended .NET to be a wholly-proprietary, Windows-only technology until de Icaza and co. built Mono, when MS grudgingly embraced it. This proprietary extension feels like their standard follow-on of "extend and extinguish", though it's coming a bit later than we'd expect.
 Bill Gates has also done an amazing job rehabilitating his image through philanthropy. A lot of people forget how his actions at MS probably held back progress in the computing industry for at least a decade (or two?), through forced lock-in and anti-competitive behavior.Reply
Oh, .NET is still a thing?
The actual announcement is here:
It's not quite as dramatic as the OP is making it out to be.Reply
yesterday it was the debugger, then the hotreload, now it's the language server
people are still blindReply
I'm just confused why people looking for open platforms are going for .NET at allReply
For those of you too young to remember check-out Microsoft's history of embrace and extend, their Linux/SCO patent racket and their refusal to implement web standards when Internet Explorer had dominant market share. If you had lived through this you would NEVER trust Microsoft no matter how loudly they trumpet their absurd claim to be supporters of Linux and open source. They only reason Microsoft support Linux and open source is because they failed to destroy them. .Net is just another of their desperate attempts to lock everyone into the Microsoft Way before revealing the hidden lock-in.Reply
This is depressing.
Last years `dotnet watch` and now this. I kind of went with the tide into the position I'm in (basically a C# developer for that side of my job) and as much as I was impressed with, "oh .NET is open source and cross platform now well done" and "oh, F# is a really nice language that can take advantage of the .NET ecosystem well done" it's things like THIS that make me want to run. I kind of want to. Why participate in an ecosystem where the biggest corporate overlord is trying to reduce your ability to _do things_. I'd rather use Ruby or Crystal for OOP (and I want to, they are both amazing) and OCaml for functional programming (of which F# is basically a ".NET OCaml" clone).Reply
I don't understand the fuzz about it. There are a lot of commercial/closed-source devtools out there (IntelliJ, Rider) for otherwise open languages/platforms that devs are obviously happy to use and pay for. We are not demanding that every Java/Python/PHP etc. tool is open source and free, why is there this double-standard for Microsoft?Reply
I'm an old-school GNU stalwart, and after Mircosoft has done in 1990s-2010s I wouldn't touch anything Microsoft makes even with a 10 feet pole, nor suggest anyone touching it.
They say they're different now, open source and all, but still, nah. It is a wolf in a sheep's clothing. Anything Microsoft does is a potential Trojan horse, don't use it.Reply
I love C#, had a job doing it on Mono and really enjoyed working on it, but never trusted to work on anything personal with it, in order to avoid being stuck depending on Microsoft since they bought Xamarin, and I resisted even when they published ASP.Net Core on github, really think that microsoft is un-trustableReply
No one could have imagined this...Reply
Such a great, pragmatic, versatile programming language (C#), having a great FP side-kick (F#) that can be used next to it, and years of corporate experience and a great ecosystem of closed and open-source libraries, 3rd party tooling that really brings the experience to another level (LINQPad, Rider, Resharper)...
.NET could stay closed source and everyone would happily keep using it, of course with very limited open-source adoption. Now they are being "shady" (For the lack of a better word, English is not my mother tongue. I'm not trying to be hostile to many good people working at Microsoft but this is how the signals the whole organization gives are interpreted. I hugely respect your work still), and that is putting doubts in the minds of their hardcore followers.Reply
I mean Miguel de Icaza chose the bed he lies in. I knew this from day one of ".NET" and I'm sure Miguel knew it too.Reply
I'm somewhat confused what's going on here.Reply
As a Linux loving .NET developer, this is very sad to see.
Its so disappointing because its a very exciting time for .net as a framework with all thats happening in .net 6 and 7. But if you mingle at all around the .net community you start to notice that theres a bunch of politics going on behind the scenes and teams are not on good terms with each other (my interpretation is that the Visual Studio team is really rubbing people the wrong way). This could be a time of explosive growth for .net but its just a weird, frustrating experience most of the time.Reply
Any one who believes in Microsoft or Apple is a fool.Reply
C++ could be an option? technical design and roadmap managed by foundation, and there are good tool ecosystems for this language, what do you think? You know if I choose Golang, Java, Kotlin, DotNet will be probably that this history repeating.Reply
Embrace, Extend, Extinguish never stopped being the strategy, they just took a short PR break to reset their reputation so they could snare the next generation into their trap of an ecosystem.Reply
The problem is, this kind of practice works against MS in the long run.Reply
I'm biased because I work at Microsoft but I have been using .net long before I joined Microsoft and I'm very pleased with the effort Microsoft is putting in .net specially with AOT compilation and native support coming in very soon.Reply
Embrace. Extend. Extinguish.Reply
This assumes that the entire company is “in on it” when the simplest answer is that the devs who work there wanted something but the core IDE team couldn’t add it directly so told them to make an extension.
At least that’s how it usually works when you end up with something like this — I work at Automattic and when we want a new feature on WordPress.com, it usually starts as a plugin that gets activated on every site in a mandatory sort of way.Reply
Forever and ever ago I used OmniSharp to add C# scripting support to a game hacking tool I created. Syntax highlighting, code completion, and compiled to a binary when you hit run. My code was absolutely terrible, but I had a blast writing it all. Much respect to the OmniSharp crew.
edit - Man, the ways I abused .NET back then...hooking native code and jumping to a .NET 2.0 function...totally feasible, lol. Who cares if you have to inject the entire .NET runtime into the target process?Reply
I'd wager there is a large overlap between Open Source maximalists and CommunistsReply
.NET is open. You can find its source on Github. The .NET platform being open doesn't mean everything targeting the .NET platform is open, too.Reply
This is exactly the same as what MS did for the Python extension when the open-source LSP was replaced by the proprietary Pylance. I get the feeling that MS becomes more and more likes Google. For example, on Android, the core experience is provided by GMS while the AOSP is provided as an open-source core. In terms of VSCode, the core editor is free and open-source, but some key experience is baked by proprietary components (e.g., Remote plugins, Pylance, etc.). And the trending is that more and more plugins which are controlled by MS are moving towards to a mixture of open-source code and proprietary components.Reply
Debugging? Intellisense? Training-wheels of you youth ;)Reply
Didn't they hire the guy that made omnisharp anyway?Reply
I've been using Omnisharp-VsCode extension for years on my daily job. It's far from ideal, especially the initial setup experience.
I think here's what's going on: It appears VS Code is Microsoft's main IDE and C# is the main language. Not surprised they decided to obtain more control over the integration to improve the experience. In terms of management, it's always easier to cut all the external dependencies (community) and "just do it", even though it's absolutely against the open source spirit and definitely will hurt their community relationships and the trust.
Can't say the decision is an absolute evil.Reply
Is Microsoft un-open-sourcing or un-free-softwaring existing code?Reply
c++ could be an good option to move? i mean, if i choose golang, dotnet, java, kotlin all that options is managed by companies that found their own economics benefits. at the expense of open source, of democracy, of innovation, it has already been observed that this transcends to political issues, case of vetoing countries in conflict, cases like huawei with android, case of goland, case of java and now dotnet.
can we then choose cpp as our development philosophy ? I observe clang, llmv, and the language design by iso standardReply
I don't understand one thing. Miguel saw the all the ugliness of MS since the late nineties. He is fully aware what EEE means and how MS successfully used this strategy to crush any kind of competition they wanted over the decades. Still, he decided to base all his open projects and professional career on faith they could be the good guys. Guess what, they've never been. We were trying to tell this to Miguel for years, but he paid no attention. He loved the COM and DCOM architectures, the registry, and many other MS-specific things that we either hated, saw no benefit of, or perceived as threats because of patents. He still wanted to go ahead. Well, at least he can't say he didn't see it coming.Reply
The linked "article" is confusing, but the issue seem to be this: The C# language server for Visual Studio Code (the components which provide language-aware UI like tooltips, code completion, squiggles etc.) is currently fully open source, but MS is going to refactor it to incorporate some closed source components.
It is not really clear to me why they are doing this and what they hope to achieve. Perhaps they want to create a for-pay "premium" version of the component? VS Code is probably cannibalizing Visual Studio sales. If enterprise customers move from Visual Studio to VS Code, MS will lose lots of money.Reply
One fear seems to be that Microsoft will divert resources from omnisharp and it will die slowly. This should serve as a reminder that open source by a large company without a supporting community is basically the same as a project with a very low bus number -- manage your risks accordingly.Reply
This tired old trick is the same one Apple pulled off 20 years ago when they first released OSX, and which grocery retailers have been pulling off since the day supermarkets were invented: dangle a nice, quasi-free product to get the customer into the shop where he becomes a captive audience and you can ram the rest of your inventory down their throat.
Oooh, look, we're OpenSource now, OSX is Unix and the source code is available to all.
This was a blatant lie by omission (omitting the giant pile of proprietary crap heaped on top of the FOSS layers) but it worked like a charm: tons of OSS devs drank the kool-aid switched to using Macs.
Lo and behold, 20 years down the road, the Apple ecosystem is the most closed flytrap ever devised by an IT company.
MSFT is pulling the exact same trick here: .NET is an integral part of the MSFT ecosystem, most of which is completely closed.
Don't be fooled.
Don't drink the kool-aid.Reply
Is this not pretty close to: "core open source" model that a lot of the open source projects featured on HN has adopted?
They give you access to a lot of things for free, and then they offer proprietary solutions on top of that. and if they follow the pattern maybe they will start charging or some proprietary features.Reply
I am waiting for M$ to do the same with VS Code.
I will definitely enjoy this day.Reply
.NET is the most open, non-trivial ecosystem I have ever participated in.
I experienced 2 different problems with .NET (back in 2.x/3.x days), and was able to have interaction with the actual MS developers on their Github issue page without any sort of bullshit overhead process.
Within days, I saw traction on my comments and within months I saw PRs that ultimately resolved the issue I presented. The following year, I was deploying framework code to my customers' instances which incorporated fixes to my concerns.
Perhaps I am unaware of just how much better it is with the other ecosystems, but for me this is enough interaction with my framework vendor.
Are we upset that we have to pay money for the privilege of using other peoples' intellectual property? Or are we asserting that Microsoft is stealing other peoples' IP? I am trying to find the actual crime here.Reply
It's called Embrace, Extend, Extinguish. You are in the extend phase.Reply