Live data from Hacker News

A History of .NET Runtimes

mattwarren.org

81–90 of 102 posts

Re: A History of .NET Runtimes

#81
post #67

Earlier quoted context omitted.

> Java has everything that .NET has Java offers nothing for game developers, there're multiple game engines written in .NET or using .NET. Java only runs on Android, .NET on all mobiles. Native interop in Java is a joke.

Actually Java had jMonkey and LibGDX before Unity became the engine it is today. Which initially was Mac only and only used Boo and Unity Script as programming languages. Khronos does have some official OpenGL specs for Java. There are none from them for .NET. Java runs on iOS via Codename One and Gluon AOT compilers. Native interop in Java was made hard on purpose, as Sun was pushing for WORA. Oracle is in the proce…

> truth is that .NET still has a bit to catch up outside Windows, while Java lost a bit of its mojo on desktops.

I agree, that's quite a nice summary of the 2 ecosystems

Re: A History of .NET Runtimes

#82
post #67

Earlier quoted context omitted.

Actually Java had jMonkey and LibGDX before Unity became the engine it is today. Which initially was Mac only and only used Boo and Unity Script as programming languages. Khronos does have some official OpenGL specs for Java. There are none from them for .NET. Java runs on iOS via Codename One and Gluon AOT compilers. Native interop in Java was made hard on purpose, as Sun was pushing for WORA. Oracle is in the proce…

About games, maybe the reason is lack of value types in Java which stresses GC and creates pauses. .NET works OK, Unity is the most obvious (cities skylines, kerbal space program, etc.), but also XNA, MonoGame, SharpDX. This creates an ecosystem with healthy amount of libraries and other resources. About native interop, I know Java did it on purpose, but as a developer I don’t care much about the rationale. I’ve hear…

Java had such eco systems first with Java3D, JOGL, Khronos OpenGL bindings, 3D for J2ME, jMonkey, LWJGL

Problem was that Sun never was too serious about their Java Gamming initiative.

Unity only adopted C# after moving out of the Mac into the PC, and it was stuck for ages in 3.5 as they didn't want to pay for the new licenses. Which meant it grew to a kind of C# dialect, which is being fixed now.

ManagedDX and XNA were Quixotic projects not well seen by WinDev. Which replaced XNA with DirectXTK when given the opportunity.

Which took a couple of years effort until Microsoft acknowledged the work done by the MonoGame guys.

Things take ages in Java because there are multiple vendors and everyone has to contribute to the process.

Intel has provided SIMD auto vectorization improvements. There are a couple of talks about it.

Re: A History of .NET Runtimes

#83
post #42

Earlier quoted context omitted.

> C# generics are an (arguably improved) Java generics clone That one at least is incorrect - C# had generic types long before Java

I didn’t know that, thanks for the correction! (Edit: although now I’m not sure I was wrong after all; see my reply to the other comment) I had the wrong idea because (if I understand right) C#’s generic collections seem to be a copy of Java’s (which in turn were inspired by C++’s STL). Do I have that one the right way round? The C# collections use generally poorer name choices (e.g. IEnumerator, which does not actua…

Java's collections are not much like STL (and pre-date Java generics) and important implementation details of generics in C++, C# and Java differ very substantially.

Re: A History of .NET Runtimes

#84
post #18

Earlier quoted context omitted.

Yep, they were forced to sort out the mess introduced with WinRT, UAP, UWP, by making UWP .NET Standard 2.0 compliant, and now making Forms, WPF and EF 6 runnable on top of .NET Core 3.0. However given the last Office related announcements, it appears that the reorganization did little to sort out those political issues.

Next stop, making UWP crossplatform :)) Regarding the political issues, the Silverlight/WinRT clusterfuck also helped with WindowsPhone downfall. Release 1.0 and next major update offered a API incompatible with 1.0, what a clusterfuck....

This exists - UWP code and UI - deployed to iOS, Android, and WebAssembly.

It's called UNO, check out https://platform.uno/ and https://platform.uno/#Comparison

!! By the way to anyone who wants to build a system in UNO - I would like to build one. !!

I'm a .NET developer with the perfect experience to leverage this system. I've been doing full stack and front end on various platforms for 20 years, and .NET for 15 years (version 1) and thus can leverage UNO to provide rapid and quality development.

I've already done advanced XAML in Silverlight and WPF with MVVMLight and PRISM application architectures based on TDD/CI/CD, animations, transforms, control templates, control building, designing products.

I'm also good with Blend and do the roundtrip Blend designer to Visual Studio developer workflow, or do both parts myself to design a full front end UX, UI, and code, and well as the rest of the full stack.

If you're interested to build a system or product built on UNO with me, get in touch!

Re: A History of .NET Runtimes

#85
post #7

I think the history of the internal politics at Microsoft in regards to .NET and also the external industry trends is fascinating. The common thinking is that C# & .NET was a ripoff of Sun Java because of the "write once run anywhere" threat. That's sort of true but missing some nuance. I'm not a MS insider but here's my understanding of what happened. We have to separate the C# language from the CLR runtime. In the…

It does seem like all these .NET projects are reactions to rival technologies. C# is a Java clone, C# generics are an (arguably improved) Java generics clone, .NET Micro is J2ME, Silverlight is Flash, etc. What are some examples of where C# / .NET paved the way and others followed? Maybe popularizing async/await? I’m definitely not claiming MS as a whole is always a follower. It seems like Direct3D led the way for th…

> Generics in the runtime not the compiler (c# 2)

> Functional deeply integrated into a mainstream language (LINQ c# 3)

> Unified graphical application model incorporating all main styles of web, forms, svg, and 3d. (WPF .net 3.5)

> Compiler language services (c# 5)

> Async await (c# 5)

Re: A History of .NET Runtimes

#86
post #7

I think the history of the internal politics at Microsoft in regards to .NET and also the external industry trends is fascinating. The common thinking is that C# & .NET was a ripoff of Sun Java because of the "write once run anywhere" threat. That's sort of true but missing some nuance. I'm not a MS insider but here's my understanding of what happened. We have to separate the C# language from the CLR runtime. In the…

"Two major forces outside of Microsoft's control curtailed .NET's planned world dominance: (1) the rise of Javascript in the browser which negated .NET Silverlight, and also Java applets and Flash. (2) the rise of Apple iOS and Android." I agree with those 2 forces: 1) the raise of javascript: Now is starting to develop an answer to this in Blazor ( https://github.com/aspnet/Blazor ) 2) iOS and Android: both are here…

Shameless plug - do you want a system built with either Blazor or UNO.

I'm a .NET developer with the perfect experience to leverage this system. I've been doing full stack and front end on various platforms for 20 years, and .NET for 15 years (version 1) and thus can leverage UNO to provide rapid and quality development.

I've already done advanced XAML in Silverlight and WPF with MVVMLight and PRISM application architectures based on TDD/CI/CD, animations, transforms, control templates, control building, designing products.

I'm also good with Blend and do the roundtrip Blend designer to Visual Studio developer workflow, or do both parts myself to design a full front end UX, UI, and code, and well as the rest of the full stack.

I've also done a lot of Razor MVC and modern web front end and I can't wait to get into Blazor as well - it seems about the dream platform for my style of development.

If you're interested to build a system or product built on UNO or Blazor with me, get in touch!

Re: A History of .NET Runtimes

#87
post #33

As someone outside the .net world, is there a wasm version? Can I run a .net language in a web browser and have access to the DOM, or render the UI for a .net app as DOM objects on a web page? That would be super useful.

Yes there's UNO for XAML to phones/wasm, and Blazor for c#/html instead of js/html modern web.

Shameless plug - do you want a system built with either Blazor or UNO.

I'm a .NET developer with the perfect experience to leverage this system. I've been doing full stack and front end on various platforms for 20 years, and .NET for 15 years (version 1) and thus can leverage UNO to provide rapid and quality development.

I've already done advanced XAML in Silverlight and WPF with MVVMLight and PRISM application architectures based on TDD/CI/CD, animations, transforms, control templates, control building, designing products.

I'm also good with Blend and do the roundtrip Blend designer to Visual Studio developer workflow, or do both parts myself to design a full front end UX, UI, and code, and well as the rest of the full stack.

I've also done a lot of Razor MVC and modern web front end and I can't wait to get into Blazor as well - it seems about the dream platform for my style of development. I would favour Blazor because it's in the html and browser world and closer to the rest of the industry and an more open platform.

If you're interested to build a system or product built on UNO or Blazor with me, get in touch!

Re: A History of .NET Runtimes

#88
post #82

Earlier quoted context omitted.

About games, maybe the reason is lack of value types in Java which stresses GC and creates pauses. .NET works OK, Unity is the most obvious (cities skylines, kerbal space program, etc.), but also XNA, MonoGame, SharpDX. This creates an ecosystem with healthy amount of libraries and other resources. About native interop, I know Java did it on purpose, but as a developer I don’t care much about the rationale. I’ve hear…

Java had such eco systems first with Java3D, JOGL, Khronos OpenGL bindings, 3D for J2ME, jMonkey, LWJGL Problem was that Sun never was too serious about their Java Gamming initiative. Unity only adopted C# after moving out of the Mac into the PC, and it was stuck for ages in 3.5 as they didn't want to pay for the new licenses. Which meant it grew to a kind of C# dialect, which is being fixed now. ManagedDX and XNA we…

> Unity only adopted C# after moving out of the Mac into the PC

Not quite true; Unity has always used Mono. The very first Unity 1.0 version in 2005 was already using C#/Mono.

> Which meant it grew to a kind of C# dialect

Unity never had it's own "C# dialect".

Re: A History of .NET Runtimes

#89
post #17
post #3

Earlier quoted context omitted.

No, SQL Server just uses the normal .NET Framework to execute managed code which is also implied by the name of the feature, Common Language Runtime (CLR) Integration. Well, maybe one could also read this as integrating - in the sense of implementing - a CLR into SQL Server.

Yes, SQL Server hosts the .NET framework runtime but with added security configuration. There are also other applications hosting the framework (like IIS), and you can actually host the framework yourself (both the full and core framework). I was actually playing with the idea of hosting .NET addons in Kodi but it turns out it is too much work for a single developer as a hobby project.

What would be the advantage of .NET Kodi addons over Python? They would be faster that's for sure, but if I understand it correct, addons are not the main reason of Kodi suboptimal performance. The downsides are obvious - while you can relatively easy skim over the source code of the Python addons, it wouldn't be easy with .NET binaries - and most of the addons wouldn't provide source code. And the regular user can easily hack the feature, fix or two into Python addon code by himself, that wouldn't be so easy with .NET addons.

Re: A History of .NET Runtimes

#90

Back in 2008/9 I was a co-founder at a company (Red Five Labs) that created a .NET Compact Framework runtime for Symbian OS (featured on most Nokia & Samsung smartphones at the time). We got to a .NET CF 2.0 level of compatibility. It was a venture-backed startup out of Johannesburg, South Africa. Although we wrote the runtime ourselves, we made extensive use of some of the mono libraries until we were able to rewrit…

What happens to that code once the company disappears?
Post reply on HN