To understand the vision behind the Mono project and how it fits with .NET, .NET Magazine editor in chief Patrick Meader talked with Miguel de Icaza, cofounder and CTO of Ximian.
To understand the vision behind the Mono project and how it fits with .NET, .NET Magazine editor in chief Patrick Meader talked with Miguel de Icaza, cofounder and CTO of Ximian.
Hopefully many anti-Mono people will read this and light up a bit. It most probably won’t make you like Mono, but maybe it will make you tolerate it.
Unfortunatly those who like to spread FUD usually don’t take the time to read.
Hehe, we agree on something Spark.
hope ximian will also come up with an VS like tool with the compiler in the near future, if it is not already in place
rp, if you’re not aware of it already, you should take a look at SharpDevelop. It’s an open source IDE for the .NET Framework.
http://www.icsharpcode.net/OpenSource/SD/default.asp
Yes, I have linked to it from osnews a few weeks back. It is the one I use here too. I mean, the .NET SDK/compiler suite is free to download (140 MB), so all you need is a GUI IDE that does C#, Java, C/C++ etc. And SharpDevelop is great for the task, as it is written in C# itself and “understands” .NET. It is GPL, and they are trying to make it work under Mono as well. It is a good app.
thanks mauerj and Eugenia. this is one of the reasons I visit osnews, always get good tips/pointers/news.
when Linux has friends like this.
He’s nothing more than an incompetent, loud mouthed little shit.
Oh, but even the GNU project with the best wishes of RMS himself has a .NET project, called dotGNU. Why don’t you talk the same way for RMS then, and you only talk like that for Miguel?
BTW, I see *you* being a “loud mouthed little shit”, not Miguel or anyone else around here.
You obviously do not understand the *strategic importance* of a .NET port on Linux. You only think with the single dimensioned approach of “everything Microsoft sucks”.
Miguel likes Java, just like me. ๐
Seriously, I think Mono is great. If it helps linux it is a good think. Every Microsoft supporter _now_ knows Linux and Mono.
Hey MS guys, help us create a great linux desktop, thanks ๐
Wow, finally some intelligent discussion about .NET instead of the idiotic fear-mongering we usually get in the comments sections. Keep up the good work, Eugenia!!
I’m going to check out that SharpDevelop IDE now…
I guess Mono was a good vision to put Linux inside (and not on a guetho) of a future competitor of Java.
Eugenia makes a lot of assumptions on the basis of a one line comment by a reader, descending to the same level of namecalling. A little perspective and professionalism might be in order here.
People who are opposed to .NET on linux do not necessarily think that everything MS is bad. What they are afraid of is MS changing the rules or specifications after mono is well underway and people are using it for cross platform apps.
Personally I think mono is a good idea and if it eventually becomes incompatible with Microsoft’s version that’s ok. It all depends on whether or not you think we must adapt to standards MS sets. If that is the case then there is no hope. Being more optimistic I feel that we can use some good things developed by MS (the .NET concept is one of those things) for our own purposes.
BTW the GNU .NET project makes no attempt to be compatible with Microsoft’s implementation as mono does. It does use the specifications, however.
Please read Question 99 of the Mono FAQ ( http://go-mono.com/faq.html#licensing ):
Q: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?
A: No. First, its basic functional capabilities have pre-existed too long to be held up by patents. The basic components of Mono are technologically equivalent to Sun’s Java technology, which has been around for years. Mono will also implement multi-language and multi-architecture support, but there are previous technologies such as UCSD p-code and ANDF that also support multiple languages using a common intermediate language. The libraries are similar to other language’s libraries, so again, they’re too similar to be patentable in large measure.
However, if Microsoft does patent some technology, then our plan is to either (1) work around it, (2) chop out patented pieces, (3) find prior art that would render the patent useless. Not providing a patented capability would weaken the interoperability, but it would still provide the free software / open source software community with good development tools, which is the primary reason for developing Mono.
.NET is decent technology. It is in many ways what Java should have been had Sun not embraced a one programming language to rule them all strategy. Microsoft had plans for the UVM, or Universal Virtual Machine, as early as 1996-1997. So it is good to see the UVM and other new ideas come to fruition.
If you are an ISV, it is certainly not a bad thing to write your application for Windows using .NET. You really don’t have much of choice depending on what business problem you are solving.
Some of your customers may have Linux and be interested in running .NET on Linux. However, if history holds true, this percentage of customers wanting to run Microsoft technology on UNIX will be very small. As an ISV, you have the good fortune of having some .NET compatibility that you might use to get your application running on an OS that supports Mono or another .NET clone.
Now lets look at the case of a UNIX-centric ISV. Are you planning on supporting Windows? Does your application require .NET on the Windows platform? If it does, then it is a choice of whether or not to use .NET on Linux as well.
These are technical choices in the present moment, when both .NET and Mono are relatively new technologies.
However, the larger issues are legal, administrative, and idealogical in nature. And down the road, interesting technical issues are also present.
On the legal front, using Mono or another .NET clone does expose you to potential patent lawsuits. Just the cost of a lawsuit alone has the potential to bankrupt many small software companies. The Mono FAQ has a very idealistic view of patents. Much of the Linux community and the free software community doesn’t even know what to do when their license, the GPL, is violated. And they don’t have the money to enforce the license.
On the administrative side of things, there is no guarantee on how Microsoft will implement .NET. Do you think this new version of the .NET framework is designed to help competitors? If so, you have no clue about Microsoft’s culture. How do you work with your customers using a .NET clone? Do you tell them it is 100% compatible? Who tested it? Who is legally responsible for it? With the trends towards software makers being responsible for their software, this needs to be mapped out.
And then there is idealogy. If you want Linux to be a Microsoft sub-platform, great, go ahead and use Microsoft API’s for your application. As Microsoft owns the technology and the spec, do you honestly think they will evolve it with Linux in mind? Has anyone who is so pro-Mono ever worked at a Windows ISV and competed with Microsoft? You never knew what the real API was as Microsoft was always hiding bits of it, leaving out critical details, not publishing everything you needed to be on equal footing. Expect the same as .NET evolves.
Furthermore, from an idealogical sense, using Microsoft’s core technologies means it will be difficult to be better than Microsoft at anything. In fact, you’ll spend all your time playing catch up and trying to be as good as Microsoft. Some how that rubs me the wrong way. But I’ve competed with Microsoft many a time and would rather that they own as few of the API’s that I have to use as possible. When I worked at Intuit, we had to testify at the anti-trust trial as Microsoft was building Microsoft Money’s engine and API’s into the OS.
Using .NET opens the doors for easy migration off of Linux and onto Windows. Microsoft has the cash to offer their software for free when it comes to killing a competitor. Yes, you might say “Linux is free”, but it offers very few features compared to a full-blown Microsoft platform. Because Microsoft owns the desktop OS and apps, they’ll continue to have the upper hand when it comes to migrating people off of Linux.
My personal view is that I’d be interested in seeing the Linux and UNIX communities develop their own technology. Something better than .NET that solves interesting problems. Innovation instead of replication.
#m
On the legal front, using Mono or another .NET clone does expose you to potential patent lawsuits. Just the cost of a lawsuit alone has the potential to bankrupt many small software companies. The Mono FAQ has a very idealistic view of patents.
I see your point, but do you really think that the Mono folks would go through so much trouble without first seeking some legal advice? The GNU Project are in the same boat with DotGNU, and their main legal advisor, Eben Moglen ( http://moglen.law.columbia.edu ), is Professor of Law and Legal History at Columbia Law School. They’re not stupid — they’ve done their homework on this. RMS is the person least likely to trust a Microsoft technology, yet he backs DotGNU. Similarly, companies like Intel plan to contribute to Mono so that they may use it. I’m sure Intel’s legal team have gone over the issue with a fine toothcomb before giving the green light to participate.
I agree; I’d certainly hope the Mono and DotGNU folks had done some good legal research on MS .NET patents and other legal issues such as trademark infringement, copyrights, use licenses, spec updates, compatibility, etc.
You pointed out a few things on the legal front I didn’t know. In the beginning of Mono, it didn’t seem like any legal homework had been done. So I don’t know how much real homework the Mono folks have done. It looks like the patent issue has been considered, how deeply it is not clear. The reference to UCSD p-System is interesting. Having used p-System via UCSD Pascal, I don’t recall it enabling any sort of cross-language functionality compared to what .NET offers.
There is a tug of war going on. One side wants to migrate people from Windows to Linux and Mono and DotGNU are the bridges. The other side wants to migrate people the other direction.
It will be interesting to see what happens with this technology. Whether or not Mono/DotGNU are successful, Microsoft is well on the way to owning the API’s to the enterprise, the desktop, and internet plumbing. Nothing like a DOJ license to expand your monopoly ๐
#m
If Mono, because of legal reasons, can’t provide a full implementation of .NET Framework, it would at least make it easier to port .NET apps to Linux. And certainly, Microsoft does have support for the .NET Framework in SP1, but it does have its own extensions and so on, which aren’t standard.
Miguel de Icaza: It’s an implementation of the .NET Framework. It’s open source, so we license the compiler and the runtime under the General Public License (GPL).
Is the runtime GPL’ed? Then you can not use it from properitary browsers(Is the Mozilla license GPL approved?) and apps. What about the class libraries?
Is the runtime GPL’ed?
Well, that’s what Miguel said
Then you can not use it from properitary browsers(Is the Mozilla license GPL approved?) and apps.
Not too sure on this. I know that Mozilla ia triple-licensed under the MPL, GPL and Netscape licenses, so it shouldn’t pose a problem.
What about the class libraries?
I believe they’re licensed under the MIT license, which is a free software license but incompatible with the GPL.
People focus too much on using .NET for cross-platform purposes. There is a lot of benefit to having .NET available on Linux without Windows at all. The .NET Framework gives you a consistent platform with which to build applications, but at the same time exposes platform-specific functionality to be fully utilized by .NET applications. In other words, you could use .NET to build apps that took advantage of features specific to Mac OS X, Linux, etc. Sure there’s the potential for running apps on multiple OSes, but that’s not what it’s all about.
Microsoft wants .NET to be ubiquitous, because in the end they believe they have the best developer tools and the best platform for .NET out there. It is in their best interests to have it propagate to other platforms, in the hopes that it becomes like C++. Nobody thinks of AT&T when they think of C++.
Look at what Microsoft has actually done with the .NET Framework…
– They’ve standardized the CLI and C#.
– They’ve released a shared source implementation (for FreeBSD even!) that includes a large portion of .NET Framework code.
– They’ve published an interview with Miguel de Icaza on MSDN about the Mono project.
These are not the kinds of things that a company does to keep people away from their IP.
Of course Microsoft wants people to use .NET.
Of course they hope it becomes as popular as C++.
Of course they are cheering on Linux development of .NET.
They want to own the API model, the infrastructure architecture, for the entire system — desktop, apps, and plumbing.
It gives them the greatest degree of market power the more places their system shows up and is available.
Whatever else they may be, Microsoft is not stupid.
#m
.NET is just so… It’s nothing new or fun, it’s not revolutionary in any technical way AND ABOVE ALL IT’S BOOOOOOOOOOOOORING!!! It’s just a bunch of acronyms for stuff that have existed since the late 70s. MSIL, CLR, ADO, XML, CLS, SOAP, WSDL, yadda, yadda, yadda. It won’t revolutionize the way I develop software, it won’t improve my productivity radically, it won’t change the way people use computers, it won’t do anything new or fun. It will only force me to explain a bunch of new words to people.
Not to belittle Ximian’s effort into creating .NET runtime and framework for unix or whatever but it’s just hacking. They are working of a spec. (the .NET docs) already set, they are aiming to clone an already existing version. Who really gives a shit what they think of the future? Their future already belongs to Microsoft.
Do your eally think that try to rpovide the same tools that microsoft has or using the .net platadorm is going to help? Because if you do you are totally wrong. Everyday I see linux becaming a windows clone and that isn’t the point. Do you see Mac developers trying to clone windows? Of course not. A system like linux must evolve in a different way and in touch with the current users, eventually the system will gain it’s own look and feel (in a much wider sense than just the graphical system).
I believe they’re licensed under the MIT license, which is a free software license but incompatible with the GPL.
MIT X is a GPL compatible license.