Sam of Port25 sits down with Miguel de Icaza, VP Development Platform at Novell and co-founder of Ximian. In this interview Sam and Miguel talk about the history behind Mono, the current state of the project and Miguel’s thoughts on Mono as it relates to .NET.
compiz-sharp should be interesting, mosty because I’m a .net guy
pretty good interview.
i think it would be good thing for MS and mono to work together at least SOME. or at least have some lines of communcation.
-Nex6
There’s even link for Mono and other .NET implementations on the Microsoft website. I was surprised to see it :]
http://msdn.microsoft.com/vcsharp/programming/tools/
Scroll to “C# Compilers and Frameworks”
That’s fascinating.
In Spanish slang, a “mono” (donkey) is a person that imitates behavior, attitudes, costumes, etc. from another person.
Mono is the same: An imitation of the Microsoft .NET framework rebuilt by an open source community. I think the MS .NET architecture is good, but copying it and moving it into the open source world, is extending the Microsoft domination to the open source community.
In Spanish slang, a “mono” (donkey) is a person that imitates behavior, attitudes, costumes, etc. from another person.
Nice try, but “mono” actually means “monkey”.
Mono is the same: An imitation of the Microsoft .NET framework rebuilt by an open source community.
No, it’s mostly an implementation of a standard. I am an anti-Microsoft guy, sometimes to the point of being ridiculous, but I don’t think there is anything wrong with Mono. On the contrary, I think it is a great effort. Kudos to Miguel.
“Nice try, but “mono” actually means “monkey”.”.
You’re right, but the bad translation is because my bad English: actually I’m an hispanoparlante (Spanish native speaker)
Kudos to Miguel, of course! that’s a fantastic job, things like Gtk# or support for the System.Windows.Forms are really amazing! But the point to me is that the people programming in Unix-like OSes, generally works against the BEAST (MS) and if the people starts developing software using Mono, they will work agains the BEAST with tools provided by the beast.
Do you realize my point?
Aunque a ninguno de estos “gringos” le gustaría confundir un mono con un burro.
And Miguel throws a nice argument about how mono could actually help MS in the long run by ensuring .Net’s position as a viable cross plataform framework for development.
I thought the argument was rather weak. He says it will give people a portable option that keeps them on Microsoft’s system, which is true, but he failed to point out the things that will really keep them tied in: Connecting their C# code to their old C++ code using Microsoft specific C++ technologies. They’ll be stuck until they’ve fully rewritten the C++, which usually takes a long time unless it’s a serious goal.
The other reason Microsoft won’t destroy Mono: They’d look like a real bully, if they could even manage doing it, and it’d probably have the Justice department breathing down their back. Afterall, we’re (the US) just 2 years from a shot at an honest (or at least competent) president.
Mono may make .Net viable for cross-platform use, but it doesn’t exactly make it a silver bullet just yet. It’s not like you’ll see any toasters running .Net before Java .
It’s more like, a standard provided by the beast.
No, it’s mostly an implementation of a standard.
No it isn’t. It’s an implementation of what people think is a standard, and the ECMA specs are so thin on the ground as to what you need you need to at least bootstrap or reverse engineer parts of what Microsoft has done to get anywhere.
Additionally, Microsoft has publicly stated many years ago that to they have clear patents on implementing the technology that they came up with, like the CLR – not just the extensions and the wider framework. Also keep in mind that the patents are specific to .Net technology, and are not broadly applicable as in the case of others. The standard argument that comes up like ‘Oh, you could be sued if you did this in Java’ does not apply.
http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2887217…
Given that the ECMA has been absolutely terrible at providing a cast-iron agreement where patents are not allowed, or a grant is given forever, anyone who implements them needs to fully understand what they’re getting into. What you’re actually entering into is an agreement with Microsoft, not with the ECMA.
Even if Microsoft intends to do nothing, the fear that a few well placed press releases engender would be absolutely huge. I suppose the question is, certainly for the open source community, is it worth it? Question marks over the so-called ‘MP3 patent’ have been bad enough.
No it isn’t. It’s an implementation of what people think is a standard, and the ECMA specs are so thin on the ground as to what you need you need to at least bootstrap or reverse engineer parts of what Microsoft has done to get anywhere.
You clearly have no idea what the ECMA specs are. They’re only what people *think* is a standard?! You obviously have no respect for the ECMA or what they stand for. They don’t grant standard status to any old piece of garbage thrown their way. They’re very serious about this stuff.
Additionally, Microsoft has publicly stated many years ago that to they have clear patents on implementing the technology that they came up with, like the CLR
Yes, they patent *implementation*. Any one else is free to make their own implementation.
Given that the ECMA has been absolutely terrible at providing a cast-iron agreement where patents are not allowed
This is an API standard. For ECMA, patents don’t come into play, as you can’t patent an API.
I suppose the question is, certainly for the open source community, is it worth it?
Obviously, many people feel it is, or else there would be no mono.
While I don’t know now much he knows about the ECMA specs, I do know that the ECMA specs a little more than the definition of POSIX, and the C#/CLR language. POSIX is good enough for console work, but it is not good enough for GUI or web development so there is truth in the statement that “reverse engineer parts of what Microsoft has done to get anywhere” (i.e. Winforms or ASP.NET).
That being said, it is a bit misleading since you can get somewhere with the ECMA specs if you use Mono’s GNOME bindings.
The commment “Yes, they patent *implementation*. Any one else is free to make their own implementation.” is misleading, OTOH. MP3 has patents on it and because of those patents, you can’t produce a free MP3 player or writer no matter how you try to implement it. Thomson Consumer Electronics has been very lax about enforcing it’s patent on free software (mostly because sites that hold MP3 encoders like the PLF are based in countries that do not acknowledge software patents), but MP3s are still at risk and Mono is also at risk (in countries that acknowledge software patents).
Personally, I have mixed feelings about Mono. Mono is a necessary evil since like it or not, a C# and CLR implementation are necessary to prevent C# and CLR from completely locking in the MS code base. It is now theoretically possible to go to your boss (who is a Microsoft fanatic) and say that it’s in the company’s best interest to support multiple implementations of the CLR like Mono. OTOH, I’d feel that it does carry it’s risks if it gets too embedded in the Linux world because of the risks it presents. I’d feel a lot more comfortable if Mono took the GStreamer approach and divided Mono into three parts: Mono-base (consisting of pure ECMA C#/CLR), Mono-good (consisting of GNOME#, Cocoa#, etc), and Mono-ugly (consisting of ASP.NET, Winforms, etc). Mono would still be risky (since unless you live in the EU, RAND doesn’t necessarily imply compatibility with open source), but this scheme would at least allow people to chose the risk level they are comfortable with.
Edited 2006-08-13 15:13
I know this reply is a little late, but I wanted to make one quick point.
MP3 has patents on it and because of those patents, you can’t produce a free MP3 player or writer no matter how you try to implement it.
MP3 was never an ECMA standard or anything close to it.
How is it extending Microsoft’s empire, when you provide a free and open alternative that’s also interoperable with the proprietary version?
Microsoft has created the .NET framework technology; and, though it is a standard now, it is still Microsoft technology, no matter the implementation used (.NET framework, Mono, Rotor, etc.).
Don’t you think that giving tools created by Microsoft to the open source community will extend their technology to a larger user community?
You’d throw away superior technology solely because your cult would like to burn said technology’s creators at the stake?
That doesn’t sound like a very sane response.
.NET is heavily based on Java technology; but .NET is created by a company that has a very large story of monopoly, domination and elimination of other technologies/architectures.
The work done by Miguel de Icaza and his team is amazing, but, it’s obvious that so great brains could create some amazing architecture from the scratch and open source only (Parrot, Python, maybe some next step to the Java -> .NET -> x evolution), I don’t know.
I do not want to throw away the Microsoft technology, but I think the open source community should create their own stuff (intellectuality is not missing) instead of tryin’ to use a proprietary one.
You’d throw away superior technology solely because your cult would like to burn said technology’s creators at the stake?
Unfortunately, people are somewhat more worried that the cult in Redmond would like to do the same in the opposite direction.
And sorry, what was that? ‘Superior technology’? Well, whether .Net is superior to anything else is pretty debatable, and if people in the open source community think that .Net is superior then I think they want to have a long and hard look at why that is rather than trying to clone it. Open source software needs to exist not to clone Microsoft software, but to provide an alternative and something different.
Open source software needs to exist not to clone Microsoft software, but to provide an alternative and something different.
Mono exists for the same reason all free software projects exist: to satify the needs and goals of its developers. Mono provides a free alternative to a popular technology; it doesn’t matter if you think that’s important, but enough people disagree with you to keep these projects very much alive.
Let’s not forget GNU (and Linux) only exist to provide a clone of proprietary software. Your idea of why open source software should exist is disconnected from the history of the open source and free software movements.
Let’s not forget GNU (and Linux) only exist to provide a clone of proprietary software.
Initially it was a clone, simply because there was nothing better. Unix systems just seemed like a sensible way of doing things and providing a proper networked operating system. Unix was extremely proven in that area. However, although functionality looks similar in many ways, GNU and Linux systems have diverged wildly from the Unix past.
The question is, is .Net simply a sensible way of providing a programming and runtime environment that clearly cannot be improved upon in any way, and where there is nothing to learn from anything else in the open source world? Is it proven as Unix was? The answer to both those questions is no.
Your idea of why open source software should exist is disconnected from the history of the open source and free software movements.
You have a pretty strange idea of the usefullness of open source and free sofware to the wider world if all you believe that it should do is clone proprietary technology.
It’s always nice to hear Miguel – he has lots of practical sw engineering knowledge and expresses it well. I’m not a big fan of Mono simply because I have my own tool preferences like Java and Python, but I wish the endeavor great success.
Miguel really is a very brilliant engineer. I hate to take something like this away from him, but Microsoft, like any major corporation, will only be Mono’s friend for as long as it benefits them. Gnome is making a mistake by pushing Mono bindings.
The FOSS community has everything to lose if Microsoft (or anybody else with licensing or IP rights) is capable of revoking community ownership. The risk is too great.
.NET is, in general, a well-laid-out platform, with a great compliment of libraries. C# is easy to program in and runs fast. They are tempting technologies to for any developer to use for just these reason. There are alternatives, however. Java is largely the same, while running moderately faster. Python is truely free, has a massive library of code available and takes up much less memory.
As long as your .NET app doesn’t have a UI or use any of the unported libraries, it should run fine on either platform. Doesn’t sound so cross-platform to me.
It seems like the amount of engineering resources, time and effort that was devoted to cloning .NET could have been better spent getting Parrot, YARV, or any other of a host of community bytecode platforms up to speed.
The FOSS community has everything to lose if Microsoft (or anybody else with licensing or IP rights) is capable of revoking community ownership.
Microsoft doesn’t have the power to revoke anyone’s ownership (i.e., copyright). Rather, you must be referring to patents. To be fair, any and all software is potentially in violation of MS patents: Linux, OO.o, MySql, Firefox, Apache, Photoshop, Mac OS X, you name it. That’s the jeopardy of software patents.
Microsoft doesn’t have the power to revoke anyone’s ownership (i.e., copyright). Rather, you must be referring to patents. To be fair, any and all software is potentially in violation of MS patents: Linux, OO.o, MySql, Firefox, Apache, Photoshop, Mac OS X, you name it. That’s the jeopardy of software patents.
True, but at the same time, however, there are patents which Microsoft treds on as well; they can claim to have ‘audited their code’ but its humanly impossible to have a list of every patent lodged, and have that list compared to what is put into Windows.
Lets be really optimistic and just hope that the patent issue is more of an attempt by Microsoft to lay claim to an innovation rather than actually using it to leverage against opensource projects. Ultimately, however, Microsoft knows that there will never be any pure C#/VB.NET/etc applications.
As for Mono, it would be nice for Novell to go so far as to implement the preliminary C++ Managed extensions which Microsoft is putting forward to the ECMA; if Novell can provide mono which provides VB.NET/C#/C++/C/Python and even Java support on the mono framework, it would be a great platform on which the next generation of applications can be based upon.
True, but at the same time, however, there are patents which Microsoft treds on as well; they can claim to have ‘audited their code’ but its humanly impossible to have a list of every patent lodged, and have that list compared to what is put into Windows.
Exactly; software patents are a hopeless quagmire.
Besides, the APIs themselves aren’t patentable. Particular methods of implemention are, but I don’t see that mono is especially vulnerable in this respect.
As for Mono, it would be nice for Novell to go so far as to implement the preliminary C++ Managed extensions which Microsoft is putting forward to the ECMA; if Novell can provide mono which provides VB.NET/C#/C++/C/Python and even Java support on the mono framework, it would be a great platform on which the next generation of applications can be based upon.
Amen. Soldier on!
As for Mono, it would be nice for Novell to go so far as to implement the preliminary C++ Managed extensions which Microsoft is putting forward to the ECMA;
C++/CLI is actually already an ECMA and ISO standard.
http://www.ecma-international.org/publications/standards/Ecma-372.h…
RE: C++/CLI
Make that ECMA standard. ISO is still under development.
Edited 2006-08-12 21:06
Cool, cool; sorry, last time I had a look it was still in discussion over the name, technology etc. etc.
Personally, I think its a great way for existing C++ programmers to keep their skills and able to leverage the features that exist within the 3.0 framework without needing to massive re-writes, as Java forces upon developers.
C++/CLR is a pretty good language… I just wrote a couple thousand lines of code in it for a summer project. It’s not quite as nice as C# in terms of tool support (VS intellisense does not do so hot on it), but it is really the only way to call massive amounts of unmanaged code while doing .NET. It’s a perfect language to make an interface layer between a high-level .NET system and a lower-level legacy base.
Again It comes down to Intent and a long history of Microsoft Hostility to Any Competitor. You really have to be a Simpleton to think Microsoft would not use anything against you they can, until you’ve got a WRITTEN assurance they won’t take you to court. Or, we see Microsoft actually port .Net to another platform. ( Over Gill Bate’s Dead Body? )
.Dot Net Forms: Any Support for Foxfire yet? Or are the Mono guys attempting to propagate the IE monolopy.
IF Microsoft brings in the lawyers Mono will have been the Hugest Blunder in the Open Source community.
You don’t like Java because of Enumerations! Come on. I’ve never heard of anything so petty.
mono is nice, but i prefer java…. more ide, more tool, more library,often faster, run on more platform
more choice
[sarcasm]
Yes, but it isn’t GPL!
[sarcasm]
I agree with you, Java is better.
But Kaffe, Harmony, gcj and the Classpath libraries are!!!
Apart from it being used to stuff up KDE and online updates/patching in openSuSE 10.1
>You don’t like Java because of Enumerations! Come on. >I’ve never heard of anything so petty.
Everyone likes different things, get over it. It’s a free world so let the guy have the right to choose C# because he likes enumerations without being told off by people like you. I too don’t like the fact that Java doesn’t have enumerations or a simpler event system (I think that’s one of its worst aspects), I don’t like the classpath mechanism, until recently it was a tedious job to create seamless unintrussive installers (how many times have we seen a java installer pop up a console window infront of a user!). I don’t like the fact that Java coders don’t know how to do GUI layout correctly and with badly spaced out controls, also why are controls usually jammed up against each other, I don’t like the fact that many Java programmer can’t even center a dialog window, why do they so often have to pop up in the top left-hand corner of my screen, I don’t like the fact the Java programmers can’t theme their apps properly so that they look sh*t on windows, I don’t like the fact that Java programmers can’t get the fonts right on GUI apps so that they could completely out of place, etc, etc, and we wonder why Java hasn’t succeeded on the desktop.
I don’t know why Java programmers have so many problems writing applications, particulary GUI apps, is it perhaps because Java is not so well designed and people find it difficult to program in?
And that’s an order.
This “Mono is the sign of the apocalypse, the end is nigh!” crap is STILL boring after 5 years of it. Whether or not Microsoft intends to kill Mono is only for Microsoft to say, but in either case one thing is certain: Any attempt will be futile.
The least you could do is read the Mono FAQ on the subject:
http://www.mono-project.com/FAQ:_Licensing
(scroll down to the “Patents” section)
– Simon
And that’s an order.
No, and asking that isn’t going to make the questions go away.
Whether or not Microsoft intends to kill Mono is only for Microsoft to say, but in either case one thing is certain: Any attempt will be futile.
And on what is that statement based, given some of the other comments?
The least you could do is read the Mono FAQ on the subject:
Unfortunately, the FAQ tells you nothing, which is why these discussions will probably continue. The very small patent section basically goes over old ground that has already been discussed – some APIs are patented but the ECMA stuff is OK etc. etc. etc., and they say if something becomes untenable they’ll simply remove it. Great. The FAQ is a fudge. The ECMA stuff is not OK. That ECMA stuff is licensed by Microsoft (at the moment reasonably), and Microsoft does have patents for implementing things like the CLR. The ECMA and Microsoft have not clarified that issue.
Unfortunately, it isn’t going to take much for Microsoft to do something or scare people away when they feel like it, and the open source community will not be in control although someone like Novell may be able to license it.
Miguel de Icaza is a Hezbollah supporter