7 ms·
The trick with Microsoft is to very carefully separate the good parts from the bad ones. Labeling all of Microsoft as banned is really constraining your techno
by bob1029 1y ago
The trick with Microsoft is to very carefully separate the good parts from the bad ones.
Labeling all of Microsoft as banned is really constraining your technology options. This is a gigantic organization with a very diverse set of people in it.
There aren't many things like .NET, MSSQL and Visual Studio out there. The debugger experience in VS is the holy grail if you have super nasty real world technology situations. There's a reason every AAA game engine depends on it in some way.
Azure and Windows are where things start to get bad with Microsoft.
- gerdesj 1y ago"There aren't many things like .NET, MSSQL and Visual Studio out there. The debugger experience in VS is the holy grail if you have super nasty real world technology situations. There's a reason every AAA game engine depends on it in some way." I'm not interested in AAA games engines writing and nor is most of the world. If that is it, then you have damned MS with (very) faint praise.
- privatelypublic 1y agoI think you misunderstand- game engines are complex beasts and visual studio and/or .Net (in any of its incarnations) have the best debugging workflow I've seen. Typescript is also Microsoft. So is ONNX.
- gerdesj 1y ago"I think you misunderstand- game engines are complex beasts and visual studio and/or .Net (in any of its incarnations) have the best debugging workflow I've seen." I think you misunderstand: the market, ie the number of people who actually care about developing game engines, is tiny. How many games developers do you know as a subset of the people you know of? OP only managed to find a niche product area for MS to shine in and maintain traction - the moat thing. Nothing else apparently. I for one would not miss MS one jot. I wasted so much time with things like autoexec.bat and config.sys back in the day. I got good at it - Novell gave me a T shirt on Cool Solutions for a boot floppy image that managed to try several popular NIC drivers (3c595, 3c905, 3c509, ne1000 and a few others) and get you to a network connection for imaging or whatever. Later on I get to ignore SFC /SCANNOW answers to searches. Do you remember WINS? What about the horror of time sync? The PDC emulator FSMO role is basically a NT domain controller. AD was a bodge from day one, tacked onto ... Sorry, got carried away there. Again, Typescript is cared about by whom and what on earth is ONNX?
- AppleBananaPie 1y agoA game engine is often an example of a 'complex beast'. No one is arguing that developing game engines specifically is common.
- privatelypublic 1y agoThanks for trying to expound on my expounding on the original. But, the response indicates they don't know and actively avoid learning. Thus, nothing would change their mind. PS: to throw some shade- I'm surprised they didn't (mis)spell it M$- after all everything they mentioned is making me nostalgic for phpBB based tech forums in 2004.
- giancarlostoro 1y agoONNX is a format that allows you to run AI models without Python in any language that implements ONNX, there's even an ONNX implementation in Go, meaning you can churn out even more performance out of AI models and waste drastically less resources (Go, Rust, C++, Zig, C, D etc could be used to squeeze performance). Think of it how Java produces a JAR file, well an ONNX file is a file that could be run by any runtime built for it. Another reasonable analogy would be WebAssembly, but to a degree.
- boolit 1y agoTypescript is used by web developers over the world and ONNX for deploying deep neural networks. Two huge markets.
- deleted 1y ago[deleted]
- ruszki 1y agoWhat makes it better than say IntelliJ? Is there some feature which helps you more with debugging?
- dagw 1y agoIt's been a few years since I've used Visual Studio, but for longest time its support for debugging multithreaded and GPU code was unmatched. This is one of the main reasons game developers loved VS. It also had good support for mixed language debugging which is very useful when your C# code calls a C++ library for example.
- OrderlyTiamat 1y agoSo are LSPs- which by now are everywhere, they're a huge leap forward over previous implementations in (n)vim and emacs imho.
- jiggawatts 1y agoTo paint a picture: I’ve worked with Microsoft technologies almost exclusively for decades but recently I was forced to pick up some Node.js, Docker, and Linux tooling for a specific app. I can’t express in words what a giant step backwards it is from ASP.NET and Visual Studio. It’s like bashing things with open source rocks after working in a rocket manufacturing facility festooned with Kuka robots. It’s just… end-to-end bad. Everything from critical dependencies developed by one Russian kid that’s now getting shot at in Ukraine so “maintenance is paused” to everything being wired up with shell scripts that have fifty variants, no standards, and none of them work. I’ve spent more time just getting the builds and deployments to work (to an acceptable standard) for Node.js than I’ve spent developing entire .NET applications! [1] I have had similar experiences every few years for decades. I touched PHP once and recoiled in horror. I tried to get a stable build going for some Python ML packages and learnt that they have a half-life measured in days or hours after which they become impossible to reproduce. Etc… Keep on assuming “Microsoft is all bad” if you like. You’re tying both hands behind your back and poking the keyboard with your nose. PS: The dotnet SDK is open source and works fine on Linux, and the IntelliJ Rider IDE is generally very good and cross-platform. You're not forced to use Windows. [1] The effort required to get a NestJS app to have barely acceptable performance is significantly greater than the effort to rewrite it in .NET 9 which will immediately be faster and have a far bigger bag of performance tuning tools and technologies available if needed.
- cyberax 1y agoI tried developing an MS .NET app and it's indescribably bad. The deployment story is non-existent, monitoring, tracing, alarming is barely there. You have to work with MS libraries that are on life-support with glaring bugs still present.
- jiggawatts 1y agoUnless you found yourself in some bizarre dark corner of a huge ecosystem of products, that's just not true. Deployments are just "file copy". You don't even need Docker, because Windows isn't Linux, it has stable user-land APIs so apps are portable. Not to mention that the dotnet sdk can create container images directly without even needing Docker installed: https://learn.microsoft.com/en-us/dotnet/core/containers/sdk-publish https://learn.microsoft.com/en-us/dotnet/core/containers/sdk... There are pre-built Linux and Windows ASP.NET base docker images: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-9.0 https://learn.microsoft.com/en-us/aspnet/core/host-and-deplo... Visual Studio's ASP.NET templates all have a literal checkbox for "Docker support" which is all it takes to have a hot-reload debugging/editing experience. The dotnet runtime has very good Docker support, including automatic memory usage tuning to prevent it getting killed by Kubernetes or whatever. The underlying "App Host" below ASP.NET has fantastic support for layered configuration, which by default supports environment variables, command line parameters, named environment configuration files, and "user secrets" in IDEs. All of it is strongly typed and supports runtime refresh instead of Linux style "restart the process and interrupt user file uploads to get a new config". There's plugins for Key Vault, AWS KMS, App Configuration, feature flags, and on-and-on. Open Telemetry is fully supported and now the default: https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel https://learn.microsoft.com/en-us/dotnet/core/diagnostics/ob... Everything in ASP.NET uses the standard built-in ILogger interface, so wiring up any kind of audit logging or custom observability is a piece of cake: https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger?view=net-9.0-pp https://learn.microsoft.com/en-us/dotnet/api/microsoft.exten... The really fancy logging uses the high-performance ActivitySource APIs, which are used for lower-level tracing of dependencies and the like. Again, these are standardised throughout not just Microsoft libraries but most third-party packages too: https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.activitysource?view=net-9.0 https://learn.microsoft.com/en-us/dotnet/api/system.diagnost... Aspire.NET can orchestrate multiple cloud emulators, multiple apps, Node.js front-end apps, and wire up the whole thing with Open Telemetry and a free local trace viewer (with span support) with zero config: https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/dashboard/explore https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals... Windows GUI App deployments use standardised installer packages (MSI) that have simple devops pipeline tooling: https://github.com/wixtoolset https://github.com/wixtoolset Now... name the one package format that you can use to distribute client apps to all Linux distros! When you run "dotnet build", the result is built, unlike Node.js where you end up with 150K tiny little files that need to be rebuilt again "in production" because oh-my-god it's a scripting language with C code blended in randomly, so it doesn't... actually... build. I just had the fun of trying to figure out why PM2 doesn't like musl or running under non-root user accounts, why starting a Node.js app takes frigging minutes whereas ASP.NET starts in milliseconds, and on and on.
- mamcx 1y agoWell. this is clearly just a example of a hard problem where MS tools are good for. The MOST common developer that work on MS stack is in business apps and web, data, integration stuff. There is much better fit for MS and there is NO good counterpart in OSX or Linux. One of the major shocks I get when starting to work on OSX is how much less developed EVERYTHING is outside the ms stack. The only good reason you have a life working in OSX and less in Linux is because the web lower the playing field. But if this were a contest of "native" vs "native" is clear MS stack is ahead. (Much more before, because of course the web change the equation so you can claim things FOR THE WEB are better on linux and even osx)
- thefz 1y agoBah, leaving out .NET like this is ignorance, considering the amount of custom applications every company has written on it. RAD was a game changer and I think you don't know the extent and penetration of .NET in the enterprise
- whatevaa 1y agoFactorio, with a custom engine and totally not a AAA game company, develops on Windows too, because of great tooling.
- nordsieck 1y ago> There aren't many things like .NET, MSSQL and Visual Studio out there. The debugger experience in VS is the holy grail if you have super nasty real world technology situations. There's a reason every AAA game engine depends on it in some way. The reason all the AAA games are on it is because they're on the Windows platform, and more importantly their customers are on the Windows platform. If 95% of gamers ran MacOS instead of Windows, you'd see a very different tech stack among game developers.
- Spooky23 1y agoEverything feeds everything else. If Apple had a stack and a business model that worked for game developers, you’d see a different stack. Microsoft is where it is because they are viciously competitive at different layers of the stack. Apple wants a piece of every nickel, Microsoft wants a piece of every computer. They license windows for every Mac user in a company.
- thefz 1y agoGame customers are on Windows because DirectX has been superior to OpenGL - development wise - for what, 30 years?
- dismalaf 1y agoNo, they're on Windows because it was the only viable gaming desktop environment during the 90's and 00's. Apple was all but dead and hardware was limited, Linux was in its infancy, Unix vendors didn't care about normal desktop users, etc... In the early days of 3D gaming, there were studios that used OpenGL over DirectX on Windows. ID Software were the best known example of choosing OpenGL over DirectX.
- thefz 1y agoOf course excellent OpenGL products exist (ID software is the worst example because they were... geniuses), but from the developer point of view, DirectX was the full package.
- 1y ago
- iimblack 1y agoHow do you separate the good from the bad? What do you do when Microsoft changes the good things into bad things? My take is that Microsoft consistently makes bad things and makes "good" things into "bad" things; so, I don't have much expectation or faith that anything that I currently think is "good" will stay that way.
- mrweasel 1y ago> How do you separate the good from the bad? Developer tools and enterprise stuff good (mostly). Consumer products bad.
- herbst 1y agoFor whom? Microsoft? I don't know which of their developer tools I would consider good. Or less worse than the competition
- mrweasel 1y agoI consider C# / .NET to be one of the best options for application development. Many would consider both VSCode and Visual Code pretty good. There might be better alternatives, but generally I'd say they are more good then bad. Github is also a good product. Maybe not exactly a develop tool, but Power BI is also fairly good. Borderline developer / enterprise solution: SQLServer is great to work with. Maybe not the best relational database server, but it's every bit as capable as MariaDB and I'd prefer it over Oracle.
- Lio 1y agoGithub was a great service well before Microsoft bought it. The best thing about Microsoft’s stewardship has been that they haven’t fucked that up.
- herbst 1y agoBefore Microsoft bought it you could still search it / codesbases without making an account. Alone for that additional pain I would argue they instantly made it worse.
- duped 1y agoMicrosoft, for all their warts, has the absolute best documentation for every public API in Windows. I'd go so far as to say it's better on average than manpages in Linux and BSD and light years better than the actively hostile bullshit from Apple. Submitting a bug report though, you gotta know people or know where to ask.
- viraptor 1y agoIt really depends how far you go. The basics - they're pretty good. But for the more complicated things they just ignore all context and pretty much restate the names of functions/arguments without explaining how/why things work. See for example https://learn.microsoft.com/en-us/windows/win32/api/tsvirtualchannels/nn-tsvirtualchannels-iwtsbitmaprenderer https://learn.microsoft.com/en-us/windows/win32/api/tsvirtua... and https://learn.microsoft.com/en-us/windows/win32/api/tsvirtualchannels/nn-tsvirtualchannels-iwtsbitmaprenderer https://learn.microsoft.com/en-us/windows/win32/api/tsvirtua... What does the terminal services renderer do? "It renders bitmaps you dummy, just look at those arguments!"
- pimeys 1y agoSome of the advanced stuff has great docs. E.g. SQL Server and its wire protocol. When you need to write client to a language that doesn't have one, the TDS doc from Microsoft is amazing. Compare that to e.g. Oracle and you know what I mean. In general SQL Server is such a great product. If you cannot choose PostgreSQL for some reason, make sure your buying manager plays golf with the Microsoft sales people, not with Oracle.
- userbinator 1y agoThe old documentation was the best. The new stuff is a mix of barely acceptable and absolute crap, and some of it is even AI-generated. Here's a recent funny: https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/transfer-data-to-isochronous-endpoints https://learn.microsoft.com/en-us/windows-hardware/drivers/u... "The characteristics of the endpoint determine the size of each packet is fixed and determined by the characteristics of the endpoint."
- 1y ago
- briHass 1y agoAzure has some things about it that I don't like (compared to AWS), but it wins over AWS for Azure App Services. Essentially, IIS (webserver) as a service (PaaS), with autoscaling, auto-deployment, hot swap slots, auto-recovery, backups, etc. At it's core, it's basically a managed Docker container (either Windows or Linux) with IIS, so you can customize it quite a bit like a familiar VM, but unlike a VM, updates and security is all managed for you. Beanstalk is a joke compared to AAS, and I'm more than happy to stay far away from Docker/K8s until that complexity is actually required, which it usually isn't until an entire department handles your K8s clusters/EKS.
- zdragnar 1y agoSetting aside the debugger, visual studio has to be the worst IDE I've used. There are so many rough edges it is astounding. On an ancient project, among other things I've been editing JavaScript code both in js files and inline script tags in aspx files. The indentation auto-formatting appears to choose new levels of indentation using a random number generator. You can't add a new file to the project while it is running, or even create a file through the context menu, but it can detect when the files have changed externally and recommend restarting the project. There's a thousand little things, but the indentation auto-formatting abomination is a constant burr under my saddle.
- msgodel 1y agoIf you're not doing C++ gdb is pretty good, most people just don't know how to use it.
- windward 1y agoThis isn't a coincidence. Microsoft have spent a lot of money, including billions in acquisitions, to maintain some positive developer mindshare.
- AnonymousPlanet 1y ago[flagged]