.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.
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.
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].
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.
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.
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.
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?
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 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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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.
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 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
> 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".
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.
"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.
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.
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.
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?
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.
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.
"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. :)
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
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.
> 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 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"
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.
"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.
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.
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
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.
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 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].
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.
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.
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.
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".
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.
> 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.
"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.
> 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?
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.
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.
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.
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:
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?
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.
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.
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.
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.
> 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.
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.
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.
> 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.
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.
> 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.
> 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.
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.
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...
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.
> 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.
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.)
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.
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...).
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.
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.
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.
> 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?
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?
> 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.
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).
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.
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).
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.
> 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.
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.
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.
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.
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.
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.
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.
> 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 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.
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.
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.
> 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.
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.
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.
(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?
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?
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.
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.
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 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.
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
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?
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.
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.
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.
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 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?
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.
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.
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.
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.
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.
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.
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]
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.
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).
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.
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.
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.
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 :/
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.
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.
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.
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
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)
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.
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.
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.
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.
> 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.
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%
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.