The Mono Project just released Mono 0.21, only a few days after 0.20 due mainly to a bug in the compiler which made it abort on top-level enums and delegates on Windows. In the meantime, various other minor bugs were fixed on the class libraries, the runtime and the compiler. Additionally, the similar Portable.Net dotGNU project, released version 0.5.2 recently.
Woot! I really hoe that this baby get finished soon =)
hmm…can someone explain the difference between the 2 projects? different objectives?
the dotGNU project is run by the rabid folks at GNU, mono is not
What can mono do as of right now (capabilities)? does anyone know?
Mono feautures:
C# compiler
VB compiler
JIT
ADO.NET
ASP.NET with Apache module
Gnome bindings
Debugger
etc…
Some of this features are very incomlete but mostly useable.
I hope they use a high quality generational garbage collector. Otherwise it will not be competitive to the MS runtime or the java VM.
I read somewhere that they are using a conservative garbage collector. Can somebody confirm this? A conservative gc would never be competitive to the advanced gcs in both the MS runtime and java.
I think mono is a multi-platform .NET clone, while dotGNU is a “.NET-like” but not compatible environment for the GNU system. Correct me if I’m wrong, I’m not much into this…
They’ve got one that works now, however, IIRC, they are working on a highly tweaked and tuned VM behind the scenes. Once it is ready, the source will be made available. Until then, for most things, the current Vm does the job quite nicely.
In VM architectures generally more than one type of garbage collector is used. That is because, for different sections of the virtual memory keeping the programs different garbage collectors work better. Also for server and client side programs the garbage collector used is important. I know, for instance, in Java there are 7 different garbage collectors are in action, last two, generational CGs added the latest.
Mono is one of the few projects that keaps me interested in things outside windows and OSX. When finished I think it will truelly be something that makes a big impact in the Open Source Arena. Keap up the good work.
Damn philosophy, we _now_ have two incomplete dot net implementations, how far would the .net thing be if the efforts had been combined from the start…
Everything in Mono is GPL’d except the class libraries that are under the MIT X11… Couldn’t GNU (or MONO) have created just a new set of class Libraries, and made sure that we had ONE secure/fast/stable implementation?
I beleive a lot of the GNU philosophy, there should be open alternatives to proprietary software for the sake of us all, but the operative word is alternatives. Why wouldn’t you want businesses using your class libraries to build new, and sometimes proprietary software?
If GNU really cared about openness taking over the world, they would learn to be more flexable with their philosophy, and make sure that when .NET really hits the market that there is a good open alternative already in place.
keeping it short, kerberos
proprietary entities aren’t to be trusted, they take the free and turn them into non-free
that’s why we have the GNU, etc, to make sure there will be a Free version that can’t be corrupted.
just my .02 cents
Go mono, go dotGNU, …
Developing GUI applications with Gtk# is a pleasure. You might want to look at http://www.go-mono.com/screenshots.html/ we have posted a few screenshots of various applications that have been done with it.
I personally feel much more productive writing code in C# than in other languages, and I have written a lot of code in other languages.
Eran : you have a good point, but you have to consider the fact that Microsoft has patents on .NET. So even if MONO is free licensed, it is still under the threat of legal action or payment of fees when Microsoft finds this competition unacceptable anymore like it did so many times in the past.
This is the same thing with GPLed mp3 encoders, which are free thmselves but not the format, and Fraunhofer may make pay for their use. OggVorbis is better, because the format is free and has no patent associated (and quality is so much higher). The same with mpeg4 (Xvid or ffmpeg/libavcodec encoders) and a new format derived from vp3 will be preferable because it is not patented.
Here is a statement from Microsoft:
https://mailserver.di.unipi.it/pipermail/dotnet-sscli/msg00218.html
Most of Mono is covered by that (Compilers, runtime engine, core class libraries). The upper layers (Windows.Forms, ASP.NET) are not covered by the free patent grant, but we believe that there is enough prior art that this will not be a problem in countries where software patents apply.
If it were a problem, there is no problem either. We have Gtk# and SWT toolkits as cross-platform solutions, as well as an ongoing SharpDevelop port to Linux which uses SWT/Gtk# as its GUI toolkit entirely.
Miguel.
Damn philosophy, we _now_ have two incomplete dot net implementations, how far would the .net thing be if the efforts had been combined from the start…
Nine women can’t have a baby in one month. Just because there are multiple projects doing what appears to be the same thing, it doesn’t mean that if everyone got together they could produce results any faster.
We have Gnome/KDE, KOffice/OpenOffice.org, MONO/dotGNU, and numerous other projects which provide many of the same things as their couterparts. That may seem weird to some of you, but I think that’s because of the monopolistic nature of the software industry in the past. If you look at other industries, you’ll see that this kind of competition is a GOOD thing. It only seems weird to us because there’s never been room in the software market for this kind of activity before.
Motorola, Nokia, Kyocera, and many others all make mobile phones. Duplicated effort. Kodak, Fugi, and many others research and make film and photo paper. Duplicated effort. AMD/Intel. Coke/Pepsi. Kleenex/Puffs. Ford/Toyota/Honda/Hyundai/Kia/Mazda/Crystler/etc/etc all spend thousands of dollars on R&D and production of cars. Duplicated effort. So what?
The goal should not be to produce software to dethrone Microsoft. The goal should be to produce better software.
Given the design of the .net clr, objective C would be a natural fit (single inheritance, protocols).
<p>
Additionally, native gc and exception support would make for a nice openstep/gnustep environment.
<p>
Any chance of that? Personally, gnome was a waste of time trying to play keep-up with KDE (which was once slightly non-FREE). If the effort had been spent on gnustep, gnustep would be as good as cocoa now.
What about QT#?
I find that a bit surprising. The C# in mono right now doesn’t look all that interesting to me; nor would I expect it to be to other students of programming who’ve had a breadth of experience in other languages.
I wonder if Miguel has ever written much code in SML or O’Caml.
C# strikes me as the latest “most refined” simple version of C++, but with a big explosion of planned libraries from MS, and very good tools — but not the same level of performance.
Anyone in the know happen to know about the plans for generics in C#? I’d like to know inparticular if you’ll be able to do some kind of reflection with them, which isn’t very easy to do in C++.
@Anonymous
Most of my programming experience has been with procedural and object oriented languages (Basic,Pascal,C,C++,Java,C#). I always thought that functional programming languages were an academic niche with little or no practical relevance. I do a lot of mathematical and numerical computing, and the inability of most FPL to handle mutable state makes them incapable of efficiently handling such problems.
But last christmas I discovered that there are Functional Languages that can handle mutable data and thus can be used to write efficient numerical stuff in FPL <http://www.cs.kun.nl/~clean/>. I really love CLEAN. It was a relevation! Functional programming is so much more efficient than procedural programming. Unfortunately it can not pay the bills, so I still have to work using java. But it is so boring and uninspiring compared to functional programming…
Fortunately there are plenty of functional languages that target the .NET CLR. <http://www.cl.cam.ac.uk/Research/TSG/SMLNET/>
If the mono project provides a high quality runtime, I am happy.
p.s.
One advantage of procedural programming language is that they are easier to teach to newbies. It is quite hard to teach complete newbies the concepts of methods and objects, so it would be next to impossible to explain parametric polymorphism to them.
My background is similar, tuttle. I also once had the same impression until I actually tried using them. I’ve also noticed that in whatever code I write, after awhile my code approaches a fuctional-like structure.
As far as performance is concerned, SML NJ and O’Caml both produce very good code. O’Caml is especially good. Numerical stuff isn’t my area though so I can’t comment there specifically.
I also don’t think there is any problem in teaching it to newbies. Actually, in my experience newbies find it more intuitive than the approach typically taken with “object oriented” design.
Given the design of the .net clr, objective C would be a natural fit (single inheritance, protocols).
.NET is supposed to be pretty unfriendly to languages that aren’t statically typed. I know people who have been waiting to get a good look at SmallScript to see how it deals, because it isn’t totally obvious how fit a Smalltalk(/Objc)-style type system into the CLI.
What about QT#?
dotGNU have an early working implementation of QT# with a demonstation Mahjong game
Correction to the GTK# screenshots link:
http://www.go-mono.com/screenshots.html
or does Mono really, really need a new logo?
Thanks.
Bascule,
Indeed it does, I don’t know how that logo got this far, their other logos for Xiamian (sp) are so much better. Heck just make Code Monkey the logo, much better. The current logo is greepy and looks worse then some thing from the GNU webpage. Speaking of which why does the GNU website look so horrible, they deffinitly arn’t attracting people with that.
I would be more than happy to work on a new logo for the mono project if they are interested.