Microsoft Linking Silverlight, Ruby on Rails
CWmike writes "Friday Microsoft will demonstrate integration between its new Silverlight browser plug-in and Ruby on Rails. Microsoft's John Lam, a program manager in the dynamic language runtime team, said in a recent blog item: 'Running Rails shows that we are serious when we say that we are going to create a Ruby that runs real Ruby programs. And there isn't a more real Ruby program than Rails.' Also at the event, Microsoft officials will demonstrate IronRuby, a version of the Ruby programming language for Microsoft's .Net platform, running a Ruby on Rails application."
Embrace, extend,.... now wait for it.
Engineering is the art of compromise.
From the article:
"The IronRuby project in general has featured processes that make it easier for Microsoft to develop open-source projects, said Lam.
"What we learn from building IronRuby will be applied in other product groups to help us become more open and transparent than we have been in the past," Lam said."
How does an company like Microsoft "learn" to become more "transparent"?
Um... Actually it is:
http://www.mono-project.com/Moonlight
Microsoft is assisting in Moonlight's development:
http://lwn.net/Articles/248198/
It works on Safari on Mac OS, and might be useful to have when the Linux support is done too. Heck, it's early even for use on Windows. Things only get moderately interesting for me once Silverlight 2 is done, and it isn't yet for any platform.
Beware: In C++, your friends can see your privates!
Since Silverlight isn't cross platform, why bother?
What are you talking about? It runs on all modern versions of Windows.
Stick Men
The upshot is that you should also be able to run IronRuby on the Mono Common Language Runtime, presuming that Microsoft's implementation adheres to it's own ECMA-"approved" CLR standards...
I confess I don't know a lot about Ruby on Rails, but I've looked into it once or twice. I thought Rails was a Server-Side technology for creating dynamic websites? I thought SilverLight is a Flash-clone, for implementing client side interfaces and rich media playback? Is Microsoft talking about a SilverLight-based user-interface which connects to a Rails backend running on the server? Or actually Rails running in the browser? What benefits would Rails in the browser bring you?
Also, slightly off-topic, but is anyone else concerned about the security implications of pushing more and more languages/capabilities/functionality into the web browser, which can be controlled by scripts/code loaded from remote, un-trusted, servers? Why can't a web browser just be a web browser?
quote from the mono project FAQ (http://www.mono-project.com/FAQ:_General): "The Mono API today is somewhere in between .NET 1.1 and .NET 2.0, see our Roadmap for details about what is implemented."
.Net framework is 3.5.
.NET on anything else than Windows. Let's get real and see that the Mono or Moonlight projects are just PR... thanks.
while looking at the MS website it seems that the latest
frankly at this point I would seriously doubt that MS (or Novell, for that matter) has any serious intention of implementing
anybody needs my tinfoil hat?
I had another sig before, but this one is better
Ummm, actually it isn't, because Silverlight encompasses a lot more then just a subset of WPF and XAML. There are related technologies, particularly related to multimedia, around Silverlight, Windows Media in particular, that are very much a part of creating Silverlight content as we see it now on Microsoft platforms. Everyone else is going to have to replicate that, and even worse, keep up with the moving target of successive implementations. It's another classic example of Microsoft keeping their implementation ahead, and first to market, and it's a well worked routine now.
I'd love to be able to say otherwise, but these 'olive branches' that we're seeing are all designed to get the usage of Microsoft technology on the web to some sort of critical mass. Nothing more. If that is ever achieved, your guess is as good as mine as to whether those branches will stay strong and whether Microsoft will ever have a continued, vested interest in Moonlight or Ruby or Rails. I just find what people say around these stories fascinating. There's all sorts of articles and blog entries written by various people about how Microsoft is changing or asking "Is Microsoft changing?", "Is Microsoft Open Sourcing....." etc. etc. It's ridiculous.
At the moment, I'm trying to get over to a female acquaintance why it's a bad idea to get back together with exes. She persists in believing that it's better the second, third or fourth time around and that things will change. Nothing ever does change though. Any apparent change you think you see is short-lived, a leopard doesn't change it's spots and if it ever was going to happen, well, it would have happened by now. You can't get past someone's history, their history is their problem not yours and you only end up getting used.
.NET Framework 3.5 is merely .NET Framework 2.0 with an enhanced class library (includes WCF, WPF, and so on). If Mono supports custom .NET classes, it technically is .NET 3.5
For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
I went to Silverlight's site:
./Silverlight.exe ./Silverlight.exe: cannot execute binary file
http://www.microsoft.com/Silverlight/
Allowed the site in no-script.
Hit the "click to install" button.
And it downloaded a file called "silverlight.exe"
I clicked on it, and Firefox asked me to choose an application to open it.
I opened a terminal, and here's the results.
[mike@orion ~]$ l Silverlight.exe
-rw-rw-r-- 1 mike mike 1427520 2008-06-02 18:23 Silverlight.exe
[mike@orion ~]$ chmod 775 Silverlight.exe
[mike@orion ~]$
bash:
[mike@orion ~]$
[mike@orion ~]$
So, what's MSFT's point again?
Technology -- No Place For Wimps! Grateful Dead and Jerry Garcia Chatroom -- http://www.wemissjerry.org
As opposed to, hm, Apple, which definitely does not want to benefit primarily Apple customers. Which is why iTunes has been released for Linux... ??
Plus, open source people definitely want, primarily, to benefit people that don't use open source.
Seriously. What business DOESN'T want to bring better value to their customers? If your object is to benefit people that aren't your customers, your company (or your investors) won't last long.
If you're going to flame Microsoft, do it on good grounds.
I disagree...
The object of Moonlight is to essentially be a "feature-complete" implementation of Silverlight, minus those pesky, patented, DRM-laced multimedia codecs.
The question is, then: "Does your Silverlight-based business application really need to use these pesky, patented, DRM-laced multimedia codecs?"
Which, in the vast majority of cases, is "probably not." Much of this kind of functionality can be had via calls to external (and FOSS) libraries.
Not only that, the DLR and IronRuby are both released under the MS-PL, which is OSI-approved. If anything depends on proprietary libraries, it can be swapped out with a free alternative.
Disconnect and self-destruct, one bullet at a time.
Boss: were have a problem. how do we get a persistence API for our silverlight environment?
Young turk: I know! we could tie the rail and silverlight APIs
Crusty the Unix programmer: yes you could, but then you'd have two problems.
Some drink at the fountain of knowledge. Others just gargle.
Don't get me wrong, I don't necessarily think that something like JavaScript, where the DOM can be manipulated dynamically to create more dynamic webpages, is necessarily a bad thing, or Ajax where data can be sent to the browser to render into the DOM. There could, potentially, be the chance for there to be some kind of buffer overflow in the browser that attackers could exploit - but that is potentially even a problem with straight html + images. I just have to trust the browser developer to do a decent job of coding securely, and to fix found exploits quickly. I'm pretty confident with Mozilla's ability to do that, as well as Apple (Safari), Opera, Konq, etc. Even to some extent Microsoft.
My problem is this concept of putting full-fledged programming languages with full access to the
I don't mind something like Flash or SilverLight if it only lets developers draw stuff on screen, receive mouse/keyboard events, and play sounds, but I don't like the idea of stuff I load from the Internet having access to system calls. That's just scary.
Help them recover it, use silverlight.
Copyright infringement is "piracy" in the same way DRM is "consumer rape"
There's two main versions of the .NET CLR (Runtime): 1.1, and 2.0. .NET 1.1 runs on .NET CLR 1.1 .NET 2.0 through to .NET 3.5 runs on .NET CLR 2.0
.NET 3.0 and 3.5 were language extensions on top of 2.0. They still execute ontop of the same CLR.
.NET 1.1, and they're now targetting full feature compliance against .NET 2.0.
.NET 3.5 apps won't run. It just means certain bits (such as LINQ, WPF, WCF, Anonymous Types, etc) are either not present or not completely implemented yet.
.NET / Mono codebases. Yes, they have shared code, however since Silverlight 2.0 is a vastly cut down version of the .NET Framework.
Effectively,
If memory serves, Mono has recently announced full feature compliance against
That doesn't mean
In either case, Silverlight/Moonlight are seperate from the
This makes full feature compliance of Silverlight 2.0 by the Moonlight crowd that much easier, since the majority of the functionality that is used in Silverlight is already implemented in Mono.
As for Moonlight/Mono being just MS PR, I think Miguel De Icaza might have something quite strong to say about that.
- Novell is actually using Mono to implement apps on their Linux desktop.
- Second Life, amongst other reasonably big apps, is using Mono to provide (or improve) pluggable/scriptable functionality in their apps.
The world is trendy, they're just going where the money is. If people say "we want Ruby", they'll deliver. .NET is a platform made to support multiple language, and aside when core mechanics are required (dynamic vs static language), making a new language on top of the CLR is actually not all that much work. So today its C#, Python and Ruby.... tomorrow it will be language XYZ.... a language is a fairly insignificant thing in this day and age: its all about the platform.
They want it so that no matter which language you prefer, you can use their technology, for better or worse. It is quite a brilliant really. Why should the language be tied to the platform anyway? That I pick native compilation, the Java runtime, or the CLR.... I should still be able to use the language I want.
(Side note: I despise Ruby. Doesn't mean I think it shouldn't be offered as an option...)
If history has taught us anything, it's that people are just not going to ask themselves pointless questions like that.
You don't get a choice. You have to deal with whatever comes down, and what comes down will have pretty much all been created on Windows systems. The key thing to remember hear is that people are not writing content for Moonlight. They are writing it for Silverlight. If it stops working on Moonlight they're simply not going to care when it boils down to it.
Really? These are well worked standard tactics from the past twenty-five years. Do they really need to keep being explained?
Mac OS X:
http://www.apple.com/downloads/macosx/development_tools/silverlight.html
Well, that right there satisfies 'cross platform' as far as I'm concerned. I mean sure, it might not run on -every platform- but very few things that call themselves cross-platform run on my Amiga.
Of course, this is slashdot, so by cross-platform you must mean does it run on linux... and apparenty the implementation that DOES is called Moonlight...
Linux:
http://www.go-mono.com/moonlight/
Does that count as cross platform support too? Personally, I think it does. After all, lots of FLOSS software is developed by a core team of developers on one platform, some even are only developed for one distro, and the ports to other platforms and distros are managed by completely other independant groups, yet we don't deny them being cross platform.
Only thing is, it wasn't Java the language, it was Sun the corporation behind Java that sued Microsoft. Now tell me, which is the big corporation behind Ruby with deep enough pockets to face Microsoft at the courts?
Having a large share of the browser market doesn't necessarily mean you control it -- not when the majority of Web companies are unwilling to give up the other segment of their potential audience. If you'd said that Microsoft controls the intranet, I could maybe believe that... but between PDF and Flash, you could argue that Adobe controls more of the Web than Microsoft does.
Breakfast served all day!
I still remember when most users were using Netscape browsers and Microsoft had a pitiful browser they wanted everyone to use instead. Many technical users pointed out that Netscape was cross-platform and a better choice for a browser. So, Microsoft created Internet Explorer for Macs, Unix and Windows to show that Microsoft understood the importance of a cross-platform browser and would continue to make the browser for all platforms for free. Once they propagated their browser to the bulk of the users, these cross-platform versions stopped being updated. Of course, it was all just a ploy to gain market dominance by confusing the marketplace.
I wish people were smart enough to realize that this latest attempt to tie Ruby to Microsoft is simply the same tactic, used repeatedly by Microsoft, to confuse a marketplace while jamming more poorly conceived Microsoft software into businesses that are not clever enough to look further into the future than the current quarter. Sadly, past examples show that business managers will not learn that Microsoft does not have the best of intentions when they announce any new technology.
The legal MS extensions to Java, the ones in the com.ms.* packages, were fine (well, except for the Morgan Stanley company having their standard java package prefix usurped), and were not what the lawsuit was about. They created Java applications superbly integrated with Windows - but not portable to any other platform, and were perfectly legal. That should have been enough lock in for even Microsoft. But that wasn't good enough for them.
The lawsuit was about their extensions to the java.* core packages - which were expressly forbidden in the license. The license was an actual signed contract. Microsoft tried to argue in court that the contract only applied to Java 1.0, and they could do whatever they wanted with future versions. The court didn't agree.
Having the core Java packages unpolluted is important for making it simple to ensure your application is run anywhere. (Well, except for bugs in native libraries or JVM.) To undo the damage, Sun ended up having to create the 100% Pure Java campaign with a program to check for core extensions.
So, they'll do the open source world a favor and extinguish RoR?
I'll by six copies of Vista for that.
There's two main versions of the .NET CLR (Runtime): 1.1, and 2.0. .NET 1.1 runs on .NET CLR 1.1 .NET 2.0 through to .NET 3.5 runs on .NET CLR 2.0
So far, so good.
Effectively, .NET 3.0 and 3.5 were language extensions on top of 2.0. They still execute ontop of the same CLR.
They weren't "language extensions". .NET 3.0 contains solely library extensions: WPF, WCF, Cardspace, Workflow Foundation, on top of .NET 2.0. .NET 3.5 contains library extensions, primarily LINQ (in its various guises) and additions to the BCL (e.g. System.TimeZoneInfo). I believe there are ASP.NET and ADO.NET enhancements too, but I haven't looked into them. .NET 3.5 also contains the compilers for C#3 and VB9. More on them in a minute.
.NET 2.0SP1, which includes some changes and enhancements to the BCL, such as System.DateTimeOffset.
It's also worth mentioning
If memory serves, Mono has recently announced full feature compliance against .NET 1.1, and they're now targetting full feature compliance against .NET 2.0.
.NET 3.5 apps won't run. It just means certain bits (such as LINQ, WPF, WCF, Anonymous Types, etc) are either not present or not completely implemented yet.
That doesn't mean
Anonymous types are a purely language feature. They don't need any support from the runtime or the libraries. In other words, you can compile a C# 3 app which uses anonymous types, and it will work on Mono (assuming there's nothing else missing, of course). Most C# 3 features fall into this category - they don't need library or runtime support.
.NET 2.0 was fully released, IIRC). However, you can build an app with the MS C# 3 compiler and run it against the Mono platform so long as you don't use any library functionality which isn't supported there. Asking VS2008 to target .NET 2.0 is a good starting point on that front. (It actually targets .NET 2.0SP1, so be careful...)
WPF and WCF are libraries. No language changes are needed, although tooling to support XAML is useful, of course.
LINQ is a mixture of many elements. To use "out of process" queries you need an implementation of expression trees (and compiler support). To use LINQ to Objects you need an implementation of that, but it can be completely separate to the rest of the main platform libraries (see http://www.albahari.com/nutshell/linqbridge.html for example). You can use C# 3 query expressions with no runtime/library support, so long as you've got a C# 3 compiler and a type with suitable methods (or properties).
Last time I looked, mcs support for C# 3 features was somewhat lacking (which surprises me, as Mono had a released version of mcs with C# 2 feature support before
See http://csharpindepth.com/Articles/Chapter1/Versions.aspx for more details on the MS versions available, although that doesn't cover Mono.
In either case, Silverlight/Moonlight are seperate from the .NET / Mono codebases. Yes, they have shared code, however since Silverlight 2.0 is a vastly cut down version of the .NET Framework.
This makes full feature compliance of Silverlight 2.0 by the Moonlight crowd that much easier, since the majority of the functionality that is used in Silverlight is already implemented in Mono
... I won't trust anybody with Rich Client technologies further than I can throw them. Be it Adobe, Curl, Wild Tangent, or - heavens forbid - Microsoft. Take that from an experienced Flash Application Developer. For years and years now Adobe has been keeping Linux on a short leash. Allways coming up late, now, once again, limiting proposed hardware acceleration and certain functions to certain host OSes, ect.
I like Flash and it's a remarkable asset. But I've never fully trusted these guys and my trust in them isn't growing.
Yet it looks as though after 10 years Sun is finally getting serious at attempting move towards RIA territory. If JavaFX is halfway decent, it could actually become the new king of all things RIA we've all been waiting for. If the core components of it are open source and the reference implementations aswell, then we're all set for a bright new future of RIAs.
We suffer more in our imagination than in reality. - Seneca
An odd detail for you... In 2000-ish, I worked for a startup with a Java-based server application. It ran significantly faster on really cheap NT hardware using Sun's JVM than it did on really expensive Solaris hardware using Sun's JVM.
You can't really blame that on MS.
- chrish
while I appreciate your details, they don't do anything but serve my point: ms doesn't mind having a features gap between mono and .net (since this will push people putting more money in real windows systems on which they have "feature-complete" .net), and in the same time they play the "nice guys" by "allowing" almost-.net stuff on other OSs. for ms this is shooting two birds with one stone.
as for miguel de icaza's opinion, is unimportant, in the sense that he would better believe strongly that what he's doing is not PR, otherwise is a mere idiot or very well paid by MS/Novell. important is ms's opinion (real, if you please), on mono. I would be amazed if it was different than my first paragraph
I had another sig before, but this one is better
...if it was once horrible, the new version can only be barely usable Yes, it's so barely usable that thousands of businesses stake their existence on it. Java is relegated to the backend of servers, calculating business logic and serving web apps, thoughAre agnostics skeptical of unicorns too?