People trash Microsoft a lot but some of the people there are the best in their respective fields.
People trash Microsoft a lot but some of the people there are the best in their respective fields.
You may have a rubbish internet connection. If you are using a VPN with a slow internet connection, investigate a split tunnel. Teams traffic involves only three IP ranges so it is easy to split out and route direct to shave a fair bit of latency.
Other issues will require more investigation but they are local to you.
Sometimes it really is a specific person’s issue, and sometimes there are a lot of them so it can look like a vendor issue.
Of course, sometimes it is a vendor issue.
There is a percent range where it is difficult to differentiate. Made worse by a large user base.
My point was that even on a precariously supported platform (my Arch Linux computers), the software works fine - ie as proscribed. MS Teams is used by a vast number of people and has a habit of working OK for them.
e.g. "Slack has lost connection... We'll try to reconnect in 30 seconds"
Well it's a lot easier to make an app perform well in C++ than electron.
They should at least have for the VS Code team to help. That's one of the best performing Electron apps, it's strange MS never adopted those practices company wide.
Either way, even if this was the reason it would prove that Electron is not a good fit for an app like this.
The nice thing about Java is the deployment and management tooling. It's cross-platform and mature. C# is not nearly as good in this respect, although with the open-source it is finally free to move with that.
How so, I had nothing but issues when trying to deploy cross-platform Java because of the Java ecosystem itself being bad compared to C# or Golang where you just compile stuff and run it.
C#/.NET hasn't been tied to windows for a number of years now. .NET Core/.NET 5 is cross-platform and great to work with. All of our CI/CD runs on Linux agents too.
There are several APIs in the older runtime that are intentionally not brought forward, and what I believe you're referring to is this announcement: https://github.com/dotnet/announcements/issues/130
The remaining APIs are (mostly) AppDomains, Remoting, Web Forms, WCF server, and Windows Workflow, most of which is either an acknowledged "this was the wrong way to do it so we won't bring it forward" (e.g., Remoting) or tied to Windows anyways (e.g., WCF).
C# is not tied to Windows, some new features in the latest C# 9.0 doesn't even support running on the Windows-only classic .NET Framework.
All new .NET development + C# features is being invested into .NET 5+ (FKA .NET Core), i.e. the high-performance cross-platform runtime.
> The nice thing about Java is the deployment and management tooling. It's cross-platform and mature. C# is not nearly as good in this respect, although with the open-source it is finally free to move with that.
Citation needed, I deploy my .NET 5 Apps with Linux tools, either rsync, Docker as well as AWS ECS. All clean + simple, only requires a single command to publish your App ready for distribution, that you can either rsync across or include it in the runtime image of your Docker build.
Tried to publish a Java package last week and the whole experience was a shit show, by far the worst experience of all languages where the recommendation to publish a package is to push it to bintray first, make it available to jCenter than sync it to Maven, where you need to get manual approval to include it in jCenter then you need to create yet another account/credentials with a 3rd Party which requires a manual request via a damn Jira ticket. Then each package manager has different requirements as to what a package needs, I could publish it to bintray but couldn't get it to jCenter without uploading a POM which new Kotlin projects aren't created with, then MavenCentral requires a stricter POM and Java Docs but there's no standard way to publish to a repository as bintray needs their own non-compatible task, so now I have duplicated generated POM's in my gradle build to satisfy different repositories, for bintray I needed to hook into their bintrayUpload task and generate the POM just just before it uploaded the package which I needed to decompile its sources to find out where exactly the POM file needs to be written to, no examples of which existed for Kotlin build.gradle.kts scripts that new Kotlin projects are created with. Then there's the case that every build.gradle example uses configuration that is already deprecated and Java/gradle seems to be the only one requiring uploading binary .jar's with your source projects.
Every other language has a single repository you can publish to that you don't need to jump hoops to get, published using standard tools, simple, clean, straight-forward & well documented.
Abstracted far enough, everything is basically the same thing.
Something C# never was, given that it always JITs before execution and AOT compilation to dynamic libraries has been available since version 1.0 via NGEN.
Plus lots of additional AOT alternatives like Windows 8.x Bartok compiler, .NET Native and CoreRT.
This on top of third party offerings like Mono AOT or IL2CPP, and the research compilers from Singularity and Midori projects.
Whereas for Java, while AOT has been available since around 2000, it has been for the most part only available on commercial JDKs, and free beer AOT only came with the release of GraalVM community, the addition of J/Rockit JIT caches into OpenJDK, and IBM releasing OpenJ9 as FOSS as well.
Looking at their current behavior from open-source to VSCode to .NET 5 shows that it's a more compelling choice today than ever before. This is actually rational.
The three heroes of ethics, ideal working conditions and examples of behaviour towards the society in general.
The only reason most startups use open source ecosystems is economics.
IMHO selling .Net to unix devs is a bit like trying to sell icecream in Siberia.
.NET Core (now .NET 5) has changed the entire ecosystem and has been production-ready for years, and is even making cutting-edge advancements like Blazor which offers the first real alternative to Javascript on the frontend. The reality is that .NET is a top choice for both development speed and application performance across all platforms today.
That's nowhere near reality, .NET 5 (FKA .NET Core) has flawless first-class support for Linux, the whole deployment experience is even better on Linux since you have access to the entire Linux tools + ecosystem. Which I've been deploying to for years, I still develop on Windows but only ever deploy our .NET (Core) Apps to Linux (since the same App runs flawlessly on Windows + Linux).
The Windows-only .NET Framework (excl Mono) is now considered legacy, it's continually supported but all new development + features are being invested in the .NET 5+ cross-platform runtime which is now what ".NET" refers to.
Not that Electron is appealing either but I get the draw fully.
It's been designed to be "cloud-ready" from the start where it's adopted a high-performance core with a leaner, modular runtime that supports side-by-side installations since Microsoft wants it to run well in the Cloud of which all cloud providers (inc. Azure) predominantly deploy to Linux VMs, whose trend will continue to dominate.
You can view the supported Linux distributions on their installation page which includes Linux binaries for x64, Arm32 + Arm64 including package managers for its supported Linux distributions (Alpine,CentOS,Debian,Fedora,openSUSE,RHEL,SLES,Ubuntu) [1]. As well as maintaining multiple Docker configurations for popular Distros [2].
With Linux now being a supported platform means if you have run into an issue you can report it where their full-time resources will resolve it. The old days of using .NET to push Windows is gone, the future is the cloud and Azure doesn't care if you run Linux or Windows VMs, it's all the same to them, they're still collecting rent for usage of their servers by the hour.
There's still a lot of cruft from who they used to be, but I feel like most people I know echo the sentiment that Satya has been a revolution. Things like them embracing Linux, acquiring and not ruining NPM and Github, contributing to open source projects, and all the work they've done with Dotnet Core seem to really have bought them a lot of goodwill, at least with the people I know.
Have you seen the WSL2 DirectX support?[0] They're extending it, too!
Microsoft gets mocked for embrace/extend/extinguish, but really, it means just do a better job than the competition. Embrace: "do what others are doing", extend: "do a better job at it, have more features than the competition", extinguish: "sell customers on those features and improvements". How anyone could be against competition, simply because it's framed in a cheesy phrase, is beyond me.
"Differentiate your product."
"Let's build an IP portfolio."
"We don't want to be the dumb pipe."
"Build a moat around the product."
"Don't let yourself be commoditized."
Etc.
All that coded or not so coded business language says the same thing: make it proprietary/uncopyable and make money off of it.
Solaris had a good version, which I used for a time, while I was running a data center full of Sparc equipment. All the user space stuff was happening in Linux-land. Solaris x86 had a nice repo for various packages, but there was always something you wanted that wasn't there. It got really close, though.
If one of the bigs would have gotten serious about packaging up, say, Debian's userland stuff, they could have put a serious dent in Red Hat, and maybe things would have played out differently.
If at all, they would just cherry pick stuff out of them as they were already doing anyway.
Because you've entirely misunderstood what EEE means. It absolutely does NOT mean to "do a better job." That phased was coined SPECIFICALLY because it was how Microsoft either absorbed competitors, or put them out of business. They spent decades doing JUST ENOUGH to persuade people to use their stuff, even when it was NOT as good -- given the advantage of their monopoly position and vertical integration -- in order to starve the competition of oxygen.
Windows is a great example - forced updates, forced ads, forced data-ming and spying, stupid UI changes etc. all make an otherwise decent OS a real pain to use and a must-avoid for the privacy conscious. These are easy to fix for a company like MS, but they do not.
I don't understand whinning about that when you have bilions of people using your OS, so shitton of people who are newbies at computers then you want to help them to stay as secure as possible.
"at best(worst?)" this thing is "not nicest", but it's totally reasonable.
you have reasonable control over updates on non-home versions, imo.
It didn't even need to connect to the internet.
I even did an online, in place switchover from SysV to systemd in 2011 and despite that being a scary amount of changes at once still got a working system.
The 4th "security update" somehow made that disappear?!
Apple is removing frameworks like crazy, forcing apps to update or die. Windows takes backward compatibility extremely seriously.
Edit: typo
Apart from breaking SSDs [0] less than two weeks ago. And deleting your certificates in November [3]. And breaking Kerberos in November [4]. And moving your files to another user in February [1]. And breaking their own reset feature in February [2].
All of those are massively disruptive and breaking changes. And all of them have Windows Update to blame (especially the moving files bug) - not some buggy underlying hardware that Microsoft had to work around.
[0] https://borncity.com/win/2020/12/18/windows-10-20h2-chkdsk-d...
[1] https://www.howtogeek.com/658194/windows-10s-new-update-is-d...
[2] https://www.zdnet.com/article/microsoft-pulls-security-updat...
[3] https://docs.microsoft.com/en-us/windows/release-information...
[4] https://docs.microsoft.com/en-us/windows/release-information...
That doesn't explain forced feature updates.
Source: https://docs.microsoft.com/en-us/lifecycle/announcements/win...
Forced updates are unnecessary and a bad idea, even more so in rolling-release models.
I don't mind Chrome's forced auto-updates, because they've never gotten in my way.
I don't think I've intentionally shut down my desktop or laptop (excluding reboots and when leaving for travel) for years. Especially not laptops.
Here: https://bugs.chromium.org/p/chromium/issues/detail?id=872665
This was a huge, huge, huge pain in the butt in a big enterprise. Nothing like a creeping "users can no longer access the internet" spreading across the environment.
Furthermore such updates which usually require a reboot can easily interrupt important work or a long running task.
Just yesterday my Windows install which exists solely to run steam and steam games updated and then committed suicide in a fashion that can't be automatically repaired and requires a reinstall with zero explanation. For reference the hardware is fine as is the Linux install on another drive. The windows drive is a ssd less than 6 months old. I can even mount the ntfs filesystem which appears to be just fine.
There is absolutely no excuse for not letting users pick when or if they would like to update their OS especially when their QA has completely gone to shit and they cannot realistically promise that their update wont break your install.
My laptop running Windows hangs periodically requiring a hard reset... if I watch Hulu on Chrome. At least twice a week and sometimes multiple times a day.
At least Windows in the 90s had the decency to put up a blue screen — now it just hard crashes without any display or debugging information.
Telemetry and forced updates are a slap in the face on top of the quality regressions.
My testing pointed towards a DRM problem, since it doesn’t happen with other video streaming or with rendering outside the particular Chrome + Hulu combination.
My point is two-fold:
1. Even if the driver crashes, the OS should blue screen (like it used to) rather than just hard freeze the machine.
2. Using an HP laptop with Windows and Chrome to view Hulu is so mainstream it should “just work” — so it’s a sign of industry breakdown it doesn’t.
This sounds like back then there were only crashes with a blue screen (and dump), and currently there's only hard crashes without blue screen. Both of them are not true. I.e. there are apparently types crashes for which it hasn't been possible in the past decades to come up with a bluescreen, othiing new there. It is just as likely, maybe even moe so, the difference in your particular case is your hardware/driver. It's of course possible there were effectively changes at the OS level in how hard faults are dealt with, but I wouldn't just assume so.
... I hear keys on ebay are about $2
It really wasn't that long ago that most commercial software still had to support IE8 (released 2009), for example, because that's where the user base was and they didn't upgrade.
For what it's worth I always enjoyed the "stock" games like pinball, solitaire, freecell and minesweeper. But I liked them tucked away under the clear label of the games sub menu, and without any pressure to use them
Note: I'm not in the US. It seems that Americans tend to complain about this more. I don't know if it was deliberately done or not in that case.
If your work is such that scaling to bazillions of servers or other artifacts isn’t an issue, Microsoft is a smart choice. If you are building Facebook, it is a dumb choice.
The state of SQL Server's MVCC suppot is arguably enough to preclude use even before we talk about licensing.
I never thought I would miss Oracle until I learned about NOLOCK and the cost of enabling MVCC in SQL Server.
a little early to come to this conclusion, one way or another, I think
And no, to me Microsoft is actually worse than before as they have turned Windows into a spyware. The forced updates (not just security updates) make it even worse.
https://insights.stackoverflow.com/survey/2020#technology-mo...
Maybe they are all wrong. Maybe PHP still sucks just less.
Microsoft has done some good things with .NET Core, but they still don't have a very friendly OSS or partner strategy.
AppGet is a pretty good example; there was an existing Open source solution that filled a need, and Microsoft decided to create their own replacement, not bothering to give any credit (until there was an internet ruckus) to the original despite the very striking similarities and relative level of obviousness that they were at bare minimum 'inspired' by the tool; after all, they interviewed him for a role and even warned him the day before it came out... [0]
Octopus is another example. I -hate- TFS Release pipelines. Octopus Deploy was (until they ruined their pricing model) a far superior product overall. You can really tell the way TFS Release pipelines were done, they tried to 'checkbox-copy' Octopus Deploy's features without making it too much like Octopus to be obvious.
But the checkbox-copy strategy is inferior in many ways. In Octo you can have a stage that runs in all environments (but certain steps on/off per env) and configure server groups that way. In TFS Release, You have to have to 'copy' the steps for every stage. It's like their data model is missing a 1-many relationship or two somewhere.
And the impacts in the case of their behavior has a second-order effect; I am curious whether TFS Release eating into Octopus's market share was a factor in their price hikes a couple years ago; in that regard, I can't blame them if that's the case.
[0] - https://medium.com/@keivan/the-day-appget-died-e9a5c96c8b22
I don't think this is some fundamental shift in Microsoft or its values: simply a shift in their market positioning and brand value/identity.
Their products are still proprietary spyware, designed to get as many people locked into the Windows (or now Azure) licensing ecosystem as possible. Even the best parts of VS Code, often cited as one of their best new releases, are either spyware or proprietary. Windows remains a tire fire.
GitHub and NPM are prime examples of this concept that one can turn money into goodwill. I assume money also changed hands for the first-class support that Docker has for windows.
Microsoft is a big company. Some things it does will always be trashy - like fighting tooth and nails to keep Linux desktops and truly-open formats out of European public-service procurement. That's still going on, 20 years and 2 CEOs later, and will probably never stop, because screw public interest when there is so much money on the line!
But sure, in some areas they behave better now. They had no choice, after losing a whole generation of developers and seeing their cash-cows (Windows, Office, and AD/Exchange) under siege from SaaS insurgents. I've still to see something where their efforts are not fundamentally tied to their immediate self-interest, though.
It's more around the ads in the start menu, the telemetry they send, and their tendency to reset my telemetry settings around updates.
I don't feel like I'm in full control when I'm using a computer running windows. Which, y'know, is probably fine for 95% of computer users, they want more of an appliance than a general computing experience.
Yes, they've started imitating macOs / ios and have even gone beyond what Apple does in blatantly turning Windows OS into a spyware.
Prove that.