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.
- 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.
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.
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.
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.
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.
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.
That’s the thing that makes Visual Studio so annoying. Even typing is slow. A lot of other stuff too.
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.
Also, I don't think JetBrains is not that active in developing C# the language.
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.
- Sources within .NET team tell me that the pastebin is real.
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).
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.
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 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.
Now my main dev box is running debian, I don't miss visual studio at all and am more productive overall.
Rider has support for Avalonia UI and its designer, FYI. So there's definitely some interest, not sure how much.
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.
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.
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.
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.
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"? :)
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).
> 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.
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”)
Disclaimer: I work at Microsoft.