Joe Shaw has this article about the perception that people seem to have about Mono. He also mentions some of the motivations for developing applications for Mono or in a language like Python.
I have a few observations that probably won't be very popular. First, Joe's observation that new programs in GNOME are done using either Python or the Mono runtime. That maybe true but obviously most of the programs in GNOME are still C based. These programs continue to get updated against new versions of GTK+ and the rest of the GNOME libs which are also C based. So you really can't just say that C isn't useful anymore. The GNOME desktop is a testament to the fact that C is still a good language to write programs. Yes, C# and Python maybe more productive but since those programs are being written for GNOME which means they still need the GNOME libs in order to perform. The part about Python programming being hard on large programs isn't a python issue it's just the state of programming. The larger the program the harder it is to keep it all together no matter the language. That being said I think all code should have unit testing and code coverage tools ran against them no matter what language or runtime. Second, it seems that Mono's new features revolve around parts of Mono that aren't a part of the standards. This is something that Novell is pushing for whatever reason. Since they currently control the project that is their decision but I think that is also where some of the hostility toward the project comes into play. I think for Mono to move forward the project needs to reassure the users and developers that it is committed to free unencumbered open source software.
Okay, so I'm not making any friends here. :) Sorry, it's just I can see both perspectives here and in a way I agree with some of what both sides are saying. So on to the other side.
The C# compiler that is a part of Mono and the Mono runtime along with GTK# that make up programs like Tomboy seem to be unencumbered. If your argument is that programs shouldn't be written in C# and use Mono because their might be a patent issue somewhere then why write applications at all since they would all be open to the same patent problems no matter which language or runtime is used. If your argument is that everything in GNOME should be C based then you obviously haven't been paying attention as many of the newer add-on type features are utilizing Python. Now if Python is okay to use yet still requires it's own runtime along with the GTK+ runtime then why isn't the same true for Mono? It also seems like many people write bug reports on Mono based software just to bash the Mono Project. I see no problem if there is some kind of legitimacy to the claims. So far these seem to be nothing more than the same kind of thing Microsoft does in their FUD campaigns. Does Open Source really need to do this?
Why not focus more on the applications and usability. Are there alternatives that have at least the same if not better features that have less legitimate bugs? If not then just report real bugs and be done with it.
I'm not saying anything here that is new. I don't think this bickering is that healthy in the landscape of Open Source. In some (very few) instances it has turned out for the better but overall it tend to lead to forked code and an uneasy feeling for those standing on the sidelines. We end up having to choose sides or not be involved at all which takes away from the spirit of Open Source.
2007-10-29
Subscribe to:
Post Comments (Atom)

2 comments:
Hi Greg,
I agree to an extent that using C for platform libraries is a good idea, and I certainly wouldn't advocate eliminating the ability to write in C by requiring that functionality to be in something like Python or C#.
Also, I totally agree with your conclusion that the issue with Python is a programmer discipline issue than an issue with Python itself. Apparently a lot of people misinterpreted me to think that testing was somehow unnecessary.
Agree wholeheartedly on the FUD thing. For all the benefits that Mono gives one in development, it's been more or less neutralized by the hassle with its acceptance in the community and the harsh reactions.
Thanks,
Joe
Thanks for the comments Joe.
The point I was trying to make with not abandoning C was basically choose the applications based on features not on the language. It isn't so much that I think GNOME should stick with C or move to any other language. I don't think any 'language' is the answer. At the same time I'm also concerned with the extra bloat that comes with all of the different languages and runtime that are required for a the current complete GNOME Desktop.
I think that without having something like a common runtime (Mono) what you end up with is an extreme amount of work being done over and over again. I understand that GTK+ using the GObject as a base lends itself to easy wrapping but it still seems like a lot of repetitious work is going into writing those wrappers.
I still think that the choices available in open source are the key to it's success and what makes each Linux distro unique but this is a complex problem that needs to be addressed.
Post a Comment