Microsoft Common Language Runtime To Be Cross-Platform
axlrosen alerts us to a Microsoft sleeper announcement from Mix07: a version of its Common Language Runtime will be available cross-platform. The Core CLR shows up as part of the Silverlight SDK that Redmond is open sourcing. From the blog posting: "The biggest Mix '07 announcement made on opening day of this week's show was one that Microsoft didn't call out in any of its own press releases: Microsoft is making a version of its Common Language Runtime available cross-platform. The CLR is the heart of Microsoft's .Net Framework programming model. So, by association, the .Net Framework isn't just for Windows any more."
Now supporting XP and Vista!
Eviscerati.Org: All Hail the Eviscerati
Wasn't .NET already cross-platform with the introduction of Mono?
My blog
That's great. Now if Microsoft would actually implement a few web standards (rather than spewing out more Microsoft "standards") I might actually trust them. As it happens, though, I don't. Internet Explorer has the absolute worst track record of all the modern web browsers. It's fairly straight forward to tune Javascript/DOM code to run in Mozilla, Opera, and Safari. But Internet Explorer? Meh. Let's just say that it adds another 30-50% to the project time.
Now Microsoft wants to broadcast their wonderful multimedia technology that will enhance the web, be cross-platform, show cool multimedia-type stuff that we can already do with SVG or Canvas. Woohoo. Whoopdedoo. Wow.
Not.
This smacks of yet another Microsoft embrace, extend, and extinguish stratgey. "Yeah, guys. Come on in. Here's the Silverlight plugin which works on Macs. We're going to be real buds with these Mac peoples! We're even porting a teeny bit of the CLR (ed: And you thought Java was browser bloat?) to make our XAML/Avalon/WPF technology work for you guys. Oh, did we mention that Macs are kind of slow? (ed: They are now!)"
Next version: "We haven't seen enough customers demand support for the Mac. So we're dropping the plugin for that platform and adding some amazing new features to the Windows version." *FWHHOOOSH* Extinguished.
If Microsoft really wanted to compete, they'd be the first to implement the OpenGL API for the Canvas tag that the WHATWG has been working on. Oh, but wait! That wouldn't be Window-y enough. It would have to be the DirectX API through Javascript, dontchaknow.
Javascript + Nintendo DSi = DSiCade
From denial, to grudging acceptance, to surprised admiration, is how the process works, and whether you hate Microsoft or not, a few months playing with C# usually results in the comment "Damm, why didnt they do this with Java?"
The Borg isnt dead, they have only been regenerating. Prepare to modulate shield frequencies, because they are coming.......
The summary got my hopes up. I like C# and .NET quite a lot, but I also like Mac OS and Linux. I've been trying out Mono and Monodevelop (as well as some Xcode plugins for C#/Mono), but they're really not a good match for VS2k5 yet. (I'm hoping that "yet" comes true and doesn't turn into "ever".)
Unfortunately, only the "Core CLR" will be ported, and only to the Mac OS (probably due in part to MS Office for Mac), not Linux, and not even older (PPC) Macs. I also seriously doubt there will be much in the way of developer tools for the(se) other platform(s).
Sad, really. Office and VS are the only two decent Microsoft products, and they refuse to port either of them to a decent platform (aside from the tiny fragment of Office that makes it to the Mac).
That's exactly what Microsoft did with ActiveX. They pushed ActiveX as cross-platform, delivering an ActiveX SDK for the Mac and supporting ActiveX components in IE.
Then after a while, they dropped ActiveX support, saying it was too much effort to make it work on OS X.
Then after a while longer, they dropped IE too.
Same with WMV. Seen Windows Media Player for the Mac? No? That's because they dropped it a while back, and killed all support for DRM-protected Windows Media on the Mac. (Instead they suggest that people use a third party QuickTime plugin that only handles unprotected WMV.)
Jeez, lots of Microsoft fanboys or astroturfers moderating today.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
That sounds familiar. http://spetskod.blogspot.com/2007/04/learn-to-love -net.html
Sam ty sig.
From TFA:
Which is to say that it's being ported just for Silverlight. Silverlight depends on XAML. (Originally expanded to Extensible Avalon Markup Language.) XAML is the serialized form of WPF (Windows Presentation Foundation) vector drawing commands. WPF is based around
Microsoft is literally porting a chunk of Windows Vista to provide gee-whiz effects. Thus the use of Silverlight will always tie you back to Microsoft. Embrace, extend, extinguish.
Now where are the DOM 2 Events, Microsoft?
Javascript + Nintendo DSi = DSiCade
It's a trap!
"We have both kinds of music here: Country *and* Western."
Excuse me, but please get off my Pennisetum Clandestinum, eh!
Silverlight 1.1 runs on Intercontinental Ballistic Missiles? Well, that is certainly worrisome.
Yeah -- nice try -- it's not a strawman -- The call out to unmanaged code and return each take over 1000 cycles. (And such callouts don't work at all in mono.) So something that should take about 500 cycles (3D perlin noise generation) now takes ~2500. Ouch -- just a bit slower than leaving it managed. (For image rendering with procedurally generated textures, the perlin noise generator is frequently a *huge* spike in the
.net advocates often claim it's just as fast as native code, when it is demonstrably not.
.net is not appropriate for performance sensitive computationally intensive programs. It's fine for UI driven stuff where that code never needs to run anywhere other than windows.
Sometimes you need nice fast math functions that can take a small handful of cycles.
My beef is that
My argument is that
Oh, and speaking of strawmen, where did I talk about hand optimized vector assembly? Or Bash? WTF?
Ian Ameline
Probably not, since the Microsoft Permissive License has a GPL-like 'viral' clause, which means that if Mono used the code, Mono would probably have to be licensed under the Ms-PL.
.NET code.
I don't see a "viral" clause in the Ms-PL. All the Ms-PL requires is that you include its copyright notice with your distribution and that the Ms-PL licensed code itself remains under the Ms-PL.
"Is Mono still necessary?" Yes.
Yes, but not because of the license. It's because Mono does a lot more than run CLR and
Well, except Mono is a small project
Mono is a big project as far as such projects go.
that Microsoft would rather see die.
I don't know. Who cares?
It will disappear when they are ready to drop litigation bombs.
The legal situation surrounding Mono has been more carefully analyzed than any other open source project I can think of. Unless you can point to a specific legal problem with Mono, you're just spreading FUD.
What disturbs me more is how the term "open source" has been co-opted and soiled by Microsoft when the license terms which will only be FSF approved when microsoft owns the FSF.
The Microsoft Permissive License looks like a perfectly good open source license to me; it's basically like Apache. In particular, it includes patent grants. The FSF probably doesn't like the Ms-PL because it's BSD/Apache-like.
If you can identify a specific problem with the Ms-PL, please point it out. Otherwise, please stop spreading FUD about it.
MS had already said that they planned to support Apple (and WinCE) for their WPF/E (windows presentations everywhere) technology. They then renamed that to Silverlight, and lo-and-behold, it still supports Apple. Where's the news?
Not to mention that this was predicted all along. MS has been supporting the MacOS for years, and hinting at the cross-platform possibilities of their net platform. MS wants the Mac to replace Linux as the alternative to Windows, so this is a pretty straightforward decision for them. So why are people acting suprised?
You say this sarcastically, but this is what Microsoft really means when they say "cross-platform": it runs on all Windows platforms. (Vista, XP, Mobile, XBOX, etc.) I'm not joking. There should be (+1, Sad, Sad World) moderation.
Don't think of it as a flame---it's more like an argument that does 3d6 fire damage
Unfortunately neither of them actually knows what they are talking about.
For starters, a.k.a. why Chester K doesn't know what he's talking about, at MIX they showed JavaScript in the browser against C# in Silverlight v1.1 - not C# in JavaScript. The speed comparisons are correct.
why AKAIAmBatman is wrong is because this is absolutely not about the performance of rendering. The setup here is that you have one app, with whatever that infrastructure is running in, delegating to the player code. The player code being C#, JavaScript, or a human. This is how you typically do chess games and no surprise it's how they did it here. Therefore the JavaScript is doing no rendering of any kind. That is unless the game was implemented using JS, but even if it was it doesn't matter. The idea is to give each player 1 second to calculate and they give you the best move and how many calculations done. This is merely a measure of raw computational power: calls, either some array lookups, and simple math (potentially bitwise arithmetic, potentially not depending upon the implementation). Finally they used the same algorithm just implemented in the two different languages.
And because Chester K was misinformed this populates down into AKAIAmBatman's comments where things go wrong. The Tamarin engine has nothing on this. ActionScript has nothing on this. What we're talking about is approaching near native code speed in the browser. JavaScript, no matter what, just isn't going to get there and still be JavaScript. It's way too dynamic. Maybe you can do some whole program analysis but even that is going to be tough. It seems the goal for Tamarin is only a 10x improvement (http://simonwillison.net/2006/Nov/9/tamarin/) if you look at the source code. That means that C# will still be 1000 times faster than the improved Tamarin engine. It's just a fact - JavaScript sucks.
Are you sure that Mono does not support callouts to unmanaged code?
i braries
http://www.mono-project.com/Interop_with_Native_L
cpeterso
And finally, properties aren't cryptic in practice, because they can only be confused with public fields, which no one uses - public fields are deprecated, they don't produce the same metadata, and they're no more efficient when the JIT can inline property accessors. Private fields are typically distinguished by prefix or case, much like class names are distinguished from other identifiers (which is why I know "foo.bar()" probably isn't calling a static method).
Visual IRC: Fast. Powerful. Free.
Ryan-
At best you could implement .NET with Mono but there was no guarantee that a change by MS would not negate the hard work of the Mono team.
.NET does a fine job at being cross platform, contrary to what everyone around here likes to believe. I've got everything from high-volume mail servers to data collection and processing apps to billing systems, all written in C#, running on Windows Server 2003, Linux, and Mac OS X. It is obviously not perfect at being cross-platform, but IMHO, it makes up for that in plenty of other areas.
Really? How so? What kind of change from MS would make Mono stop working? In the absolute worst possible case, I'm sure Microsoft could hamper future development of Mono, but that takes nothing away from any apps that are currently running just fine on Mono.
Speaking on ~4 years of experience,
Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
From inside the mind of Microsoft, 'Cross Platform' could well mean something like this :
.. this being a feature that users have strongly demanded from Microsoft during pre-production surveys and beta tests.
Being Cross-Platform means that Silverlight will be available on many different supported Operating Systems, and Silverlight represents THE most cross-platform product produced by Microsoft in its long and exciting history.
The wide range of operating systems targetted for production release of Silverlight include :
Vista Enterprise
Vista Ultimate
Vista Home Premium
Vista Business
Vista Home Basic (Limited support for some features)
The features and facilities of the free cross platform runtime binaries will understandably differ from platform to platform. For example, on Vista Home Basic, the silverlight runtime binary will only operate in full resolution no more than 3 times in any 24 hour period
Silverlight for Vista Enterprise and Vista Ultimate will be able to run for a whole 8 continuous hours in any 24 hours period before a noticable degradation in performance and visual resolution is apparent. Again, this is in response to demand from users for a safer and more secure experience when executing silverlight applications, and demonstrates Microsoft's committment to tailor its development to exactly suit the wishes of its valued users.
Silverlight makes use new synergistic paradigms in the field of computer science to provide the richest experience possible for the end user. Unfortunately, such highly advanced concepts as are seen in this new platform are not easily retrofitted to older legacy operating systems which are no longer vendor supported. Whilst Microsoft would dearly love to provide runtime binaries for systems such as Windows XP, our users have shown a clear preference for the more modern and powerful Vista range of operating systems, and so it is unlikely that a fully supported Silverlight runtime will be made available for Win XP. There may be some residual interest for Windows XP in the hobby niche market, however professional organisations overwhelmingly choose Vista.
Similarly, antique operating systems such as VMS, PrimeOS, MS-DOS and Linux either do not provide the necessary power to run Silverlight, or may in some instances have serious question marks regarding their legality, which unfortunately may impact our ability to support Silverlight in these environments. But again, the demand there is very low-impact, being part a dwindling hobby niche market of little mainstream interest.