Miguel De Icaza On Mono, Moonlight, and Gnome
Knuckles writes "Austrian newspaper Der Standard continues its recent series of in-depth interviews with free software developers. This time they sat down with Novell's Vice President of Developer Platform, Miguel de Icaza of Gnome and Mono fame. The interview was conducted at GUADEC (GNOME Users' And Developers' European Conference).
Miguel talks mainly about Mono 2.0 and .Net 3.5 compatibility, enhancing the collaboration with Microsoft over Silverlight ('Moonlight' in Mono), and the larger political situation of Mono and Moonlight. When the interviewer asks whether Moonlight is only validating Silverlight on the web, Miguel gives a quite detailed answer that includes a possibly well-deserved swipe at Mozilla ..."
If Miguel De Icaza hates it, I LIKE IT!
He makes good points about Mozilla, and Flash and stuff. But that doesn't mean we want to use MS trash. If it is 100% free, and patent free as well (does MS support extend to releasing all relevant patents for anyone to use, or whatever how you say it?), then sure use it if you want.
Personally, I don't know why the Mozilla folks don't run with XUL some more.
Personally though, I have Flash and Java turned off by default, I'm not about to have Silverlight (or Moonlight) enabled by default.
I wank in the shower.
Looks like Miguel still pimping a marriage with Microsoft. Dude, she likes country and he likes rock-n-roll! Seafood vs. burger and fries. He's frugal, forward looking and she spends money like a drunken sailor! More importantly he just wants some freedom and she wants to tie him down. Let it go!
"de Icaza: I hope so. It might end up that at some point Microsoft just open ups .net"
LOL
To quote my favourite font name: \!Andale Mono!
-- Ed Avis ed@membled.com
I just find it's terribly dumb to let both your specification and the reference implementation to be under the control of your worst enemy.
I love Gnome and I understand Mono is a somewhat simpler (than C++) way to build programs for it, but is it really necessary?
As for Silverlight... Yuck.
http://www.dieblinkenlights.com
The MS Excel XML format stores dates as a floating point[1] rather than something standard like, oh, ISO format. Miguel De Icaza thinks that's a good idea. Kind of says it all.
MS has made it clear that they want to kill OSS. So Miguel decides to make an OSS alternative to Silverlight with MS's help, unfortunately, MS will add in proprietary features once this halfway kills flash, and the reference implantation won't be the OSS Moonlight, it will instead be MS's proprietary Silverlight.
Taxation is legalized theft, no more, no less.
1. One has to give some credit to Miguel for thinking big and at least attempting to do it. The way he's doing it is perilous and I can see why some in the OSS crowd fault the guy. The odds are working against him. Strongly so.
2. He's convinced Novell this is something to spend/make money with. He's got a 40-person head count and it is totally unclear to me how Novell ***makes money**** on this to support such a large dev team. If they turned themselves into a 40-person contract dev group, I don't see customers clamoring for a dual-platform solution.
Even if his projects are widely adopted, there's no way I can see that Novell can make money at it. Which still makes Novell operating in run-off mode until the last netware(?) customer quits.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
As this blog post explains, while the current software patent situation exists, Mono is an unacceptable risk.
Even if that happens it would be worth it just to kill Flash... I'll take a free software implementation over a binary blob any day, no matter what company originated the standard.
-- Ed Avis ed@membled.com
He definitely has a point with A. and some with B. (though it's a matter of opinion), but C. is just FUD. He obviously doesn't understand JavaScript (not the DOM, JavaScript is not just the DOM). JavaScript can produce very elegant code if you know what you're doing. I'm sure you can get some pretty nasty C# spaghetti code too (though it may not be as likely). I doubt that any language will replace JavaScript any time soon. All the different browsers would have to support whatever replaces it almost simultaneously. Flash is getting close, but it seems the community is treating Silverlight as a "me too" offering from MS. /rant
His comments about Mozilla are pretty interesting. I appreciate the work on Mono that they've been doing, but it's still strange to be at the mercy of MS whenever they make a change to their setup. That alone will leave Mono/Moonlight at least one step behind and could be used as an argument for only using Windows.
"I hope so" refers to Mono becoming the officially sanctioned .Net standard for Linux -- not that de Icaza hopes Microsoft would open up .Net. If you actually read the very next question in the article (I must be new here...), you'd have seen where de Icaza said:
In the meantime - I really don't think they are going to open source .Net.
-- they are talking about the possibility of Microsoft pulling a Sun/Java thing, and if the open-source effort would have been wasted as a result. The answer is "no, but I don't think they would open-source it anyways".
But imagine Flash if even though it displayed banner ads just fine, it couldn't play YouTube and some games. That's exactly what could happen with Moonlight, sure it is OSS but it is useless.
Taxation is legalized theft, no more, no less.
http://www.gnome.org/~seth/blog/mono
As this blog post explains, while the current software patent situation exists, Mono is an unacceptable risk.
What makes Mono an 'unacceptable risk' but allows Wine to become one of the most often praised open source projects on Slashdot?
Wine can be used to run those few windows apps for which you do not have no linux replacement, under linux. Mono is a development environment which could be used for just about anything... what if gnome, or some important gnome apps, got ported to Mono, and the day after Microsoft comes up with the bill?.. or with usage restrictions of some kind... Please read the link in the parent post, before replying... Here it is again:
http://www.gnome.org/~seth/blog/mono
...it couldn't play YouTube...
<video> tags, anyone?
Sorry, it isn't flame bait. To some it may be, but this is my honest opinion.
Microsoft's actions on OOXML, alone, show that it can not be trusted to play fair. I see no rational reason why the open source movement should validate *any* of their technology without a clear and unambiguous free and open license and a durable specification that does not become a never ending game of catch up.
Microsoft is the enemy of innovation and open source/free software.
Translation: We'll try to make the whole desktop dependent on a MS standard.
The increasing openness of these guys?
You meant MS changed the whole definition of what is part of .net to include stuff not covered by OSP or that are not portable? Shocker.
Moonlight is going to require a proprietary addon in order to actually interoperate with silverlight, pretty sweet.
For every distribution, also x86, x86_64 and PowerPC. In fact we are going to provide binaries for BSDs, for Solaris - both on SPARC and Intel.
Same old, you'll have to download them from MS and only MS, and SLED will be the only distro one able to ship them. Oh, it looks like Icaza actually confirms so in page 2.
hahahahahha
As a hacker you get Microsoft, Microsoft, compatibility to Microsoft languages, and Microsoft. And beating javascript with Microsoft.
Specially after the free, false advert of 'silverlight works in Linux' thanks to moonlight.
Typical MS fanboyism from Icaza
Diverting attention are we?
Icaza here's the deal: AT least FLASH is NOT FREAKING MICROSOFT! Don't you get it? call it a double standard if you want, just missing all the previous record of Microsoft's anticompetitive actions and the clear intent to take over the world with .net and how Mono makes Linux threated by it... It is getting ridiculous.
Mozilla is evil therefore we'll help poisoning the web with Silverlight, fuck open standards.
Copyright infringement is "piracy" in the same way DRM is "consumer rape"
"Bill, I think this is the beginning of a beautiful friendship."
Icazablanca. Coming soon to your local theater.
Oh, right, because Moonlight won't be able to? What about the codec pack Microsoft will release for non-Windows operating systems, for x86, x86_64, and PowerPC alike, specifically and solely for Moonlight?
Why is it that the trolls crawl out from under the bridge whenever Mono comes up?
"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
What makes Miquel think that he and mono is so special to Microsoft? If you look at Microsofts history everyone who have tried to cooperate has ended up with a knife in their back. The ones who compete with them have been left a smoldering piece of rubbel. The potential risks with mono is enormous since the one who control it is activly out to destroy linux despite its humble marketshare. Imagine if Linux wore to take a lot bigger marketshare? Does anyone think they would not panic and press the SCO-style litigation button?
What good can come out of integrating the most Linux applications with Microsofts patented techs? From Microsofts point of view i can understand i can understand it but for OSS? MS must just love the thought of OSS applications working better on Windows than on Linux and the ability to completely thrashing Gnome any time they feel like it.
If we need a better development enviroment then we should build a better one instead of riding two carts behind Microsoft. If we need dotnet compability thats one thing but building native Linux applications in java or dotnet is just insane.
From what i have seen of dotnet and mono they are (i didnt thought it possible) slower than even java. Why we should build applications on purpouse thats goddog slow is beyond me. Why should we put enormous efforts into making the kernel and hardware faster just to sacrifice it to badly deigned software? I want my system to have lots of power left to do new stuff, not the exact same stuff but slower.
HTTP/1.1 400
Er. Do you know Miguel? Do you know what he's done? Have you significantly interacted with the Mono developers and used their code?
I have. You're full of shit.
"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
Actually, the reason .NET exists is because Microsoft was prohibited after the Sun/MS lawsuit in 1997 from making changes that they needed to Java.
The changes that Microsoft did to Java included J/Direct and delegates.
Although Java does have a mechanism for calling into native APIs using JNI, it is cumbersome to use. JNI is a technology that requires developers to write a chunk of code in C++ and a chunk in Java to bind the C++ code. Microsoft's alternative, J/Direct allows all the code to be written in the native language. It now exists in .NET as P/Invoke, and it makes calling native APIs easy, and does not require any native code to go with it (this is the reason that using the SWT library for Java requires you to ship architecture-specific glue code).
Some Java developers did notice that the lack of something like J/Direct was a pain, and eventually came up with a system built on top of JNI that does what J/Direct used to do, the Java Native Access APIs.
The other bit were delegates. Delegates are merely the object oriented version of function pointers, but in addition to capturing the address of a function, they also capture the instance that is associated with the object. At the time Sun published a paper describing why they did not like delegates (http://java.sun.com/docs/white/delegates.html). It is an interesting read considering that pretty much everything on their case against delegates turned out to be wrong. Java would me a much better language and a simpler language to develop for had they allowed delegates to go into it.
The 1997 Java lawsuit prevented them from using it, but that does not mean that Java did not add a lot of value and was not a great idea to begin with. So Microsoft had to write their own, from scratch. In the process they would add the features that they needed (and in Mono, we use those extensively) and with the hindsight of knowing what was good and bad about Java, they could build a better Java, and that is what they did.
Miguel.
Miguel is irrelevant. Microsoft is irrelevant. Mono is irrelevant. Moon/Silverlight is irrelevant. Stop publishing the FUD.
you had me at #!
Java has a pretty slick dynamic dispatch of GUI events in the form of java.beans.EventHandler. Is this everything delegates do, maybe not. But it allows you to hook a named method of any active object instance into a menu, mouse action, or other GUI event. Maybe Sun doesn't promote its use beyond IDEs that handle Java Beans and Sun still wants you to use anonymous inner classes, but this facility is pretty powerful, I use it in my GUI programming, and it works just fine.
Whether P/Invoke is slicker than JNI is maybe in the eye of the beholder. If all you want to do is call a method in a Windows dll, P/Invoke is pretty streamlined. If you want to interact with a COM object under .NET, I guess it isn't too bad; if you want a .NET app to act as a COM object, there is some kind of registration/assembly boojum that I haven't figured out.
JNI may be kind of clunky on the C++ side, and it requires "cooperation" on the C++ side I don't see needed with P/Invoke. Also on the minus side, it only allows calls to C function on the C++ side, only allowing invocation of C++ object methods through some kind of handle and casting through static C function prototypes.
On the plus side, I have found JNI to be lucidly documented. If you respect the object locking conventions, I found JNI is perfectly bi-directional -- Java calls into C++, which can call back into Java, or the other way around. I don't know of any way for C++ to call back into .NET unless you register the .NET object as COM, and as I said, the process for COM registration of a .NET object makes JNI look simple and streamlined.
I also find JNI to be thoroughly platform agnostic. They have those naming conventions for the .so and .dll files under OS-X, Linux, Windows -- for a Java app calling down to C++ (for my work for a numeric package written in C++), you have to compile a separate C++ module for each target platform, but you give your users your .jar file and bundle of the different C++ modules, and the correct C++ target is called on whatever platform they are using.
The other thing that has me on Java these days is that I was pretty much hard-wired with my scientific visualization graphcs into Win32 on account of the WinG features developed in the early 90's to get DOS game programs to switch to Windows. I am pretty dependent on the capabilities of ScrollWindowEx() and CreateDIBSection() in order to have a scrollable frame buffer widget where I can set gray level or color of each and every pixel efficiently. Every other platform than Win32, and that includes all of the 'Nix stuff layered on top of X comes up short, as does Microsoft's Windows Forms of all things.
Guess what. Java supports what I want with their BufferedImage() class and if WinForms has anything near equivalent (I guess they do, but they spank your hand that you are doing something not-secure to lock the bytes of the frame buffer). BufferedImage() scrolls had been clunky on Unix owing to the limitations on X, but Sun has a workaround where you can use OpenGL automagically though a commandline switch to get the same WinG hardware accelerated goodness for frame buffer scrolls.
I am solidly a Win32 kind of person, especially with regard to graphics, and Java is a better front end to Win32 along with a way to port Win32 features to other platforms than .NET, wxWidgets, GTK, etc, etc.
I am actually not a fan of rewriting software that works. Rewriting is not a decision that must be taken lightly, you introduce regressions, you might drop features, a lot of knowledge embedded in the small details is lost and so on.
But there are certain cases where rewriting is worth doing. I would like to see a few applications rewritten. I do not really want to "rewrite" the panel, but instead come up with new interaction metaphors for the main application launcher. Gnome-Do for example (already written in Mono) is a great tool, but it is a tool for power-users, not a tool for most people.
I would like to see new research, and new ideas for new panels rewritten, and I do not particularly care about what language or platform is used, as long as it produces some nice new ideas, and new metaphors. Gimme is such an attempt by Alex Graveley, written in Python.
I believe that the engine in Moonlight is worth reusing for many new kinds of applications, and it opens the doors for some new creative UIs. And you get to choose if you want to use it or not. If it offends your sensibilities that its written with Mono and C#, then do not use it. It really is that simple, nobody is forcing anyone to use the software I work on. If your religion prohibits prevents you from using software based on Mono, that is fine, nobody is asking you to change your religion.
Miguel.
This difference is (I think) Microsoft can pull the rug out from under mono any Microsoft decides to do so.
Since MS does that sort of thing all the time, I would be a little nervous about counting mono.
I could be completely wrong about that.