Live data from Hacker News

A History of .NET Runtimes

mattwarren.org

91–100 of 102 posts

Re: A History of .NET Runtimes

#91
post #88
post #82

Earlier quoted context omitted.

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".

Given that Unity uses different conventions for property names and magical function names with reflection for events, that is a dialect to me, as it is not how C# is used by regular developers.

Actually there are occasional questions on C# forums caused by people learning C# via Unity and then facing issues when using pure .NET.

Then there is the new HPC# for the new ECS and Job systems, which subsets C#.

As for Mono being already in 1.0, OS X only version, I am unsure about it, but the old blog was taken down. So I take your word for it.

Re: A History of .NET Runtimes

#93
post #60

Earlier quoted context omitted.

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/n…

Just lost out in a photo finish, then (over a span of 5 or 6 years...!) But Generic Java was started in 1998 (IIRC originally as part of Pizza). It seems reasonable to say that Java covered this ground first.

Faire enough I forgot about Pizza.

Although what Java got wasn't all of Pizza, which had better generics.

Re: A History of .NET Runtimes

#94
post #83

Earlier quoted context omitted.

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.

They are not very similar in implementation due to the nature of the languages. But the idea that it would be useful for the Java standard library to provide flexible, extensible, general-purpose containers (as opposed to ad-hoc stuff like Vector and Hashtable) was inspired by the STL.

Re: A History of .NET Runtimes

#95

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 depends on who you ask. My opinion is Java doesn’t have proper generics. In Java they’re just language-level syntactic sugar. Type system is broken i.e. type information is lost at compile time. This makes it hard to do functional-style programming in Java, that’s why other people made Scala. Performance is broken too, generic containers box everything…

that’s why other people made Scala

I think you mean “the same people”, at least in the specific case of Martin Odersky. :)

Re: A History of .NET Runtimes

#96
post #83

Earlier quoted context omitted.

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.

They are not very similar in implementation due to the nature of the languages. But the idea that it would be useful for the Java standard library to provide flexible, extensible, general-purpose containers (as opposed to ad-hoc stuff like Vector and Hashtable) was inspired by the STL.

I don't think that's accurate or that the general idea comes from STL. STL itself is a very particular kind of design.

Re: A History of .NET Runtimes

#97
post #91
post #88

Earlier quoted context omitted.

> 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".

Given that Unity uses different conventions for property names and magical function names with reflection for events, that is a dialect to me, as it is not how C# is used by regular developers. Actually there are occasional questions on C# forums caused by people learning C# via Unity and then facing issues when using pure .NET. Then there is the new HPC# for the new ECS and Job systems, which subsets C#. As for Mono…

That's just coding style, which by itself is not a new dialect. Yes a bunch of APIs in Unity use different naming conventions from the rest of .NET world, but the language is the same.

The new HPC#/Burst indeed are subsets of C#, but that's a very recent development, and completely unrelated to "Unity had to make their own C# dialect to avoid Novell/Xamarin licensing issues".

> As for Mono being already in 1.0, OS X only version, I am unsure about it, but the old blog was taken down

I have worked at Unity since 2006. Yes Unity was Mac only at that point, but it still used Mono there.

Re: A History of .NET Runtimes

#98
post #96

Earlier quoted context omitted.

They are not very similar in implementation due to the nature of the languages. But the idea that it would be useful for the Java standard library to provide flexible, extensible, general-purpose containers (as opposed to ad-hoc stuff like Vector and Hashtable) was inspired by the STL.

I don't think that's accurate or that the general idea comes from STL. STL itself is a very particular kind of design.

What’s a good example of a really flexible, composable containers library that predates STL?

I think STL was the first mainstream one. I guess some of the ideas came from Ada? But I don’t know if Ada had standardized containers.

Re: A History of .NET Runtimes

#99
post #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.

I tried to only focus on runtimes, although the line got a bit blurred at times! But yeah, it would be nice to have included a mention of NGEN. When I get a chance I'll update the post > And the cloud compiler created for Windows Phone 8.x, based on Bartok from Singularity. Interesting, I didn't realise that all this came from Bartok, thanks for the info

They are not fully explicit about it, just talking about Bartok and MDIL as if invented for WP 8, but they are scattered all over Singularity documentation and papers, so it is quite obvious where they come from.

Re: A History of .NET Runtimes

#100
post #96

Earlier quoted context omitted.

I don't think that's accurate or that the general idea comes from STL. STL itself is a very particular kind of design.

What’s a good example of a really flexible, composable containers library that predates STL? I think STL was the first mainstream one. I guess some of the ideas came from Ada? But I don’t know if Ada had standardized containers.

Smalltalk and Eiffel collections.

Long before STL was a thing in C++.

Stepanov started STL original design in Ada, before switching to C++. Recent Ada standards have adopted collection classes as well.

Post reply on HN