Hacker News new | past | comments | ask | show | jobs | submit login
Despite best efforts .NET is still not an open platform (isdotnetopen.com)
611 points by exyi on June 16, 2022 | hide | past | favorite | 488 comments



.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.


You are unaware of how much better it is with the other ecosystems. Probably all of them except the ones controlled by Apple, Oracle and IBM.

You want to know what's better than having actual MS developers interact with your issue on GH? Being able to submit a MR yourself and actually have that MR be merged in within days of it being good to go.

That's not just a dream, that's the standard way of operating for most large open source ecosystems. If you solve a known issue with a clear well considered merge request, and you've gone through all the prescribed steps your MR will get merged.

From personal experience I've landed MR's in the Ruby interpreter, in the Rust compiler and in the Rails framework. All as a complete outsider with no prior introductions to the team. Just be polite, follow the rules, solve something that's real with no architectural impact and it'll get merged (just mentioning these because they're ecosystems, I've had MR's merged in for dozens of smaller projects in the same manner).


You can do this in the .NET ecosystem too, they accept pull requests from the community regularly. I have a few merged PRs in Roslyn, one in particular I made because I knew it didn't affect very many developers and would have trouble getting prioritized.

Also personally the ideal situation for me is for someone who is getting paid to fix the issue to go fix it without me having to get my hands dirty.


I ran open-source teams for Microsoft for a number of years, all through GitHub. We had contribution policies, encouraged PRs, and would bend-over-backwards for external developers contributing code.

It's not an exaggeration, but I don't know how it could be better done.


.NET PRs sit unmerged for years if they're not a priority for MSFT. I'm glad it works well sometimes and that MSFT seems to care about .NET on Linux, but it's not that open.


Point out a major language that doesn't have a graveyard of PR's with similar stories.


The important distinction is that the PR graveyard of other projects isn't determined by MSFT's corporate priorities.


Of course Microsoft only include functionality they want. Just like any other platform only include what they want. It is entirely their prerogative. Just because they don't include anything and everything other people want, it does not make them less open source.

We are entirely free to fork the project, embed the change and compile our own binaries. You don't have to strongarm a change into upstream for that.


Every major open source project is in no small way driven by the interests of corporate users, from which a non-trivial number of PR's and contributions come from. This is true from Linux and Postgres to Rust and Java.


Any non-trivial OSS project has corporate sponsors on the steering committee and feature set/fixes are mostly driven by these corporate sponsors. So in the end it's all same.


That other languages may or may not be as bad as .NET does not make .NET any more or less bad.


Bonus points if you're either not asked to transfer your copyright, or asked to transfer it to a non-profit foundation.

Personally, I'm ok with doing the work myself if I didn't pay for the product. It gives me a feeling we're all working together on a better software ecosystem, because Turing knows we need it to be better sometimes.

edit: sorry for moving the goal posts, it's definitely cool that you got MR's into Roslyn, it's an awesome project.


I work on an open-source project for Microsoft, and I review and merge community PRs all the time. Nobody pays for the product I work on (or for C# or TypeScript, for that matter).

The Contributor License Agreement used on all MSFT open source projects doesn't ask you to transfer your copyright, though it does require submitters to agree to grant a permissive copyright and patent license. IANAL, but the copyright and patent clauses in Microsoft's CLA[0] do not look substantially different from the equivalent clauses in the Apache 2.0 license[1].

[0]: https://opensource.microsoft.com/pdf/microsoft-contribution-...

[1]: https://github.com/rust-lang/rust/blob/master/LICENSE-APACHE...


It's a stretch to say that nobody pays for C#. A commercial Visual Studio license sure isn't free, and depending on what you're making you're at a big disadvantage without one.


Right, you're not paying for C# you're paying for an IDE. You don't need VS to use C#. Especially now with Roslyn a the c# language server a lot of other IDEs can do a lot of the same things VS can do.


And if you're working on open source/non-commercially, the free community edition is also a good option.


Indie devs and small businesses (<5 installs) can use the community edition for commercial purposes, too. I use VS Code & the C# extension most of the time, and that's free as in beer for use by anybody.


The same way that js isn't free because you need webstorm or an aws account to deploy a node app? That argument is a stretch too.


I had the same experience, submitted a PR to Roslyn, was asked to add some additional unit tests, and was merged within days.


I have a problem with that. You have essentially done work for multi-billion corporation without remuneration. That would probably violate many laws like minimum wage requirement and volunteering at for profit corporation (minimum wage must be paid). I wonder why this is not pursued.


Nearly everything that is open-source depends on people doing work for free that is used by other people who use it for profit. Maybe OP is making profit through the software they're writing using C#. Should Microsoft charge them for C# usage? Microsoft is the ones paying for development costs after all.

The purpose of open-source software is to be able to fix problems for your use case and continue using the improved software. OP could have just chosen not to upstream their changes (I'm assuming you'd be okay with that since Microsoft doesn't get their hand on the fix) but then they wouldn't be able to easily update their compiler.

I guess the only real option here is to use a community-developed language with no for-profit company behind it. Then write all the libraries that Microsoft wrote for C# and published for _free_. Hmm.

I wonder what percentage of popular languages / libraries out there have the level of reliability & support that C# and other open-source software with big corps behind them has.


But this way you are promoting inequality. Being able to commit substantial amount of time to volunteer without remuneration is a domain of privileged people, usually from wealthy white background. They can they use their contributions as highlights in their CVs and for instance get better jobs than people who were not in a position to give their time for free. Hencewhy in many countries, like mine, things like internships have to be paid. If they weren't then positions were mostly filled with youth from wealthy families.

If Microsoft was honest about equality and open source, they would have donated the whole platform to a non-profit foundation and removed its name from it.


> "You want to know what's better than having actual MS developers interact with your issue on GH? Being able to submit a MR yourself and actually have that MR be merged in within days of it being good to go."

.NET isn't your average hobby project - it's used everywhere. It's imperative that changes go through the proper due process here. It takes time to prepare design documents and review them, discuss the changes and different alternatives, review the code, implement the changes and test them properly.

If that's somehow a problem to you, I think your expectations need to be readjusted. This is not the kind of project that should hastily accept code.


I'd be very surprised if Microsoft's development process is more thorough than that of Rust or even Rails. These are not your average hobby projects, it is imperative that changes go through the proper due process there. It takes time to prepare design documents and review them, discuss the changes and different alternatives, review the code, implement the changes, test them properly, and you can participate in all those steps.


Having submitted a somewhat trivial PR (System.HashCode), they really put you through the ringer. It took almost 3 weeks of constant (and valuable) feedback for the PR to move into a state that they liked.

All of this about dotnet not accepting PRs is unadulterated "Micro$uck FUD". The other critiques are valid, but not this one, not by a mile, it is complete bullshit.


It's not used everywhere, or not to a significant degree different to how Ruby is, which was in the example of the post you were replying to. And this isn't about haste, it's about openness. Code that is well written and passes tests can be reviewed and merged in hours, let alone days, without being considered hastily included.


Ruby and Rust and Rails aren't exactly hobby projects either. Mission critical software exists that uses those as well. Ultimately it's on the development and deployment teams to pin a version of the runtime for actual consistency in environment.


This is an absurd straw-man. Nowhere did the parent comment say anything of the kind you're arguing against. In fact, they highlighted that you should the follow the procedures and rules. This is silly.


The parent said within a few days. That might not be realistic with the processes in place and I think that's all they were getting at.


The guy's got code into Ruby, rustc, and Rails. I'm pretty sure he knows what it takes to get things into master at a widely used project.


Just so no one's deterred, it's actually not very difficult to do this. The rustc and ruby patches I submitted as an exercise. I went to the issue tracker, sorted by oldest first, and then picked the first issue that had little/no discussion on it. I purposefully avoided picking an issue with significant architectural impact or political context this way.

So there's also not much designing and reviewing needed. The merge requests were assigned to very senior reviewers each time. The automated test suites made sure I didn't waste much of anyone's time with trivial errors. Of course the requirement is that you're actually at least proficient with the languages (C for Ruby and Rust for rustc) but beyond that I think anyone can do it with a couple of sunday afternoons spent diligently digging through the codebase.


> Being able to submit a MR yourself and actually have that MR be merged in within days of it being good to go.

And? The vast majority of the .NET ecosystem operates this way, and discounting that because MS still has proprietary closed-source projects is disingenuous.


You mean the ones where the JIT and AOT compilers, GC algorithms, GUI frameworks, and the IDE toolings are poor examples of the ones controlled by Google (forgot this one), Apple, Oracle and IBM?


> .NET is the most open

People aren't using "open" in this thread as a euphemism for "nice" or "open to help." There are a lot of nice, friendly, helpful people who work on very proprietary, very closed, intentionally non-interoperable software. It's alright for you to like them personally and to think their products are great, but maybe it's not alright for them to have critical software in Linux distributions, or for people to base their own businesses on that software without being mindful that when you do that they become a defacto partner.


We are not upset. MS can do as they wish.

We are warning people to not consider this platform the same way they consider fully free ones, despite the obvious wish of MS that they do so.

This platform comes with invisible strings attached, some of them will likely turn into chains in the future.

And it's MS new marketting strat to say they are open now for everything, so it's only fair we point out that the player matters. You are not dealing with the LSF or the PSF, but with MS.


> This platform comes with invisible strings attached, some of them will likely turn into chains in the future.

Can you go into more detail about this?


MS has a long history of taking something (a tech, a concept, etc), playing fair for years to attrack people, then add more and more little details that in the end, lock you in into their ecosystem.

In this particular instance, MS has been pushing the "dev env in the cloud" commercial strategy for some times, using the openess of the VSCode ecosystem as on of the bait.

Don't get me wrong, I think VScode is a good product, and I can see the value of a dev env in the cloud that matches your local setup.

But given MS track record, I expect this to be likely a way to take control of your dev env: once it mostly resides on their server, you are locked in.

Parts of VSCode being not free are one of those little details I talked about. They hint at the direction MS is likely going to follow, as it used to do in the past.


Thanks


Everyone who understands .NET a bit praises the engineering but has hard times with strategic management calls.

Tim Heuer the guy who wrote the GitHub issue is a high ranking guy and was explicit protected by Miguel de Icaza as not being the evil one. ... Means the call was made so high up in the ranks that this is not about engineering, daily work, etc anymore. This is a decision made by people who are counting beans.


Being devils advocate, there are other languages and ecosystems significantly more open than .NET.

Microsoft has a stranglehold not just on the language, but the runtime, build tools, and even the most popular frameworks to do anything useful. And they have shown multiple times how management decisions from various business units at Microsoft can be applied unilaterally to their ecosystem.

I'm also confused by the "non-trivial ecosystem" goal posts here.


I'm pretty confused how anyone can be around for the "dotnet watch" debacle and come out the other side thinking "this is the most open project I've ever participated in"


Haha. I would guess that >95% of NET developers have no idea what you are even talking about.

This really seems like the recurring bubble where posters on HN somehow things that a large majority of the industry is hitting F5 on HN while they are instead busy doing actual work.


You're probably right. I'm not a developer, just a tech nerd, so it's a mistake to assume others would care about minutia.

Regardless, I think it is still fair to say that if any other language platform was withholding features like a debugger, nobody would consider those platforms particularly open.


I missed this "debacle" as well, the HN story on it in October only had 59 comments, of which about half a dozen were actually about the topic itself. Not much outrage here apparently.

> ... if any other language platform was withholding features like a debugger, ...

Except "withholding a debugger" is not the same as "a complex new feature that builds on top of the existing debugger will only be released on one platform to begin with" is it? Features in beta releases aren't guaranteed to in the final release, even if some users really liked it.

Visual Studio already had a lot of code relating to editing program state when the debugger is paused after hitting a breakpoint. Seems plausible that Hot Reload in VS would be able to leverage some of this code to reduce the amount of work required to build, test and deliver the feature on that platform. It would also mean getting feedback and issues more relevant to the core of the feature, because the integration and UX is an evolution of code that's been there pretty much since VS was first released.


being open is not about not paying but using it however you like, not constrained to VisualGarbage XYZ or Windows 15-xtra ultra edition


It clearly isn't about that; .Net Framework and OmniSharp are MIT Licensed so you can use it however you like. From the Github issue linked in the article: "Once the “LSP Tools Host” is complete, this will become the default experience for the C# for VS Code extension. Existing users will be able to choose between the open-source OmniSharp powered system that exists today, or the new “'LSP Tools Host” which will provide access to additional experiences."

That's freedom in action. Microsoft has a fork of two open projects which they are working on however they like. If you don't want to use their work, you can fork and develop .Net and VSCodium and OmniSharp however you like. Now look at the the top GitHub comment: "once LSP Tools Host gets full attention, OmniSharp will slowly die out (especially if the OmniSharp team is working on LSP Tools Host). Which is of course the last step, extinguish."

Which says: "I don't want to develop the thing I want to use, and if Microsoft doesn't develop it for me and give it to me for free, this is equivalent to Microsoft extinguishing it".

MIT License grants "rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software", and not "you can have what other people develop on this" or "the developers of this will never make non-free software in future". https://mit-license.org/


Say what you want, but Visual Studio 2022 is one of the best IDE I've used, way better than Eclipse. And You're not stuck on it either, JetBrains Rider is a 100% viable alternative and often preferred by many .NET developers.

Windows is also not a requirement unless you are using old Windows-specific frameworks like WPF. ASP.NET, EFCore, IdentityServer, and everything else you need to build a web app works equally on Windows, Linux, and macOS.


>Visual Studio 2022 is one of the best IDE I've used

I consider being cross platform a valuable feature of an IDE. Do you not?

>Windows is also not a requirement unless you are using old Windows-specific frameworks like WPF.

My day job includes a lot of this. Hell even winforms is still very much alive. And even if the likes of WPF or winui was old aren't they still the graphical subsystem for desktop being pushed? I suppose then there's Maui being worked on but I believe they decided to fuck over MauiKit with that one's naming.


While I like Visual Studio, comparing to Eclipse is a little unfair. Exactly like DotNet today, you can use any IDE you like, InteliJ will compare extremely favorably to Visual Studio if we want to pick a good Java IDE to compare.


I compared to Eclipse because it is the most notable open source IDE I have meaningful experience with. I haven't used IntelliJ, but I have used Rider which is very similar.


"open" can mean lots of different things, and refer to different aspects.

I think the OP is talking about "open" in large part in terms of open source licenses, and intellectual property. They complain about "subvert[ing] an active open source project by ramming in a proprietary extension to continue to lockdown .NET" and "Over time, the .NET platform is becoming closed, to ensure it is only useful if you are a customer."

You are talking about "open" in terms of access to developers at Microsoft, who you can commicate with, and who then respond by getting fixes to your problems in.

These are actually pretty different things. You and OP can both be entirely right. .Net can be a platform where Microsoft is working to make sure that the platform is only useful if you are paying customer, and where you have access to communicate with developers who take your concerns seriously.

> Are we upset that we have to pay money for the privilege of using other peoples' intellectual property

Well, I mean... you know what open source is, right? Yes, it means you don't have to pay money for the privilege of using other people's intellectual property. That's literally what open source is.

That's fine if you don't care whether or not .Net is open source. That's fine if you think it's silly to be upset that something isn't open source when you think it should be.

But... .Net claims to be open source, right? So, yes, it is reasonable to expect you can use it without "paying for the privilege of using other peoples' intellectual property". That's literally what open source is?


We're talking about cognitive dissonance here. If Microsoft hadn't put out "Microsoft loves open-source" statements, then all this would be treated as business as usual.

However MS did. So people are dealing with the dissonance. Some people are being remembered how the strategy Embrace, Extend and Extinguish works.

TL;DR: the attitude MS is having is not open-source friendly.

NOTE: at least today they did state their plans from the start. Props to them.


You can love open source and still have proprietary code. It's not mutually exclusive.


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.


The LSP situation with Python was very frustrating, because it totally breathes the oxygen out of "proper" OSS implementations.

I feel like with a _loooot_ of coordination it should be possible to have proper, open source LSP implementations that are very performant. Mainly a question of finding enough people willing to fund this work, because it's definitely work!

I personally also have gripes about ending up with some JS thing to do constant parsing and processing of files.... but I don't have anything to back it up.


Indeed.

And even very intelligent, competent AND benevolent MS employees downplay this: https://twitter.com/bitecode_dev/status/1537357261554733056

Steve cannot see how it will lead to attrition or vendor lock in.

It's not that there are no good people at MS, but the internal marketting is strong as well.


I can't even see what the reason for making an LSP implementation proprietary would be other than lock-in. The argument seems to be "we make it closed so that it can't connect to other things that are closed", which feels pretty silly. Being closed is bad when other people do it, but good when you do it?


"It is difficult to get a man to understand something when his salary depends upon his not understanding it." - Upton Sinclair


I'm having a hard time finding the flaw with this logic, I use pyright but not pylance every day in Neovim and am not locked in at all.

Making "the LSP sever that leverages pyright" closed source sucks but is far from the end of the world. If the complaint is that pyright could eventually become non-OSS well that's true of everything.


It's about the VSCode ecosystems becoming more and more close source to accomodate the dev env as a service strat while using the FOSS root of vscode for PR that deserved to be underlined.


Unhappy that you can't have his work for free, you asked /him/ to hand you an equivalent on a plate. He said no. What's he downplaying?


I noticed vendor lock in. He answered "we only lock the easy bits", which is already a weird idea. Like saying we are only not transparent on the small spending on our IRS declaration.

I then question the easy part by asking, tongue in chick, to tell me how I can do the same with FOSS easily. It's freedom I am talking about, not price. Indeed, the proprietary work in question is available without payment already.


IMO this is more an attack on FLOSS/Python than anything else. LSP is pretty quickly becoming a predominant standard for free software editors. Making LSP proprietary for Python will kill it as a language for larger project by FLOSS developers as they won't want to use the proprietary component. I know I'll never use proprietary products in my creative pipeline as they should be open for anyone to work on at any economic level. I don't want to lock people out of working on my projects due to a restrictive development environment.


Yep, they saw no real backlash to doing this for the Python one, then decided to do it here as well.


Because most people continued to use VSCode and didn't notice. Other LSP users' communities noticed, but were too small to make a vocal impact.


Of course not. Python is in the hands of people with a mixed contribution history (to say the least) who want to preserve their jobs at Google, Microsoft, RedHat etc. The rest of the Python "community" does as they are told.

They are not in a position to voice dissent, unlike de Icaza, who has a great programming record and courage.


I sympathyze with Icaza because he does a lot of stuff.

His reaction is unexpected though -- after all this is the playbook FSF is always warning as a possible path. He must have been aware of the possible paths and the fear of them when Novell was trying to bring C# onto Linux / Gnome.


Icaza is a financially made man. He can do what he likes!


Sorry to say, but it is not like M$ is becoming more like Google.

Google learnt their playbook from M$.

What you and others are seeing here is M$ at its best, playing like they always played, but without the "we love open-source" mask.


Why didn't MS just contribute to the existing one, instead of writing its own from scratch?


The existing one was an open source Microsoft project. Then they built a new closed-source version as a replacement.

To be fair, pylance is orders of magnitude better with regards to performance. But I just don’t get what the reasoning was to make pylance closed source. It’s baffling.


My understanding is that pylance bundles in several ML models that back a lot of its performance increases over pyright and it is the ML models and closed-source data science that caused the LSP closure.

I think data science also is best when it itself is open/open-source, and peer reviewed.

I can understand why Microsoft wants to make that a moat to protect expensive data science and ML research boundaries and it doesn't seem that baffling to me if that is indeed the reason why they closed source pylance, even as I question if it was the best choice.


Thanks for this, it was definitely news to me. If this is the case then it makes slightly more sense, but is still disappointing.


I don't understand this. It makes sense "because ML"?


Unfortunately, yes. I know a lot of companies (here on HN, my current employer, etc) are talking about ML like it is cheap and easy to build, but you get what you pay for and right now it looks from budgets that Microsoft is paying for a lot of high quality effort. Again, I think it would be beneficial if more of this work was done out in the open, in part to open it to good critique and peer review, and in part to make it more obvious to everyone (including companies such as my current employer) that proper data science is still an expensive investment that requires a ton of work and hidden costs. But the catch-22 there is of course the more expensive the investment the greater the desire to protect it and keep it secret (at least in the short term where it seems a competitive advantage).


No, because it's no longer "just code". Bundling in assets (ML models, server keys, etc) makes it more difficult to open source something. So, while I don't agree that it should be closed source, it makes a little more sense to me why they might have gone that way.


I believe the previous Python support extension started out as an independent open source project until Microsoft hired its main developer.

> It’s baffling.

Vendor Lock in? Same reason you can't use the VSCode marketplace of mostly open source extensions on a non-Microsoft build of VSCode or any of the remote work features.


The Python extension itself is not closed source and is still maintained by the original developer that MS hired. It’s the language server that went from an OSS Microsoft project (that replaced the initial Jedi server) to the closed source LSP server.

Lock in doesn’t make sense to me. The main competition is Pycharm which has its own set of tooling.

I can somewhat understand the remote extensions being closed source considering they need to interface with a server. It makes no sense for Python.

My guess is that Pylance is also used within Visual Studio proper, and the VS product owners are pushing for closed addons.


Idk, it seems pretty clearly like lock-in to me. Microsoft first came up with LSP when VS Code was a lot newer, so they made it an open standard to help them get market share by enabling language developers to more easily support their editor. Now that they're a much bigger player in the text editor space (which VS proper never really played as hard in, not being cross platform and being much heavier weight), they're trying to build a moat to ensure that they don't lose that to other players, which means making it harder for anyone to re-use the tools they used to gain share in the first place.


Imperialism, basically.

Contributing to open source means you don't wholly own the project you contributed to, and that constrains what you can do with it.


Pylance (and the open source less featured version, pyright) is architected after the Typescript language server. Which makes sense as they're both languages with unsound type systems, optional type annotations, and use type inference. By being written in TS it also runs in a web browser which is their Next Big Thing.

There isn't an Existing One, more like many existing ones with their own tradeoffs. Jedi is designed to infer the variable in your currently editing LOC. It can't type check and report issues on entire files/projects. It's also a one man project.


Realistically it's probably also code reuse from their enterprise products(Visual Studio) which are very good at C# analysis.


Just for balance, Pylance is proprietary but the core of it is the Pyright library which is completely open (see: https://github.com/microsoft/pyright).

It would be nice if they were more transparent about the differences between the two and why Pylance is closed. There are a few github issues where Microsoft PMs basically stonewall the community with very little info.


> 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.

Other than this fact, what is the effect, supposedly detrimental?


It appears offering free beer forever isn't sustainable, even when one has deep pockets, go figure.


Sustainable and optimal are different. For a company like Microsoft at least.


Shareware and Public Domain are back with a different name, many still haven't gotten it.


I somehow doubt that Microsoft has any pressing need to return profits from the python LSP


It gets to share the same code with Visual Studio proper.


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[0].

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[1] 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.

[0] 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.

[1] 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.


Opinions like this have always been weird to me. Not wrong, but weird.

Any contribution that M$ (remember when people would sub the S for a dollar sign?) makes to open source or open standards is to support their own bottom line and we shouldn't expect anything else. The directors have a legal responsibility to the company and to boost the share price, not for the betterment of humanity. To this effect, companies will contribute to open standards when it's better for the share price, and will seek to screw open standards when it's better for the share price.

Public companies are inherently evil by default -- this is because the only goal of a public company is to strengthen the share price. I've said it before and I'll say it again: always assume bad faith when you're dealing with a company.

From this, it doesn't matter what people thought of Microsoft before, or what they think of them now. Microsoft like all companies has a single goal. If we can pressure these companies to coast in a certain direction then great. But we shouldn't ever believe that companies can 'turn over a new leaf' when they legally cannot. FAANG is the same. Ford is the same. Starbucks is the same.

Every company is exactly the same, but the larger they grow, the more visible and impactful these actions become. Microsoft has been in the spotlight for decades because it has been a juggernaut for decades. But it's hardly unique in what it does. Our real concerns should be why regulators were quick to put the smack down on Microsoft but have since turned into paper tigers and are allowing unhinged monopolization from FAANG in 2022.


I’d say companies are inherently amoral. Not evil. Subtle, but important nuance. It’s only when evil and greedy people are in charge that companies become evil. Sadly an all too common state of affairs, but not a law of the universe.


Corporations are for sure amoral. Of course, they are also incapable of forming bonds to people and thus will purely optimise for their own gain. When human beings operate like this, we call it a disorder and disparage it. Not to mention recognise the reality that they act in an evil way and are therefore probably evil. Whether or not they are capable of understanding the morality of their actions is immaterial: The effect of the actions is what matters.


i agree - it’s a significant distinction that often gets overlooked. whilst a company is ran by (ostensibly) moral agents, the overall entity is not the sum of those parts.


Corporations are sociopaths by their very design. Their number one mandate is to make money for their shareholders and to grow. This colours every decision they make.


It doesn't have to be like that. The focus on shareholders started sometime in the 80s.


But it does have to be like that now. Because if you're not growing (not growing the bottom line), you're almost certainly losing market position to other companies that are chasing growth. If there was some group altruism that made all companies in a sector collectively say "ok, we're big enough now, let's hit pause", then companies could afford to be a bit more about being good for the sake of being good. This is obviously a pipedream though.


Some anti trust laws with teeth would help move us in the right direction!


Anti-trust aimed at individuals is called taxation. Being able to shelter wealth accumulation through loopholes that only benefit rich people asset classes is so obviously classist (and tacitly ageist against youth since it’s all old people calling these shots).

Their ad and marketing budgets are basically to woo public opinion into belief billionaires should exist, however.

Look at the Coinbase story; employee and investor wealth gone. CEO wealth intact. And society gains little to nothing net new from enriching that fraud.


Employees did not lose the money they were paid for their labour. What employee wealth is gone?


Offers that got pulled, 18% who were laid off, compensation based on speculative value that’s gone, while the CEO walks away with a much more certain personal position. All for placing a logo adjacent to others engineering feats (unless the Csuite at Coinbase is secretly Satoshi Nakamoto).

Billions locked up in deference to a handful of CEOs means less liquidity in the open market. Which is intentional, I understand; if dollar value collapses these guys might have to work to survive, and of course humans could no longer do the necessary trade of real things to stay alive and prosper if an arbitrary financier cannot claim an arbitrary % of economic activity thousands of miles away.

Human agency is coupled to wishful thinking still. Which is understandable; we only just crossed the threshold of <50% of adults believing in higher powers. Was still 80% around 2000.


I may be misreading, but there are several non sequiturs there. Pulled offers suck, but no one owes anything before they sign a contract. There is a level of opportunity cost, but that's not the same thing. Signed offers are getting a month's salary I think, which again reduces it to opportunity cost rather than loss of wealth.

People being laid off is not lost wealth.

Speculative value is not wealth.

"Billions locked up" requires an explanation. People with money generally invest it in assets or other companies. Who is locking up billions? Why? Is it a meaningful % of the total money supply?


AFAIK the history of modern corporations starts with the Dutch East India Company. I have a hard time believing things get better as we go back in time.


When I grew up it was an embarrassment for a company to lay off people. Nowadays executives get big bonuses for laying off people.

Things have changed since sometime in the 1980s.


Not only that. More often than not "focusing on shareholders" just means, let's do the most sociopathic thing which will pump up the stock price in the short term, increase those year-end bonuses and allow the executives to move up within or outside. Long term consequences for the shareholders are not considered, you could just imagine what weight long-term consequences for society will have on their decisions.


No idea why you were downvoted, since although harsh your definition is exactly what psychologists would use to describe people showing no empathy for others. The problem however is not corporations behaving like that: they want profits above all else and act accordingly; the problem is that we give them the same or more rights than humans.


> Corporations are sociopaths by their very design. Their number one mandate is to make money for their shareholders and to grow.

That's not the definition of a sociopath.


People forget that before about 2000 or so, Microsoft was bigger than the next 10 or so software companies, <<combined>>. And had much higher profit margins that the other tech companies.

IBM created the playbook, Microsoft perfected it, FAANG copied it.


One distinction between Microsoft and early FAANG (except for Apple): FAANG cut out the distributor and kept those profits themselves. Microsoft always had distributors as a key component of their platform sales.


That was by necessity more than choice. The internet wasn't really a viable option at the time.


Presumably the distributor is the company that supplies the internet connection we now consider mandatory.


> Public companies are inherently evil by default

The extremism of this positon makes it hard to swallow the message. You might as well be right, but accepting it at face value would be a huge cognitive dissonance for many people working in public companies.

Basically, the “are we the baddies ?” answer would be “yes” for a huge chunk of us, and I don’t think that’s how we see it personally. Companies have to make money, but the evil label needs way more nuance.

To apply this to another context: I genuinely think that IKEA has had an outsized positive impact on our everyday life, even as they aim to make money (not the core “charity”, but the rest of the group), or as they make truely dirty legal and commercial decisions to trick the system in their favor. And they didn’t improve flatpacks by accident, it is their stated mission, and I’d be crazy proud of my job if I designed the Expedit series.


> IKEA has had an outsized positive impact

IKEA has been illegally logging forests in romania for decades.

The first public conpany was involved in slavery. Show me a large enough company and there will be a history of fraud, illegality and human rights abuses.


They've bee caught using wood from companies logging illegally yes, but that's just as much an enforcement issue in these countries as it is on IKEA to manage it's supply chain.

Also using tainted wood isn't the only thing IKEA has ever done, just as breaking the speed limit or parking illegally isn't he only thing I've ever done. If you were held to a "one strike and you're out" good/evil standard would you really stand up? I know I wouldn't.


Intermediaries are often just an easy way to get out of liability. It can happen to small companies that you don't know about or are powerless to your supplier's illegal practices. With big companies you know and have the power, which makes it your responsibility and you being part of the problem.

There's also a trend to give big companies liability for their supply chains. Germany just enacted a supply chain law last year and there are talks about similar laws for the EU: https://en.wikipedia.org/wiki/Supply_Chain_Act


Yep, that's fair enough. I don't buy "therefore evil" though, companies like the people they are composed of are complicated.


> Show me a large enough company and there will be a history

The specificity of your comment (large enough company) is misleading. The flaws you call out are everywhere, not just large companies.

Humans are imperfect. Human organizations and institutions (companies of all sizes, governments of all types, schools, churches, and so on) are also imperfect.

I don't mean to say that we shouldn't set high goals, devise mechanisms to deal with imperfection and so on (checks and balances, regulations, etc), just that there isn't anything particularly unique about "large companies" in this regard.


Funny, I don't see any good from IKEA when you look at the greater picture. More waste, un-accounted for externalities all over the board (labour laws, environment exploitation), extremely well-honed organisation designed to evade taxes through "charities".


IKEA in a vacuum has many many flaws.

As I see it though, what IKEA displaced wasn’t the family owned expert artisans manufacturing built to order furnitures.

It was piss poor, badly designed, actual shitty materials, poor country labor intensive flat packs.

When I was a kid my family bought cheap mass produced furniture from shopping malls, the looks were fine, it came from Vietnam or China [0], and the quality was laughably bad. Finished product would be slightly crooked. Screws slightly loose. Smell terrible. And people would have that “what did you expect for that price” grin. [1]

I can’t imagine employees were treated in a stellar way either, we heard scandals after scandals about third world factories, and the quality itself was a testament to how much humans were involved in all of that.

So, I see IKEA as a provider of somewhat decent furnitures instead of shitty ones, most other parameters staying the same (they don’t, I genuinely think they’re not worse than the 80s~90s post colonialist euro companies)

[0] how the table turned, quality wise…

[1] to address the obvious “why didn’t they buy more expensive furniture that could have lasted way longer instead”…the answer is simple: upfront money. The same reason people don’t buy 5 story apartment buildings even if that would bring them more money in the long term.


As per your note [1], this is the "Sam Vimes "Boots" theory of socioeconomic unfairness" - https://en.wikipedia.org/wiki/Boots_theory:

"The reason that the rich were so rich, Vimes reasoned, was because they managed to spend less money. Take boots, for example. He earned thirty-eight dollars a month plus allowances. A really good pair of leather boots cost fifty dollars. But an affordable pair of boots, which were sort of OK for a season or two and then leaked like hell when the cardboard gave out, cost about ten dollars. Those were the kind of boots Vimes always bought, and wore until the soles were so thin that he could tell where he was in Ankh-Morpork on a foggy night by the feel of the cobbles. But the thing was that good boots lasted for years and years. A man who could afford fifty dollars had a pair of boots that'd still be keeping his feet dry in ten years' time, while a poor man who could only afford cheap boots would have spent a hundred dollars on boots in the same time and would still have wet feet. This was the Captain Samuel Vimes "Boots" theory of socioeconomic unfairness."


The effects of IKEA must be very different depending on where in the world they were introduced, and when.

If your country (cough-cough USA) had already descended into the "crap products globalisation stage" before IKEA came along, it will feel like a net positive.

If your country (cough-cough Sweden) got IKEA before that stage, I would say, yes, IKEA displaced quality furniture.

I'd say the overall problem is un-accounted for externalities. Cheap crap from China or Vietnam is just a symptom of the same illness.

Crappy products are okay, in a free market economy. But crappy products with huge environmental costs undercutting "kosher" crappy products, is not okay.

What use are even labour and environmental laws if one can skirt them by pushing the problem elsewhere?


Ikea also sells nice, solid wood, furniture. And they typically do so at a price that is much more affordable than their competitors.

If you want to go into Ikea and just buy long lasting solid wood products, go ahead! Indeed I'd argue Ikea has made new solid wood furniture more accessible, heck sometimes new Ikea wood furniture is cheaper than consignment store wood furniture!


> Ikea also sells nice, solid wood, furniture. And they typically do so at a price that is much more affordable than their competitors.

I've seen (and own) some solid wood furniture from IKEA. I'm usually an IKEA defender (see another post I just made on this thread).

I would not describe their solid wood furniture as "nice". Given the way they tend to assemble even small members from multiple small scraps of wood glued together rather than single pieces, I think calling them "solid" is even a bit of a stretch, at least in some cases. They're also made out of fairly soft wood, usually, and barely finished, if at all.


I see. Then it's OK to skirt environmental and worker protection laws, I guess. As long as the products are nice.


Environment is tough. I see IKEA to blame here, but as long as there will be customer for cheaper goods who don’t care much about where the wood comes from, or how all of that is fabricated, it won’t change much. Other smaller makers have the same conundrum when they source their wood from bigger entities who will either hide where it actually comes from, and/or give plausible deniability. That’s where I see having everyone hypothetically switch to smaller furniture makers wouldn’t be enough, we’d need a lot more to make actual progress.

A bit the same way so many corporations are “carbon neutral” through offset, even if it’s a scam under most of these.

IKEA using it’s position to do something could be a realistic solution, I just don’t know if there is much hope in that regard.

The coffee scene could be a exemple where traceability helps a lot to improve the market (as a consumer there are options to do the right thing for non crazy prices), while the global picture stays grim as the most sold coffee will always be the unmarked super market value pack.

Worker protection: same as for Amazon, I wish they rapidly advance their robotization programs. In the meantime I strongly support more regulation, and would like security and social policies baked into the prices, especially as I don’t think there would be that much actual impact. Just as wish more companies across the board get unions.


We provide a regulatory ecosystem - inside that ecosystem, Amazons and IKEAs are the winners.

If we change the ecosystem, other companies would evolve to be the winners. (Or IKEA and Amazon would change.)


That’s generally been the decision the western world has settled on, which seems like an improvement in that we at least need the products to be nice


No, and I don't think anyone has argued that. The argument is that the company has both good and bad aspects to it.


You can add their influences in normalizing mass production and mass consumerism, "fast decor", the complete blandness of what they sell and how it contributes to globalization and the destruction of diverse aesthetic values...


I am sympathetic to your point, but think that ship has sailed. It might come back, but not in the same form.

I say that as a sample of the population who deeply wants the bland, blank slate aesthetic in reaction to the rococo and non-modular furniture I had to deal with in other people’s home and surroundings.

Paradoxally, I am sure it will come back as a reaction to people like me, and next gnerations might want to get back to their roots and resurface diverse and culturally more anchored styles. When it does, I hope they’ll have small production tools (home grade cnc mills ?) to do so in small batches at low cost, and get crazy with the stuff they make.


Seen the kind of furniture you can get in the same price range as IKEA?

It's usually most or all of: hideous; difficult to assemble (why people complain about IKEA when basically every other player in their market is far worse, I do not understand); worse-made than IKEA furniture; still, somehow, more expensive than the IKEA equivalent.

IKEA's about the best option out there for people who don't have a lot of money and also would rather not furnish their home with cheap antiques from the 1920s (go much newer, or much older, and it starts getting expensive), having to do a lot of DIY re-upholstering in the process if they want anything with cloth on it.


The other problem with "Public companies are inherently evil by default" is that saying that "the whole system is wrong", is just providing leaders with an excuse. Public Companies can serve their customers, shareholders, and look after their employees while still being ethical, there is always a choice, and there are many positive benefits to behaving ethically, for one, it means you are a trustworthy company to deal with.


It's like the story of the scorpion and the frog.

If you know that the system is broken and it is setup in a way that rewards bad behavior, what do you think is the best course of action: to expect that exceptional individuals will be always in charge to avoid the mistakes, or to fix the system so that even normal, fallible humans can be at helm and not having everyone else worried about potential abuses?


>fix the system so that even normal, fallible humans can be at helm and not having everyone else worried about potential abuses?

I assume normal and fallible humans are the ones who are going to setup this new system that will prevent abuse?


I don't see why not. Normal humans make mistakes, can't manually manage memory safely, are bad at building safe buildings without experience and standards and guidelines, and naturally fall into unsafe food preparation habits.

Still, we have set up memory safe practices and languages and standards, building standards and regulations, and food safety regulations that work quite well. Just because humans make mistakes and are fallible doesn't mean that humans are incapable of working to prevent mistakes and the consequences of human fallibility.


I'm not suggesting we shouldn't have rules and laws and whatnot. It sounded like the person I was responding to thought it would be a silver bullet. I was trying to push back saying it wouldn't be perfect. We can improve things, but since the rule makers are also fallible there will always be loopholes and other issues.


Yes, so? Isn't that the exact purpose of institutions?


If normal people (shareholders, c levels, etc) are going to engage in bad behavior then why do you think other normal people (lawmakers) are not? If lawmakers are going to be rewarded from bad behavior then we can't fix the rules / laws.

I'm not suggesting we shouldn't try, but it isn't really silver bullet.


This is why I said about institutions. Lawmakers are (or should be) subject to public scrutiny.

An employee from a corporation benefits from a corporation that abuses their power. Ordinary citizens that vote for a corrupt politician do not, and have no invested interest in them.


I agree, but until something comes to light abuses could still be happening. I was mostly pushing back on the idea that a system can be created that would allow the average person to not pay attention. I think individuals must be vigilant even if we think we have a good system.

I probably wasn't as clear as I should have been.


"Not worrying about it" is not "not paying attention", maybe that is the point that you assumed more than I intended to convey with my comment.

It's less about matter of eliminating abuse, and more about damage reduction. We can have systems that even if someone screws up, the consequences are not catastrophic.


> Basically, the “are we the baddies ?” answer would be “yes” for a huge chunk of us, and I don’t think that’s how we see it personally. Companies have to make money, but the evil label needs way more nuance.

The answer to this is that if it's nearly impossible to find a more ethical job (e.g. a non-profit medical research worker cooperative) when the system you're under doesn't economically incentivise ethical job creation. If your probability of finding one is incredibly slim, you're practically excused – you're just doing what's needed to have a normal life.


Obviously it's so simplistic it's dangerous. Try to reason the same way about humans, "the only responsibility is to pass on our genes and therefore there can be no altruism". Right? Wrong.


I agree with you, but the obvious retort is that altruism is "just" one possible medium-to-long term emergent strategy whose purpose is to ensure the survival of your genetic material. :)


IKEA is private. Do you not think it would behave quite differently were it a typical public company?


Thanks, I forgot they were private. To my defense, their corporate structure is a mess (on purpose) and the franchise shops could probably be public while the controlling entities and holdings stay private.

The structure is so deliberately conceived that I wouldn’t be surprised if it kept the same functioning even as a public entity. They’d make less money, but would probably still concentrate decision power into a few chosen hands and lock the whole from external influence.


> The extremism of this positon makes it hard to swallow the message. You might as well be right, but accepting it at face value would be a huge cognitive dissonance for many people working in public companies.

Has that not been a critique of software engineers working at FAANGs? That they think they are working for a moral company while the “Don’t Be Evil” company mottos are replaced in the background with anti competitive practices and deals with authoritarian governments.

Tbh I think claiming that it’s an extremist opinion when there’s an entire century+ old political school of thought that views the entirety of capitalism as amoral, is either putting your head in the sand at the thought, or an equally extremist opinion on the good of companies


What political school of thought is that?


Communism?


Ah. That may be the world's worst example of a reasonable alternative based on its track record :)


The bar was if it was extremist or not, not it’s level of effectiveness.

If something nearly half the world followed is considered a extremist then I do not believe the word has any meaning left


I am convinced that 99.999% of the people that claim to be "anti-Capitalist" are in reality anti-Corporativist.

It's way too easy for people working at big companies to think "the company might be evil, but not me / my team". The Corporation gives everyone a moral shield that lets them rationalize all the shit that happens, but the money that pays their salary and the stock options they get all come from the same source.


> It's way too easy for people working at big companies to think "the company might be evil, but not me / my team".

See Better Off Ted for a great look at this.

https://en.wikipedia.org/wiki/Better_Off_Ted


> I am convinced that 99.999% of the people that claim to be "anti-Capitalist" are in reality anti-Corporativist.

Aren't they in fine the same thing?

If you believe that the logical consequence of a system is the emergence of amourphous amoral entities harming the greater good, aren't you actually fundamentaly against said system? I kind of get the opposite take-away from your line of thoughts: I believe that a lot of people who think of themselves as capitalist but actively distrust corporations are actually latent anti-capitalist.


You can have Capitalism without Corporations: https://news.ycombinator.com/item?id=31317641

You can have a market-oriented economy on small scales, and we can have independent professionals competing to see who provides the best services at the lowest prices, and we can use money and capital as the means of production just fine. The problem is when we take a system in one scale and think "bigger is better". This is when we get "amorphous amoral entities harming the greater good".

Mind you, if you think about it this also applies to other socio-political systems. Communism, per se, is not a problem. If the general idea of "communism" was just a bunch of hippies living however they wanted, there wouldn't be so much reason to be against it.

The problem is when you have people going full Trostky and actively work to make it a Global-scale system, effectively turning the State into an "amorphous amoral entity harming the greater good"


Particularly the logic “your code is not open source” = “you are evil”…


Closed source code definitely goes against the right to repair/own/modify.


Does it? If I sell you a widget and make available to you that widget's code, with strict prohibitions on copying and sharing, that's not open-source--but you can repair and modify it.


Right. But what happens if another customer has the same issue, you are prohibited from sharing it.

Once you deal with all edge cases. You end up with an OSS license.


"How monotonously alike all the great tyrants and conquerors have been; how gloriously different are the saints." - C.S. Lewis

I still recall people fawning over how Google was going to be "different" in 2006, and how it was going to save us from Microsoft. Nowadays, they are essentially what MS was in its' heyday. Blind faith in corporations is not the way forward.

I've always understood the hacker ethos to have strong tenets of working towards decentralized power structures through tech. Nowadays, that idea feels farther away even on a site like this one.


Well, this site isn't about hackers in the classical sense. It's about people working on building businesses and startups. The URL tells you everything: "news.ycombinator.com".

This is, first and foremost, about the business, not the people or the technology.


I’ve yet to find a better watering hole for technologists. If you know of one, I’m all ears.


The dichotomy is pretty stark sometimes on this site between the excellent conversations about technology and the SV capitalists musing about how to get richer.


Amen.

The further corporatisation of OSS through lobbying organizations like the CNCF is a sad state of affairs. But it is also the place where VCs are putting a lot of their money. That and until 2 weeks ago, Web3


Let's knock some of this nonsense on the head shall we?

Directors do not have a legal responsibility to boost their shareprice.

Companies do not have a single goal.

Public companies are not obliged to increase their share price.

Every company is different.

I'd also add that on top of all that, different countries have different corporate law.


True, but we are not talking about a two man company or a historic trust fund in southern France. We talk about an US shareholder company which leadership (do not be nitpicky) can be sued for by shareholders by not doing the best for their money.

And law indeed differs... But everywhere someone will be made responsible for not getting the best for their buck (the simplest case: being fired).

That applies to FAANGMxyz and also the rest of the top 500 shareholder companies.


But “the best for their money” need not be short-term. Shareholders have successfully sued big oil for not preparing enough for climate change, for example.

(https://www.cnbc.com/2022/03/15/oil-shell-directors-sued-for..., https://www.forbes.com/sites/timabansal/2021/05/27/big-oil-u...)

It will be a lot harder to argue that developing a closed-source component is, in the long run, bad for Microsoft, though.


I was under the impression (based on the USSC's opinion back in 2015, see e.g. https://www.nytimes.com/roomfordebate/2015/04/16/what-are-co... ) that this was not true even in the US. Has anything changed in the meantime? Or did I get that article wrong from the beginning?


It is not true in the United States. Officers of the company are required to do best by the company and all stakeholders, but the officers can generally define how they approach that. Most go by the share price, because it's used as a proxy to measure company success.


> The directors have a legal responsibility to the company and to boost the share price, not for the betterment of humanity.

That's an often-repeated maxim, but it's not universally agreed to be true.

Quoting https://corpgov.law.harvard.edu/2019/08/24/stakeholder-gover... for example:

"The fiduciary duty of the board is to promote the value of the corporation. In fulfilling that duty, directors must exercise their business judgment in considering and reconciling the interests of various stakeholders—including shareholders, employees, customers, suppliers, the environment and communities—and the attendant risks and opportunities for the corporation.

Indeed, the board’s ability to consider other stakeholder interests is not only uncontroversial—it is a matter of basic common sense and a fundamental component of both risk management and strategic planning."


The big point in what you quote is "and the attendant risks and opportunities for the corporation."

I read this Harvard text to basically say: "Don't cheat if the cheating will be coming to bite you later. Be generous if you expect additional profits to come from this generosity."


Fair point, yep. Generalizing your statement slightly:

> Be generous if you expect additional <reward> to come from this generosity.

Options for reward could include (without being limited to): "profit", "platform adoption", "trust".. and those rewards often affect each other over time.


That companies (or their officers or directors) have a legal obligation to boost share price (or maximize profits or similar) is one of the most widely believed myths about companies.

Google for something like "obligation to maximize shareholder value" if you want to find numerous articles debunking the myth. Here's a good one [1].

[1] https://www.nytimes.com/roomfordebate/2015/04/16/what-are-co...


It's more complicated than you're making it out to be.

Maximizing shareholder value is a management philosophy that became increasingly prevalent between 1975 and 2000. In both management ("What we should value and pursue") and case law ("What you will be sued and found guilty for not doing").

Why did it become popular? Because there were a huge number of inefficient companies at the time that were continuing business as usual under some guise of "We think this is best." While Japanese companies ate their lunches by working harder, faster, better, and smarter.

Holding management to shareholder value -- and sueing the heck out of them when they didn't focus on it -- was a more objective measurement of effectiveness.

After 2000, it became clear that the metric had become the target, and was now being pursued with a myopicness that was to the detriment of the company.

There are few absolutes in "high performance"


That comes across as a straw-man. The myth from the linked article is that they should maximize share price "even if this means skirting ethical rules, damaging the environment or harming employees." Agreed, this is a myth.

But nobody said they need to break the law, or hurt employees. Given the constraints of the law, they have a single mission of maximizing the share price. Which is exactly what Microsoft and other companies do every day. If the environment gets in the way of your business (i.e if you are an oil company) then you will only care about the environment to the extent that you are legally obligated to.


Right the myth is that companies need to scrape the legal minimums because they have a legal obligation to do so. When in reality it's directly a choice as with your oil company example or Uber wanting the benefits of treating their employees as contractors without giving them the associated benefits. Often skirting ethical rules and in quite a lot of cases breaking legal ones.


He provided a citation. Please provide one to back up your argument


It's an opinion piece. Citation implies academic paper. Not quite the same.


US-based companies and their directors do NOT have a legal, fiscal agent duty to always increase profit / share price. There is well-established case law around this. This Harvard Law précis of an academic book gives guidance on where to find the dry legal work that surrounds this legal position [1]. You are welcome to counter that Part I with your own legal constructs, but there are sound legal reasons it is structured this way.

There are dissenting papers [2] mostly revolving upon Dodge v. Ford Motor Company, but there are many intractable problems when you assert such primacy. Over what duration? As compared to which company? Accounting for intangibles? Valuation of non-monetary factors? Accounting for market gyrations? Primacy by what percentage? That dissenting paper glosses over much of the nuance of Stout's thesis [3], as well as case law ever since that point to the problematic practicalities of courts deciding how companies should carry out the distribution of the benefits of organizing stakeholders together.

So many people who should know better keep repeating this canard. Shareholders can certainly mount a challenge through corporate governance channels for example, but they fare poorly when mounting a challenge through the courts.

[1] https://corpgov.law.harvard.edu/2012/06/26/the-shareholder-v...

[2] https://clsbluesky.law.columbia.edu/2022/04/26/why-we-should...

[3] https://scholarship.law.cornell.edu/cgi/viewcontent.cgi?arti...


It is not about "legal obligation" towards share holder. It is about maintaining and boosting the "valuation" of the company.

Why does it matter? Well, because the higher valued your company is, the more investment you can get, and with more investment, the better you can beat the competition.

And if you don't do it (bad stuff), then your competition will do it and will ultimately will beat you.

So it is basically the only way to survive. That is, keep growing. Stop growing, and you are on path to demise. No public company have the luxury of saying "Well, we have grown enough. Let us just focus on sustaining what we have got".


Even if they don't have a legal obligation to do so, they sure seem to pick that heuristic to the exclusion of other pursuits quite often.


Any big company has different cultures based on what people are doing within that company.

The sales-force are bonus-pay-based on how much cloud they sell.

Some of the development groups are paid for delivering sustainable software that is also open-source.

It's not black and white. Many politics are being played.

I do believe Scott Guthrie and some of the other VP's are good folks that understands the need for being open and honest. Anders Hejlsberg too for example.

But is's not black or white.


> The directors have a legal responsibility to the company

Yes

> and to boost the share price

Not exactly. They have a fiduciary responsibility to shareholders and must always act in their best interests. But the law allows a great degree of freedom in interpreting that. For example, actions that may depress the share price in the short-term can be argued as being good for the long-term health of the company and the courts are OK with that argument.


Of course the difference is: Does the company believe that "doing good" contributes to their bottom line or not? A company that does will do good, a company that doesn't will not. You could then realize that this is true about humans in general. In fact, you could replace "company" with "human" and your point would still apply, making us assume that everyone is evil and only out for themselves, and always assume bad faith, since the same drives control humans as well.


> Opinions like this have always been weird to me. Not wrong, but weird.

You should have felt free to say that it is utter stupidity for people to assume good faith for public companies. But sadly, the times we live does not allow pointing out stupidity in a harsh manner. Don't go easy on stupidity people. You will end up in a nice stupid world without joy or happiness.

> always assume bad faith when you're dealing with a company.

I think this is the biggest problem that humanity is facing right now, and a lot of currently accepted "mainstream" end of world problems derive from it.

And the issue is that these entities are locked in a process where not-the-fastest-growing means on the path to death. And to side step this, they have to do bad things without getting caught. The dominant player will be the one who does the baddest things without getting caught.

For example, In the world of pharmaceuticals, the dominant player would never be the one who play by the rules set by the authorities. But the one who has got authorities on the payroll.

If you are starting about "evidence that authorities are on a payroll", take a look at the above point regarding "not getting caught"...

Sadly, this does remove the higher bounds to what a company would do to secure its bottom line. Which is why I think this is the biggest danger that humanity faces right now. And this is going to get worse, because what ever higher bound we have right now, is going to be pushed higher and higher, in a world full of perpetually distracted people...


> The directors have a legal responsibility to the company and to boost the share price, not for the betterment of humanity.

I think this is true for large organisations, the larger they are the more their behaviour seems to become dictated by the rules of the environment it operates within; whereas the smaller the organisation the more principled they can be as individuals have the power and will to override those rules.

Also with something as large as Microsoft there are so many departments that one can be actively working against the interests of another, i.e MS can and probably does simultaneously do good and bad faith activities for open-source - and yet we commonly anthropomorphise them as if they have the integrity and consistency of an individual... A human flaw i guess.


https://www.nytimes.com/roomfordebate/2015/04/16/what-are-co...

"There is a common belief that corporate directors have a legal duty to maximize corporate profits and “shareholder value” ... this belief is utterly false."


It seems like semantics, but it's public corporate entities that are amoral and not all companies. There is a designation of a "Public Benefit Corporation" which has more restrictions and audits as well as a different mission statement.

https://www.law.cornell.edu/wex/public_benefit_corporation


> Public companies are inherently evil by default -- this is because the only goal of a public company is to strengthen the share price

Agree with your arguments, but more generally companies are inherently evil by default, because their only goal is to maximize profits. You can only hope that they will behave correctly regarding their employees, their competitors, their neighborhood, and the environment.


> Any contribution that M$ makes to open source or open standards is to support their own bottom line

Does Microsoft contribute financially to any social programs or other philanthropic projects? Are all those contributions done solely to support their bottom line?


Typically such contributions come from the PR budget.


Bruh, they’re carbon capturing or offsetting their entire carbon output since they’ve been in business. All in the next few years. No other major public company even comes close.

Being anti-“M$” is one thing, but you it’s hard to disagree with their stance on philanthropy and environmental issues.


You did not address what they said.


> The directors have a legal responsibility [...] to boost the share price

What?


I think the GP is referring to shareholders’ right to sue if they believe that a company’s executive/leadership is operating against the interest of the company (and therefore the shareholders.) But that’s a pretty high standard, one that isn’t coextensive with boosting the share price by any means necessary.


It might be technically true that some deviation from maximizing investor return is not strictly against the law

However, there are several legal opinions that complicate this interpretation.

I recommend you read the case eBay v. Newmark that very much complicates this. Here is a nice summary:

https://www.litigationandtrial.com/2010/09/articles/series/s...

You might also look at Dodge v. Ford Motor Company one of the more in-famous cases supporting/complicating the shareholder value "requirement". In it's opinion, the Michigan Supreme Court in-famously states: "A business corporation is organized and carried on primarily for the profit of the stockholders."

Both cases deal with companies will very small numbers of shareholders where minority shareholders successfully litigated based on some argument that the majority had a responsibility to maximize their minority returns.


Companies aren't people. The set of people in Microsoft is completely different in 2022 than it was in 1995. A quarter-century has passed. It's not the same organization as it was back then. It has very little relationship to it.

I've been consistently surprised by Microsoft doing non-evil things over the past decade, until I accepted that I no longer had reason to hate it.

Conversely, for a while, I was surprised by Google doing evil things, until I realized that the Google of 15 years ago no longer existed. The company has over 10x the employees of the old Google of "don't be evil" days. Even if no one had left, it's over 90% of people who don't know how to not be evil, and don't know they're not supposed to be evil. In practice, most non-evil people I knew at the old Google have long since left (although far from everyone, but enough that it's probably <1% pre-evil).

Microsoft was evil in the nineties. In 2022, it's not a saint, but it's pretty good.

Google was genuinely good in the early '00s. Today, it's pretty evil.

The same has happened to many of my non-profits. Open source was started to strip ethics out of free software, and many genuinely nasty organizations from back then now behave like the FSF of the nineties. Conversely, some of my favorite non-profits went woke, and stopped doing what they were created to do. A few of my favorite academic institutions turned into Enron, while others moved up. Etc.

Organizations are abstractions. Swap out the people and incentives, and it's a new thing under an old name.


Second the people selected for a company are selected based on their conformance to that companies culture. So even if not a single human in Microsoft is the same, the company culture is the there.

This reminds me of an old story, might be fiction, that conveys the idea. five chimpanzees were put in a cage, bananas in the center everytime one tried to get a banana they would get cold water untill they simply stoped trying. Then one by one they replaced the chimpanzees do one one of the new ones, tried to take one of the bananas the old ones would stop him. Slowly they replaced all of them and none of the new chimpanzees, who had never received a cold shower, took the bananas.

The same with corporations.


As a point of experience, I know of only a handful of corporations from my childhood which preserved the same culture. The vast majority are entirely different.

Most software engineering and executives jobs have a tenure of three years, and I think culture is definitely preserved for longer than that. However, it's very rarely preserved over decades.

You're citing a classic joke. The experiment doesn't replicate when people tried to test it:

https://www.answers.com/Q/Did_the_monkey_banana_and_water_sp...


So we could define the medium live of culture as 3 times the average executive tenure?

So if in the company the average tenure is 3 years, then the culture is what has been practiced in the last 9 years... Even if the company itself is 20 years old.

In another company with tenures of average 5 years then company culture is what has been going on the last 15 years.

What do you think? Does this idea mire closely match your experience?


As a child you were familiar with the internal company culture of multiple corporations?


Oddly enough, yes. Don't judge; nerds come in all types.

I can't say I was intimately familiar, but at the level of reading books and trade press as good enough for the statements I'm making.

You don't need a lot of depth of knowledge to know when a culture completely changed. If you go outside and see a Toyota Camry and another Toyota Camry a week later, you can't tell whether the car is the same one. On the other hand, if one day, it's a Porsche, and the next week, and 18-wheeler, you can be pretty sure something changed....


> Second the people selected for a company are selected based on their conformance to that companies culture.

I would agree for most companies and it's probably true for Microsoft but that doesn't really apply to Google. Google is 23 years old. 20 years ago the people who wanted to work at Google were looking for a young fast-growing company shaking things up with its search engine, a heavy focus in engineering and opportunites everywhere. Nowadays, the people who want to work at Google want to work for one of the most prestigious tech company. That tends to attract a completely different kind of person.


IMO the margins for selection can be pretty big w.r.t culture.

Also that last point probably only work if the punishment is incredibly big, and I doubt something like that exists for the scale MS operates at.


Exactly. Corporations are Ships of Theseus. Even if you change top leadership, the Board is still the same, and looking for the basically same kind of people.


That's... not the analogy.

The Ship of Theseus is a question about the nature of identity, not an answer.


That's just not true and it's plain to see if you stretch out the timeline. Is the Hudson Bay Company basically the same at it was in 17th century?


Video illustration of the 5 monkeys experiment: https://www.youtube.com/watch?v=y-PvBo75PDo


That would be true if everyone were replaced at once. Culture lingers on otherwise.


>Swap out the people and incentives, and it's a new thing under an old name.

And according to you, the incentives of this new Microsoft are...?


The culture is still there. They just learned to do better PR and how to make money in this new environment (which they couldn't entirely control).


According to the Supreme Court companies are people

https://www.npr.org/2014/07/28/335288388/when-did-companies-...


It amazes me that literal generations can pass and people assume the tone and nature of a company won't change. Honestly, at this time Microsoft is doing some pretty great stuff with embarrassing the open source community and free solutions. That could change but right now I like it.


Yes, a lot of younger developers and "tech citizens" think MS is a saint now. They need to love Open Source / Linux because their platform has lost to the openness, composability and lightness of Linux.

They lost the server space, but they're retrying to seize desktop from Linux with WSL and invading the developer tools space and trying to isolate Desktop Linux as an "irrelevant layer which runs MS software and technologies, which is not visible and accessible as the laymen", and Linux server as a layer "which you don't need to think about" (i.e. make Linux irrelevant as a whole OS for developers at scale).

Canonical is helping them with this endeavor, because Ubuntu desktop doesn't make money. If they can piggyback the userspace to Windows and earn money from servers, they're kosher.

It's really ugly. However, De Icasa is not a saint either by pushing Mono on GNOME and Linux and allowing some borders to dissolve to allow Microsoft in, regardless of it's intended or not.


> trying to isolate Desktop Linux as an irrelevant layer

They're obviously doing that, but they don't really need to.

Desktop Linux is its own enemy. 2 major GUI toolkits, frequent upgrades to them, generally with breaking changes, multiple DEs, frequent upgrades to them, also with breaking changes, a full decades of bickering over a solution that solves actual end user and operator problems in a standardizing way (systemd), immature GUI software after decades (Gimp & co), chronic lack of funding because nobody can figure it out, etc.

I've been around Desktop Linux for more than 15 years. I still hear bad arguments I heard back in 2005.

Plus, the ship has sailed. Mobile devices outnumber desktops and laptops and will only continue to grow. The money surrounding mobile dwarfs desktop. And Linux lost on mobile, it was it best chance to become the primary platform somewhere. Android doesn't count. Android used a cheap and standard kernel with many drivers and plopped a million proprietary things on top that look nothing like Desktop Linux.

You'll say I'm wrong, yet I'm willing to bet $100 that this discussion will look the same way in 15 years.


I'll just say that while Linux desktop is not perfect, I see much more people who're "assembling" their own environments to work at speeds I can't ever imagine.

I'm part of a community who does amazing things with all these fragmented parts and assemble unimaginable things while staying productive and inventing new ways of work.

The overall maturity of these small parts have not reversed the tide, but actually changed it a lot.

As a macOS and Linux user for 15 years, I see that both can work seamlessly without much effort, but Windows built on a completely different platform, can't talk this language of protocols and composability natively, or work as seamlessly.

Microsoft is right to feel threatened, because they're threatened by two sides.


> people who're "assembling" their own environments to work at speeds I can't ever imagine.

People who assemble cars from scratch can accomplish things from that are amazing too, but only 0 1% of the population will ever want to do that.


The thing is, some of these people are professional developers, and they inspire their peers and younger generations. There's an active momentum around that and it's definitely larger than 15 years ago.


It is 2022 and my suse linux smb share still doesnt work (after spending a few hours on it)


> Android doesn't count. Android used a cheap and standard kernel with many drivers and plopped a million proprietary things on top that look nothing like Desktop Linux.

Android is doing what every Linux embedded platform had been doing anyway. If anything, they're more open than the rest of the mobile/embedded space. It's not like e.g. OpenMoko looks more like Desktop Linux than Android does.


I think the goal of a single, quality "desktop linux" (or really a "free desktop", whatever kernel drives it), in the face of so much software diversity, is a lofty and improbable goal. The only issue probably is to match an ideal ("all IT departments use free software") with the practicality ("there is too much software diversity") with a fear that our current free software will fall out of favor with people seeking to work on and maintain software.

It is unfortunate though that some free competitors to commercial software still struggle a bit. GIMP has worked fine for my rather simple image editing needs though.

I think mobile is another beast, I'm not going there yet :D


> 2 major GUI toolkits, ... multiple DEs, frequent upgrades to them, also with breaking changes, a full decades of bickering

I was using Linux desktops 20 years ago and the same arguments were made. They were FUD and they still are.

1) having "too much" choice is nothing to complain about.

2) if you are a beginner, pick a stable distribution and your desktop will be completely immune to churn. Use it as a productivity tool, not as a playground.

3) if you are not a beginner you should be able to maintain a desktop. If you are busy, pick a simple DE and use it on a well know distribution.


> They were FUD and they still are.

Sorry, but take the horse blinders off.

If this kind of criticism coming from a long time user of Linux desktop (not as active nowadays because work is Windows, but most of my work is done in IDEs, browsers and through Cygwin anyway), FOSS supporter, etc is FUD, then boy, are you going to have a hard time fighting Microsoft's or Apple's marketing teams.

> 3) if you are not a beginner you should be able to maintain a desktop.

And therein lies the main rub :-)

Most people aren't able to "maintain a desktop". They don't really maintain either Windows, or MacOS. Most people are at best, "perpetual intermediates". Only a small fraction of users want or actually become power users. Most just trundle along trying their best to learn the least possible. And that's in every domain you can imagine.

This is the thing that will condemn Desktop Linux to being a niche product. That's fine, up to a point.


> Most people aren't able to "maintain a desktop".

He offered the solution though. If you are not able to "maintain a desktop" (either because you don't know how to, just don't want to, or don't have the time to, etc) then use a stable distro and accept the choices that were made for you. Thats not much different than just installing Windows or buying a Mac and accepting whatever decisions Microsoft/Apple made regarding how the desktop experience should be.


What part of "pick a stable distribution" you did not understand?

There's a good number of large tech companies providing Linux desktops for both tech-savy and other employees and it just works.

> Sorry, but take the horse blinders off.

Horse blinders? Ironic given how you looked only at half a sentence and ignored the rest.


Nothing like telling your boss "Sorry I missed the deadline, but my desktop needed maintenance"


Thats why he mentioned using a stable distribution as the default choice. Desktop maintenance is not required with a stable distro. It is for power users who have both the desire to customize their workflow and the time to configure and maintain it. Neither Windows nor macOS offers any suitable options for that type of user.


The idea of a desktop needing "maintenance" is something the industry has been moving away from.


Hence nr2?


> I'm willing to bet $100 that this discussion will look the same way in 15 years

I'm willing to take it, but only because I think there won't be a Linux in 15 years.

And yeah. Android doesn't count. It's essentially an enclave that runs Dalvik programs.

Linux basic assumptions about hardware don't hold on mobile.

I think Linux is suffering from the Lisp curse. Because they never choosed a DE, there is endless splintering and re-invention of the wheel.


> I'm willing to take it, but only because I think there won't be a Linux in 15 years.

Let's see. I've added a reminder in my calendar with a link to this comment.

> Because they never choosed a DE...

But they created a Desktop Standard which allows every DE to behave the same where it matters. This unified a lot of things. So every DE is a shell and workflow with same underlying principles underside. Much like POSIX.


> every DE to behave the same where it matters.

Sure. Except the end user won't care. As end user I don't see it implements DS.

I see that KDE has bug A and Gnome has bug B. Or KDE has feature C that Gnome doesn't have, and vice versa. All in all as user. No DE fits me because bugs and features are scattered around.

E.g. Haiku did it right. You don't get to choose. It's baked into the OS


> I see that KDE has bug A and Gnome has bug B. Or KDE has feature C that Gnome doesn't have, and vice versa. All in all as user. No DE fits me because bugs and features are scattered around.

This is a "grass is greener over the fence" perspective. You can install apps for missing functionality or report bugs for the things you don't like.

Except, Windows and macOS doesn't care about your bug reports, and some of the applications are not implemented on these systems because there's no financial incentive, and open source tools for these platforms are low quality.

On the other hand, this modularity and composability does wonders in the Linux side.

Linux DEs have feature levels. from LXDE to E17/XFCE to GNOME/KDE. People try, change, select and settle. Their most important settings are carried around. BTW, Qt/KDE guys allows amazing interoperability between GTK and Qt, regardless of your primary choice.

So, after some time it's borderline nitpicking IMHO.


> This is a "grass is greener over the fence" perspective.

Not really. Just because neighbors grass is greener, doesn't mean Linux grass isn't a black wilting mess.

> So, after some time it's borderline nitpicking IMHO.

Example of "nitpicking" I/colleagues ran into: Multi monitor support, HDR, DE bricking after update.

And due to Linux fractious nature even if one distro fixed it, another would still have that issue.

Stuff that never happened to me with Windows/MacOS.


> Not really. Just because neighbors grass is greener, doesn't mean Linux grass isn't a black wilting mess.

Linux's grass was a much darker green in the past, but wasn't black, neither back then, nor now.

> Multi monitor support

Just plugged a secondary monitor into one of my colleagues Linux box a week ago, a second desktop appeared three seconds later. Used two monitors for 6 years, until 6 years ago. It was working fine, then.

> HDR

Don't have an HDR panel, can't say a word about it, but VLC handles HDR-SDR conversion just fine.

> DE bricking after update.

My current MacBook Pro bricked after an OS update, because of a bug in an OpenVPN client's OS integration. No, the tool is paid, and no, macOS has no OpenVPN client embedded in it. Maybe I shouldn't have installed a paid, premium OpenVPN client, who knows. Anyway, I wiped and reinstalled the thing as a result.

The symptom? A frozen progress bar under the Apple logo. No time remaining, no error, nothing. Can I have the logs please? "Haha, of course not, you peasant."

And I only wiped and re-installed a Linux distro once, 15 years ago, because I did something the tool warned me to not to do.

And Windows somehow succeeds to corrupt my older computer's BIOS after installing updates and reboots. Sometimes it hangs all fans blazing during the restart. No, it's not the battery. That also never happened with Linux.

So, I arguably have a much better experience with Linux w.r.t. macOS and Windows in the last 15 years.


> Just plugged a secondary monitor into one of my colleagues

Sure. And I had encountered it - from just not registering, it being "there" despite being unplugged. And it randomizing windows on plugging in.

Using Linux always feels like fighting uphill battle with gremlins.

> Don't have an HDR panel, can't say a word about it, but VLC handles HDR-SDR conversion just fine.

Pity, really.

Neither Weyland nor X.org support it. Amazing, another fork in the road.

> My current MacBook Pro bricked after an OS update, because of a bug in an OpenVPN

That's different. This was post install update. Clean machine.

I ran into similar issue that bit Linus from. Linus Tech Tips.

I updated pop_OS! on fresh install and bang! Welcome console my old friend.

I remember Linux 15 years ago and it was even worse. But just because it got better doesn't mean it's good.


> I see that KDE has bug A and Gnome has bug B. Or KDE has feature C that Gnome doesn't have, and vice versa. All in all as user. No DE fits me because bugs and features are scattered around.

Can exactly the same not be said for Windows or MacOS? The difference being that you're basically locked into your choice with Windows/MacOS.


>I think Linux is suffering from the Lisp curse. Because they never choosed a DE, there is endless splintering and re-invention of the wheel.

But who is "they", Linux the OS doesn't exist as Linux is just a kernel. There are countless distributions that assemble operating systems from parts, throwing GNU userland on top of Linux kernel and other bits of software on top of the GNU userland and the kernel.

FreeBSD, NetBSD, OpenBSD are operating systems, the developers do both the kernel and the userland.

In the early days of PC BSD I've tried to kickstart a new DE, just for PC BSD to break free from the rest of open source operating systems, and to have an UI that only work on PC BSD, is consistent - the same way Windows and macOS have their UI layers. And I failed at it, because I am human and I need to earn a living.


> But who is "they"

People that wrote if not the original kernel. So l guess Linus and co.

If an OS is to "win" desktop, or mobile, or whatever, it needs to minimize forking between its libs. Go for one way to do it, rather than a muriad of related ways


In a market share sense, Linux doesn't and never existed in the desktop in first place. However it's ubiquitous in servers and that success has nothing to do with a DE. Its universal success in server space also means many more people are acquainted with Linux today than Lisp in its heyday. If you consider the current 2% market share in desktop to be "existing", I will posit that these people aren't going away just because of fragmented UI, because I believe bulk majority of them are spill over technical users who use Linux despite the state of DE.


I'm not referencing the market share.

I'm referring to Lisp Curse. http://www.winestockwebdesign.com/Essays/Lisp_Curse.html

In summary: Because Lisp was easy to fork, any time two nerds disagreed it was forked. And because they weren't working on same database you got Lisps with patchworks of functionality/bugs that each on their own couldn't compare to more or less monolith language like C/C++ or Java.

Same dynamic in Linux land.

So instead of having 1000 developers on one codebase we have 100 on ten different DE, windowing system, etc.

Rather than having one sound system we have a dozen... It doesn't work on PulseAudio, try OpenSound, no wait OSSBlasterMaster...


Scheme and Common Lisp are different environments altogether, Also, Emacs Lisp has a good chunk on fuctions backed it.

>s that each on their own couldn't compare to more or less monolith language like C/C++ or Java.

Good joke. On C++, Boost. Try to compile older C++ code from 2006 today, it may fail spectacularly.

A lot of older C++ games from 2006 will be damn difficult to compile today.

On Java, heh. Different and incompatible JRE's. Software tied to a single JRE where it crashes on the newer ones.

Should I go on?

Meanwhile, 20 yo Elisp code still runs today as-is.


Yup, agreed. Didn't realize how much Canonical was helping with WSL, though it of course makes sense that they're doing so, unfortunately.

> De Icasa is not a saint either by pushing Mono on GNOME and Linux

Eh, I think interoperability is good, and reverse-engineering Windows frameworks/technology has a long history in the open-source world (WINE & Samba being two prominent examples). I was disappointed when they sold Xamarin to MS, though. That felt like selling out, even though I'm sure it made sense at the time.


> Didn't realize how much Canonical was helping with WSL, though it of course makes sense that they're doing so, unfortunately.

Eh, they have a dedicated team for enabling WSL/Ubuntu desktop in Canonical. They're fueling the effort.

> Eh, I think interoperability is good, and reverse-engineering Windows frameworks/technology has a long history in the open-source world (WINE & Samba being two prominent examples).

IIRC, De Icaza left GNOME, joined Microsoft, developed Mono on open specs, founded Xamarin and sold it back to Microsoft.

His joint venture with MS what turned everything sour for many people, incl. me. However, we all love Wine, esp. when they implement things bug-by-bug without knowing it (and without help from Microsoft). The cursor (or Icon or WMF) exploit was a great laugh. We all love SMB too, because it's done despite Microsoft.

The language on this page is loaded (in a way I don't like), but it keeps a good roster of the events: http://techrights.org/wiki/Miguel_de_Icaza


> His joint venture with MS what turned everything sour for many people, incl. me.

Why did it turn things sour for you? I mean, ever since the Xamarin acquisition, MS .NET has become open + cross plattform and Xamarin which was a commercial/paid-for product is open too. VSCode is a first class citizen for free C#/.NET development on macOS and Linux. Not saying all of this is related to de Icaza getting bought by MS, but just saying ever since the ecosystem has become completely open.


If you're a .NET developer who uses Linux, yes that sounds nice.

On the other hand. Consider a prominent member one of the biggest open source projects leaves the project, joins Microsoft, and praises Microsoft and pushes semi-closed Microsoft technologies on every project, claiming Linux is dead without Microsoft, and we need to compromise by allowing these non-free technologies and porting almost everything to it.

All is done when Microsoft tried to copy LibreOffice (then OpenOffice) formats, created OOXML family of semi-open formats, and push them as ISO standards to bolster their file formats to kill other office applications for good.

DeIcaza (knowingly or unknowingly) was a part of an concentrated and coordinated effort to EEE Linux, and the open frameworks around it.

I never used and won't use any Mono based application in my personal systems and servers I solely install and manage.

On the other hand, VSCode is not free or open source. This makes it null and void in my radar, because I want my whole toolchain to be open and free, because when I left a project alone, someone should be able to get the whole toolchain and continue development. I don't like the idea of source code being locked in a proprietary development environment and hence suffocated on a whim with a choice of an external party.


> DeIcaza (knowingly or unknowingly) was a part of an concentrated and coordinated effort to EEE Linux, and the open frameworks around it.

The only person who does not know this is Icaza itself.


I can't talk about a person definitively who I don't know personally.


VSCode is free software, and also used a lot outside .NET development (TypeScript). It is extension based, and not all extensions every written for it are free software. And VSCode is not essential in any way for .NET development, and I am saying this as someone who learned C# with MonoDevelop on Linux around 2010. There are commercial IDEs like Rider, and you don't need an IDE to compile code - the build toolchain of .NET is free software.

I don't buy into this "All tools associated with an ecosystem must be free software". That is not even true in Java/C++/Python land, where there is a plentheora of commercial and succesful developer tools (i.e. IntelliJ, CodeWarrior etc.)


> VSCode is free software...

As in beer only [0]. This license [1] states otherwise for free as in speech perspective.

> and also used a lot outside .NET development (TypeScript). It is extension based, and not all extensions every written for it are free software.

I know, and some of the non-free extensions are just the essentials, so they're what make VSCode, VSCode. So it's open-core, and it's not completely open source, and definitely not free.

> And VSCode is not essential in any way for .NET development,

I don't develop C#, but I know there are other tools and IDEs.

> I don't buy into this "All tools associated with an ecosystem must be free software". That is not even true in Java/C++/Python land, where there is a plentheora of commercial and succesful developer tools (i.e. IntelliJ, CodeWarrior etc.)

It may not be a necessity for you, and it's definitely not a necessity for closed source software or tools. However, I license all my code with GPLv3, and want my project to be buildable by anyone, regardless of anything. So I prefer a free and open toolchain (GCC/Eclipse/GNU libc) and libraries in my codebases.

If I was writing a commercial application, I may make different choices IDE/Library wise, but I'll still continue to use GCC family.

You don't have to buy into this. I'm not selling anything. This is my stance and a recommendation, but not an insistence.

[0]: https://code.visualstudio.com/docs/supporting/faq#_is-vs-cod...

[1]: https://code.visualstudio.com/license


The .NET debugging tools in VS code are proprietary. If you get the OSS build from your distro and try to debug a .NET program it'll fail with an error. (Telling you it's only available with proprietary VS code from MS) For other languages this might be a minor pain. For C# it kills one of its best features, it's debugging support.


This is also an ecosystem thing. Rust has pervasive support for printf debugging (#[derive(Debug)] and you're done), while .NET's default .ToString() method is completely useless (which I'm sure has nothing to do with Microsoft wanting people to rely more on their debugger...).


Yeah you don’t remember correctly at all.


This is why I added Techrights reference here, which fixes what I've been wrong about and supports me what I was right about.

The most important thing is, De Icaza is with Microsoft for much longer than people remember (or want to accept), and the events I remember (albeit a bit blurry), when I was a grad student were actually happened.


> even though I'm sure it made sense at the time

I think it definitely made sense. Xamarin was conceived in a world of many mobile platforms, and so it was the only way to develop cross-platform apps. Now there are basically two, and it's a much closer call.


Also stiff competition from React native. A lot more JS Devs around today than c#.


Yes true, but not all React ones :) And Unity has helped swell the C# ranks, I hear.


I think what's more likely in this case is that MS under Satya really does want to be a good corporate citizen, but are finding themselves in a bind that threatens the whole organisation.

They're spending up the wazoo on Xbox, still, to battle PlayStation. They were supposed to have conquered that market over 15 years ago and are still throwing money at it.

Windows is hurting as a retail business. License costs have been driven down by Chromebooks and resurgent Macs, and with all the free upgrades they get very little revenue from gaming PCs anymore (which is one of their biggest markets) while also battling Proton and Vulkan to keep users on the platform.

That leaves Azure and Office as the big cash cows. Azure is struggling to compete with AWS, and the big draw of Azure is the deep integration between it and Visual Studio (which, to be fair, is unrivalled anywhere else).

That's the bind. Microsoft needs the open-source community to embrace Visual Studio Code, and they have, but they also need to protect Azure's hegemony with .NET developers.

Can you build and deploy .NET on other clouds currently? Of course. Do you lose a lot of features by doing that? yes. Ones you may miss, or (if you've never been on Azure to become familiar with them), ones that may draw you to migrate later.


This reads to me as:

> MS under Satya really does want to be a good corporate citizen

... followed by...

> [a bunch of reasons why MS won't be a good corporate citizen]

Wanting is great, but actions speak louder. Maybe instead of doing sketchy things to try to lock people into your cloud platform (and make using your framework on other platforms more difficult), they could, I dunno, maybe focus on Azure itself, and making it better than AWS? The world would be a better place if companies were incentivized to compete on product features, and not through shady practices and backroom dealing.


I wonder how much inertia an organization like MS has. I never worked there, but the anecdotes I read/hear indicate that MS is really 4-5 semi-independent competing power structures. E.g. there's sometimes (often?) adversarial relationship between them even, which then projects into baffling end user experiences. The windows shut down menu or the highly schizophrenic situation between the new and old control panels comes to mind.

Steering something like that is not even analogous to captaining a single large ship, it's more like trying to steer a flotilla where each captain hates the other bunch and they are all continuously pulling in different directions.

Satya may be doing his very best to improve the culture, but management has to change or be replaced on multiple levels below him to make things stick. He has to do this in a way that doesn't unite the leaders of the sub-groups against him in mutiny.

Again, I'm not trying to excuse MS's behavior in any measure, just highlight that even with the best of intentions it may take decades to change firm like MS to give up it's old ways.


> Steering something like that is not even analogous to captaining a single large ship, it's more like trying to steer a flotilla where each captain hates the other bunch and they are all continuously pulling in different directions.

I'm sure this is a constant struggle even within the dotnet umbrella. Remember the whole hot reload mess?

https://news.ycombinator.com/item?id=28972431

I don't get it. Why can't they simply open source the common code between visual studio and visual studio code? Who cares if Visual Studio makes an extra million dollars in revenue? Talk about being penny wise and pound foolish. Spending all these resources to get developer mindshare and constantly tripping over themselves because oh we must protect visual studio revenue.


Home licensing has not been a big deal for a very long time. Their actual cash cows are things like Enterprise Licensing which aren’t going anywhere soon. You’ve also entirely excluded server licensing as well.

Have a read of their actual results and maybe re-think your hypothesis a bit. Microsoft’s revenue went up by 18%. I think they’ll be fine without some .NET extension,


Exactly. This is yet another bizarre move from MS which doesn't exactly seem to make financial sense and just pisses off developers who might otherwise be persuaded to soften their stance towards them. I wonder if these are part of a deliberate strategy MS are trying, or just the actions a few overly ambitious managers


This seems like one of those decisions that they will walk back within a month similar to the "hot reloading" fiasco. This makes even less sense than that because it was clear which moat they were protecting (Visual Studio proper) by making hot reloading "exclusive" to Visual Studio 2022.

But this extension, by its very nature, is for the VS Code. So, in this case, VS Code isn't being neutered to make a paid product more appealing. The only thing I can think of is that they want to keep the "secret sauce" away from JetBrains to give Visual Studio an advantage over Rider. Its really perplexing when you consider that they created LSP and DAP. And C# was one of the first languages to have an implementation for both standards which opened up the door to potential C# feature parity between Visual Studio and non-Visual Studio editors.

I just don't understand why anyone working on .NET tooling would think that this decision would go over better than the hot reloading one. Once you open the FOSS genie, you cannot put it back in the bottle without stirring controversy. Is protecting some small percentage of VS license revenue worth all of this bad PR they seem to be willing to subject themselves too?


> Azure is struggling to compete with AWS

It's not. Everyone's darling, Google, is. So are IBM, Oracle, Alibaba.

Azure is the only true threat to AWS and the only actual peer.


> They're spending up the wazoo on Xbox

> Windows is hurting as a retail business.

> License costs have been driven down by Chromebooks and resurgent Macs

> That leaves Azure and Office as the big cash cows.

Where are you pulling all this data from? And I don't mean coarse data from various articles, anectodal evidence or personal observations, I mean actual evidence that microsoft's revenue share is dominated by office and azure? Microsoft sells a lot of stuff to a lot of entities, I'm not convinced you can sum up their revenue so neatly without opening their books.


> They're spending up the wazoo on Xbox

2002 - Rare - $375 million

2005 - Lionhead - ???

2014 - Mojang - $4 billion

2014 - Gears of War - ???

2018 - Compulsion - ???

2018 - inXile - ???

2018 - Obsidian - ???

2018 - Ninja Theory - ???

2018 - Playground - ???

2018 - Undead Labs - ???

Sept 2020 - Zenimax / Bethesda - $7.5 billion

January 2022 - Activision Blizzard - $69 billion

This is just acquisitions, so it isn't exhaustive as it doesn't include first party costs and development expenditure, or Halo expenses / 343, as it assumes they essentially paid nothing to Bungie (or their costs were negative) after that split happened.

Microsoft don't publish extensive separate numbers for the Xbox division, but their Q1 2022 filing nonetheless states $3.6 billion - which is up 8%. They've also been open that they still, 21 years later, make at most break-even on their hardware sales.

That's a lot of expenditure relative to income. To state the utterly obvious: they're not getting nothing for that money, so it's not like they are sunk costs, but I'm not sure what standard would meet "spending up the wazoo" if not 20 times revenue (at minimum, as it only includes spending on acquisitions for which the amount paid is made public).


They are building Xbox as a brand/service not as a product these days. Sure they ship consoles but you can subscribe to Xbox Gamepass and and use it on both Windows and Xbox (and I think they also have game streaming? I could be wrong).


Exactly.

.. and they’re spending up the wazoo to do it!


Buying companies is not same as spending as the acquired companies are independently profitable. e.g. Mojang in hind sight is a steal for 4B. Same should be true for Bethesda/Blizzard.

These investment need not return profit in excess of the sticker price but increase the valuation of MS proportionally. If MS tries to offload Mojang it will get an impressive ROI.


Azure struggling to compete with AWS?

I wonder if this is specific to particular spaces, like very large enterprises maybe?

In the SME space, Azure is significantly more dominant in my experience.

All those companies where "Can't get fired for buying Microsoft" applies, went to Azure.


GP seems to be oblivious to actual stats [0].

Last year, Azure was the 2nd biggest player in cloud computing, being "only" 2/3 of AWS' market share, but still having more than 3x the market share of the next biggest competitor (Google).

Indeed hardly something I'd call "struggling".

[0] https://www.statista.com/statistics/1202770/hyperscaler-iaas...


I can't remember the source, however, I believe Microsoft is overstating the usage of Azure as a cloud computing platform. For example Office 365 is hosted on Azure and counted towards the cloud computing figure.


That may have been true in the past, but definitely not these days. MS separates Office 365 sales from Azure sales in its reports (e.g. [0]).

[0] https://news.microsoft.com/2021/07/27/microsoft-cloud-streng...


I can only cite sources. Disputing the numbers would have to be taken up with Statista and their sources, I can't comment on this.

The revenue chart looks more favourable for Microsoft (e.g. 20% share for Azure vs. 30% share for AWS), so maybe that's the data you have in mind?


> They're spending up the wazoo on Xbox, still, to battle PlayStation.

Microsofts decision to release all of their new XBox games on PC was kinda bizarre to me. It basically guarantees the XBox as a gaming console is going to lose market share to the PlayStation and eventually die out because the core gaming market is going to pick PC + PS5 + Switch (or some subset of those) as the sensible combo to be able to play all the games on.

XBox as just a game publishing brand can never be as big of a deal as being one of the three major consoles.

Meanwhile the Switch totally justifies it's existence with cool hardware decisions and good exclusives. And the PS5 with kinda unique hardware decisions (the really fast SSD actually enables cool stuff, the dualsense triggers feel a bit more of a gimmick to me) but mostly good exclusives.

But hey, maybe I'm missing something here.


You are overestimating the overlap between PC and XBox for gaming and profits in selling the console. XBox buyers are looking for a cheap appliance while PC users are ready to invest lot more in both time and money.


Then why is Sony heavily emphasizing PC too?


That’s the more bizarre decision to me.

I get that some suits have decided PC isn’t a threat to Playstation’s business model, but they’re just wrong.

A gaming PC will play PC/Xbox/Playstation/Switch exclusives now. That really is compelling for someone in the market.


Maybe it is due to hardware supply chain shortages, since they make their money from the game sales anyways.


> But hey, maybe I'm missing something here.

Most consumers want appliances. Having to debug software and hardware issues that frequently come up on PC gives them zero satisfaction.

For example, most people want a toaster when they want toast, instead of a more versatile fire


Consoles are very close to PCs, hardware-wise. The main draw imo is the hassle-free gaming experience. I think the use case of building a dedicated box just for gaming is becoming less valid with every console generation.


I think you are missing some things here.

For Microsoft the Xbox hardware was always intended to be "aspirational" for PC owners and push developers to build better PC games. Even the name choice from "DirectX-Box" has always come from that relationship back to the PC (even with the brief side jump in the Xbox 360 era away from traditional PC hardware).

Just as the Surface line of hardware isn't designed to "replace" the PC but encourage innovation in PC hardware design.

For a really good example since you already brought it up: "the really fast SSD enables cool stuff" you mention with respect to the PS5 is a big part of the Xbox Series X/S hardware too. They are only sold with really fast SSDs and even the expansion slots only support those kinds of SSDs. (Some gamers have been upset by this that they can't just plug in any USB drive like on the Xbox One.) But also Microsoft also added a lot of that exact same "cool stuff" to Windows and PC games can use "DirectStorage" APIs to get some of those exact same benefits when PCs are built with really fast SSDs that support DirectStorage. But right now the easiest (and cheapest) to find "PCs" with all that hardware and configured correctly to use it "fresh out of the box" are: the Xbox Series X and Xbox Series S. (Even despite the supply chain issues.)

That's an interesting circle around the hardware: the Xbox hardware pushes PC standards that are aspirationally available sooner and easier on Xbox hardware. Xbox hardware puts "high performance gaming PCs" in living rooms in homes that might now otherwise consider a "high performance gaming PCs" while also giving those that love building their own "high performance gaming PCs" performance goals to shoot for and a baseline hardware standard to judge their gaming PCs by (is your gaming PC at least as good as an Xbox One X? do you have the RTX and NVMe SSD with DirectStorage support to hit Xbox Series X fidelity in Xbox Series X optimized games? etc).

Surface doesn't want to be the only PC hardware, it wants to be PC hardware that gives ideas to the other PC hardware companies. That sets benchmarks even for home PC builders to measure themselves. Xbox as a console seems to want to do the same thing: it isn't designed to be the last or only gaming PC in a household: it's designed to be the "first", it's designed to be easily accessible for those that wouldn't otherwise buy a gaming PC, it's designed to be the measuring stick for what a "gaming PC" means and give ideas to PC manufacturers of things they can also be doing. (And it is designed to keep Windows as the most innovative OS for gaming. Microsoft "wins" either way if you buy an Xbox or a gaming PC so long as it still includes Windows.)

(Personally, I tend to own a gaming PC for 7+ years and watch it slowly grow out of date with new releases, because a PC is also a lot of other things and stability is great. When I choose to play "keeping up with the Gamer Joneses", I do it by following Xbox cycles. The Xbox Series X does outclass my gaming PC on quite a few specs and I'm happy with that arrangement. I also like the fluidity that I often buy the games only once and can run them on my PC in the other room, at my discretion. Some games you want "latest and greatest looks on the couch" and some games you want the freedom to jump over to the other room and "slightly dated graphics fidelity but I just need to hop on the game from my desktop where I'm multitasking a TV show and a Discord chat in my PC chair".)

I have a lot more questions for what Sony's strategy is with current PC releases of games and that the PS5 is again back on "ordinary" PC hardware. They certainly don't "win" anywhere near as much by making their PC games available on Windows.


You say Microsoft is in a bind because in most of its businesses it is facing existential threats from stiff competition. But that is exactly how free market capitalism is meant to work.

You almost imply that we can expect better corporate citizenship (whatever that means) from corporates with comfortable monopolies. I think 90s Microsoft is probably sufficient rebuttal of that.


> 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.

I kinda disagree with that, based on things that MS people straight-up say out loud. MS changed that "wholly-proprietary, Windows-only technology" thinking for other reasons.

VS and .NET are not the profit centres any more. Azure is. Even #2 spot in cloud computing is vastly profitable (1) and strategic.

Is Azure "struggling" eh, it depends. Sure they want to have more users than AWS, and they're struggling to do that. Struggling to be successful, big, profitable etc, no not at all, Azure is all of those things.

MS wants you to run it on Azure. For just about any "it". They'll even prioritize enticing you to Azure over enticing you to Windows servers. Therefor, there should be a good "it runs on Linux on Azure" story for any popular dev tool. Doubly so for the MS developer base.

1) https://www.zdnet.com/article/microsoft-cloud-revenue-at-23-...


I've worked with MS solutions and I've worked with *nix solutions for 2 decades. I can't for the life of me understand how people choose to inflict the pain of MS on themselves in anything except "office productivity". I must admit, that's an area they have got pretty good at. .NET is horrible to work with. C# is a decent language mind you, I like the language features. It just needs a better "standard library".


What sorts of things are wrong with .NET in your view? As someone who recently started working with it after using Java for years, it has been refreshing and largely enjoyable for me.


You must have not had to work with SOAP then.


Nobody does anymore, so I don't see how that counts as a valid criticism of current .Net.


If you deal with (some parts of) the public sector, you certainly will encounter SOAP. For example - those online drivers-ed courses you buy in California to get rid of a ticket? They all talk to a SOAP backend maintained by the State.

Certainly SOAP isn't everywhere the way it used to be (thankfully), but it's out there and isn't going away any time soon.


> isn't going away any time soon.

Funny you think that. That's one of the major complaints about .NET 5+ is that WCF was dropped as an officially supported library and .NET is pushing people to REST and/or gRPC. (I think gRPC will suffer many of the same SOAP problems eventually, but it's the current hotness, thanks Google.) Every .NET HN article is full of complaints that WCF is dead and they have SOAP services to maintain and .NET is telling them to go away and do something new. There's a community project named CoreWCF trying to make the transition easier and even they are not trying to implement all of WS-* and SOAP madness and trying to make the transitions easier to REST or gRPC if you like that Google-branded SOAP smell better.

In .NET 5+ SOAP is already dead and good riddance. It's probably going to live forever on .NET Framework 4.x servers for legacy apps, but the message seems to be loud enough: "those are legacy apps now".


SOAP isn't actually that bad if you use it with a typed language like C#. It's hell trying to use it with something like Ruby/Python though - I remember struggling to talk to a SOAP API with Ruby and getting into headaches that my data was being rejected until I realised that the XML properties had to be in the exact order unlike JSON which doesn't care usually.

Import a WSDL into Visual Studio and you've got your client code automatically generated & documented (if the API was written properly), works pretty nicely to be fair. Even easier than using something like Nswag to generate JSON clients from Swagger/OpenAPI specs.


I never gave the Visual Studio WSDL code-generator the respect it deserved at the time. With hindsight, it was amazingly easy to use and generally "just worked".

> (if the API was written properly)

A very important caveat! I remember we hired some consultants from a world-renowned tech company - let's call them Big Red for now - and their big integration deliverable was a SOAP API with... one method. It accepted a string, and returned a string. And what was that one string? ...A SOAP request! The best code-generator in the world wouldn't have helped.

To this day I wonder if we actually ended up paying for that. I sure hope we didn't.


SOAP and the related libraries in .NET are pretty unfun to work with. However they are so old and unused compared to modern development that it’s not really a good comparison.

Like I have a Java app I am struggling with currently and not a fan of, but its on Java 8 so I don’t consider it representative of whatever I might find in modern Java despite the fact that I am working with it in modern times


It's not that a new generation of coders don't know about the past. It's more that what Microsoft did in the 90s was a preview of how all giant tech corporations behave, and now they all do the same: build empires and ecosystems wherever possible. Pretty much everything ms did in the 90s is now standard practice. E.g defacto Browser lock in? (iOS, android...). Facebook wanting to be the whole internet, Amp, App Stores, launching os features that compete with popular third parties. Champion privacy if it gives you a market differentiator, otherwise harvest whatever info you can from everywhere etc etc

One trick MS never thought of was "use mountain of cash to buy up all the manufacturing capacity"


I wish I could dig it up in the way back machine, but there was a period in the early aughts where Microsoft employees blogged religiously (on orders from corporate).

Anyway, a group of them discussed lobbying the US government to charge Linus Torvalds and Eric Raymond for securities fraud, alleging that people promoting open source software were actually engaged in a pump-and-dump scheme for companies like VA Linux (a dot com company that crashed and burned)

To me this perfectly encapsulates Microsoft’s attitude of that era. It’s all there right in a bunch of early aughts blogs.


You act as if any public company doesn’t use open source more as marketing than anything else. Famously Google bragged about Android being “open” and then they slowly started moving anything that made Android “Android” to most people closed source.

As far as .Net being Windows only. MS doesn’t care about Windows anymore. It cares more about Azure, services, Office etc. There are more Linux instances on Azure than Windows instances.


> someone with Miguel de Icaza's experience should know better

Surely RMS told him this exact thing would happen when he left gnome for ms.



> Bill Gates has also done an amazing job rehabilitating his image through philanthropy.

I think this is no longer true following the pandemic and his vaccine work. And his Epstein connections. In retrospect to this, it's hard for me personally to take his philanthropy into account. I went from childhood, disliking Bill Gates for his anticompetitive Microsoft stuff, to college age, admiring him for his philanthropy, and now back to harboring a strong distrust of the man.


The Epstein connection is obviously bad to me but what did he do wrong with vaccines? The only complaints I’ve heard have been conspiracy theories along the lines of 5G microchips in the vaccines


The actual announcement is here:

https://github.com/omnisharp/omnisharp-vscode/issues/5276

It's not quite as dramatic as the OP is making it out to be.


The web page is FUD, but the GitHub issue is describing yet another top level management decision which is totally not helpful source code wise and reputation wise.

Creating a bridging host component for tools with multiple intellisense or debugging providers is okay, but the host must be open source to control what is happening.

This is a strategic move to unify VS and VS Code ... And the open source debacle is the thing in between.


This. My first reaction was - why are we posting FUD here. Then you see it: they're switching from an OSS component to a new component, which *will not be open-sourced*.

Retiring code with architectural changes is fine, it's normal, it happens everywhere. I don't have a problem with it. Only the replacement should be comparable in licence. Which this one isn't.


> Retiring code with architectural changes is fine, it's normal, it happens everywhere. I don't have a problem with it. Only the replacement should be comparable in licence. Which this one isn't.

Not sure how you could perform the whole "extinguish" step without replacing any OSS/free/copyleft license with a closed-source version of it. "Extinguish" with OSS components would just be "embrace" or "extend", both of which Microsoft has already completed, so time to move on to the next step.


What does an IDE have to do with a software framework? Besides Java and eclipse, what other frameworks provide an open source IDE?


A programming language is defined by its attributes. Some measure speed, beauty, library reach but most modern language need productivity as a key attribute. There C# has its strength. And productivity includes debuggers, intellisense, etc. It requires a non traditional compiler etc. There is a powerful video of Anders Hejlsberg explaining this. And that guy knows about it.


If they want to unify and not just have more control over the ecosystem, why not unify them over OmniSharp or other open LSP?


I don't think it is to unify. I wouldn't be surprised if it would be another revenue source. People may prefer the interface of VS Code, but prefer the backend tools in VS. Microsoft could end up selling plugins/add-ons/whatever for VS Code.


That ship has sailed. Which programming language in the top 20 is commercial regards revenue from compiler, Debugger and nowadays basic LSP stuff like IntelliSense, code inspection etc.

The only commercial aspect is productivity like IntelliCode, IntelliTrace, GitHub AutoPilot and friends. For that you pay JetBrains, Microsoft, GitLab etc. There they will make money.


probably because the plan is to mix it with their ML code generating tools


> host must be open source to control what is happening.

Open source does not mean that there is any control with other entities than Microsoft. We can see what is happening, but it is up the the Microsoft to decide what code is merged and so on.


Which is "source open". But we also need "open source" (which includes and OSI license), so we can package independent of Microsoft. There the critic about closing their ecosystem comes from.


I have a pull request out right now for an open source project that hasn't been merged because I'm not in control of it.



These things almost never are, and the purists risk a purist death spiral.

It reminds me of the closed source drivers debate.

Someone has a proprietary component they want to incorporate into an open source system.

The purists demand they open source that proprietary software if they want it integrated into the open source.

The developer wants a compromise, but the purists won't allow it, so the developer is left to pick up their ball and go home.

And it rarely ends with the developer open sourcing their proprietary system; they often just shrug and leave, which leaves the open source system behind on tech compared to closed source and then proprietary software truly eats the world.


> The purists demand they open source that proprietary software if they want it integrated into the open source.

...and as a result we got GPLv2, GPLv3, open Intel, AMD and Broadcom drivers. Lastly Paragon donated NTFS source code to kernel tree (...and probably many smaller examples I've forgot).

> The developer wants a compromise, but the purists won't allow it, so the developer is left to pick up their ball and go home.

Because purists don't care about the developer, they care about the user. MIT/permissive licenses are for developer freedom, but xGPL and other strong copyleft licenses are for users' freedom.

As a developer, I contribute to projects licensed permissively, but I license all my code with GPL, because I care about the user who's gonna use and explore it, and I don't want my handful of users to be locked out of developments.

> And it rarely ends with the developer open sourcing their proprietary system; they often just shrug and leave...

Again we have Intel, AMD/ATI, Broadcom, Logitech, Paragon software and others.


>MIT/permissive licenses are for developer freedom, but xGPL and other strong copyleft licenses are for users' freedom.

That's a bit to simple, being a user of FreeBSD i just want opensource, i would never use a FreeBSD-fork that is no open anymore, so i have even more freedom as a dev and a user.

>Again we have Intel, AMD/ATI,

The Intel driver is BSD and ATI is MIT, and i think it's absolutely logical for those two to take that license's, and not GPL.

But please don't get me wrong, GPL2 is a great license.


I think that the point here is that as a user, with MIT you may not have a choice. Of course, you would never choose a FreeBSD fork that isn't open. But if you buy a TV running a closed fork of FreeBSD you might never even find out. In that case, it was great for the developer: they were able to get a great OS for free. However, it was not great for the user: they get a closed OS that they can't patch, upgrade, downgrade, or change in any way that the developer doesn't approve of.


Ok look, i have that TV that run's Linux, they even send me a "CD" with all the source-code of linux/gnu of it, BUT there is that highly proprietary module loaded into the kernel, firmware and so on, so patching my TV is as easy as re-engineering a whole closed-source system.

In theory the idea is great, in reality it makes nearly no difference.


> MIT/permissive licenses are for developer freedom, but xGPL and other strong copyleft licenses are for users' freedom.

GPLv3 also provides plenty of protection for developers unlike other licenses, especially around patents.

Also, all developers are users of development tools and libraries.


Yes. All developers are users of the said tools, applications and libraries, but the reverse is not true. i.e. not all users are developers.

So, while I see this is a clarification, I don't think what I've said is blatantly wrong.


> I don't think what I've said is blatantly wrong.

Nobody accused you to do so. I wrote "also" in both sentences to add nuance to what you wrote and finesse it.


Sorry, my bad, honestly. I probably read it wrong, then. Didn't intend to sound too harsh, too.


What do you wish was done differently in the open source drivers debate exactly? We have closed nvidia drivers, they're shitty but they work, people who don't want closed drivers can avoid them, people who don't mind them can use them. It seems to have successfully pushed AMD to open-source their drivers, and now even pushed nvidia to make the in-kernel component of their drivers open-source.

Would you have wished that the Linux project should just have incorporated closed-source kernel modules into mainline? Who would that have helped?

Outside the GPU space, tonnes of companies are publishing their drivers' source code under the GPL. I don't think they would have if they didn't have to. Isn't this a good thing? As someone who works on embedded Linux systems for a living, I'm certainly very thankful that I don't have to deal with closed out-of-tree kernel modules.

Seems like the strategy has been extremely successful at achieving what it was meant to achieve. Whether those goals overlap with your personal ideals or not is a different story.


I've dealt in high-compute situations where the next-gen networking equipment required linux kernel shims. Always thought it sounded like a backdoor personally.


Microsoft is not releasing a partly open-source program, they're replacing an open-source {Python, C#} extension with a proprietary one that won't run on VS Codium or Arch Linux packages.


At the time of writing, the upvote:downvote ratio on the announcement issue is almost 1:20, so I'm initially skeptical about your implication that this is some kind of fringe part of the developer community.

To me it seems more likely to be a culture clash - one team is used to developing closed source tools that have been highly prized by the company in the past, and another team has had great success writing open source tools that are widely adopted.

My guess is that the adapter code project is currently within the former team's remit, leading to this situation -- but that's all complete conjecture on my behalf.


> Existing users will be able to choose between the open-source OmniSharp powered system that exists today, or the new “'LSP Tools Host” which will provide access to additional experiences.

If OmniSharp remains open-source, I think people can still add more features to it, right?

Do C# developers really use VSCode? I use IntelliJ (closed source) to write Java application because IDE provides far more features than an editor.


OmniSharp is not going away, but as a project it is significantly more limited in resources than the closed competitor.


(I just posted it on HN, the domain and website is not mine) I agree calling .NET closed platform because of the debugger and now LSP is over-dramatic simplification of the situation. However what else is it than Microsoft pushing a proprietary component into a thing which is currently open?

See the parallel thread about PyLance explains why it is a problem: https://news.ycombinator.com/item?id=31763107


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?


.NET was open sourced in 2016, that's 6 years ago. It looks like you were 1+ years fully within the ecosystem before any part of it was OSS, and now you're demanding new features they write get open sourced as well?

Reminds of that time they introduced WiFi on planes; it was a brand new thing, and they let folks on the flight use it for free - but of course being a new tech it broke down after about an hour. There was this guy on the flight making a big fuss about the WiFi stopping working, like truly upset and vocal about it. Dude, how are you owed something you didn't even know existed an hour ago?


I agree with this sentiment, but you forgot to credit Louis CK for the anecdote you borrowed.


He should steal material from less well-known comedians. That's what the pros do.


Ah, a connoisseur! :)


They replace an existing open source feature with a closed source one.

So that's totally different.


No they don't, they give you a choice between the existing open source solution and a new closed source one.


The problem with MVPs is that they are effectively Microsoft sponsored marketing outlets. I know a few of them personally and they are great people but damn have they drunk the kool-aid.


To a degree where they are pointless as a consumer but also pointless as an input gatherer.

MVP are pointless.


It's not only that debugger is closed-source - if you try to run non-MS provided build of VS Code, the .Net debugger would decline to start. That was very surprising, after installing VS Code on ubuntu from some default package.


is `dotnet watch` basically `git ls-files|entr dotnet build` ?

(entr is http://eradman.com/entrproject/ – like inotifywait but easier)


It may as well be. It can do some legit hot reload, but the set of scenarios where it works is so small it’s effectively useless.


Yea, the drama occurred when it was in preview, so we all thought it's going to have real hot-reload capability as we know from webdev.


No, it has a lot of bytecode level intelligence to surgically replace the parts of the program that need replaced (as I understand it). Your version just re-runs the project from scratch whenever a change occurs.


I think it also replaces the running code on the fly.


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?


When I use Rider I just fully accept that it's not open source. Same with the old Visual Studio.

VSCode on the other hand looks open source, they claim it's open source, the extension is open source, yet the most critical component is not. I would call this the new new Microsoft - we look like we love open source, we give you open source tools, but it's either not open actually (this) / will not work if you compile it yourself (VS Code and .NET debugger) / only works on Windows ("Multi-platform App UI", maybe Mac, I don't know)


In this case they didn't just plan, build, and release a feature in VS. They got all the way through the building and most of the QA for a feature in the core .net cli and decided to remove it, not for quality reasons, but because they wanted VS to have a feature others didn't. The work had been done and then they rushed through a PR to avoid community comment to remove the code.

If python removed a feature so a specific IDE could have it exclusively I think people would also be upset.


I feel like you are talking about dotnet watch thing which this post is not about.


You're right, I focused on one of the sub-links too much when I was replying to that. My bad, thanks


Because Microsoft claims they love open source, apparently they are not allowed to do anything closed source, ever.


Look, nobody complains about Visual Studio.

People get angry when suffocate existing tools with their free and "open source looking" alternatives. Ask Python devs if they think that their VSCode extension is open ... Even I thought it was open yesterday, turns out it's not and they pretty much removed support Jedi, the acutally open language server.


publicity and traction over competition by using the open-source label, then silently switching parts of the code out with closed source replacements, and for the most part, dropping any development or contribution to the pre-existing components, practically killing them off (in turn, preventing any floss forks of vscode from using said components, unless they make a commitment to maintain the security, API compatibility, etc, of those components)

for example, Sublime never did that, sublime was closed, and is closed, and will be closed.

They arn't trying to gain traction at the cost of lying in their advertising and labeling, they don't exclusively release closed licensed versions of their "open-source" product like MS does


The base edition of IntelliJ (and also the base edition of PyCharm) is open source: https://github.com/JetBrains/intellij-community


.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.


A problem of the .NET ecosystem is that there is no open source debugger for C#. The Microsoft-provided debugger has strict license terms that only allow it to be used in Visual Studio and Visual Studio Code.

JetBrains needed to write their own debugger for their cross-platform IDE Rider. Luckily they already knew a lot about .NET to do this and it turned out very well but it's still not the official debugger and also not open source.


How does the lack of an open-source debugger (which is wrong by the way, there are several projects on github), invalidate the fact that .NET is open-source?


So write your own? That’s kind of the whole point of an open system.


Did JetBrains open source their debugger?


No, they are equally "guilty". At least they don't brag how OSS friendly they are.

There is open source debugger from Samsung (https://github.com/Samsung/netcoredbg/), but it does not see much use.


> There is open source debugger from Samsung (https://github.com/Samsung/netcoredbg/), but it does not see much use.

If you want to debug C# from Emacs, it’s the only choice AFAIK.


To be fair: that is their sole income: dev tools.



and there is a VSCode extension that uses this instead of the MS debugger

https://open-vsx.org/extension/muhammad-sammy/csharp


Why do you care about the debugger not being open source?


you can use lldb that's open source


Are you sure about that? LLDB is primarily a native code debugger. For .NET you want to debug "managed" stack frames and variables.


Yes, you can debug .Net using LLDB if you use the open-source SOS extension: https://docs.microsoft.com/en-us/dotnet/core/diagnostics/sos....


You could however reasonably expect that core tools like debugger and LSP will be open too.


Maybe? These are just implementations, right? Others will still be able to build tools? JetBrains isn't pushed out by this, is it?

Java flight recorder, for example, wasn't always open source. While it's not ideal, I'm not sure the idea of closed source tools in an open language is all that unheard of.


Key tools of the platform not being open means the platform is either not open or not useable, take your pick.


This is like saying PCs aren't open because most people use Windows.


PCs have tons of closed source firmware and BIOS. So no, PCs aren't open!

Windows isn't open. But you could argue there are open alternatives to Windows.


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.


If it was closed I certainly wouldn’t choose it for something new.


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.


I can echo this, while doing its job most of the time, Omnisharp has been one of the least stable parts of my VS Code C# experience (the least stable as usual being anything relating to Unity ;) ).

Issues like runaway compiler threads, slow response times, OmniSharp frequently losing the mono-path and requires restart (this is some config issue and interaction with Unity, but could have been handled automatically).

It's sensible to improve the C# experience on VS Code, but not saying the way MS is doing it here is the best way.


Ah, no wonder I felt unproductive with C# on VSCode. I couldn't wrap my head around that it is now how you should write C# code with such bad intellisense n stuff.


A few years ago I spent a couple of months using C# w/ vscode. The experience was indeed harrowing.

Omnisharp would take forever to start up (always downloading a new Omnisharp binary on every restart for some reason?!), type checking was unresponsive to the point of being unusable, and the whole thing would freeze and stop working entirely every once in a while, requiring me to reload the IDE. I tried various versions of Omnisharp (stable/beta) across many C# projects and several vscode deployments on multiple machines and never got it to work well. I eventually decided Omnisharp would never improve and abandoned vscode because of how uniformly bad it was for C#.


I think VS Code was supposed to be a "gateway drug" to VS. It's not turning out that way. If they can't get the users to go full VS, they probably have an idea they can sell some of the backend stuff, but they can't right now since there is not a way to plug it in. OmniSharp is probably going to remain the default, but MS is betting a number of people will pony up for better(their) backends.


I believe it is more nuanced. They needed a web based technology for the future. And VS itself is a technology monster. Also LSPs took over.


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-trustable


I'd say that most corporate-backed platforms will have similar issues. The corporations simply have other interests than the community (next quarter profit + control / long term stability + independence). Only way to keep them from doing this is pushing back whenever they try. MS did that with Pylance, it went well and now they are trying again with C#


The thing is that I am not sure how to fight back if not by avoiding corporate tools completely, like they can always change policy by changing a CEO, then what? If you have a product you can just get the hit, what can you do?


> really think that microsoft is un-trustable

The only thing you can trust Microsoft on is their commitment to fuck over their customers and partners.


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.


They are free to offer their own proprietary VS Code extension, likely no one would have a problem with that. What is very objectionable is the way they are trying to destroy and replace the existing FOSS OmniSharp extension!


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.


I hope you do not touch anything from a big corporation like Go, Java, Swift or anything like that .

I can understand your sentiment, it is just time to embrace the the list of non free places need to be extended by many more companies and the FUD solely on Microsoft need to be extinguished.


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.


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.


Is MS contributing to Omnisharp or is it an independent open source project? They can still suck its Oxygen, as it will no longer be default C# lsp and MS version will have lot more investment.


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.


How are they going to extract more revenues with a proprietary Intellisense VS Code extension?

At best they're locking you in their ecosystem, but they don't profit from VS Code directly (emphasis on directly).


> but they don't profit from VS Code directly (emphasis on directly).

When they achieve enough lock-in, that'll likely change.


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?


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.


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.


>It's mainly .NET devs who get cleverly pushed to Azure and siloed away from anything non-Microsoft by Microsoft

I guess I'm different kind of .NET Dev because I cannot say how I'm pushed to Azure

You're talking about one of the deployment options avaliable from Visual Studio?

https://i.imgur.com/fbpJTLK.png

>siloed away from anything non-Microsoft by Microsoft

Yea, that's why is incredibly easy to use almost any database with Microsoft's EntityFramework

I will tell you that .NET Core working fine on Linux is what actually brought me to Linux world (renting servers for years)


I have also suspected that the big conflict here is between Visual Studio and Code. For sure, there is a free version of Visual Studio, but I would bet most for-profit businesses are paying for Visual Studio licenses. I could believe that there's a fear that Code will cannibalize Visual Studio sales.

Is this fear valid? I'm not so sure, the developers that I've worked with that used Visual Studio were not interested in alternatives. But I can easily imagine a new developer choosing to stick with Code 'cause that's what they've been using for their other projects instead of downloading Visual Studio.


Personally, my life as .NET developer has always been great since .NET Framework 2.0. I tried multiple other ecosystems and the pasture in .NET has always been greener for my purposes. There are no better refactoring + debugging tools anywhere.


I'm somewhat confused what's going on here.


Microsoft is starting to port VS studio (IntelliSense) which is proprietary to VS code which is opensource.

Current C# plugin (Omnisharp) is opensource, so they announce that it will be replaced by a closed source selector that let you choose the opensource or the proprietary plugin with the proprietary as default.

It's Embrace, Extend, Extinguish just in front of our eyes, so opensource people are pissed.


Ah come on! It's more complicated than that.

Most of the heavy lifting in OmniSharp is done by Roslyn [0]. Roslyn is the open source C# compiler and code analysis library maintained by MS. You cannot overstate how much effort has gone into Roslyn, and how much money MS has invested to make it work. OmniSharp is essentially a wrapper[1] around Roslyn (before Roslyn it was Mono), and while the OmniSharp team did a nice job developing a nice intellisense UX around it all, it is not like MS is taking it all away from them. Incidentally, it is almost certain that new intellisense plugin by MS will also be built on top of Roslyn.

[0] https://github.com/dotnet/roslyn [1] https://github.com/OmniSharp/omnisharp-vscode#the-c-extensio...


Worth pointing out that VS Code is not really open source.

The builds are proprietary.

It’s based on an open source core but the builds can include anything that Microsoft thinks will be commercially useful to it.


There is a libre version of VS Code but it is missing features like access to the official extension marketplace.

https://github.com/VSCodium/vscodium


And all of Microsoft's proprietary extensions look for official proprietary VS Code and refuse to run on open-source builds lacking Microsoft's private key.


It works reasonably well though, most extensions are in the libre open-vsx.org gallery. Only problem for me is the missing .NET debugger...


there is a C# extension that uses the open source Samsung debugger

https://open-vsx.org/extension/muhammad-sammy/csharp


I'm still confused too. How exactly does this "LSP Tools Host" fit into the larger platform of tools? For example, how does it affect me as an Emacs user?


Now that .NET is easy to run on non-Windows platforms, Microsoft is likely trying to figure out what's the business case.

By keeping the tools to them, Microsoft can try to offer the best developer experience. Hopefully (from Microsoft point of view) this pushes developers to use services from their ecosystem (Github, Azure).

It's likely that in the future more developers are actually doing the development remotely. Not checking out the code to local machine, but instead using IDE which communicates with the server component. Microsoft has Github Code Spaces [1], JetBrains has Fleet[2]

[1] https://github.com/features/codespaces [2] https://www.jetbrains.com/fleet/


What’s frustrating is Visual Studio already has advantages over VS Code: the WinForms designers, XAML designers for WPF and WinUI.

Microsoft don’t need to turn the VS Code C# plugin proprietary, to give Visual Studio an edge.


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.


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.


It's true but the same thing is true for almost every open source project. Instead of Microsoft it's usually a single guy or perhaps a duo who has the ultimate say. Everyone else's word is just a suggestion. It's a rarity for an open source project to work under some sort of democracy where random developers have a say.


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.


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).


> Why participate in an ecosystem where the biggest corporate overlord is trying to reduce your ability to _do things_.

For free.

If you pay, they’ll help you do more things.

That’s unfortunately the motivation a for-profit corporation has.


How is Microsoft reducing your ability? No functionality got behind a paywall. On contrary, the VS Code plugin will actually get much better because of this effort - you can read the authors of OmniSharp clearly stating this[0], links are in the comments above. Microsoft spends a lot of money to bring you free experiences. Then it has the business on top of that where it offers better experience. Nothing different to what JetBrains does in this regard. Except that this fuels how you are able to fund the free experience in the first place.

[0] https://github.com/omnisharp/omnisharp-vscode/issues/5276#is...


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.


Any one who believes in Microsoft or Apple is a fool.


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.


> Well, I don't really think this would be considered truly evil except by the likes of Stallman

Stallman would consider anything remotely closed source like Chrome unethical.

He is not that nuanced.


Is Microsoft un-open-sourcing or un-free-softwaring existing code?


Nope. They're focusing their effort on merging the code bases needed to support VS and VSCode's C#.


No, they will offer a closed-source sibling product.


And most likely deprecate support for the open Language server, as they did with Pylance/Jedi...


What do you mean by "deprecate support"? Do you mean stop developing a project that's open source / free software?


They did remove support for Jedi language server in their Python extension. Sure, you can fork it, but nobody will actually use it, since their extension is also free and also looks open. And I didn't find any extension which does that :/


> They did remove support for Jedi language server in their Python extension.

No, they just switched the default to Pylance. Jedi is still a supported option.


Not yet. Remember, lobotomized frogs prefer slow cooking.

Anyway. MSFT is adding closed source version of Omnislash in parallel to the open source one, and offering a choice which to pick.

Give it a few years. They will sunset the OSS, because of lack of interest. Maybe they will even slap on a price.


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.


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.


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.


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.


He literally built his own bed and then choses to sell the bed in the hope the other bed would be like his own. Now he warns about the attached closet is the problem


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.


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.


C++ is doing that a bit too much.


Rust instead


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.


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 standard


The problem is, this kind of practice works against MS in the long run.


I think that run is going to be longer than my life. In 30+ years, I've yet to see this type of thing bite them hard enough to really hurt.


Didn't they hire the guy that made omnisharp anyway?


Yes, that was Embrace, we're already past Extend and now entered Extinguish.


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".



I'm just confused why people looking for open platforms are going for .NET at all


Embrace. Extend. Extinguish.


It's called Embrace, Extend, Extinguish. You are in the extend phase.


I am waiting for M$ to do the same with VS Code.

I will definitely enjoy this day.


Debugging? Intellisense? Training-wheels of you youth ;)


As a Linux loving .NET developer, this is very sad to see.

Goddamit MS.


What was the outcome of the hot reload stuff?


No one could have imagined this...


Wouldn't happen if Vscode was GPL. Which of course MS would never have done either, of course.


Oh, .NET is still a thing?

In 2022?

Cool.


Which environment/lang in your opinion outperforms/would be better choice in corporate / small companies or average web dev setting?


I'd wager there is a large overlap between Open Source maximalists and Communists


yesterday it was the debugger, then the hotreload, now it's the language server

people are still blind


Accepting the truth is harder than learning a new language/ecosystem. Some people love .NET/C# so much that they're willing to pay a hefty premium to stick with it (which is perfectly fine)

But some of those people are also coming out and doing mental gymnastics to defend this decision as something other than what is actually is: an opportunistic price hike (and likely, the first of many)


[flagged]


Why does Microsoft get labeled like this while Apple, one of the most brutally closed off companies, is loved by developers?

Microsoft is very responsive on GitHub issues I have filed, and I have benefited a lot from their open source offerings, namely VS Code and F#.


Apple is upfront with what's going on. You may not like it, but they are "honest" about it (with the disclaimer that corporations cannot be honest etc.).

It, however, leaves a bad taste if you are running an open-source show, with the marketing to match but it becomes clear and clear that it's mostly for show.

Perhaps one can make the same argument about Apple and privacy (that it's just for show) but Apple somehow could make it one of their value proposition, while IMHO Microsoft failed to do that with their open-source expansion. Always felt like a half-hearted attempt.


I think Apple catches a lot of flak here for their practices, but they have a very strong, vocal fanboy community that MS has never had, and probably can never hope to have.

Many Apple (especially iOS) developers seem to be just generally frustrated about the platform, but suck it up and deal with it because they have to if they want to be in the App Store.

Additionally, I don't think Apple has been anywhere near as fervent as Microsoft about embracing open source. Sure, Darwin (a fairly tiny part of macOS/iOS) is open source, but Apple seems to only grudgingly embrace and use open source components when it suits their purposes. Consider how they've been shipping a super-old version of bash because they're paranoid about GPLv3, how they've been heavily involved in LLVM and clang (at least in part for licensing reasons), and how they barely mention anymore that WebKit is based on KHTML. And it's a safe bet that if KHTML hadn't been more permissively-licensed, Apple would have happily kept WebKit closed.


Apple is shit too, that's just a separate conversation.


While Swift might be open source - to effectively do something with it you still need to buy a Macbook or even iPhone, which as we know are expensive.

To release any application in Apple ecosystem you have to pay for developer account each year. You might play around with stuff - but I don't believe anyone would be developing on their platform just for fun.

Microsoft gives stuff away for free - loads of stuff - there is much more people who will play/try out/start some projects with free stuff. But then the more people the easier is to see ones that are not happy and would like more. Then this mass of people is active on multiple forums, not only on .NET dev subreddits.


If only apple products were just expensive. For certain kinds of people, dev-tools/environment and OS are exceedingly frustrating to work with. I don't get why developers put up with it, well, other than the obvious market access.


I think it mostly boils down to that devs in Apple ecosystem get paid more and they can afford that stuff.

Then as they see nice income stream - some inconvenience is written off as cost of doing business.

Then it is just not that many of them.


Loved by developers how? Because they own Macbooks?


Basically yeah - you can show off that you are working in rich company (so by association you know who is making that sweet $$$$) because you have a new Macbook for dev work.


That's not really love; that's just recognizing that a particular consumer product is a status symbol, and buying it to hold that status.


Because people are still living in the 90s and even the best developers just love to gobble up Apple's propaganda bullshit.


Apple is absolutely awful.

That doesn't make Microsoft's double-talk okay, Apple never pretended to :heart: opensource.


>Apple never pretended to :heart: opensource.

But they did. They claimed part of Mac OS, Darwin, is open source. Like Google like to brag about Android being Open Source even if you have to put a ton of proprietary software on top of the open source parts to make it usable.


Claiming that part of Darwin is opensource, which it was, is not quite the same thing as claiming to love opensource, and yet slowly close it up once you have mindshare like with VSCode.

Apple didn't take ownership and then start closing CUPS, but they have also never pretended to be a friend of OpenSouce. They haven't produced anything opensource since then. There have been a couple of projects, like their rebranding of KHTML that suited their purposes but they never donated time or money back, or even pretended to help upstream.

If you look at the Asahi Linux on M processors, Apple don't hinder and may have arguably done things in a way to not block them but they certainly have not helped or even claimed that it was a good thing.


> Apple didn't take ownership and then start closing CUPS, but they have also never pretended to be a friend of OpenSouce. They haven't produced anything opensource since then.

Two counter-examples:

They open sourced Swift in 2015 (https://en.wikipedia.org/wiki/Swift_(programming_language)#H...), and Swift-DocC in 2021 (https://www.swift.org/blog/swift-docc/)

Apple bought CUPS in 2007 (https://en.wikipedia.org/wiki/CUPS#History)


I'm not sure how they are counterpoints. Who would use a programming language that wasn't open?

Except dot net devs. Which is the point.

CUPS was critical infrastructure for Apple, so they bought it. Since it is GPL they couldn't close it, hence they abandoned it.

Apple are not your friend, but they never claimed to be, you just might have an overlapping interest, Microsoft hold big "We Heart Linux" events.


> Who would use a programming language that wasn't open?

The vast majority of iOS developers. Swift 1.0 wasn’t open source, and IIRC when it was announced there wasn’t even a promise that it would be open source. I think Chris Lattner did signal they were willing to seriously consider it some time in the future; that was all.

There is a lot of money to be made in iOS, so people will use whatever Apple forces them to use, whether it’s open source or not. If some would leave money on the table on ideological grounds, all the better for everyone else.


The claim was “They haven't produced anything opensource since then”.

I think I clearly showed they have.


They did kind of head that way in the early days of OSX, to try to bootstrap a development community by being close enough to Linux to make it easy enough to switch. I'd probably characterise them as having an abusive relationship with Open source.


This part of the macOS developer community bootstrapped itself. Apple at the time was trying to sell Java WebObjects and Carbon/Cocoa in public.

The proximity with Linux was an accident. NeXT is from the late 80s, pre Linux, and NeXT was the baggage OS X had to work with. They didn't strip out the Unix parts, but also didn't widely proclaim it was "close to Linux". It was mostly the developer community touting it as an advantage of macOS, with Apple later admitting "yeah yeah that's also cool" and later shipping Python and Ruby alongside Perl just for completion.

Even when Apple clearly tried to help Homebrew by offering a Xcode-less toolchain there was not even a peep about the purpose of "Command Line Tools". It took them years to acknowledge it existed.

Also, like the sibling response said, Linux only started being as widely used later than OS X.


Interesting; I only had the perspective of being a Linux enthusiast at that time, and that's what it seemed like, but it's easy to forget that our numbers were quite small back then.


This history doesn’t make sense - the early days of OSX predate widespread adoption of Linux. When OSX was released Linux 2.4 was just released and that was just the beginning of Linux becoming something interesting commercially in the data center (at the time Linux was more just slowly eroding incumbent commercial Unix - which is why Microsoft was concerned about it, since they had spent the 90s relying on commercial Unix vendors to fuck each other up) - there just wasn’t some huge commercial Linux community that Apple was trying to tap into - especially for a desktop operating system. The Darwin userland is BSD based after all. And while Apple made do with gcc, they’ve clearly never been too gung ho to get wrapped up with anything GPL related.

If anything Apple offered Solaris, Irix refugees a viable desktop transition.


I don't think there is that much devs doing actual work in Apple ecosystem - they use Macbooks but not Swift or Objective-C and no one is using XCode for their day 2 day development.

Just check StackOverflow 2021 survey - Swift is like 5%


According to him anyone anyone complaining is a generation that want everything for free.

https://twitter.com/xoofx/status/1537355137131466754


>.NET has been as open as a black box in a grey box. Expecting them to change is futile.

Yea, it's "just" runtime and giant compiler infrastructure that are open?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: