Mono and dotGnu: What's the Point? 493
joeykiller writes "The Register features an opinion by Neil Davidson, asking 'Mono and dotGnu: What's the point?' Some of the points he raises may seem irrelevant for open source supporters (like why make a C# compiler while Microsoft's is free anyway), but others are thought provoking and maybe a little bit controversial. You may not agree with his opinions, but it's an interesting read anyway."
Um... not free exactly... (Score:4, Informative)
Re:Free for who? (Score:2, Informative)
letters to the editor (Score:5, Informative)
http://theregister.co.uk/content/35/35557.html [theregister.co.uk]
not that i'm trying to defend
Re:Technical Director? (Score:4, Informative)
As for me, I think it's a cute project, but it's only use I see is cross-platform GUI applications. (a good thing for Linux adoption by the masses) And Mono is way off for doing that.
Re:Free for who? (Score:5, Informative)
Free as in beer... yes (Score:5, Informative)
Theoretically you could write C# applications for those platforms just like you could write C, C++ etc. applications for them. I don't see how you would need any other Microsoft products to use their C# compiler, though obviously Microsoft currently produces the most comprehensive development environment for C#.
Re:Free for who? (Score:2, Informative)
i think thats it
Re:Motivations (Score:5, Informative)
Re:Free for who? (Score:5, Informative)
We have turned Wine into a library, very much like Gtk+ is a toolkit on top of X, or Motif is a
toolkit on top of X, we have turned Wine into a toolkit on top of X.
The reason for doing so is that Windows.Forms is not a perfect API, it is modeled after the
Win32 API, and this Win32-ism is exposed at various points, for example every Control in
Windows.Forms can override the Wndproc method and handle Win32 messages itself to implement
some of the advanced features that are not possible with the simple binding provided.
Most GUI special effects are achieved in this way, and most third-party libraries that you can
download from the network will call into the Win32 layer, skipping the Windows.Forms API.
It is certainly possible to emulate a lot of this without using Wine, but you would just end up
replicating a lot of the work that has been done in Wine.
So instead, we chose to turn Wine into a library that we dynamically load whenever a
component needs to use Windows.Forms.
We made Wine work on multiple platforms (so you can run your Windows.Forms applications on
MacOS X for instance), and we also are integrating it with the Gnome desktop,
so things look and feel the same to end users.
You can learn more about the technical details here: http://www.go-mono.com/winforms.html
Re:He obviously doesn't get it (Score:5, Informative)
Here's the point (Score:2, Informative)
From what I understand, the Mono project pretty much has a complete implementation of both the ASP.Net and ADO.Net libraries, and that will do for the vast majority of web applications. Therefore, I completely disagree with the author's comment that "even if Mono or dotGNU gets 99 percent of the way there, that's not enough." His analysis might be more accurate if your talking about desktop applications, but I don't think his arguments really have any relevance to web apps.
At the very least, Mono and dotGNU will give Java/J2EE a little healthy competition on some different platforms.
Re:One reply (Score:4, Informative)
Common Intermediate Language, so you compile in
one platform, and you run in another one. All you
need is a virtual machine running on the target
system
Re:One reply (Score:5, Informative)
But we have. We support SPARC, SPARC 64 bits, HPPA (32 and 64), StrongARM and PPC in a wide range of operating systems.
Re:Motivations (Score:5, Informative)
Most Java apps are not client side apps. Java is (at least at the moment) still heavily server-side. So looking at GUI apps as a mark of quality of Java as a development language is highly misleading, although understandable.
However, take a look at Swing Sightings [sun.com] for some examples of truly outstanding Java GUI apps...
Wrong (Score:3, Informative)
On a side note, I just love how posts (like the parent) which are half-guessed speculation and mostly false manage to get "+5 Informative"
REPOST TROLL, MOD DOWN (Score:0, Informative)
The troll didn't even make any changes...At least give some credit to the original author! (Steve)
Re:Mono/MCS does not work on OS X ! .. only mint d (Score:5, Informative)
something that we are actively fixing.
(We do not officially support the MacOS X for this
very reason: we are not done yet with the port,
the technical detail has to do with the patching
of generated methods to point to new methods that
are JIT compiled on demand, and the issue there
is that the PPC needs more room to do calls that
span the +32/-32 meg barrier, so you need to build
some thunks, not hard to fix, and on our todo list)
The Mono C# compiler works on OS X, we use it to
build all the class libraries and Gtk# as well.
Miguel
Re:grrr. (Score:5, Informative)
BTW, ECMA accepts all standards that companies care to pay for, they are hardly neutral.
Re:One reply (Score:5, Informative)
This problem has been in existence forever - how can it be that C compilers can be written in C? (Hint: the first one wasn't)
Re:He obviously doesn't get it (Score:5, Informative)
Re:Free for who? (Score:5, Informative)
And just because Mono uses GTK which can also run on Windows does _NOT_ mean that there is no work involved in porting it to another architecture. The fact of the matter is that porting from windows to linux to bsd to solaris will always involve some sort of functional changes.
Mono is simply
Re:Um... not free exactly... (Score:5, Informative)
Re:Why not support Java then? (Score:5, Informative)
Re:grrr. (Score:4, Informative)
Java is available for MS Windows (95,98,ME,NT,2000,XP,CE), Linux, Apple MacOS, FreeBSD, IBM AS/400, IBM OS/390, IBM AIX, IBM OS/2 (yes, some people are still running it), Sun Solaris, SGI IRIX, PalmOS, Nokia cell phones and numerous other embedded devices. I'm sure I've missed a few but that's just off the top of my head.
When .NET allows me to run a program on everything from a mainframe to a cell phone then I'll be impressed. I doubt that will ever happen because Microsoft is too afraid to put .NET on any platform it can't dominate.
Re:Tastes like... burning (Score:2, Informative)
> huge Java and
I believe that's what they're doing with the binding of the CLI to Standard C++.
More info here:
http://www.ecma-international.org/news/ecma-TG5
Re:Free for who? (Score:3, Informative)
Part of it sure is reimplementation of
In other words, Mono is
--
Re:grrr. (Score:3, Informative)
You really are naive. Both the Java Language and the JVM are published in books by Sun, I have them both, and they are both still current, even after several years. Sun has always had a good policy regarding forward compatibility, even Java 1.2 programs will run in 1.4. Only Java 1.1, as the original maturing version, is truly obselete. Further, is there a major operating system out there where Java doesn't work? Even IBM and HP have stakes in Java, and these are companies that hate eachother. Sun has done fairly well to build these sorts of checks and balances into the Java Platform, none of which exist for
Re:Free for who? (Score:5, Informative)
Mono feeds off of the various Linux GUI libararies in order to implement the windowing requirements for
Mono offers no improvements to
Re:grrr. (Score:5, Informative)
Look at: http://primates.ximian.com/~miguel/tmp/map2.png [ximian.com] to get an idea of what we have to offer today
Re:Obvious and Sophmoric. Where's Something Origin (Score:3, Informative)
Re:Wine + Mono = Instability (Score:5, Informative)
and better solution. And that is exactly what we
have done with our own toolkit called "Gtk#".
Gtk# not only is very nice to program with, but it
is also cross platform and people are using it
in some cases instead of Windows.Forms on Windows
itself.
That being said, our effort to support the Windows.Forms
API is not driven by a need to have that API at all,
we believe it is one ugly API. Our drive to support
it comes from the fact that people are using it,
and have made certain assumptions about it.
So to us Windows.Forms is a compatibility play,
and one that we have to support to assist people
who want to try Mono as a way of moving their apps
to Linux.
The API we are recommending developers to use is
the Gtk# API.
Hope that answers the question
mIguel needs to address the legal issues. (Score:2, Informative)
The ecma standard is not the problem. The compiler and clr are not the problem.
It's the libararies, dude. So many people say this guy is on crack, but he has a valid point that all ximian and
Finally, I think a lot of other people bring up a good point...maybe some type of GNU language, a sysnthesis of Java and C#, would be better than the aforementioned projects from a purely political point of view.
Really, Miguel and RMS need to sit down and have a few beers with PJ at groklaw and come up with some theories on all this stuff.
Re:Motivations (Score:3, Informative)
Having done a little in C# and a lot in Java, my personal opinion is that the development environments are comparable, with the caveat that you've got way more options for tools and components on the Java side since it's a much more mature and broadly supported platform.
I'm curious about why you don't want to use Java. Java and C# are remarkably similar -- aside from some Windows-specific bits in C#, I'd guess that anything you like about C# development would also be true of Java development.
While it's true that the original Java GUI API's were quite primitive, they've made a lot of advances. As another poster commented, the vast majority of Java code these days is server-side, but there are some rather nice Java applications out there. The look of the buttons, etc., is actually up to the runtime environment -- Java app's look great on MacOS X, for example, but a little more primitive under Unix. But I've seen some really slick Java app's, so I think that the "primitive look" is more a product of someone not focusing on getting the UI right than of a limitation of the Java GUI tools.
Re:Free for who? (Score:3, Informative)
Sounds like he's saying it extends the framework to me...
No, he's not -- but I understand how you'd reach that misunderstanding. He's trying to compare Mono to Microsoft's well-known tactic of "embrace and extend", wherein they "embrace" a popular/useful technology publicly, but then "extend" it via an implementation offerring a few advantages, but in a way that won't work with the original (often partially because of new capabilities).
Quite seriously, this is precisely what Mono is doing with
But again, if you're not familiar with that expression, I can understand why you'd misread it to be saying that Mono was extending
Not as well as many others have, but I'll summarize a couple of points.
- they offer a FAR superior alternative to ADO.NET (caveat: I've no right to judge, as database access isn't my specialty)
- they offer very elegant access to graphics operations in a way which is both powerful and platform-independant (Windows.Forms only handles one of these things at a time). I've been told that GTK# is one of the nicest ways to do GTK work.
Now mind you, I'm NOT saying that Mono is better than
-Billy
Re:Technical Director? (Score:2, Informative)
Doesn't TCL/TK fit the bill here? Not really a VM, but a powerful scripting language, completely crossplatform with a GUI system? Granted many people complain about the GUI, but there are some decent looking enhanced widgets. And now, with Starkits, a fully functional TCL/TK application can be installed as a single file copy.
Neil Davidson's conclusions are incorrect (Score:3, Informative)
Further, we only need to find one practical use of mono to demonstrate that the conclusion is categorically wrong. That mono ships with commercial products such as Virtuoso suggests that there is at least one practical use of mono.
On Davidson's second point, I think he misunderstands patronage. Microsoft does not currently fund mono in any way in which I am aware. They do fund some competitors to mono such as rotor and (at least at one time) Corel's attempt to bring dot net to Linux. His only example of Microsoft being a patron consists of a hypothetical chain of events that is exceedingly unlikely. I suspect that perhaps Davidson meant forbearance instead of patronage. If he did, he would do well to explain exactly how Microsoft's patents threaten mono because some people (including people far brighter than me) do not see any clear and present danger.
Re:Agreed! We must innovate! (Score:3, Informative)
And if not, what does it mean to create your "own
Think of it this way. When C# was released, everyone said that it (and
Perhaps Mono sees the same thing with the unique features that
Re:Free for who? (Score:3, Informative)
Re:Free for who? (Score:3, Informative)
The Framework Classes are the Framework Classes. If Mono creates their own API to do XYZ, then its _NOT_ an extension of the
MS:
Common Language Runtime (CLR)
The type, metadata and execution systems provided by the
The