Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> .NET Framework itself wasn't that bad apart from all the tying to weird Windows functions(good when writing enterprise stuff, horrible for everything else by tying to Windows) and reliance on IIS for web (with it's engineering focused on multi-tenant hosting being a PITA for devs doing the actual web dev).

Personally, I feel like .NET Core and embracing cross-platform was exactly what the ecosystem needed. Albeit not quite 1:1 with the older versions of the framework (the Mono project tried that approach, with mixed results), things like Kestrel instead of IIS didn't feel like a high cost to pay. Plus, I think that the C# language itself is reasonably nice.

It's a bit curious how C# seems to be more popular in gamedev than Java, both of the languages and runtimes not being that different from one another. For whatever reason projects like jMonkeyEngine or LWJGL don't get the same popularity as Unity or even Godot.



> It's a bit curious how C# seems to be more popular in gamedev than Java, both of the languages and runtimes not being that different from one another

I think we can thank Miguel de Icaza for that. Mono/Xamarin allowed Unity to run on smartphones and turned it into a textbook disruptive innovation.


C# has structs (and pointers if you really need them) and now Span<T>. C# is just a better fit than Java.


> C# is just a better fit than Java.

I'm not sure I follow: having access to lower level functionality is good, of course, but I don't think that's quite the deciding factor for the majority of folks, who want to knock together a game. Number crunching will be relevant for a limited subset of game projects out there, otherwise Lua wouldn't have seen widespread usage, or maybe something like GDScript wouldn't have been created in the first place.

In regards to Span<T>, wasn't it added relatively recently? That seems to be the case, from what I can tell: https://learn.microsoft.com/en-us/dotnet/api/system.span-1?v...

  Applies to
  Product        Versions
  .NET           Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
  .NET Standard  2.1
That seems to be confirmed by this: https://devblogs.microsoft.com/dotnet/announcing-net-standar...

  Span<T>. In .NET Core 2.1 we’ve added Span<T> which is an array-like type that allows representing managed and unmanaged memory in a uniform way and supports slicing without copying.
And yet, C# and .NET (or Mono) were already used by popular engines like Unity all the way back in 2005, so surely there's more at play here! Maybe what held Java back were social reasons, like concerns around licensing, or how easy it would be to integrate JDK or package it back in the day and so on.


You should try to write allocation free code in Java and C# and see what feels easier. I don't think its a factor of what was tried, its a factor of what survived and C# engines are feasible while Java engines aren't.


This. Something must have happened internally at Microsoft because .NET core & WSL all popped out around the same time and it made Microsoft look like a vaguely reasonable gang again.


Azure. When you google long enough you will find interviews with the key people behind ASP.NET Core and .NET Core about their proposal meeting with Guthrie (the head of Azure) and how surprised how easy that was to get that approved. Same applies for how PowerShell happened. WSL, I have no idea.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: