Those of us with longer teeth treat MS just the same as any org: We don't trust a single one of them.
Worshipping any vendor is quite frankly a bit sad.
I tend to avoid having to solve problems now. If I do it tends to go somewhere vendor neutral like python on whatever platform happens to be lying around and not annoying me at the time.
I absolutely hate Microsoft for what they've done to Windows and Office - both of these were fantastic products for desktop users 20 years ago but nowadays they're either a bloated mess (Office) or spyware.
We really need to see PC gaming move completely away from it.
So I'm miserable.
Javascript/PHP are broken compared to C#. Python, Java and Go are verbose and clunky in comparison (although I appreciate being able to write self-contained native code in Go for so little fuss compared to C).
My hate is Python being used for anything outside scripting. Package management is archaic and broken, the quality of libraries is mediocre and the language stewardship has been poor. Particularly the way the 2.x > 3.x migration was handled. I'm still bitter about that. It remains one of the few ecosystems where picking up a project older than 6 months is playing a game of Russian Roulette as to whether you get it working within a week of messing around with broken code and dependencies.
By extension there is a similar toxicity around Visual Studio, and MSSQL somewhat, too. Frequent "Why would you want to use ReSharper!?" or "Rider???? You need to get an employer that can afford Visual Studio." etc.
Unfortunately there is also the side you're talking about. There are a lot of people who are stuck in the mud, and also a lot of people who are just fed up with baseless religious hate from the Python/Javascript crowd and who have never bothered trying those languages (and thus know that it's just projection) and lash out.
The thing is - just look at the work MS do. For years JSON serialisation sucked so we all used NewtonSoft. Now the framework handles JSON properly. So there's hope yet for things such the Date API learning from Noda - and when it does it's miles ahead of any language where people are dumb enough to use an int32 linked to an arbitrary epoch (from one specific OS variant) to represent date/time.
You mean local time zone? Just use UTC everywhere, nothing else will ever work no matter how you design it. DateTimeOffset miiight work too, but you'll extract UTC from it to do anything meaningful anyway, so it may as well be UTC all the way down.
No can do, and frankly is a _very_ reductive stock response.
Anyone working with Date Times more than even months into the future will have pain. Politics will mess you up. You've made a reservation for 16:00 at that fancy pants restaurant with a 6 month waiting list. But now the government have decided that Daylight Savings are too much hassle, and suddenly your 16:00 reservation is off by an hour (or whatever the DS shift is for your region.)
Then there is industry specific scenarios - logistics for example. They know the plane is landing at 18:00, but we haven't confirmed the TZ yet. Not because the airport doesn't know what timezone it is, but because the carrier hasn't confirmed which airport they are landing at. They just know it's at 18:00. DateTime is utterly terrible with "unknown"
https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b...
Coming from Java into a C# job, I'm used to mocking downstream dependencies, and even POJOs in some cases, that a class depends on. C# has stuff like Moq, but you _have to_ wrap everything with an interface to mock it since C# seals by default.
Meanwhile, in JVM land, you can use Kotlin, which still seals classes by default, but allows test compiles to open classes by default so you can still mock them.
Every C# thread I read suggests wrapping all concrete implementations with an interface like I'm coding in the 90's for the sake of decent tests, or they talk about how my code must be written poorly for me to be in this situation. Meanwhile, I'm just trying to get _some_ testing into this code I've inherited.
Also, C# doesn't seal anything by default. The methods are non-virtual by default, but that's a very different thing, and there's a good reason for it when it comes to libraries and versioning.
Of course back then they were already full into megalomaniac mode with their attempt at having MSN (Microsoft Network) replace the open internet. No it was not just a news service then. However we all laughed them away.
These days I'm more cynical. And I hate telemetry and spyware which really wasn't a thing in those days for lack of always-on connectivity.
So, is it just my age or are things really worse?
The walled-garden platform did offer some benefits, particularly when you've got an audience new to the medium. This was an era before ubiquitous search, so the fact everything was in a single navigable heirarchy was more valuable. (Remember, this is also back when Yahoo was valuable as a directory.)
Since there was a single gatekeeper, you could promise a safer, more accountable and family-friendly environment for the social channels. Again, appealing to new users.
There may also have been potential for more exclusive content; if the walled-garden clients offered richer media (or the services better kickback) than what can be provided by a normal 1995 HTML tag-soup site running through an early IE or Netscape, it would be worth partnering with them.
I'm actually surprised that the walled gardens went down without a fight. They could have stayed around presenting themselves as a "premium over-the-top channel" style offering-- you can get the same basic internet as everyone else, but for just $5 more, all this extra. I can recall my parents were willing to pay $25/month for AOL when generic dialup was in the $10-15 range to remain part of specific communities inside the walled garden. AOL did an incredibly poor job pivoting as people moved to broadband-- I can recall there was a package to use their propriatery offerings with an external ISP, but it was expensive, until one day it was free because they realized they needed to keep their portal/email audience from imploding totally.
No edition of Windows is free. This is the very reasonable expectation that if you pay for a product, then you are not the product.
> Win 10 and 11
Windows is just Windows at this point. You are still using the Windows 8 license that your purchased. The version numbers are nothing more than a measurement of how brazen Microsoft is getting.
Show me where I can get a legal copy of Windows that is free to install on a pristine machine and I'll concede that it is free.
Microsoft have simply added a subscription fee to Windows, where you are the subscription fee.
Have been? You didn't have to have an already licensed Windows installation to upgrade? You _exchanged_ your older license for the newer one for free; you didn't get one extra for free.
When you purchase a complete, new computer, the windows license is included in price (OEM). If you build your computer from parts or when you spin a new VM, you have to get a new license. Windows 10/11 Home (OEM) is about 120 EUR + VAT, Pro (OEM) about 160 EUR + VAT. That's quite a far cry from free.
No one is going to buy corporate Macs though because Windows and Office is the best corporate dystopia for the compliance check boxers.
I am an active independent user group member. This isn't just about startups and big tech who are actually fairly low on seat counts. There are huge numbers lots of us corporate dystopias using this stack. On Windows. And you'll have never heard of any of us.
I use .NET/VS/Windows/etc throughout. I recognize products like Azure and SQL Server are a potential trap. So, I use .NET6+ but with SQLite and minimal AspNetCore projects instead of SQL Server and IIS. I could deploy our product to Linux with a few tweaks (i.e. drop System.Drawing image conversion laziness).
At work, we are a Windows-only shop for the most part. My daily driver is still a Windows PC. I have an M1 mbp I use around the house, but I generally dont get emotionally invested in exactly who vended my OS/machine. I chase the UX. I have zero loyalties to trademarks either way. Other factors are give or take depending on moon phases. If the machine feels good and fast, I use it. I don't fight it anymore. There are bigger problems in my mind.
So that means you're deploying Office. And if you're deploying Office, you're deploying Office 365, and so that means everyone's on Azure anyway, so there's your identity management and vendor lockin.
Yeah, Microsoft is not sexy in the eyes of devs. But they are the dominant platform in just about every industry that's not-tech.
Just look at the weekly anti-Microsoft articles around here, including this one you're commenting on.
And here we are, back at ground zero.