The Mono project has released Mono 2.0. As most of you will know, Mono is an open-source implementation of Microsoft’s .NET framework for Linux, Mac OS X, Windows, and other operating systems. The 2.0 release comes packed with new features, the main ones being the compiler upgrade to C# 3.0 with support for LINQ, as well as the inclusion of ADO.NET 2.0, ASP.NET 2.0 and System.Windows.Forms 2.0. The release notes detail all the changes and new features.
120 Comments
I am not entirely convinced that the exceptions in the law around reverse engineering do not apply to patents, but at the same time im not in the mood to go hunting down the info at this moment in time.
http://en.wikipedia.org/wiki/Reverse_engineering#Legality
“In the United States and many other countries, even if an artifact or process is protected by trade secrets, reverse-engineering the artifact or process is often lawful as long as it is obtained legitimately. Patents, on the other hand, need a public disclosure of an invention, and therefore patented items do not necessarily have to be reverse engineered to be studied. One common motivation of reverse engineers is to determine whether a competitor’s product contains patent infringements or copyright infringements.
Reverse engineering software or hardware systems which is done for the purposes of interoperability (for example, to support undocumented file formats or undocumented hardware peripherals), is mostly believed to be legal, though patent owners often contest this and attempt to stifle any reverse engineering of their products for any reason.”
Why are MS not releasing some of the code to Mono?
Because .NET is more than just about the framework. It’s also about the OS, the web server, the database, etc.
But the more pragmatic answer is… because it doesn’t make ‘business sense’ for them to do so.
Why are MS not releasing some of the code to Mono?
Actually, Microsoft are releasing some portions of .NET under a Free Software-approved license.
For example, just recently they released MEF under the MS-PL. They’ve also released parts (all?) of the DLR and the Silverlight 2.0 Controls will also be under MS-PL if I’m not mistaken.
you are absolutely right. mono is a great thing to have on the linux desktop.
if mono can handle the code there are a lot of mission critical business apps written in .net that won’t be worried by a move to linux.
linux must be compatible with windows in at least some way to let people know that there IS an open and free choice.
-
2008-10-06 1:50 pmahmetaa
Good for mono developers.
but i am afraid Mono usage in server side is nearly zero. My belief is, .Net is (has been and most likely will be) an MS-Windows thing. Mono may be fine for some gnome desktop applications but thats it. Sure mono will be used and fed by MS as “hey look we are multi platform” to the end. but thats another story..
-
2008-10-06 1:57 pmjstedfast
Good for mono developers.
but i am afraid Mono usage in server side is nearly zero. My belief is, .Net is (has been and most likely will be) an MS-Windows thing. Mono may be fine for some gnome desktop applications but thats it. Sure mono will be used and fed by MS as “hey look we are multi platform” to the end. but thats another story..
I think you’d be surprised how many sites actually use Mono on the server. Just because you don’t see it, doesn’t mean they aren’t there
-
2008-10-06 3:39 pmahmetaa
That’s why i said “nearly” zero.
i also challenge your claim. i can show you hundreds of thousands of Java or MS.Net deployments any day. maybe a handful mono ones..
Edited 2008-10-06 15:40 UTC
-
2008-10-08 6:13 amgoogle_ninja
The goal behind mono isn’t really the same as .net. What they consider victories is stuff like second life using it as their official programming language, not widescale xsp deployments. .net is mainly an enterprise thing, as is java.
Say what you want about legality
Novell and Microsoft have a collaboration project going on so I’m pretty sure there are no legal issues there. MS even posted a patent waiver for Mono/Moonlight users.
Novell is not really profitable I think and currently it largely runs on money from MS (my speculation)…
Say what you want about legality, these guys are making great progress on fairly complex technology. Support for ASP.NET and Linq will allow lots of companies to actually consider the move to non-windows (non-IIS) servers.
Why would anybody want to do that though? If you have an ASP.NET app, why not just run it under IIS?
I believe that things are best run under the platform they were designed for. I recently wrote two web apps for organizations who, for whatever reason, insisted on running them on IIS. One app was written using RoR and the other using Django; neither of which were designed to run on IIS.
I got the apps to run, but the configuration was a pain in the butt and the organizations both had to buy a 3rd party application to make IIS emulate mod_rewrite. It would have been cheaper and easier to just run the apps on something like Apache or Lighttpd (and on an OS that supports symlinks) instead of trying to shoehorn them into Windows and IIS. I would think the opposite would be true with ASP.NET on Apache (or some other web server) running on a Linux box.
-
2008-10-07 6:04 amlemur2
Say what you want about legality, these guys are making great progress on fairly complex technology. Support for ASP.NET and Linq will allow lots of companies to actually consider the move to non-windows (non-IIS) servers.
Why would anybody want to do that though? If you have an ASP.NET app, why not just run it under IIS? I believe that things are best run under the platform they were designed for. I recently wrote two web apps for organizations who, for whatever reason, insisted on running them on IIS. One app was written using RoR and the other using Django; neither of which were designed to run on IIS. I got the apps to run, but the configuration was a pain in the butt and the organizations both had to buy a 3rd party application to make IIS emulate mod_rewrite. It would have been cheaper and easier to just run the apps on something like Apache or Lighttpd (and on an OS that supports symlinks) instead of trying to shoehorn them into Windows and IIS. I would think the opposite would be true with ASP.NET on Apache (or some other web server) running on a Linux box.
You make an excellent case.
I have but one query … doesn’t Microsoft charge a “Client Access License” fee for every separate connection to one of its IIS servers?
If you have an ASP.NET application, isn’t it the case that you will have to pay Microsoft (in terms of CALS for IIS) for each user of the application … even if the ASP.NET application is actually your own in-house developed application?
It would have been better to develop your application on a LAMP stack … but given that you haven’t, isn’t there now a business opportunity to provide a way to run an ASP.NET in-house developed application hosted from a Linux server?
-
2008-10-07 6:26 amsmitty
If you have an ASP.NET application, isn’t it the case that you will have to pay Microsoft (in terms of CALS for IIS) for each user of the application … even if the ASP.NET application is actually your own in-house developed application?
I believe you are thinking about SharePoint, which requires a CAL for each user or a really expensive “anonymous” one. There shouldn’t be any fee just for using vanilla IIS and ASP.NET.
-
2008-10-07 6:31 amSoulbender
I have but one query … doesn’t Microsoft charge a “Client Access License” fee for every separate connection to one of its IIS servers?
No, IIS does not require CAL’s at all.
-
2008-10-07 7:24 amsbergman27
No, IIS does not require CAL’s at all.
Thanks, in great part, to Apache. In the absence of strong competition you can bet that operators of IIS Servers would pay yearly per concurrent connection to their “Information Server” (sounds more “pay-for worthy” that way) and would just accept that situation as normal.
Even those who prefer and use Microsoft products owe a debt of gratitude to FOSS for the mercies they enjoy simply due to Microsoft not being able to do what it really would have wanted to do.
Edited 2008-10-07 07:25 UTC
-
2008-10-07 1:32 pmSoulbender
Thanks, in great part, to Apache.
Eh, I dunno.
I think it has more to do with that
a) it would be impossibly hard to keep track of, especially for large sites (think YouTube, Facebook and such)
b) to my knowledge there is not, and never has been, an HTTP server that was licensed per connection.
Perhaps if MS had been earlier into the game but at the time that MS did release IIS (as a serious product) there was already a large amount of existing servers.
-
2008-10-07 5:27 pmsbergman27
Eh, I dunno…
You start with that. But what you say is fairly consistent with what I said.
Remember that “Apache Web Server” is a play on the words “A Patchy Webserver”, referring to the fact that Apache started out as a set of patches to the first, and then dominant (and open-source) NCSA webserver.
But come on. Let’s cut to the chase and use the ‘I’ word. (Microsoft’s favorite!) Basically, if Microsoft had been Innovative instead of chasing FOSS’s tail lights with an inferior copycat product, they could probably have set the precedent of paying per simultaneous connection. But they weren’t and so they couldn’t.
Edited 2008-10-07 17:29 UTC
-
2008-10-08 5:45 amSoulbender
You start with that. But what you say is fairly consistent with what I said.
Well sort of, but I’m not so sure it’s largely due to Apache but more to the fact that there where no per-connection licensed servers at all. back in the day there was a lot more major players in the webserver field.
And even if MS had been earlier you still have the impossible logistics of tracking these licenses for major sites.
-
2008-10-08 5:58 amgoogle_ninja
IIS and apache started around the same time (94-95), and they both sucked pretty bad for a really long time. Apache did stop sucking first though, v2 was a great product. IIS sucked really bad right up till v6. v7 is the first that I would call a great product (just launched with vista/2k8)
-
2008-10-08 8:38 amsbergman27
IIS and apache started around the same time (94-95), and they both sucked pretty bad for a really long time. Apache did stop sucking first though, v2 was a great product.
I disagree. Apache 1.3 (and before, really) was a great product. So much so that even with the improvements in 2.0, they had problems getting admins to upgrade. They had reached a level of maturity, by that time, that has a lot in common with what Vista faces with XP today.
I’ll take your word that current IIS doesn’t suck. MS’s IIS statistics are better than they used to be. (“used to be” being dismal, indeed.) But then, aren’t they paying good money to web hosts to get those good, but still not anywhere near Apache-level statistics?
-
2008-10-08 7:31 pmgoogle_ninja
I disagree. Apache 1.3 (and before, really) was a great product. So much so that even with the improvements in 2.0, they had problems getting admins to upgrade. They had reached a level of maturity, by that time, that has a lot in common with what Vista faces with XP today.
1.3 far from sucked, but it wasn’t great. It was only when stuff got modular that I would say apache definitively pulled ahead of everyone else.
I’ll take your word that current IIS doesn’t suck. MS’s IIS statistics are better than they used to be. (“used to be” being dismal, indeed.) But then, aren’t they paying good money to web hosts to get those good, but still not anywhere near Apache-level statistics?
The fate of IIS is tied to ASP, for a very long time the only reason anyone used it at all is if they had to deploy asp sites. There is an adage amoung microsoft folks that it takes 3 major rewrites for a killer product to come out of redmond. Back in the days of classic ASP, MS had a terrible enterprise story from pretty much top to bottom (there were good ideas in COM+, in real life it was a nightmare), and there was a mass migration over to the Java/Oracle stack. IIS6 (win2k3) was the first version that performed well and was secure, the big problem that was still with it was administration and modularity (and the fact that ASP.net was still executed pretty far down the pipeline as an ISAPI filter)
IIS 7 changed that. It got way more modular, and alot of work went into playing better then others (MS is now pushing it as a good platform for PHP). The caching work brought it right up to apaches level when it comes to performance, and it became possible to on the fly plug modules into it written in managed code on a per application basis, which IMO puts it well past apache as an appserver. They did a massive overhaul on the GUI, added in simple to use remote admin interfaces, and made the whole thing scriptable via powershell. They also cleaned up the remaining rough spots, like being the worst ftp server on the planet, and FINALLY giving us a mod_rewrite equivilent.
From a dev point of view, I would say IIS definately has the edge now as of 7 as an appserver. I am nowhere near as strong on the IT side, and I don’t know anyone that is strong in both the unix and MS worlds in IT, but from talking to people and what I have read, IT guys tend to still favor apache due to the simplicity of httpd.conf (IIS uses XML now, but it is this cascading system of files that is spread all over the OS)
Probably way more then you ever wanted to know, but I love talking about this sort of stuff As it stands, IIS is still pretty much synchronous with ASP deployments, but expect to see that change as the years roll on.
Mono not only makes it easy to run on Linux C# applications written for Windows, it also makes your Linux box act like a Windows box (slow, heavy and full of shite).
-
2008-10-06 2:04 pmrramalho
Just like any other interpreted language… such as:
– python?
– Ruby?
– Java?
– perl?
No one uses all of these on a linux system… It’s all C++ or… let me see… Assembly language!!?
lol
-
2008-10-06 5:18 pmFunkyELF
Just like any other interpreted language… such as:
– python?
– Ruby?
– Java?
– perl?
No one uses all of these on a linux system… It’s all C++ or… let me see… Assembly language!!?
lol
I use at least 3 out of those 4. My web site uses python (django), and my OS’s package management runs on python. As far as I’m concerned the best bittorrent client out there is still Azureus and perl…what Linux distro doesn’t depend on perl in one place or another. I think that I actually do have a program installed that uses Ruby, whether I use that feature of the program or not is another story.
-
2008-10-06 6:48 pmgrfgguvf
Mono isn’t that bad, I have an 8 year old PC and I am using Banshee music player, with Mono 2.0 it doesn’t feel slow any more.
If used right it can theoretically be as fast as C++. The implementation is still progressing but it’s a lot better than it used to be.
-
2008-10-07 12:32 pm
Excuse my ignorance, but how useful is Mono for porting .NET apps to Linux without modifying the source? For example, Paint.NET would be a nice program to have under Linux. Can we just take the source and compile it with Mono without hacking the source?
-
2008-10-06 3:46 pmTommyD
Excuse my ignorance, but how useful is Mono for porting .NET apps to Linux without modifying the source? For example, Paint.NET would be a nice program to have under Linux. Can we just take the source and compile it with Mono without hacking the source?
As mentioned in the article (imagine that!), Paint.NET used PInvoke – that is, it calls into native Win32 code. To me, that is normally a huge mistake. Unfortunately, it is often necessary, as the .NET libraries do not provide everything you need. At times, you still need native code to get a particular task done. Thus, these call to native code would probably have to be “forked” for other execution environments like Linux and Mac.
-
2008-10-06 4:01 pmjstedfast
Excuse my ignorance, but how useful is Mono for porting .NET apps to Linux without modifying the source? For example, Paint.NET would be a nice program to have under Linux. Can we just take the source and compile it with Mono without hacking the source?
You don’t need to recompile fully-managed .NET apps to get them to run on Linux under Mono. They will Just Work.
The problem is when a .NET application calls into native c libraries (unfortunately, Paint.NET does this, but people are working on a Linux port of the native library that Paint.NET uses).
-
2008-10-06 4:02 pmBrianH
Paint.NET would be a nice program to have under Linux. Can we just take the source and compile it with Mono without hacking the source?
It all depends on whether the original program uses P/Invoke calls to native code dlls, or uses APIs that aren’t supported yet. If not, there is a good chance that the binaries will run without change or recompile.
In the case of Paint.NET you are out of luck for now: There are a lot of P/Invoke calls but almost everything else works as of the new release – it’s even shown in the release notes. It’s funny that most everyone uses Paint.NET for an example when they are asking this question.
There aren’t that many popular .NET apps for Windows either, or Java, or interpreted languages (the aforementioned are not interpreted). That’s to be expected though. As with any platform in wide use, most Windows apps are not the “popular” type: They are either internal business apps, or tiny utilities that wouldn’t need to be ported.
-
2008-10-06 5:58 pmmiguel
Excuse my ignorance, but how useful is Mono for porting .NET apps to Linux without modifying the source? For example, Paint.NET would be a nice program to have under Linux. Can we just take the source and compile it with Mono without hacking the source?
Paint.NET makes extensive calls to Win32.
But luckily it has isolated all of that code into a library that can be swapped out. The Mono-Paint project on code.google.com has a reimplementation of that library.
As for other applications: out of the data that we received over the past year for about 6,000+ applications, 45% of them will work unmodified (no recompilation necessary, just run the binary directly) on Linux.
The others will require minimal changes. Its equivalent to porting software from Linux to MacOS or viceversa.
My impression from all of the release notes is that Mono is now compatible with .NET 2.0 SP1, with the exception of VB.NET which is still at the .NET 2.0 language level. Mono also bundles a lot of extra APIs, most of which also run on .NET but need to be separately installed there. .NET 3.5 is basically uses the .NET 2.0 SP1 runtime, but has some extra APIs that haven’t been ported yet.
Is anyone aware of any other major differences?
-
2008-10-06 8:03 pmchris_dk
Is anyone aware of any other major differences?
Yes, VB.NET support is like 95% from my experience.
Also, VB.NET bugs are very slow to be fixed in Mono.
C# is the way to go, don’t use VB.NET.
The CLR and C# are interesting technologies and the implementation of it in Mono beats the original in performance aspects. I wish someone would take the project, strip the .NET BCL oyr of it and add a *nix/POSIX specific class library to it. Maybe the *nix world would take it seriously that way, because right now it seems to be more of a laughing stock.
-
2008-10-06 4:43 pm
-
2008-10-06 4:55 pmabraxas
The CLR and C# are interesting technologies and the implementation of it in Mono beats the original in performance aspects. I wish someone would take the project, strip the .NET BCL oyr of it and add a *nix/POSIX specific class library to it.
This illustrates people’s naivety when it comes to Mono. What you describe is exactly what Mono is.
Edited 2008-10-06 16:56 UTC
While several good programs have been built with mono the fact is that it is a derivative of a microsoft technology and something that I don’t want runnung on my systems. This is the same reason i don’t run wine. Using these things just validates microsofts ip and extends its grip straight into the heart of linux.
Just say no to .NET in any form! No patent worries or dependencies on single suppliers. No need to use C either. Instead, use Java because:
1) It is very, very much faster (especially Java 1.6u10 which accelerates all graphics operations)
Example:
http://blogs.sun.com/jag/entry/current_state_of_java_for
http://hal.inria.fr/inria-00312039/en
2) It is fully open source and there is a patent waiver from Sun for other implementations (unlike .NET)
3) It has many implementations and is supported by more than a single organisation:
GCJ,Kaffe from GNU and ecosystem
IBM Java
Sun Java
OpenJDK
4) There are a lot more jobs out there for it (by around a factor of 5!)
http://www.tiobe.com/index.php/content/paperinfo/tpci
Miguel and the Mono team have done a great job in ensuring people can move their .NET legacy apps to other operating systems. However, for new projects you should be using Java (the language features of C# are not worth the potential patent liability and relatively short-lifecycles of MS technologies).
-
2008-10-06 8:53 pmjstedfast
Just say no to .NET in any form! No patent worries or dependencies on single suppliers. No need to use C either. Instead, use Java because:
1) It is very, very much faster (especially Java 1.6u10 which accelerates all graphics operations)
Example:
Mono has improved in performance quite a lot since 1.2.6 and is quickly gaining ground on Java6-server, especially with the new Linear IR branch which you can read about at http://www.mono-project.com/Linear_IL
The Linear IR branch is poised to make it into Mono 2.2 and is already as much as 30% faster than Mono 2.0 and there are lots more optimizations that can be done (and indeed, just last week SIMD optimizations were implemented which increase the performance even more).
2) It is fully open source and there is a patent waiver from Sun for other implementations (unlike .NET)
Mono is also fully open source.
As far as waivers from Sun, I am unaware of these. Could you provide a link to these waivers?
I have never seen nor heard of any such waivers before.
Miguel and the Mono team have done a great job
Thanks for the compliment
However, for new projects you should be using Java (the language features of C# are not worth the potential patent liability and relatively short-lifecycles of MS technologies).
This is all subjective, and let’s not forget that Mono can continue even if Microsoft moves to something else next week, next month, next year, or next decade.
Mono is, after-all, a Free Software project that anyone can continue to maintain. It is not in any way dependent upon the life span of Microsoft’s .NET just as C in Linux has been in use long after much of the Windows world switched to C++.
-
2008-10-06 9:16 pmStaubSaugerNZ
Mono has improved in performance quite a lot since 1.2.6 and is quickly gaining ground on Java6-server, especially with the new Linear IR branch which you can read about at http://www.mono-project.com/Linear_IL
The Linear IR branch is poised to make it into Mono 2.2 and is already as much as 30% faster than Mono 2.0 and there are lots more optimizations that can be done (and indeed, just last week SIMD optimizations were implemented which increase the performance even more).
That is excellent news. Do you have a link to any benchmarks ? (especially against JRE 1.6u10).
Mono is also fully open source.
As far as waivers from Sun, I am unaware of these. Could you provide a link to these waivers?
I have never seen nor heard of any such waivers before.
http://java.sun.com/javase/6/docs/legal/license.html
See section 2. That is a patent grant for all implementations of the Java specification (and you don’t have to ask Sun for permission to use it). However you don’t have the right to call it “Java” unless you pass Sun’s compatibility tests (since it wants to avoid fragmentation). Unfortunately it doesn’t look like Microsoft will ever do this for .NET
This is all subjective, and let’s not forget that Mono can continue even if Microsoft moves to something else next week, next month, next year, or next decade.
Mono is, after-all, a Free Software project that anyone can continue to maintain. It is not in any way dependent upon the life span of Microsoft’s .NET just as C in Linux has been in use long after much of the Windows world switched to C++.
Completely true. What you’re missing is that while Mono would soldier on as soon as there is fragmentation then adoption would be split. While it is not absolutely necessary to avoid this (after all, part of the point of Free Software is the ‘right to fork’), this really dissipates developer effort and confuses users. It should be avoided for practical reasons.
Despite my preference for Java I’d like to thank you once again all your efforts with Mono (the community still needs it). It’s nice to have choice.
Edited 2008-10-06 21:17 UTC
-
2008-10-06 10:04 pmjstedfast
Mono has improved in performance quite a lot since 1.2.6 and is quickly gaining ground on Java6-server, especially with the new Linear IR branch which you can read about at http://www.mono-project.com/Linear_IL
The Linear IR branch is poised to make it into Mono 2.2 and is already as much as 30% faster than Mono 2.0 and there are lots more optimizations that can be done (and indeed, just last week SIMD optimizations were implemented which increase the performance even more).
That is excellent news. Do you have a link to any benchmarks ? (especially against JRE 1.6u10).
There were a couple of benchmarks that the JIT developers have been using for comparison purposes. They’ve been using the Debian Language Shootout benchmark programs, the Portable.NET benchmark and some others. The “Benchmark Results” section towards the bottom of the page I linked to earlier names the benchmarks used and what the performance improvements are for those different tests.
Mono is also fully open source.
As far as waivers from Sun, I am unaware of these. Could you provide a link to these waivers?
I have never seen nor heard of any such waivers before.
http://java.sun.com/javase/6/docs/legal/license.html
See section 2. That is a patent grant for all implementations of the Java specification (and you don’t have to ask Sun for permission to use it). However you don’t have the right to call it “Java” unless you pass Sun’s compatibility tests (since it wants to avoid fragmentation). Unfortunately it doesn’t look like Microsoft will ever do this for .NET
This is very interesting, I had not known about this before.
Thanks for the link, I’ll have to read it more carefully later.
This is all subjective, and let’s not forget that Mono can continue even if Microsoft moves to something else next week, next month, next year, or next decade.
Mono is, after-all, a Free Software project that anyone can continue to maintain. It is not in any way dependent upon the life span of Microsoft’s .NET just as C in Linux has been in use long after much of the Windows world switched to C++.
Completely true. What you’re missing is that while Mono would soldier on as soon as there is fragmentation then adoption would be split. While it is not absolutely necessary to avoid this (after all, part of the point of Free Software is the ‘right to fork’), this really dissipates developer effort and confuses users. It should be avoided for practical reasons.
That all assumes that things fork, though, which wouldn’t necessarily happen. (hopefully it wouldn’t, actually).
Ideally, the continuation of Mono would remain compatible with the specified portions of .NET and Mono would just be extended (via extension methods for the core and new libraries/compiler features that do not break existing code).
Despite my preference for Java I’d like to thank you once again all your efforts with Mono (the community still needs it). It’s nice to have choice.
Choice is indeed good to have
And thank you for your gratitude for our work, it is very much appreciated!
-
2008-10-08 3:57 pmevangs
Mono has improved in performance quite a lot since 1.2.6 and is quickly gaining ground on Java6-server, especially with the new Linear IR branch which you can read about at http://www.mono-project.com/Linear_IL
Mono still has a long way to go, from the looks of things. http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=…
Java is up to 6.9 times faster and is on average twice as fast. Granted, they use the -server flag which turns on much more aggressive optimizations hence the much higher performance and larger memory consumption. Nevertheless, there is still a huge delta between Mono and Java.
-
2008-10-08 9:54 pmjstedfast
Mono has improved in performance quite a lot since 1.2.6 and is quickly gaining ground on Java6-server, especially with the new Linear IR branch which you can read about at http://www.mono-project.com/Linear_IL
Mono still has a long way to go, from the looks of things. http://shootout.alioth.debian.org/u32q/benchmark.php?test=all~Ac^AOE^A(c)…
Java is up to 6.9 times faster and is on average twice as fast. Granted, they use the -server flag which turns on much more aggressive optimizations hence the much higher performance and larger memory consumption. Nevertheless, there is still a huge delta between Mono and Java.
You are comparing Java6 -server with, at best, Mono 2.0.0 (hard to tell because Mono 1.9 also reported 2.0.0 afaik), the optimizations are happening in the post-2.0 code base (as I mentioned earlier). If you compare Java6 -client (which is the default) against Mono, they are actually neck-and-neck, possibly with Mono even coming out ahead.
Note also that raw speed isn’t the only factor, Mono consistently uses a lot less memory than Java. For one of those tests, Java uses more than 10x the amount of memory than Mono uses.
But yes, you are correct in saying that Mono still has a ways to go if you want to compare Java6 -server with Mono (which doesn’t have any special “server” optimizations).
-
2008-10-10 4:13 pmigouy
> (hard to tell because Mono 1.9 also reported 2.0.0 afaik)
Really?
http://shootout.alioth.debian.org/gp4/csharp.php#about
> If you compare Java6 -client (which is the default) …
4 years ago -client was the default
http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html
> For one of those tests, Java uses more than 10x the amount of memory than Mono uses.
And for the other 12?
http://shootout.alioth.debian.org/u32q/csharp.php
Now if only Mono supported the OLEDB connector (MS Access), I could port the .NET 2.0 applications I wrote (in school) to Linux
Two things… 1) Mono IS NOT PART OF GNOME… Gnome has Mono bindings available and there are several non-essential applications that take advantage of this fact. There is NOTHING saying that you must have these applications available to use Gnome. 2) Mono implements all of the bits of .Net and C# that are specified by open standards, but does also implement extra pieces outside of the standard that increase compatibility with applications written for the Windows platform. These non-standard pieces are NOT required to use Mono or the C# language. Just because some pieces of the software that are questionably legal does not mean that you have to throw the whole thing out. There have also been several comments mentioning the uselessness of ASP.NET capabilities. This is absurd. Like it or not, there are _many_ ASP.NET applications out there and any opportunities to move these applications to platforms other than Windows should be welcomed.
-
2008-10-07 2:11 amlemur2
Two things… 1) Mono IS NOT PART OF GNOME… Gnome has Mono bindings available and there are several non-essential applications that take advantage of this fact. There is NOTHING saying that you must have these applications available to use Gnome. 2) Mono implements all of the bits of .Net and C# that are specified by open standards, but does also implement extra pieces outside of the standard that increase compatibility with applications written for the Windows platform. These non-standard pieces are NOT required to use Mono or the C# language. Just because some pieces of the software that are questionably legal does not mean that you have to throw the whole thing out. There have also been several comments mentioning the uselessness of ASP.NET capabilities. This is absurd. Like it or not, there are _many_ ASP.NET applications out there and any opportunities to move these applications to platforms other than Windows should be welcomed.
Lets clear up something important.
Gnome, Mono, ASP, C#, CLI … it may indeed be possible to carefully use all of this without actually infringing on any of Microsoft’s claimed patents.
But they are all intrically linked with stuff where a claim of patent infringement from Microsoft is quite feasible. This gives Microsoft a perfect opportunity for spreading its patent FUD.
So use Java, KDE, Python, Ruby, etc, etc. Use the Eclipse framework. Use any one of the many available better choices.
Doing this removes the very possibility of Microsoft FUD.
That alone is far more beneficial than any possible benefit that can come from using Mono.
-
2008-10-07 3:09 amsupercompman
A properly packaged distro, even if it comes with Mono and dependent applications, just uninstall the packages… it’s not going to break Gnome… ever. The Gnome team has time and time again made this perfectly clear. No core Gnome component uses Mono. Mono is supported as a development platform if a developer so chooses. There may be some questions about the legality of SOME pieces of Mono, but there are NO questions about the legal status of the Gnome code. There is also no question about the legal status of the C# language. There is no rational reason to stop using either one. How can Microsoft spread patent FUD about either one of these technologies? C# is a good language. Java is a good language. Writing a compiler or runtime engine for either of these languages is most certainly legal. The only things that might not be legal (and I strongly emphasize might) are some of the libraries that Mono provides… if you wonder about the legal status of the winforms, don’t use them; it’s as simple as that. There are lots of applications out there that are questionably legal… Sco was claiming that the Linux kernel contained such questionable code, does that mean no one should use Linux, even though Sco never had a leg to stand on in the court room? What makes anyone think that by not using these technologies, you’ll be any safer from patent questions/legal actions? At any point ANY technology, far more core to the open source software and free software movements (or outside of software entirely even) could come into question.
-
2008-10-07 4:48 amlemur2
A properly packaged distro, even if it comes with Mono and dependent applications, just uninstall the packages… it’s not going to break Gnome… ever. The Gnome team has time and time again made this perfectly clear. No core Gnome component uses Mono. Mono is supported as a development platform if a developer so chooses. There may be some questions about the legality of SOME pieces of Mono, but there are NO questions about the legal status of the Gnome code. There is also no question about the legal status of the C# language. There is no rational reason to stop using either one. How can Microsoft spread patent FUD about either one of these technologies? C# is a good language. Java is a good language. Writing a compiler or runtime engine for either of these languages is most certainly legal. The only things that might not be legal (and I strongly emphasize might) are some of the libraries that Mono provides… if you wonder about the legal status of the winforms, don’t use them; it’s as simple as that. There are lots of applications out there that are questionably legal… Sco was claiming that the Linux kernel contained such questionable code, does that mean no one should use Linux, even though Sco never had a leg to stand on in the court room? What makes anyone think that by not using these technologies, you’ll be any safer from patent questions/legal actions? At any point ANY technology, far more core to the open source software and free software movements (or outside of software entirely even) could come into question.
It is all aquestion of credibility. Credibility in the mind of a potential new user of Linux.
Said potential new Linux user looks at a Gnome-based distribution, and notes the presence of F-Spot, Banshee, Beagle and Tomboy notes, and the corresponding Mono libraries in support … and (knowing that .NET is a Microsoft patent encumbered development framework), would think … “hmmmmm, there could be something to Microsoft’s bluster about Linux users needing to have a license from MS after all”.
Said potential new Linux user looks at a KDE-based distribution, and notes the complete absence of anything resembling Microsoft technology, and would conclude “hmmmmm, there clearly isn’t anything at all to Microsoft’s bluster about Linux users needing to have a license from MS after all”.
It doesn’t help that you can remove software … the suspect software was still included in the distribution, and hence the distribution can still be threatened to be required to have a recall.
When patents are involved, the technology just has to look similar. It doesn’t have to be a copy of the source code for there to be a potential patent infringement.
SCO had no patents, and hence no patent claim against Linux. SCO alleged that its UNIX source code had been copied into the Linux kernel.
That was clearly a bogus claim from the get go. Why on earth would a free software Linux kernel developer plagiarise copyrighted UNIX code in plain sight of the whole world?
SCO tried early on to present some disguised examples of copied code. The disguise was in the form of a font substitution. Someone recognised the font, and before the day was out had restored the correct original font, recognised the code, and pointed out that that was BSD code that was never used in any Linux kernel anyway.
SCO’s copyright-based threats against Linux were simply not at all credible.
A patent-based threat is an entirely different kettle of fish.
Edited 2008-10-07 04:59 UTC
-
2008-10-07 9:50 amRichard Dale
Said potential new Linux user looks at a KDE-based distribution, and notes the complete absence of anything resembling Microsoft technology, and would conclude “hmmmmm, there clearly isn’t anything at all to Microsoft’s bluster about Linux users needing to have a license from MS after all”
.
Qt and KDE have perfectly good language bindings for C# called Qyoto and Kimono. There is absolutely no difference between Gnome and KDE over using Mono (or not).
The Gnome GTK# bindings have been around a lot longer than the KDE ones, and so people have had time to write apps. If someone wants to write Qt or KDE apps, Plasma applets etc in Mono/C# there is absolutely nothing to stop them. If in turn you don’t want to use those apps, then fine you probably won’t have to.
I think KDE can stand on its own merits, and anyone choosing KDE because of the presence or absence of Mono seems slightly barking mad to me.
-
2008-10-07 5:47 pmWrawrat
Doesn’t make much sense because there is nothing preventing them from making patent infringement claims on all those better choices you are promoting. Why, that’s exactly what MSFT is doing with the Linux kernel: it doesn’t use their technology, yet they are spreading FUD quite happily.
As your other argument on “new Linux users”, it’s pretty ludicrous because most users couldn’t give a flying duck about software patents or even Mono/.NET as long as it works.
If you believe you’re cool ’cause you don’t use any Microsoft technology, that’s okay. There’s nothing wrong with this, but it would be much more productive for all of us if we stayed on topic (e.g. on Mono) rather than blathering on MSFT or fighting FUD with even more FUD.
A number of people have said exactly the same thing: “I won’t use Mono because Microsoft could have patents that conflict with the project.”
Nobody has an example of such a patent, until someone finds one, you’re blowing a lot of hot air.
Also, by patent I mean one that would be indisputable in court, we all know how companies love to file for patents for things that have examples of prior art.
-
2008-10-07 2:26 amlemur2
A number of people have said exactly the same thing: “I won’t use Mono because Microsoft could have patents that conflict with the project.” Nobody has an example of such a patent, until someone finds one, you’re blowing a lot of hot air. Also, by patent I mean one that would be indisputable in court, we all know how companies love to file for patents for things that have examples of prior art.
There is plenty of prior art for all of Microsoft’s stuff. Java, for example, can be considered prior art (in terms of the basic idea anyway) for the .NET framework.
What is important is the perception. Microsoft can generate plausible-sounding patent threats via .NET technologies, whereas it doesn’t have a hope in the area of, say, Office suites (given that its MS Office product displaced existing incumbents from an existing market).
I’d say myself that Microsoft doesn’t have a leg to stand on anywhere with respect to patents.
But what I think isn’t important. It is what the general, average, non-expert customer for software thinks that is important here.
Microsoft won’t actually sue … it is too dangerous for Microsoft. But they will continue to make threatening noises about patents and the alleged need for Linux users to license some of Microsoft’s technology … as long as there is any perception at all of a remotely feasible chance that something in FOSS software actually does infringe.
Mono provides a perfect opportunity for Microsoft to generate just such a perception.
This is a bit off-topic, but I’ve been playing with an interesting example of a server-side application which runs on Mono. It’s still in alpha, but it does work:
http://opensimulator.org/wiki/Main_Page
The OpenSimulator Project is a BSD Licensed Virtual Worlds Server which can be used for creating and deploying 3D Virtual Environments. It has been developed by several developers. Out of the box, the OpenSimulator can be used to create a Second Life(tm) like environment, able to run in a standalone mode or connected to other OpenSimulator instances through built in grid technology. It can also easily be extended to produce more specialized 3D interactive applications. Check out the list of growing features to get an idea of what OpenSimulator is capable of.
OpenSimulator is written in C#, and can run under Mono or the Microsoft .NET runtimes. Due to its clean modular nature it is possible to significantly extend functionality yourself via plug-in modules to suit your application.
Meant to post this yesterday, but got distracted.
Just wanted to give a big Thank You to the Mono developers for all of their hard work.
You guys are amazing and I hope you continue doing what you do!
Say what you want about legality, these guys are making great progress on fairly complex technology. Support for ASP.NET and Linq will allow lots of companies to actually consider the move to non-windows (non-IIS) servers.
I’d love to start seeing third parties, like Telerik, compile some of their libraries under mono (or at least check for mono compadiblity).
Excuse my ignorance but just how popular is Mono usage ?
It’s pretty common on Linux desktops these days. F-Spot, Beagle, Banshee, and Tomboy all use Mono.
There is no Mono at all on my Linux system.
I’m running a KDE 4.1.2 desktop (x86_64).
Works like a charm.
It also has Open Java installed (somewhat surprisingly, both openjdk and IcedTea), and the Gnash flash player.
Equivalents are:
F-Spot ==> digikam
Beagle ==> strigi
Banshee ==> Amarok
Tomboy ==> basket note pads
(there is also a KDE 4 Plasmoid, but basket note pads is way more functional).
Edited 2008-10-06 13:31 UTC
Who cares? This thread is about Mono.
Who cares? This thread is about Mono. [/q]
And my post shows a way that you can easily have a glorious absence of Mono on your Linux installation, and yet lose no functionality at all.
BTW … this is actually a very hot topic.
http://www.theopensourcerer.com/2008/08/04/how-to-remove-mono-m-fro…
Absence of Mono is more desirable than Mono.
That is who cares.
Personally I think the Mono applications are much better than the counterparts you named. The article you link to is bunk and the author of it clearly doesn’t understand what Mono is, claiming that developing applications for Mono is supporting Microsoft. Mono DOESN’T depend on Microsoft technology. The only common dependecy that both Microsoft and Mono rely on is the language and that is a standard. .NET binds to Microsoft technologies. Mono binds to GNOME technologies.
This nonsense makes about as much sense as saying “Developing in C++ supports Microsoft”.
Really? Strigi doesn’t index even half of what Beagle indexes, at least according to their website. I’ll give you Amarok, at least until Banshee 1.4 is released (any day now) but I don’t like Amarok’s interface. In fact I don’t like BasKet Note Pads or DigiKam either because the interfaces are much more complex. They have the KDE mentality of “everything and the kitchen sink” that annoys me. To each his own I guess, just leave the Mono issue alone because you’re only preaching to the converted. The rest of us couldn’t care less.
http://www.geocities.com/arnoldsounds/Proud.wav
Edited 2008-10-06 20:15 UTC
Love the mono the tech, Dislike all of the apps you mentioned especially beagle. They have no home on any linux box I control.
a few program use it
not really a must to have
Yes they are doing great work. Pity that MS isnt doing that work.
Imagine MS said “ntfs is open, you just have to reverse engineer it.” Why are MS not releasing some of the code to Mono? To duplicate work is just plain stupid. Mono will never catch up with the latest MS .NET version.
Because MS want to keep what they made to themselves like they always do, seriously did i need to tell you that?
MS have said that parts of .NET are open specifications. These parts are ISO standards even.
In typical MS fashion, though, only parts of the .NET framework are open:
http://en.wikipedia.org/wiki/.NET_Framework#Standardization_and_lic…
Specifically, CLI and the C# programming language are ECMA standards (ECMA 335 and ECMA 334) which later became ISO standards.
However:
Interestingly, Microsoft has made available much of the source code for the .NET Framework Base Class Library (including ASP.NET, ADO.NET and Windows Presentation Foundation) under the shared source Microsoft Reference License.
That is a red flag, right there.
http://en.wikipedia.org/wiki/Microsoft_Reference_License#Microsoft_…
Since Mono 2.0 includes Systems.Windows.Forms 2.0, ASP.NET 2.0 and ADO.NET 2.0 I’d say pretty much that anyone who installs Mono 2.0 on their Linux system has what Steve Ballmer refers to as an “undisclosed liability” to Microsoft right there.
http://www.computerworld.com/action/article.do?command=viewArticleB…
http://www.oreillynet.com/windows/blog/2006/11/microsofts_ballmer_l…
http://www.boingboing.net/2006/11/17/ballmer-linux-users-.html
The easy thing by far to do then is to avoid Mono like the plague, and don’t use SuSe Linux.
Personally, with most GNOME distributions now including Mono applications (Tomboy notes, Banshee, F-Spot, Beagle search et al) by default, I’d make it even simpler and just use a KDE distribution.
Edited 2008-10-06 13:18 UTC
Yeah, because there’s just SO much precedent out there of Microsoft suing individuals or other companies for patent infringement.
Yeah, especially when individuals aren’t legally responsible for patent infringements (real or imagined) in products they have “purchased”.
Unfortunately, AFAIK that is not what the law says.
If a company can show a patent infringement in a product, or even show a cause to believe there is a patent infringement, then the patent holder can force the alleged infringing product to be removed from the market.
That means being able to recall products that are out in the market, in use. Owned by ordinary people who bought them in good faith.
Fortunately, this works two ways. If Microsoft actually tried this against Linux users, then Linux (in the form of the Linux foundation and the SFLC) would counter-suit, and allege that windows infringes patents held by the Patent commons and the open Invention Network. The counter-suit would just as easily be able to force people to stop using Windows.
Clearly, that isn’t going to happen. Therefore, Microsoft will not sue.
However, it would appear that Microsoft are still very interested in being able to make threatening noises about the possibility that they would sue (just as they have already done for many a year now).
For this to happen they’d have to win a suit against the manufacturer or reseller first and then the manufacturer would have to recall the product. Individual consumers are not sued.
Correct.
But the individual users are still without their computing resources, because those resources are recalled.
However it won’t happen. If Microsoft try it on to get Linux systems recalled, then Linux will retaliate to get all Windows systems recalled.
Chaos ensues. Economic meltdown. Therefore it won’t happen.
So, no need to be afraid. No need to not use Mono.
Which brings me back to my original point.
The only reason you’re spreading fear around Mono is because you hate Microsoft, and probably Novell too because they made a deal with Microsoft. That’s pretty obvious by now. Which is a valid reason, don’t get me wrong, but next time, don’t try to hide your true intentions. Some of us are smart enough to see through them.
It would save us having to type in all these useless comments every time.
I’m not the one spreading FUD.
Ballmer is the one who talks about their being an “undisclosed liability” to Microsoft in using Linux.
There is your FUD, right there.
OK Mr Ballmer, I won’t use Mono. Happy now?
I win, you win, we all win, and Mono dies through lack of interest, and Ballmer needs to throw a few chairs and then come up with yet another bright idea.
Edited 2008-10-06 14:26 UTC
Could have fooled me…
This entire thread is you spreading FUD.
Two wrongs don’t make a right. Never have, never will.
Since you agree it won’t happen, why do you continue to spread FUD?
The question,, more to the point, is … why does Ballmer continue to spread FUD?
http://blog.seattlepi.nwsource.com/microsoft/archives/108806.asp
http://www.theinquirer.net/en/inquirer/news/2006/11/20/microsoft-ow…
http://www.theregister.co.uk/2006/11/20/microsoft_claims_linux_code…
Because it’s his job. Heck, it may even be in his job description.
And his job title is? CEO, or a mafioso…?
It is a bit shocking to see how close FUD business tactics often are to the legal definition of criminal extortion.
Mono might perhaps be 99,99% – 100% safe from MS patent threats… But it is still a clear fact that Mr. Ballmer – when talking about Linux and the claimed patent infringements – has often been behaving like a mafioso asking for protection money and deliberately trying to scare people who do not want to obey their rules and would want to escape their protection schemes.
No wonder then if some Linux people feel some natural suspicions to software technology that originates from MS – what ever the actual threat level might be. It seems perfectly natural and understandable behavior to me.
Edited 2008-10-06 16:45 UTC
You realize that that is logistically pretty much impossible for any Linux distribution. So at worst the consumer is stuck with what he/she have until the distribution makes a new version without Mono.
So you’re just making lot of ado about nothing.
It is not the suing, I believe, that is Microsoft’s interest here. Linux would just sue back, and no-one would win.
I would hazard a guess that Microsoft’s primary interest is to keep alive the ability to make threats against Linux users (without any actual action), so as to be able to keep up a pretense that there is some legal liability in using Linux.
This is, after all, the entire bluster behind Ballmer’s “undisclosed liability” nonsense.
If so, then why the hell does it matter if people use Mono, which is fully open source?
Look, big software companies like Microsoft, Apple, Novell, IBM, Sun, etc. will never start a patent infringement lawsuit on their own. In fact, they are always the target of patent lawsuits, but they never sue themselves.
The reason is simple. All of these big companies infringe on one anothers’ patents, and they know it. Red Hat infringes on Microsoft patents, Microsoft infringes on Apple patents, Apple infringes on IBM’s patents, and so on, and so forth.
It’s like a house of cards. As soon as you take one card out, the entire house collapses. It would set s precedent, triggering a chain reaction of various big software companies litigating against one another over patent infringement. That, they really don’t want. The reason Microsoft and similar companies don’t sue individuals and smaller companies is that they KNOW full well that they themselves infringe on countless patents of other competitors.
The simple and obvious conclusion is that there is absolutely ZERO need to be afraid of patent infringement lawsuits from these big companies, and people saying that users and distributors of Mono are in danger of being sued by MS are plain old trolls.
Edited 2008-10-06 14:02 UTC
With patents, the fact that mono is not a copyright violation of .NET is not the issue. The issue is that Windows,forms, ADO.NET and ASP.NET, which Mono 2.0 includes, are patent encumbered technologies.
You can violate a patent even if Mono is not a copy of .NET code.
Hence, you need a license, from Microsoft, to run anything which implements their patented technologies, including Windows.forms, ADO.NET and ASP.NET, even if Microsoft did not write the code.
AFAIK, Microsoft has given out such licenses only to Novell SLED, Xandros and Linspire.
Agreed.
The entire point seems to be that Microsoft wish to continue making patent threat noises against Linux users, without ever actually suing, and trying to get Microsoft dependencies built in to the only distributions which they do not so threaten.
Most distributions do not, by default, install Windows.Forms, ADO.NET, or ASP.NET portions of Mono (nor do they need to).
Mono is perfectly usable without those components unless you are specifically trying to run a Windows.Forms application or an ASP.NET hosted website.
You do not need them to use Banshee, F-Spot, or Tomboy as has already been explained dozens of times in this thread alone.
Yet somehow you keep ignoring that fact.
If you read the very limited documentation on the ECMA web site regarding governance of these issues, you will actually find that it is worse than that. ADO.Net and ASP.Net are merely namespaces no matter what anyone says, and it’s not where the meat is. Without the reasonable and non-discriminatory terms that ECMA membership requires you might well require an explicit license from Microsoft to use .Net ECMA standards, and those RAND terms are simply not guaranteed to be in place forever. That’s the situation, and it governs .Net technology such as the CLR and Common Language specification.
There was much bluster from Miguel and a few others on a mailing list a while ago that there was a letter from Microsoft and HP guaranteeing RAND terms to be irrevocable. No such letter has ever materialised, and until that happens questions remain.
Linspire is absorbed by Xandros.
I know people like to dredge up this one time and again, but it has been debunked so many times it is ridiculous. The point is, they don’t have to sue anyone. It doesn’t mean to say that they can’t though. Even then, there is still enough behind how the ECMA manages the whole situation that has left the legal situation far from clear regarding an open source implementation of Mono not distributed to Novell’s customers. Why bother when there is other open source technology that doesn’t have that explicit milestone around its neck?
Why on Earth do you think Microsoft signed a deal with Novell and then sent out letters to Novell’s own customers saying “Don’t worry if you use open source software and Novell. You’re safe with us [but we can’t vouch for you if you’re not]”.
You don’t have to install Windows.Forms support, it’s not a core part of Mono. Nor are ASP.NET or ADO.NET.
You are able to install just the ECMA/ISO standardized portions of Mono. Most (all?) Linux distributions already package it like this, anyway.
If Mono’s purpose is to allow porting to Linux of Windows applications originally written under the .NET framework, then Mono 2.0 installed without Windows.Forms, ASP.NET or ADO.NET has no purpose.
http://en.wikipedia.org/wiki/Mono_(software)
Since version 1.9, Mono now apparently contains Moonlight. Moonlight is an implementation of Silverlight, and it includes binary codecs supplied by Microsoft to the Moonlight project.
It would seem that the whole purpose of Mono has now changed. Its purpose now appears to be solely to get Microsoft dependencies installed by default on (some) Linux systems.
BTW: My KDE 4.1.2 Linux system, which is absolutely functional, has no Mono installed on it at all. Not all Linux systems have the Mono trojan installed on them.
This is, I believe, exactly why there has been a bit of an attack campaign launched against KDE 4 recently.
Edited 2008-10-06 13:43 UTC
Whoa, dude, hold your horses. Mono has plenty of other purposes than just making it possible for Windows GUI apps to run on Linux.
How about Windows console apps?
Hehe, got ya there :p
But seriously, the reason I’m so interested in Mono is for writing Linux applications. I don’t care about Windows.
I really like the features that C# offers as a modern language. It’s a lot better than writing applications in C, especially since I often find myself reinventing wheels in C that I don’t have to reinvent in C#, because the .NET core library already has those things available.
No, you are confused. Mono 1.9 contains a configure option, “–with-moonlight”, which builds a compiler (smcs) that specifically targets the Silverlight 2.0 runtime. It does not include Moonlight itself. It’s also, iirc, disabled by default.
Moonlight can be built using ffmpeg (and we’d happily accept a patch to allow Moonlight to build with GStreamer as well) instead of the Microsoft binary codecs. In fact, by default, Moonlight uses ffmpeg.
What I find cool about C# is how readily anders has been accepting good ideas from other languages. I’ve really been digging stuff like implicit typing with var, and am completely head over heels in love with lambdas, and absolutely adore extension methods.
It is nice to see a mainstream language walk the line between being too conservative about what is appropriate in a statically typed language, and too radical by including everything under the sun.
I agree. From an app dev point of view it puts more options on the table. I’d rather code desktop apps in C# than java or C. Isnt this a no-brainer? I use java for other things and like it more than C# but personal prefernces aside, providing another development offering is always a good thing regardless of your preferences and experiences.
Where the hell did you get that from? The mono project is an effort to make an open source implementation of the CLR, because it is a great platform to work on. The project always encourages Gtk# for new development, winforms is only there for the same reasons that wine exists.
FUD
You, like many other misguided users, haven’t the slightest clue about Mono. The parts of Mono actually used by Linux applications like Banshee, Tomboy, F-Spot, and Beagle are based on standards not proprietary Microsoft technology. Mono does provide some parts of non-standard .NET but this is for compatibility. GNOME doesn’t use Windows.Forms or any other garbage like that. They use GTK just like every other GNOME application. The entire Mono stack for GNOME is their own technology other than the language which is a standard. Why do we have to dispell these paranoid myths every time a Mono article appears?
Well, Mono 2.0 includes Moonlight.
Moonlight includes Microsoft-supplied patented binary codecs.
Mono 2.0 also includes Windows.forms, ADO.NET and ASP.NET, which are also patented Microsoft technologies which are specifically marked as “not for commercial redistribution” by Microsoft. Unless licensed from Microsoft.
All of these technologies require a license from Microsoft in order for people to be allowed to run them. It really is that simple.
In other words … buy a Microsoft-endorsed Linux (specifically SLED) or have no Linux at all … that is the clear aim.
Wrong.
Also wrong. Moonlight builds against ffmpeg and can OPTIONALLY build against the Microsoft codecs.
Misleading, at best. Mono 2.0 does support Windows.Forms 2.0, ASP.NET 2.0 and ADO.NET 2.0, but they are not core components. You need not install them to have a working Mono.
Those portions are only interesting if you have a need for them (which the average Linux user does not, because, as has been mentioned dozens of times in this thread alone, F-Spot, Banshee, Tomboy, etc do NOT depend on any of those components).
http://en.wikipedia.org/wiki/Mono_(software)#Mono_components
The problematic Microsoft compatibility stack is cited as being part of Mono.
http://en.wikipedia.org/wiki/Mono_(software)#Current_status_and_roadmap
“An open source implementation of Silverlight, called Moonlight, is now underway and is included in Mono 1.9. The Silverlight 2.0 .NET classes are implemented as part of the Olive module. Moonlight shipped as part of Mono 1.2.6 release.”
Edited 2008-10-06 14:39 UTC
Dude, you’re really getting on my nerves here. You can be part of something, but still not required for that something to function.
Pidgin is a part of Ubuntu, but it’s not required for Ubuntu to function.
iChat is part of Mac OS X, but it’s not required for Mac OS X to function.
My hair was part of Thom Holwerda, but it’s not required for Thom Holwerda to function.
Those components are part of Mono, but they’re not required for Mono to function.
Am I really smart, or are you just really, really stupid? I’d hazard a guess it’s not the former.
Are you sure? Maybe you’re like Samson.
Are we talking of pubic hair?
Did you actually read the article you linked to? Look at what is says:
“The concerns primarily relate to technologies developed by Microsoft on top of the .NET Framework, such as ASP.NET, ADO.NET and Windows Forms, i.e. parts composing Mono~Ac^AEUR^ATMs Windows compatibility stack. These technologies are today not fully implemented in Mono and not required for developing Mono-applications.”
What is your point? No where does it say they are implementing binary codecs as an integral part of Moonlight. Get over it already. Mono doesn’t depends on Microsoft technologies. The Microsoft technologies are only developed for compatibility. Read your own links!
Yes, Mono implements those pieces, but no, they are not a core part of Mono. As I’ve said multiple times in this thread already, it is not required for people to install those components.
Mono is like GNOME or KDE in this respect, the projects might include a web browser, but you don’t need to install it to have a functioning desktop.
Then Wikipedia is wrong. I know this might shock you, but Wikipedia is not the be-all, end-all of information.
I know for a fact that Moonlight is not included in Mono 1.9 or even 2.0 because I am one of the Moonlight developers.
I think I know just a *tad* more about this than Wikipedia or you.
It does not include Moonlight; We have not released Moonlight yet.
Moonlight ships without codecs. If you want to watch patent encumbered videos and audio (mp3, h.264, vc1) you will need to get the codecs from Microsoft or if you live in a country where those patents are invalid you can use the open source FFMPEG libraries, Mono supports those out of the box.
There is nothing “specifically marked as `not for commercial redistribution'” in anything you listed above. You are confused.
We have a policy to not infringe patents, see our web site. And if a patent exists that is not covered by a patent grant, and it is valid with no prior art, we are committed to redoing the code in a non-infringing way, or removing the functionality.
What makes you think that the CLR specification and the Common Language specification core technologies are safe? Irrevocable RAND terms have not been granted regarding those technologies, and it is merely governance of the ECMA that is keeping it in place.
What makes you think the Linux kernel is safe? Microsoft has claimed that the kernel has hundreds of patent infringements in it. What about Samba or Wine? I don’t understand this focus on Mono. If you’re really worried about Microsoft’s software patents then I suggest you stop using any kind of software altogether.
They can say whatever they want, but until they don’t give proof, it’s only FUD.
Microsoft did not claim its own patents in the Linux kernel. The Linux kernel is, after all, a UNIX work-alike, whereas the NT kernel is a VMS work-alike.
Samba is OK. Samba is a free software implementation of the SMB protocol, which is an IBM invention.
Wine is more problematic, and in some respects it indeed parallels Mono.
I personally don’t run Wine either. I’d rather find a native Linux application that does a similar job to any given Windows application. Very often, the Linux application will be better anyway.
… stop using any software where Microsoft can feasibly claim that you would need a license from them (even where Microsoft did not write the code you are running), because Microsoft hold prehaps-valid patents in the applicable technology. Yes. Indeed. Agreed. Precisely the point.
That is why I don’t run Wine or Mono.
That is also why it is absolutely fine for me to run the Linux kernel, GNU software, KDE desktop, Qt libraries, Samba, LAMP stack, even ntfs-3g (since Microsoft clearly didn’t invent the concept of “filesystem”), OpenOffice (since Microsoft did not invent the concept of “office suite”), Firefox (Microsoft didn’t invent the web browser), Thunderbird (Microsoft didn’t invent the email client), and so on.
Microsoft did, however, invent the Win32 API, and Microsoft did invent the .NET framework.
Edited 2008-10-07 01:27 UTC
http://www.vnunet.com/vnunet/news/2189833/microsoft-claims-patents-…
Have you ever heard of CIFS?
Have you ever read a software patent. They are so broad that everything in the open source world probably infringes on at least one of Microsoft’s patents.
I’m happy for you. Run the software you want to run. No one cares. We just don’t like you shoving your opinions down everyone’s throat and spreading massive FUD because of your own irrational fears.
http://www.vnunet.com/vnunet/news/2189833/microsoft-claims-patents-…
“The company claims that the Linux kernel violates 42 of Microsoft’s patents, that the graphical user interface such as the Gnome and KDE projects fall foul of another 65 and that OpenOffice infringes 45.”
That is what is called an “ambit claim”. More on this later.
Precisely so. The fact that Microsoft won’t name the claimed patents means that Microsoft knows the claims are weak, and easily defended.
… and furthermore, as soon as Microsoft made such a claim, SFLC and the Linux Foundation would cherry-pick from the patent holdings of OIN and the Patent commons, and couter-claim with at least as many patent claims right back at Microsoft.
Sure I have. CIFS is a new name that Microsoft gave to the SMB protocol, because people realised that the SMB protocol was actually invented by IBM.
http://en.wikipedia.org/wiki/Cifs
Note that the Samba program is not part of the Linux kernel, it is not KDE nor GNOME, and it is not OpenOffice. So Microsoftie quoted in the article you linked to actually made no claims at all of patent infringement by Samba.
And everything in Windows probably infringes on at least one of the patents held by the OIN and the Patent Commons. So? We knew that already. It is all a part of the “mutually assured destruction” scenario. This is actually the reason why Microsoft does not sue Linux.
http://en.wikipedia.org/wiki/Open_Invention_Network
http://en.wikipedia.org/wiki/Patent_Commons
http://en.wikipedia.org/wiki/IBM_Technical_Disclosure_Bulletin
http://en.wikipedia.org/wiki/Software_patents_and_free_software#Tec…
Look at this one, for example:
“Novell donated the valuable Commerce One web services patents to OIN. These potentially threaten anyone who uses web services.”
http://en.wikipedia.org/wiki/Commerce_One
Pfft. Blow it out your rear.
Microsoft added features to SMB. They didn’t just change the name.
So does that mean you have come full circle and realize that bitching about Mono is pointless? The more and more I read your posts I realize that maybe you aren’t really against Mono as much as you are just against GNOME.
But the point here, from an “invention” point of view, is that the SMB protocol was just extended (and obscured) by Microsoft … but it was still invented by IBM. Patents are awarded for inventions, after all, you do realise.
PS: The “inventor” of client/server services over a LAN is Novell, with their Netware product.
The article you linked to is the point. The existence of things like Mono leads people like you to believe there is substance in Microsoft’s patent murmurings against Linux. That means it is probably the best approach to simply not use Mono, so that you can realise that there is no actual substance to Microsoft’s patent bluff, and hence be unafraid to use Linux.
If you (and people like you) were brave enough to actually critically examine Microsoft’s bluffs, then you would realise their lack of substance on your own accord … and we could all then use Mono quite happily.
Since, however, Microsoft does have the ear of the majority of people, and they do not bother to critically examine what Microsoft says, then it remains better to simply shun Mono.
We don’t need it after all.
Edited 2008-10-08 03:49 UTC
You are downright trolling about this stuff lemur.
…
You would have a great point, except that the mono team requires that all contributers have never read BCL or ROTOR source, and that they wrote all three implementations years before ms released their source.
To violate a patent, you don’t have to copy the source.
Copyright law protects the expression of an idea. If a copy of the actual text of the code that MS released under the shared source Microsoft Reference License appeared in Mono, that would be a copyright violation.
Patent law is not copyright law. Patents protect the idea itself, and not just the expression of it in source code.
http://en.wikipedia.org/wiki/Patent
ASP.NET, ADO.NET and Windows Presentation Foundation are protected (I believe) by patents. If so, it doesn’t matter one whit if Mono contributors have never read BCL or ROTOR source, or that they wrote all three implementations years before ms released their source. They would still be in violation of Microsoft IP if they do not have a license from Microsoft to use the protected IP.
I believe that Mono Project developers (on Novell’s staff) may in fact have such a license, as part of the Microsoft/Novell deal.
This however does not mean that anyone else (downstream) can use the Mono Project source code, as THEY certainly do not have such a license.
PS: Thankyou for admitting that I have a point.
Edited 2008-10-08 08:54 UTC
Reverse engineering is a specific exception to this. If it weren’t for that, smb and ms office format compatibility would have been illegal until they were opened/licensed, and wine would still be illegal.
It is definitely a sort of grey area though, and one that could go to court. The thing is that the worst thing that could happen to mono is forcing them to stop distributing ASP/ADO/Winforms. That is a pain, but its not something that would in any way effect linux mono apps, since its only the high level stuff that gets questionable.
The low level stuff (CLR/C#) is under an open specification, and the linux mono APIs (like GTK#) are completely patent free.
The mono team understands the issues, and from day one has been real careful to keep the dangerous stuff seperate from the safe stuff. I would agree that nobody should base their business on the mono implementations of the .net stack (just like I would caution anyone to base their business on wine), but mono is a great platform that integrates very well into existing linux APIs.
Sorry. Very nice try, but no. It is OK to reverse engineer a trade secret, but not a patent.
Copyrights protect the expression of something (so you can’t copy source code directly, you have to write your own). OK, copyrights aren’t the problem, because Mono source code, and Samba and Wine etc aren’t a copy of Microsoft’s source code.
Patents protect the idea (or the invention, if you will), and not just the expression of an idea. Samba is a free-software implementation of the SMB protocol (IBM’s invention) for delivering client/server functionality over a LAN (Novell’s invention, in Netware). The only form of IP that Microsoft has that Samba could possibly violate then is a trade secret. Reverse engineering is a perfectly legal way to try to uncover a trade secret. So Samba is fine, that is all fairly clear cut.
Wine is a bit more problematic. Wine is a free-software implementation of a translation between Windows win32 API and the Linux API that covers the same purpose. Therefore Wine does not actually do the same thing as the win 32 API. The Linux API clearly is not a copy of the win32 API. In any event, since any OS has to provide an API for programs to run, since that is a basic function of an OS in the first place, there is a strong argument that the win32 API is not a new invention, and Microsoft can hold no valid patents in it anyway. I haven’t decided about Wine, but I think it too might be OK.
.NET is a problem. Microsoft has a fairly strong case to claim that .NET is a Microsoft invention, and therefore any patents that Microsoft holds covering .NET are valid.
I could argue that .NET is just a different-looking implementation of the same functionality as Java, and that therefore Java is the real original invention and not .NET … but that is a point that would have to be argued in court.
If you want to implement .NET you are legally far better off (i.e safer) to get permission (that is, get a license) from Microsoft to implement it. I believe that Novell probably does have such a license from Microsoft to implement it, and therefore Novell is perfectly fine to write Mono.
The crunch comes … who can legally use Mono? Implementation of the .NET “invention” requires a license from Microsoft, but so to does use of that “invention”. (This pre-supposes that Java is not prior art for .NET, and that Microsoft’s patents are valid, but bear with me, because Microsoft legal certainly believe that is so). Certainly purchasers of Novell SLED can use Mono, because they too have a license to use it paid for as part of their purchase of SLED.
Anyone else? I don’t think so. Anyone else (other than Novell’s programmers, and Novell’s SLED customers) would be included in Mr Ballmers group of “Linux users with an undisclosed liability to Microsoft” I believe if they use (or try to modify the source code of) Mono.
Mono is not a great platform at all for Linux if, years hence, when a number of mission-critical Linux enterprise applications have been written in C# and using Winforms, ADO.NET and/or ASP.NET, and Microsoft decides to sue.
If I were Microsoft, that actually would be the anti-Linux plan. Get some patent hooks into Linux, get some mission critical stuff using the patents, wait until businesses depend on it … then collect license fees for it.
Hence … far better to use Java. It achieves the same end, performs better, and is unencumbered.
Ditch Mono now … before it becomes a potential problem.
Edited 2008-10-08 23:03 UTC
Just on Wine … there is another argument. Wine is not a copy of Microsoft’s source code for the win32 API, so it is in no danger from copyright law. Wine is a reverse engineering of the win32 API functionality, but that is OK IF the win32 API is only protected by virtue of it being a trade secret. Wine is only a problem if it violates a valid patent held by Microsoft.
OK, there is certainly a lot of prior art for the concept of an API, so Microsoft have a hard task right off the bat to try to establish that they did have a valid patent in this arena, but let’s suppose for the moment (for the sake of argument) that the US patent system is inane enough to allow Microsoft an enforceable patent on some aspect or another on the win32 API.
OK, a patent is actually a form of IP protection for a “method” of doing something. It does not protect the actual “doing of something”, but only the method of doing it described in the patent.
Example of what this means: it would be possible for Edison to get a patent on his invention of an incandescent light. The patent would be to protect edisons “method of producing light from electricity”. That after all was Edison’s invention.
OK, a flourescent light, or a LED light, both are also “methods of producing light from electricity” … but neither would violate Edison’s patent on his incandescent light because both the flourescent light and the LED light sources use an entirely different method to produce the light from the electricity.
With me so far?
OK then … Wine uses an entirely different method to provide the win32 API services to any running programs than Windows does.
Wine passes the calls (with translated parameters) on to and back from the Linux API, whereas Windows processes the calls directly.
Therefore, you could argue, that Wine does not violate any patent that Microsoft may hold, because Wine uses entirely different methods than Windows does.
Edited 2008-10-08 23:52 UTC
I see what you are saying about patent vs copyright. I am not entirely convinced that the exceptions in the law around reverse engineering do not apply to patents, but at the same time im not in the mood to go hunting down the info at this moment in time
You missed my point with this. There are two purposes to mono. one is to be like wine, and reduce the difficulties of porting to linux to writing a few lines of code. The second is to create an open implementation of the CLR. Nobody is saying they are not on shakey legal ground with the first thing.
if you go here http://mono-project.com/FAQ:_Licensing you will see what I am talking about.