Hacker News new | past | comments | ask | show | jobs | submit login
Microsoft .NET Devs Anonymously Responds to Microsoft .NET Leadership (pastebin.com)
151 points by ghuntley 87 days ago | hide | past | favorite | 53 comments

I just had an old acquaintance on the Azure team try to get me to apply at Microsoft.

I told him I can’t, because all the teams at Microsoft I’d want to work (particularly Windows) are suffering from poor management with user- and human-hostile values. I can’t work at a company that goes out of its way to make the world worse for people through software.

I gave a long list of examples of user hostile work coming out of Windows, but suggested I thought maybe DevDiv was an exception. A lot of the bad things in the world of windows dev are a direct result of the DevDiv v Windows feud that’s been going on since SteveSi was leading.

Oops. I was wrong. It turns out apparently all of Microsoft is driven by leadership that wants to make the world a worse place for human beings. Ads, sneaky non-optional telemetry, ripping features out of OSS code, and then lying about all of the above are management choices driven by the top.

I remember when they used to try to recruit for user obsession. That was a long time ago. It’s a shame, because their business model, unlike some other companies, is not fundamentally dependent on screwing users. This is all a Choice in the most profound sense, and an unnecessary choice at that.

To be honest out of the big tech companies which one is not there to "screw users" as you put it? Especially the ones that depend on ad revenue.

- Facebook: Their users are their product. There's enough evidence to show how they "use" their users daily in news articles, leaks, etc. Recently if I recall there was a leak about them knowing the harm on children their products cause but internal culture stopping them from doing anything on that front.

- Google: The amount of data they use to target users. Users again are the product. They drop platforms/technologies like the drop of a hat.

- Apple: Heard some stories about culture there as well that aren't crash hot. Is Swift/Objective C even OSS? Very proprietory but their brand seems to give them the cool factor? Not sure.

- Amazon: How they treat their non-tech employees, etc.

- etc etc etc.

They are all companies and in the end of the day profit matters once they get to a certain size. They all have their good and bad sides. Microsoft seems to have an "uncool" image here IMO probably originating from their dominance in a previous tech age but I can't see the difference now with other big tech companies that hold this level of market power. In some ways they are better - they don't need my whole life story and invade my privacy to make money if you care about that sort of thing. They also have pushed some good technology as well - the new .NET Core platform is impressive and in my testing good performance, decent languages originating some good ideas (as do other langs), still OSS with less confusion than for example all those JDK's on offer. There's good and bad parts in all companies, and tech stacks.

Can it be better? Yes. But that applies to most tech stacks, cultures and companies as well.

I disagree with some of that.

Amazon pays very well. I hear good things from workers through the grapevine, it’s just that doesn’t make a good tech story. They let me live car free and they make a whole world of options available to consumers who otherwise might not have access. They pay quite well, enough to make #FightFor15 look antiquated. They are relentless in serving customers and in 10+ years as a customer they have gotten better at serving me every year, if not every month. People complain about monopolization, but they are still smaller than Walmart. They achieve dominance in online retail by offering better service, period. There’s no reason small business can’t do a better job serving their communities, but they often just choose to not be competitive in offering the best possible service, which I find offensive. Even when I was pushing carts and bagging groceries, or cooking paninis for college students, I always went out of my way to provide great service and not keep people waiting. I guess you could say I’m customer obsessed.

Apple makes the fastest, most reliable computing devices in my life. They produce devices with staying power, so I can resell them or give them to family when I want to upgrade, which is great for reducing waste. They single-handedly invented the category of true wireless headphones, and brought ANC to them; living and walking near a freeway, this improves my life substantially literally every day. The CSAM scanning was annoying, but otherwise they’ve been good to me. They’re also advancing the state of the art with their CPUs and making the industry competitive again, which is good for everyone, including hopefully someday android users. They make some bad choices, but at maybe 1/10 the rate that Microsoft does for similar products.

Google is somewhat neutral. I’d like the option to buy my way out of ads, but otherwise I think the service offered by their Search and Maps offerings make up for some other issues. They seem to be held back by their bad management structure, more than being specifically directed to be shitty to customers. The nonsense with Windows Phone and blocking PiP YouTube on iOS are exceptions. Overall I still find them less offensive than most, but I’m not exactly enamored. If they got rid of that awful Google Fi ad, they could maybe be considered benevolent overall.

Facebook is in a league of its own. Truly awful and explicitly acting maliciously at a corporate level, which is inexcusable. Almost Exxon suppressing climate change research level of malice towards humanity. Complicit in genocide level bad.

I might just be particularly bitter about Microsoft as an ex-fanboy of Windows. A product they have somehow managed to make worse than Linux desktop on some new devices. Seeing a team invest actual engineering hours into turning the platform that debuted the Trusted Computing Initiative into a privacy-hostile, ad-pushing tool to push Edge adoption is just really infuriating. And unnecessary.

Agreement or disagreement - my point is each company does both good and bad. What people choose to see is somewhat colored by your previous position/bias just like everyone else. Will be the devil's advocate here.

Microsoft advanced personal computing for the majority especially outside the US where Apple pretty much was non-existent for a long time. I would argue through its life Microsoft has advanced personal computing more than most of the other tech firms. Growing up every office, every PC, every time I tried to code mostly it was on an IBM-compatible machine. Apple for a very long time wasn't very competitive IMO from a product perspective, and I think recent developments are overhyped compared to some of the big innovations of the 80's, 90's (i.e. Windows 95 was big, moving from Windows XP to Mac OS is a lot less so IMO). In fact on an Apple machine most people are just doing what they did previously on their Windows machines - just needing more power to do so (surfing the internet, office productivity, etc).

I'm glad that Apple are trying another CPU, just like I'm glad AMD do and Intel did in the long distant past. Competitiveness, not culture is what drives companies to do this. But w.r.t development/coding they aren't the leader, and their walled garden doesn't personally make their dev tech stack endearing. I don't agree they are the fastest all the time (even with the M1), and I personally don't like MacOS despite being forced to use it for work daily for many years. I see the M1 somewhat as a TSMC victory and their 5nm process + Apple wanting total control to differentiate/move away from a competitive PC market to a monopoly like one. At least Microsoft wanted/encouraged PC competition and didn't charge that much for Windows on top even back in the 90's/2000's.

For a long time you could get PC's that were faster for cheaper than Mac's. While Apple's approach to vertical integration has an advantage short term w.r.t efficiency its definitely allows an "embrace and extinguish" strategy - long term having hardware as interoperable commodity (CPU, GPU, etc) is better for competitive priced computing IMO. As a buyer more suppliers means a more competitive market - vertical integration is something most companies would love to pull off as it product differentiates and creates economic margins. Apple is the worst on this aspect. They aren't an open platform and the only thing capping their price and forcing them to improve is because they are still the underdog market share wise and they want to beat the PC market. Not a fan of the Apple ecosystem lock in but that's just me, its worse than Android/Google.

Obviously they all have bad points but that's my point. All these companies have their good and bad sides. I just feel the hate Microsoft gets a lot more hate vs other tech companies. Especially given recent changes, is a bit over the top.

> It turns out apparently all of Microsoft is driven by leadership that wants to make the world a worse place for human beings.

The real problem with our modern capitalist utopia is that ALL companies, once they reach a certain size and percentage of the market, take the Microsoft's-of-the-2000's approach, buy up or squash anything that looks even close to competing, grease the wheels with the regulators, plant stories in the media, and implement changes to the products that curtail why people were excited about them to begin with.

> ...unlike some other companies...

Which ones?

Specifically Facebook comes to mind. They claim they need to use algorithms for maximum engagement, which is probably true.

I still think they would be fine if they just made the news feed chronological (I remember when it more or less worked that way) and let users make their own choices about what to see. I use Twitter that way, where at least they give the option. Next door also has that option, but they automatically turn it off after (iirc) 60 days.

Of course if they weren’t just promoting things that made people upset, engagement would drop and they would be less fantastically profitable. But their users would be healthier and probably happier. I think it is valid for companies to choose to make $5 billion in profit a year over $10 billion, if that’s the cost of respecting human dignity and promoting human thriving. I get that that’s a controversial opinion.

> So that we don't give away features to Rider?

Rider's a really good .NET IDE - it's my preference by far over VS Code, and over VS as well - but it's exactly the kind of thing an 'open' .NET ecosystem should be embracing.

If this is the MS management mindset (and I don't find it that hard to believe), then .NET is never going to be truly open.

edit: the bugginess of OmniSharp + VS Code for .NET development doesn't work to push me towards VS. VS is okay for the most part on Windows, much worse on Mac and not an option at all on Linux. It 100% pushed me away from VS Code and towards JetBrains - now I use Rider, PyCharm, and PHPStorm instead of VS Code.

Microsoft could make a fast and responsive version of visual studio, then we would probably use it. But right now rider is mostly better and much cheaper.

Even on high spec machines, visual studio feels so clunky and slow. Haven't used Rider but Intellij for Java development is a dream compared to visual studio for .NET development

It's really noticeable, and a lot worse than it used to be. My dev desktop is a 5800X with 64G of RAM and a nice samsung m.2 SSD. VS feels slow on it. Rider doesn't. VS Code doesn't.

Especially for large solutions (in terms of .NET development) , VS Code seems much slower than Rider.

Input latency

That’s the thing that makes Visual Studio so annoying. Even typing is slow. A lot of other stuff too.

I use Rider in a Windows VM and it is night and day compared to VS 2019 in regard to speed.

How can it be much cheaper when some Windows SDKs require VS anyway.

If you don't need anything that is VS dependent, it works.

eg Most .net code I write is for .net core and will eventually run on Linux. Rider is great for this. Cheaper than a version of VS that actually has the features you'd want, faster, works cross-platform.

The build tools are available for free, in their entirety, I thought. What’s missing from those? (Besides the VS program itself)

Everything else that comes on Professional and Enterprise VS for architecture, SDKs for SQL Server, SharePoint, Dynamic, debugging tools for IIS integration, mixed mode debugging with C++/CLI, COM, UWP, regular C++, code testing with coverage on the background, Assembly view for JIT code,.....

I don’t know which SDKs require visual studio, but if you don’t use them, you don’t need it ;)

I think Visual Studio is still miles ahead of Rider in terms of debugging experience.

Also, I don't think JetBrains is not that active in developing C# the language.

Could you elaborate on what VS does better? I haven't used the former in detail for C#.

Hm, it looks like I might need to reevaluate that. Edit-and-continue and the analogue of Set next statement have been implemented some time in 2019. Not sure if they are on par with VS though.

Crucial for me right now is mixed-mode debugging support where you can do C++ and .NET in one app, but for most people it is irrelevant. Once this project is done, might try Rider again.

Has anyone here tried to use rider for WPF/WinForms development? Last time I tried it out there was effectively no support for it since all it gave you was a text editor.

I've done some substantial refactoring to a WPF app via Rider. I could at least consistently get a static -preview- of my WPF component/layout but the drag/drop, IDK how to even get it to work. However, at least for WPF the editor was snappy enough (compared to the way VS XAML editor behaves anyway) that I've gotten used to just writing XAML by hand anyway.

I've used it. Yes, it has a GUI editor for those.

VS Code is totally available on linux. In fact, it even works on my raspberry pi 4 with an ARM processor

- Mirrored at http://gist.github.com/ghuntley/3bebb260c8b4411791ff8f880ca6....

- Sources within .NET team tell me that the pastebin is real.

Same here

Feels like Microsoft knows Visual Studio's days are numbered and are just trying to drag their feel as much as possible.

For certain legacy things there will always be a "Visual Studio." Nobody has any interest in building a new environment for Windows Desktop application development for example.

But for web, VSCode eats VS's lunch. It is more flexible, higher performance, with a better design. So when they force Asp.net/MVC core developers to use the inferior Windows only tool, they're just shooting themselves in the foot as far as .Net adoption goes.

MSDN as a concept can stay around, but they have to start yesterday changing the thinking around it and instead of it being a "Visual Studio + Benefits" it is "Benefits + Services + Legacy Visual Studio."

MSDN could include a half dozen premium VSCode extensions today, but they're stuck in this 1990s product thinking modality. Microsoft went "services, services, services" back in 2007, except the Developer Division and that has to change now.

If they were service/benefit focused instead of product, they wouldn't even care about Rider existing and their goal would be to get "Rider + MSDN" subs because the value add would be high enough to justify it. Or heck release premium Rider extensions (identical to VSCode) that require MSDN (and or premium CLI-based functionality).

I get the impression that virtually everyone in Developer Division understands this - except senior leadership.

Until I heard Visual Studio 2022 was coming out recently, I literally thought Microsoft had ceded the ecosystem in 2019. It's very surprising to hear it's the total opposite. I've been doing C# since .NET 1.0 and I can't imagine why anyone would use VS over Rider. Won't they just have to buy Resharper anyway?

> Won't they just have to buy Resharper anyway?

ReSharper's edge has mostly disappeared, and between that and the ongoing performance problems in medium-large solutions you're better off either using Rider or Visual Studio 22 + Intellicode + Roslynator.

With Rider you're obviously getting all of R# with no performance issues, and with the VS22 + Intellicode + Roslynator you're getting like 85% of R# with much better performance characteristics.

As someone who uses VS at work primarily for C# API work (donetcore), would you suggest giving VSCode a try?

I ask because I have heard really good things about it from our UI developers but I have not really heard much for or against it when it come to C# development.

I've tried to use it for C# work, and while it is usable, you're still getting a subpar experience since not everything Visual Studio can do is offered by the dotnet CLI.

I was arguing above for that to change, I wasn't suggesting that is the reality today. VSCode is great for CSS/JS/HTML/etc though, but unfortunately C#/Dotnet still remains VS.

Good to know. Thank you very much for the response. I'll probably do some more research on VSCode in 6 months or so and see if this has changed at all.

I switched to vscode for .net core development a couple of months ago. It took about a week to work out what cli commands replaced the visual studio gui.

Now my main dev box is running debian, I don't miss visual studio at all and am more productive overall.

>Nobody has any interest in building a new environment for Windows Desktop application development for example.

Rider has support for Avalonia UI and its designer, FYI. So there's definitely some interest, not sure how much.

Honestly, this is just Microsoft being Microsoft. I was never convinced that their F/OSS strategy ("MS <3 Linux") was anything other than either a move for power, or to promote lock-in – we now have it from the horse's mouth: they want both.

The personification of companies is the problem. Microsoft is not a person making decisions for good or evil -- it's a collection of thousands of people all with different ideas and different abilities to execute on them.

What's on display right now is how this group of people are collectively making decisions. I'm not sure, given the swift turn around, that this is bad news for OSS at Microsoft.

A "group of people ... collectively making decisions" doesn't help make sense of anything. A company is itself a group collectively making decisions. Where you draw the "group" line is arbitrary unless you understand the decision-making structure. From the outside you can only make assumptions about which teams or management layers define the "the group."

I also used to believe that personifying companies was silly, but now that I've worked closely with the C-suites of various companies, I've come to understand that companies do have unique cultures and company culture matters. It's the culture that guides decision-making--does customer service and long-term investment matter more than next quarter's goals? Do we want to do thing that's most profitable in the short term because we're cavalier about staying dominant in the long run or are we cautiously managed?

As others have pointed out, MSFT's execs grew up in the Gates-Ballmer culture. MSFT's current actions are consistent with its past actions and attitudes under that regime. I think it's therefore totally legitimate for the parent poster to be concerned about Microsoft, and express that concern by personifying the entity.

This swift reversal is consistent with Microsoft's past actions and attitudes? I don't feel that's the case.

These days we seem to be unprecedented access to the internal workings of companies; from exactly which execs are making decisions to the opinions of individual managers and developers. It used to be that you'd have to talk about Microsoft as a monolith because this level of information wasn't available.

But I don't think saying "this is just Microsoft being Microsoft" is a very useful or interesting comment. If anything, this is just the start of defining what Microsoft will be in the future. We haven't really seen the conclusion yet and it's definitely not assured that things are going regress to the 90s.

It's clear the game is to prolong the lifespan of Visual Studio for as long as is feasible.

I wouldn't have any problems with this if Microsoft actually bothered to make it a good experience. Visual studio should start up in <1 second and not do ridiculous bullshit like change layout every time you start/stop the debugger. Also, woe be unto any developer who decides to build a large, complex Blazor app. Razor component editing in VS2022 is a stoichiometrically-ideal dumpster fire. Select that text in a way the IDE didn't prefer? Prepare for 30s of locked-up circus. It's a Faustian bargain to be sure - Will it come back quicker than if I had just killed the VS process and reopened all my windows? Who knows. I guess I'll wait a few more seconds...

I am really tired of the shitty engineering and lack of focus on the developer ergonomics. It is clear more time & energy went into adding Azure trash into VS than making it smoother to work with. I appreciate all the survey prompts in VS - It makes it look like you are giving a shit, but it is pretty clear that those surveymonkies effectively wind up in the zoo.

My proposal to Microsoft is this: Rewrite the whole thing from zero. Call it "Visual Studio Lite" or whatever. I'll actually pay you for this - if you spend real engineering hours on it and make it the smoothest experience available on desktop. There is no reason Overwatch should be able to run better than my IDE, especially when a trillion-dollar company is involved and is also responsible for the entire operating system upon which these things are happening. The % of features in VS2022 that I need for .NET development today is something like 5-10%. Get rid of the rest for those of us not supporting VB6, et. al.

If the latest language features, libraries & frameworks weren't so amazing, I would have moved to a different ecosystem a long time ago. I'm seriously considering dropping Blazor because the tooling is so trash. I love the concept of how it works, but if it's a nightmare to develop on I'll build a different path.


> change layout every time you start/stop the debugger

This one is a bona fide feature that I hope they do NOT remove, FWIW. It's switching to the debugger layout, which you can customize independent of the development layout. This is what lets you bring up the call stack, watch, etc. panels in the layout you prefer and it'll remember that, without having them appear during development where they are useless.

> Rewrite the whole thing from zero. Call it "Visual Studio Lite"

Or, perhaps, "Visual Studio Code"? :)

I dislike how in Visual Studio, hiding a sidebar or bottom panel requires closing every tab, or marking every "split" as autohide. And showing the sidebar requires reopening every tab, or marking every pane as docked. And you have to do this separately in edit and debug mode.

Jetbrains does okay, since you can use Shift+Esc to hide a panel (I prefer VSCode having separate shortcuts to hide the left sidebar and bottom panel).

Qt Creator comes pretty close to working well (having to switch between CMake/build/stdout viewers is annoying, but it's also bad in JetBrains). But I dislike how when I enter debug mode in Qt Creator, I sometimes get a debugging bottom panel over a stdout bottom panel, leaving not enough room to read my code. Then I have to mash Esc to (unfocus the Find bar, close the Find bar,) close the stdout panel, and then stop mashing (because if I press it again, I'll exit debugging mode).

First of all: THANK YOU for caring about this. .NET was dying during the first 3/4 of the 2010s and was just about gaining momentum to get out of its sorry state. A sorry state Visual Studio IS A PART OF THE REASON FOR.

> Keeping Hot Reload as a "value add" for Visual Studio keeps those locked into the paid product and less reason to jump to VS Code


It gives less of a reason to adopt .NET.

If you don't want .NET to die (I like it, but honestly am not sure if it's really worth fighting for anymore considering it includes rewarding this god damn company), this is a hugely important moment. Microsoft needs to (re-?!?!)learn that they can't push their shitty products down peoples' throats if they want to keep their oh-so-nice ecosystem.

If things went more my way Visual Studio would immediately be killed off, Microsoft's veto power removed, .NET GPL licensed and MAUI extended to support Linux. Might be a pretty attractive platform, then.

It's a company. They are going to do what they feel they need to do to make money. The idea that Microsoft could be some kind of open source oasis is an obvious fiction. Developers who hitch their wagon want to believe that type of thing. But it's just not realistic.

Is there some context available or can someone provide some background?

- http://dusted.codes/can-we-trust-microsoft-with-open-source

- http://theverge.com/2021/10/22/22740701/microsoft-dotnet-hot...

- https://github.com/dotnet/core/issues/505

Organisational design defect - the .NET language is open-source and wants to be available on all platforms, on all devices and fundamentally an open programming language (ie all editors). The problem is the .NET SDK team is paid by the Visual Studio team. CVP ripped out SDK features to sell more Visual Studio product because the org is run as a profit centre that is stuck in a Ballmeresk Cold War with Jetbrains vs Satya “Azure is the future”

Moments after the public “reversal” blog post key engineers and product managers took to twitter to celebrate the victory and the community movement with expensive scotch. (“Thanks for your support”)

.NET, Visual Studio, and Visual Studio Code are all expensive ad campaigns funded by Azure. .NET and Visual Studio have excellent attach rate to Azure.

Disclaimer: I work at Microsoft.

dotnet and vs have been around a lot longer than azure. I'm not sure what point you're trying to make here.

Yes but back then they were Windows only and intended to promote sales of the operating system.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact