Live data from Hacker News

A History of .NET Runtimes

mattwarren.org

51–60 of 102 posts

Re: A History of .NET Runtimes

#51
The AOT compilers misses NGEN, which is part of .NET Framework since v1.0, although it only does dynamic linking with very little optimizations.

And the cloud compiler created for Windows Phone 8.x, based on Bartok from Singularity.

https://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-an...

https://channel9.msdn.com/Events/Build/2012/3-005

.NET Native is an improvement of this work.

Re: A History of .NET Runtimes

#52
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.

Also Uno if you prefer XAML https://platform.uno/

Re: A History of .NET Runtimes

#53
post #34

Few more missed include (Device CLR's were in C, Desktop/Server in C++): (1) CLR for Sony/Ericsson phone OS and (2) Variant running on linux (in 2001/2002). I worked on the Compact Framework team back in the day so there's a few more things to point out related to the internal politics of Microsoft at the time. The devices strategy was a mess even back then due to Alchin/Valentine/Ballmers love of Windows desktop 'ev…

Was the framework you mentioned in (1) a Microsoft project, or something else? As a matter of interest, what did you do on the CF team?

Worked in the Compact CLR Execution Engine, IL Verifier, and other stuff. On (1) both were done at MS but ended up as proof of concept.

Post Sathya Microsoft has moved to a more open model, hence the full blown CLR on Linux.

Re: A History of .NET Runtimes

#54
post #25
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…

> Bill Gates programmed in BASIC in the 1970s and not in low-level C/C++/assembly He didn't program in BASIC, he programmed a BASIC interpreter in 8080 assembly.

True. But he definitely had a love for BASIC.

Re: A History of .NET Runtimes

#55
post #24

Earlier quoted context omitted.

>.NET is still very popular but it definitely did not fulfill the more ambitious dreams that Bill Gates had for it. There is still time. It just recently got open-sourced, got a compiler written in itself and got a run-time unbundled form all the legacy crap. Those things held C#/.NET back. I feel this is a good time to adopt it for people who want to have reasonable performance, static typing and a mix of OOP/functi…

Part of me, though, worries that the ship has sailed. For a while .NET was probably completely fine from Microsoft's perspective, because the platform was (AFAICT) dominant in their target market of enterprise apps. Then big data became a thing, and basically the entire core ecosystem was written in Java. I think it's becoming a bit of a wedge issue - Java has everything that .NET has, but .NET does not have its own…

> Java has everything that .NET has

C# certainly has many features that Java, the language, does not. It gets better if you consider Kotlin instead, but it's not clear to me if that language has a chance of becoming on par with Java, popularity-wise.

Re: A History of .NET Runtimes

#56
post #24
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…

>.NET is still very popular but it definitely did not fulfill the more ambitious dreams that Bill Gates had for it. There is still time. It just recently got open-sourced, got a compiler written in itself and got a run-time unbundled form all the legacy crap. Those things held C#/.NET back. I feel this is a good time to adopt it for people who want to have reasonable performance, static typing and a mix of OOP/functi…

LINQPad is awesome, and I'm always amazed to still find a lot of .NET developers who've never given it a try.

A cross platform version is high on my wish list.

Re: A History of .NET Runtimes

#57
post #42

Earlier quoted context omitted.

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…

> 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 actually enumerate the elements) so I assumed they wanted to avoid making it identical to Java.

Re: A History of .NET Runtimes

#58
post #41

Earlier quoted context omitted.

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…

How come C# generics are a copy of Java when they were invented first and the only reason they didn't make it to 1.0 was not to delay the release schedule? Java annotations are based on .NET atributes, and initially had a clusmy implementation requiring an annotations processing tool until they finally got integrated into javac. LINQ paved the way to more FP acceptance among enterprise developers. Check "confessions…

Hang on, Wikipedia says Generic Java was 1998, generics were adopted in J2SE 5.0 in 2004, and C# 2.0 wasn’t released until 2005. Am I missing something? I’m sure there was cross-fertilization both ways but it seems like Java generics came first.

LINQ is a good one though, that’s definitely a .NET innovation.

Re: A History of .NET Runtimes

#59
post #49
post #24

Earlier quoted context omitted.

>.NET is still very popular but it definitely did not fulfill the more ambitious dreams that Bill Gates had for it. There is still time. It just recently got open-sourced, got a compiler written in itself and got a run-time unbundled form all the legacy crap. Those things held C#/.NET back. I feel this is a good time to adopt it for people who want to have reasonable performance, static typing and a mix of OOP/functi…

> 1. It is possible to write reasonably "functional" applications in .NET. The only problem I had with that is lack of built-in copy-on-write data types and prevalent nullity. I've tried to minmise that pain over the past few years with my 'functional language extensions' for C# [1]. It's a library with most of the common monadic types (as structs so there's no null issues); Immutable collection types that don't have…

Wow, what a nice project you have there.

I've read that the next C# will have non-nullable reference types, have you thought about how to make your framework fit in with that? It's a "natural" Some/None in a way.

Re: A History of .NET Runtimes

#60
post #41

Earlier quoted context omitted.

How come C# generics are a copy of Java when they were invented first and the only reason they didn't make it to 1.0 was not to delay the release schedule? Java annotations are based on .NET atributes, and initially had a clusmy implementation requiring an annotations processing tool until they finally got integrated into javac. LINQ paved the way to more FP acceptance among enterprise developers. Check "confessions…

Hang on, Wikipedia says Generic Java was 1998, generics were adopted in J2SE 5.0 in 2004, and C# 2.0 wasn’t released until 2005. Am I missing something? I’m sure there was cross-fertilization both ways but it seems like Java generics came first. LINQ is a good one though, that’s definitely a .NET innovation.

Yes you are missing the remaining part of the sentence "the only reason they didn't make it to 1.0 was not to delay the release schedule".

Don Syme of F# fame was leading generics research since 1999, while they were designing the CLR, but it was clear they would have to delay 1.0 if they wanted to included them, so they just went ahead without them for 1.0 release.

https://blogs.msdn.microsoft.com/dsyme/2011/03/15/netc-gener...

https://blogs.msdn.microsoft.com/dsyme/2012/06/19/some-histo...

https://blogs.msdn.microsoft.com/dsyme/2012/06/26/some-more-...

Additionally C#, like Java, also had CMU, ML, Ada, Eiffel, Sather, BETA, C++ and Modula-3 as possible sources of inspiration for generics.

Post reply on HN