Post a Comment
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).
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
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). "
Who cares? This thread is about 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). "
http://www.geocities.com/arnoldsounds/Proud.wav
Edited 2008-10-06 20:15 UTC
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.
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.
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_...
This is the most restrictive of the Microsoft Shared Source licenses. The source code is made available to view for reference purposes only. Developers may not distribute or modify the code for commercial or non-commercial purposes.
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
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.
Yeah, because there's just SO much precedent out there of Microsoft suing individuals or other companies for patent infringement.
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.
Yeah, because there's just SO much precedent out there of Microsoft suing individuals or other companies for patent infringement. "
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.
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 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
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.
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.
You are downright trolling about this stuff lemur.
...
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.
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.
"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.
...
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.
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
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.
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..
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 ;-)
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)...
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?
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.
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
- 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.
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.
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).
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.
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?
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.
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
http://www.langpop.com/
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).
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
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).
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.
Thanks for the compliment ;-)
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++.
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
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).
Choice is indeed good to have
And thank you for your gratitude for our work, it is very much appreciated!






