3 ms·
Unity but also the legacy of XNA/FNA, all sorts of custom game engines using it for scripting, and now Godot too (despite great resistance from the community th
by neonsunset 3y ago
Unity but also the legacy of XNA/FNA, all sorts of custom game engines using it for scripting, and now Godot too (despite great resistance from the community that uses other, worse language that it offers).
As for the FOSS, the "core" itself is clean (which is pretty much everything you need). As in, just like with Oracle/Java and Google/Go, it is being developed primarily by engineers employed by its respective company, but there aren't really any abstractions that are made to work with specific e.g. Azure products. I would expect the runtime or language teams to actively resist should something like that happen and in fact it was already the case in the past [0]. This is notably where Chromium does so much worse with extremely concerning actions by Google like recent web integrity proposal.
C#, F# and .NET are MIT licensed meaning you can do pretty much whatever with the code, which another organization can make significant use of, with good example being aforementioned Unity. The main workhorse frameworks - ASP.NET Core and EF Core are platform and product-agnostic meaning ASP.NET Core today works best on Linux, and does not care which cloud provider you use, and probably the best DB to use EF Core with is PostgreSQL. There is garden variety of other protocols like gRPC and OpenTelemetry which have "first-party" integrations so it works well if you have a polyglot company (and no, if you use primarily Apache Foundation projects, you are a Java shop).
The tooling situation is probably closer to Java/Kotlin where you're expected to use a commercial product with free community options available (Visual Studio, Rider or Visual Studio Code - last two work great on both Linux and macOS). Some are using Neovim + LSP (Omnisharp) combo but it's very niche, the good debugger implementation is not OSS hence the remark.
[0] https://github.com/dotnet/runtime/issues/97711 https://github.com/dotnet/runtime/issues/97711 here's an example of a request driven by an interest from Azure team which was rejected because it's not something e.g. dotnet/runtime should concern itself with, and was moved to a separate package (it is abstract enough to live as a System.* extensions but nonetheless)
- solardev 3y agoThanks! It sounds like Microsoft has changed a lot, for the better, since the old days. I'm glad to hear that. I might have to dig into this again!
- neonsunset 3y agoI probably wouldn't 100% agree to "Microsoft changing". It seems their projects vary in quality greatly, on one hand you get to have something as good as the current day .NET, on the other you have Teams and Windows 11. It's a big company...