6 ms·
There used to be .NET Framework (which was a Windows only runtime built by Microsoft) and Mono (an open source implementation for various other platforms). In
by martindevans 3y ago
There used to be .NET Framework (which was a Windows only runtime built by Microsoft) and Mono (an open source implementation for various other platforms).
In 2016 they started building .NET Core which is new open source implementation (built mostly by Microsoft) which runs on more platforms. For a while all three existed side by side.
Eventually .NET Core caught up and overtook the other implementations. These days Framework is legacy. Core has been renamed to just .NET (since it's now _the_ runtime) and Mono (as far as I know) has been totally replaced by it.
This is all from memory, so apologies for any inaccuracies!
- oaiey 3y agoWhile correct, modern .NET supports currently two VM: CoreCLR and MonoVM. The later mainly as AOT compilation target for iOS, Android and WebAssembly. Mono is still better suited for that, but the AOT compilation of CoreCLR is progressing. I think there is nothing else left from the Mono project like the class library or the compiler/toolchain.
- pjmlp 3y agoActually, .NET Framework is the Python 2 of the .NET world, with all the references that it entails. Still too many enterprise products stuck in the old ways.
- Semaphor 3y agoUnlike with python, some things simply can't be ported, though. I maintain a webforms page, the only upgrade path would be a full rewrite
- pjmlp 3y agoPython 2 => 3 also has the issue that some things don't exist in Python 3, or are done in incompatible ways. As I mentioned a few times, I have been involved in projects were that full rewrite happened to be .NET Framework => Java, which shows how the customers were mad at what was left behind. Although there is some irony in that, as Java's Python 2 problem is the transition into Java 9.
- Semaphor 3y ago> as Java's Python 2 problem is the transition into Java 9 Binary incompatibility between 7 and 8 as well, we got an enterprise product that got bought by SAP and will eternally be stuck on Java 7, but at least unlike the other one, it doesn’t require much maintenance as it’s only used internally ;) > Python 2 => 3 also has the issue that some things don't exist in Python 3, or are done in incompatible ways. What doesn’t exist? I don’t like python, but it always seemed like those changes were all relatively minor?
- pjmlp 3y agoThe way unicode was handled, integer division semantics, some libraries went away, and a few other things change enough that 2to3 wouldn't handle everything, which in a dynamic language is a big pain to track down in a huge codebase. Naturally some changes on the C API for native libraries as well.
- Semaphor 3y agoFair enough, thought that still sounds like things where an upgrade path is available, just not automatically, instead of "you have to throw the code away because it simply doesn’t work anymore".