Unix was originally all about not being… Multics. If Mono is to follow a similar nomenclature (just for the kicks), we have to talk about Mono’s upcoming ‘monopolization’ and ‘monarchy’ in the next generation of the Unix programming land. Your see, if everything goes well, in 2 to 3 years most new Gnome user/desktop applications will be written –hopefully– in Mono and C#. Update: Miguel deIcaza replies.For the last 2 months I run Mono and GTK# on my Slackware 9.1 installation, trying to learn GTK#, and I have to say that I am very impressed by it so far. Installation was very easy for both packages (standard “./configure; make; make install” stuff) and there is some online documentation and samples to get you started. There are also about 10-15 GTK# applications available by third parties coming with full source code so you can have a pick on them before starting your own application.
C# is very easy to learn and GTK# gives a much better face to GTK+ (plain C GTK+ development seems to me pretty sad comparatively) as it makes it much easier & faster to develop and results to more secure applications. There are still of course some problems: documentation is incomplete, no robust GUI development tools for it yet (e.g. a good RAD tool integrated in a C# IDE wtih an also integrated debugger), source compatibility is not always guaranteed from version to version, the Windows.Forms API won’t be fully realized for at least one more year, Qt# is pretty much a dead project and the Mac OS X port just started (no Cocoa# yet) while the FreeBSD port is not 100% fool proof. However, we should not forget that Mono’s v1.0 is scheduled for Q2 of 2004, so there is still time to fix a few of the above problems.
Mono has still to fight off a few Linux die-hards who don’t want to see a Microsoft technology used on their alternative OSes but thankfully the situation becomes better everyday as .NET and C# put a stronger foot in the industry and start to get perceived as a “standard”. Another “enemy” Mono will have to fight out (soon enough) is Sun. In my conversations with Sun executives the last few months they kept re-assuring me that no C# will ever enter their JDS or Solaris default installations. However, as Gtk# becomes more mature every day and more applications are getting written in C# (and not just C#), in 2-3 years we will be facing a point where many of these apps might make it to the default Gnome distribution either because most developers would prefer to use Mono by then or because a must-have application at that point in time might be written in C# and no C alternative exists. And at this point I forsee a large opposition from Sun (the #3 commercial strength in the Gnome Project). While Gnome is Free Software, the No1 commercial strength and driving force behind Gnome today is Red Hat (they host the project’s site and they have a number of engineers in key positions) and so all eyes will be set to them for such a decision (as Ximian and Novell (#2) will be pushing for C# in Gnome).
Someone could argue that Sun would be pushing for Java on Gnome too, however Sun has already done (yet another) strategic mistake and didn’t create Java bindings for Gnome neither tried to integrate more to the Gnome desktop (despite their “Java Desktop System” distro, there is no major Java integration to the toolkit or the gnome libraries). Even their java theme wrapper for GTK+ themes is half-baked and almost no developer uses it. Yes, there is a third party java-bindings project on SourceForge, but this has no luck in getting integrated further other than the gnome-bindings upcoming release, as there is no major driving force behind it to help it get enough mindshare and support among the Gnome developers.
What prompted me to write this editorial was the news of three new GTK# applications this week, Blam! (an RSS/RDF reader), WoodPusher (a networked Chess game) and Muine (a music player). Last week I followed Mikael Hallendal’s blog where he literally described his journey into learning mono, gtk# and writing an application — all in one week. And he did it! He delivered “Blam!” in less than a week since he installed Mono, while other similar C-based applications took multiple weeks before their developers had their first beta release out. I believe that stories like these deserve to be more known, because no matter if some hate Microsoft’s technologies, it doesn’t take away the fact that they have spent millions on research and development. Something good should have come out of all this and C# seems to be one of them. Some Gnome developers are now starting to take notice and hopefully more will follow.
This article is not a “MS is cool” article, neither a “Sun Java is not cool”. However it is exactly this:
1. Microsoft created a worthy technology and Ximian’s Mono can bring it to Unix. There is nothing immoral or weird about it, it is just a good environment for developers and a more secure one for users.
2. Sun lost the opportunity of kicking Ximian’s C# out of the picture the moment that they [never] took the decision to do something equivelant (in integration terms) with their Java on Gnome. It was a lost opportunity that Sun didn’t even realize that existed.
If you are a C/C++ or even a Java Linux developer I suggest you download Mono and GTK# today and give it a go. Having an idea of what a new platform can do will only act on your behalf in many ways (and it will save the rest of us from zillion mindless forum comments from people who never developed for Mono or .NET but they feel like talking anyway).
I only have a feature request from the Mono guys: now that Robert Love works for Ximian it would be great if he could supply some patches to the default Linux 2.6 tree (or to ld) to make Linux automatically recognize and load mono’s executables instead of having the user run shell scripts or manually load the VM every time there is a Mono application to load. Update: Apparently there is a way.
I use Java throughout my daily programming and one of the things that I really like, is the crossplatformness. Something I *wont* get using GTK. How is the UI using WinForms coming along?
FWIW, How is speed compared with native c/c++ gtk and c# gtk?
Of course, if you need cross platform development today, you are much better off with Java (or even Qt). However, this article is about the future of Mono on Gnome, not generally in the computing industry.
I am still waiting for Mono developers to finish the FreeBSD port if they ever willing to do it. At the each version release of Mono, I always tried to get it works on FreeBSD and it doesn’t work very well.
/me beings patience….
Another great thing about Gtk#, is it will not be limited to C#. Once compilers for other languages are available for Mono on the same level as the current C# one, there will not be a need for each individual langauge to provide a binding. Python, ruby, java, etc. can all use Gtk# to write great GNOME apps.
I have been programming in .Net on windows for approx 2 years now, and I have to say it is the perfect combination of powerful codewriting and RAD.
I’ve had Mono on linux for about 6 months now, and I have to say I am very impressed by all the hard work and what it has brought to the linux development table. I can understand why some may fear its integration into Gnome, but I strongly believe the tighter the better. Look at what Longhorn is offering – a fully fledged .Net based OS. As an MSDN subscriber I’ve had chance to work with some of the prerelease APIs and it is obvious Windows developing will be considerably easier than the current Win32 when Longhorn finally hits retail channels.
From a mono perspective, it is also fantastic seeing command-line based apps developed for Windows compiling and running on my Linux machine. Of further interest, some of the more basic applications like simple data migration tools actually seem to perform slightly better than on .Net/Windows.
With Mono, GTK# and Glade I believe Gnome will have a development platform comparable to Longhorns APIs in the future. If Sun don’t want something as easy to use and powerful as this then so be it, they can continue their own version of Gnome with Java and the questionable GTK theme. With the X replacements/augmentations currently in the works, linux will surely have an offering on a par with Longhorn for developers, it remains to be seen what the desktop users will choose.
As a gnome programmer and a c# fan, Gnome has the potential to go c# by the 3.x stage. I plan on using c# more in my coding in the near future to help push the transition along. As for portability, c# can be made to be more portable then it already is. Granted java still has c# beat in that area, but the mono guys have been working hard to try and make windows to linux portability a reality. There is gtk for windows too you know. It might not be he best solution and it lacks c# bindings, but the possibility is there to support it. Not to knock on Java too hard, but I find it to slow for my tastes and most of what I write has not intention to be cross platform. I only need to worry about architectures at this point and that really has nothing to do with what language I use.
There is a port for freebsd by Marcus, try the ports system, however as he says here http://www.freshports.org/lang/mono/ it is not 100% there yet because it needs some freebsd-specific support first. He asks for help.
Dear Eugenia,
Thank you for you countless interesting contributions to my news addiction.
Anyways. The kernel mods have been finished since 2.4.0 hit the streets. It’s a matter of running some magical commands to make kernel recognize exe as commands that need to be run through mono. I belive portable.net even has some sort of a ilrun –register command that will setup everything needed for this.
Regarding C#, it’s a very nice lang and .NET is a nice platform. It has a bright future, however don’t discount java. Just because C# leapfrogged java upon release, doesn’t mean that sun will sit still. I belive that close competition between the 2 technogies will yield some marvelous results in terms of developer productivity on both sides of the fence.
Yeah, aware of this and it still doesn’t work correct. Marcus and I have talked together about Mono/GTK#, before. ๐
That will be a sad day in my book. I really hope someone either stops this, fork gnome, or try make a new free desktop.
Do we really need all that bloat ?
And how are e.g. RedHat coping with that ? They won’t even include mono in Fedora cause there are possible patent issues.
That will be a sad day in my book. I really hope someone either stops this, fork gnome, or try make a new free desktop.
Any particular reason for this perspective? Why stop a technology that could boost the adoption of linux in general?
While C#/.NET has its merits I wouldn’t base big development projects on .NET. C# (as Java) lacks important features like parametric polymorphism so you have to downcast container elemenents. Other things missing are the possibility to split class deklaration and implementation. Their delegate/event mechanism does not compare well with template based mechanisms like SigC++. Some of these ‘gaps’ will certainly be closed in the future, but why should I wait for C#/.NET to mature if I can have it all in C++ *now*? Going cross platform is certainly not a big deal with C++ and the right libraries.
this case is actually a two-handed sword: Some people seem to think that Microsoft might use its legal clout to shut down Mono” if it no longer suited Microsoft’s purposes, said Don Marti, 34, editor in chief of Linux Journal.
If, in far / near future, Mono is the established main Dev Framework for Linux Applications, Microsoft would have it easy to make Life for Linux really difficult.
Just think about SCO.
Any particular reason for this perspective? Why stop a technology that could boost the adoption of linux in general?
Because it’s a technology created by MS, with possible copyright and probable patent issues.
The reason I favour GNOME over KDE is purely legal, as KDE is actually better designed (internally), but I find the QT’s ownership by Trolltech too limiting. And Trolltech is an angel compared to Microsoft
AFAIK, the law says that if a company do not act on a copyright/trademark/patent infrigment in the first two years of the case being known to them, they have no right to sue after that time. Mono is more than 2 years old now, Microsoft knew about it all along, and so they can’t and they (hopefully) won’t sue.
No kernel patches needed. All you need is support for BINFMT_MISC compiled as a module and small script run during system start up.
Here are sources for debian package:
http://www.debianplanet.org/mono/dists/unstable/main/source/admin/
I believe they can be easily adapted to any distro.
I absolutely agree with people worried about licences problems. I’m a java developer, and I love programming in Java. I’ve always been disappointed by the very low interest of sun in integrating java in linux environment, and I try to support as much as I can the free alternatives to the sun java virtual machine, mainly the gcj project, which works already quite well and allows me compile even to native code. Mono would be a great solutions if there wouldn’t be the risk of patents controlled by microsoft: I can’t really start to develop anithing in mono if I’m afraid that a new SCO case is going to appear, and I really hope, unless this problem is definitively disappeared, that mono becoms dominant.
Best regards
thanks, I will have a look in adding it to my Slackware.
And how are e.g. RedHat coping with that ? They won’t even include mono in Fedora
Thats wrong. Look at
http://www.redhat.com/archives/fedora-list/2003-November/msg02089.h…
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=109720
Steve
>>And how are e.g. RedHat coping with that ? They won’t even
>>include mono in Fedora
>Thats wrong. Look at
>http://www.redhat.com/archives/fedora-list/2003-November/msg02089.h…..
>http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=109720
And a “counterclaim” made by another RedHat employee
http://www.redhat.com/archives/fedora-list/2003-December/msg01979.h…
Looking at it realistically, there seems to be a very small chance of Mono being a part of the core of GNOME within a couple of years:
*GNOME is still very much a GNU project. Remember that GNU still considers C++ immature and recommends against it in cross-platform programming. Surely Mono will not be regarded (or be) more stable and more cross-platform in a couple of years than C++ is now?
*Many engineers and programmers of the big companies developing GNOME (Red Hat, Novell, Sun etc) are entrenched in their current programming language (mostly C) and do not want to start using a new language.
*As stated, Sun would never agree to let Mono into GNOME due to the competition between Mono and Java. Even if the GNOME project could force the issue with the help of Red Hat, they would not like risk loosing Sun as a supporter and Solaris as a platform of deployment.
Of course, even with Mono not a part of the GNOME core, several non-crucial GNOME apps will surely be written in Mono as well as other alternative languages (Python etc).
> Mono would be a great solutions if there wouldn’t be the risk of patents controlled by microsoft
There existing only the rist, that their Windows-Forms implementation or ADO.NET implementation are lost.
But on the mono-runtime on the core-classes Microsoft have [u]no[/u] patents.
Read section “Patents” under the Mono-FAQ for more information. And have a look at the nice “Mono components”-image:
http://www.go-mono.org/faq.html#patents
Steve
Actually, you can sit on patents as long as you like under US law.
See the GIF issue. =
As it is, everything I’ve seen points to MS being OK with Mono as long as it’s free, meaning it could go after the distros that include it. See this message linked in the Mono FAQ:
https://mailserver.di.unipi.it/pipermail/dotnet-sscli/msg00218.html
It’s the main thing keeping me away from GTK#. If that were cleared up and this vetted and shown to be legal and Free software, I’d probably use it in addition to my Python work, as I don’t like trusting C code any more then I have to.
Eugenia sez:
AFAIK, the law says that if a company do not act on a copyright/trademark/patent infringement in the first two years of the case being known to them, they have no right to sue after that time. Mono is more than 2 years old now, Microsoft knew about it all along, and so they can’t and they (hopefully) won’t sue.
Nope. That only applies to Trademarks. Patents are forever (well, for the life of the patent) and infringers can be sued selectively (see Eolas vs. MS but not Mozilla) and at the holder’s leisure (see Unisys waiting for everyone to use GIF).
So, if there are so many linux users out there strongly against the inclusion of any mono libraries in the gnome desktop, or by applications based on gtk#, what happens when Ximian move Evolution to a mono codebase? Will it take an application of that magnitude to encourage the “resistance” to move to a mono derived Gnome / inclusion of mono libs in abother DE?
>projects on .NET. C# (as Java) lacks important features like >parametric polymorphism so you have to downcast container >elemenents.
1.5 (already available as EarlyAccess Release) includes
Generics;
C# 2.0 Release (whenever that is due) is also supposed to
come with Generics;
>Other things missing are the possibility to split class
>deklaration and implementation.
Er… you call the need for the damn HeaderFiles in C++ a “feature”?
For freebsd check this out:
http://msdn.microsoft.com/net/sscli/
Looking at mono (and java too) neither seem to be anywhere near as developer productive as python wih the pyKDE bindings. I was writing an app as part of a researh project that needed a gui and in less then a day i had a full, powerful gui with some powerful opengl integration. With the python system it is also trivially easy to code processor intensive code (i am working with 12MB graphics files at the pixel level) in some other language (c, c++, fortran, whatever). Even when these functions are prototyped in python the speed is not terrible, its plenty fast enough for a bit of testing.
Python is incredibly mature, and has some serious IDE’s like eric3 and gideon (the new kdevelop) with QT Designer.
Besides, if mono becomes successful MS could start selling everything they port to .NET (eventually office .NET) to *nix users.
Hello everyone,
for some time now, Gentoo has an init script + config file for using the DotGNU Portable .NET or mono runtime through binfmt_misc.
They are automatically installed when you emerge mono or pnet, check /etc/init.d/dotnet and /etc/conf.d/dotnet afterwards.
Hope that helps Gentoo users that didn’t know about this (I added a little info at the end of the merging process, so I suppose everybody sees it and want to make use of this feature.
To get an idea of how it works, check out dev-dotnet/mono/files/ in gentoo.org’s viewcvs (the pnet package uses the same files).
Happy hacking
Rainer
I’ve installed Mono and am going to test it against dotGNU. So far I’ve been able to compile with Mono but I haven’t got the binfmt set up to recognize dotNET *.exe files as executables.
As I see it, Microsoft is in a cleft stick here – it can decide to jump on the Mono and dotGNU implementations – and alienate more people than they wish to; or they can carry on permitting it – and lose control of it to the community, which historically they have shown a great disliking for.
I think that saying C# is useful for fast developement by saying something is developed in a week, doesn’t credit the right thing, or person rather. Even if Mikael had to program Blam! in chickenshit, he would have finished it within a week.
I do not see the need for .net (apart to let microsoft gain more money).
We have php perl python and a lot more of free and easy to use languages and technologies why losing time to try to make .net for linux?
Gtk bindings for a lot of languages are already available: no need to redo them in mono.
Parrot is a good bytecode technology.
I used in the past microsoft languages and rad tools and they are horrible, you have to use them only because they are “the market standard”.
Mono do not have NOW complete windows form, it is bytecode (as .net) so it is slow and memory hungry (like java which I also used)
If you would like to support something very well made help gnustep people: ten years ago next step had all programmers features that .net and mono “promise” to do in the future.
I really like C# and I’m impressed how far Mono got in the last two years. However, it seems insane to me that Gnome (where many people bitched about the non-free KDE/QT license … but at least there was a license!) should be based on Mono, on a technology where Microsoft can pull the plug anytime they want. Isn’t tying us to Microsoft technology exactly the opposite of what most Linux developers work for? And how exactly is Linux supposed to bypass Windows when its core technology is always lagging behind, trying to maintain .NET compatibility which MS can break anytime at will?
“where many people bitched about the non-free KDE/QT license”?
>>>>>>>>>>>>>
FUD-STOP!
There is no non-free KDE license.
I have a problem understanding why C# and GTK# is getting so much attention. Here we have SWT (for those of you that do not like swing and want closer integration to gnome) running under linux with native mappings to GTK libs. As an added bonus you can use the same SWT lib to deploy your app on windows and os x, without any code changes. You also get a top draw Eclipse IDE.
Since we have this today with java could someone please explain what advantage I would get from using GTK#.
Surely Ximian would have looked at possible patent issues before they started pushing development of mono? Before I support or even look at mono I would like to find out whether there really is an issue here. Imagine if a huge application (comparable to today’s mozilla or gimp) was written in mono and then made unusable due to microsoft making a move. It would be pretty bad, and a re-write of such a program in a different language would hold the project back for quite some time before getting back to it’s previous state.
Has a python compiler ever been discussed? That would provide quite a speed boost and be a fairly easy development platform.
Since I do not know all the details about GTK#, I have a question. Say I want to change the way a standard component works, say for arguments sake I want the tree view node to blink when some condition is reached (example only).
Do I have to
A. dust off my C skills and modify the tree view component, which I assume is written in C
B. can I introduce this change using C# buy subclassing the tree view component
I guess the same issue is valid for SWT libs.
Using swing on the other hand despite its perceived speed problem, you can make any changes (by subclassing or even reimplementing) to the behaviour of the tree view as everything is written in java.
This one recognizes Mono/Windows/Dos binaries and can be configured to launch an app of you choice. So you can, for example, use either dosemu/dosbox for DOS binaries, and wine/winex for Windows binaries, etc.
http://bugs.gentoo.org/show_bug.cgi?id=29795
I completely agree.C/C++ might be old yet they consistantly show that they are robust languages when compared to C# etc…
Why go through all that effort? C# is not that revolutionary all it’s features are / have previously been done and implemented
If it isn’t, why do people feel more comfortable with Java instead of MONO?
I just found this:
http://www.go-mono.com/faq.html#patents
If I read it correctly, the only parts that would have problems are ASP.NET, ADO.NET and Windows.Forms.
So just using C# and gtk# would not be a problem? (you just wouldn’t have the full .NET compatibilit/cross-platform)
Because it makes it easier to port windows apps over to Linux.
You are correct, only ASP/ADO.Net and winforms have issues. The rest is accepted by MS as an open standard, and hence can be adopted and modified / extended as necessary
.Net is tightly related with a hell of patent issues. It can never be included in any OS that we want to call free. Sorry – period.
I have been programming in .Net on windows for approx 2 years now, and I have to say it is the perfect combination of powerful codewriting and RAD.
I’ve had Mono on linux for about 6 months now, and I have to say I am very impressed by all the hard work and what it has brought to the linux development table. I can understand why some may fear its integration into Gnome, but I strongly believe the tighter the better. Look at what Longhorn is offering – a fully fledged .Net based OS. As an MSDN subscriber I’ve had chance to work with some of the prerelease APIs and it is obvious Windows developing will be considerably easier than the current Win32 when Longhorn finally hits retail channels.
True, I would love to see pure .NET/C#/Managed-C++ applications, however, the reality is that it won’t happen. It took atleast 5 years to get only a handful of companies from win16 to win32, I fear how long it will take these same companies to move from one programming paradigm to another.
As for GNOME, the issue isn’t the fact that the technology is developed by Microsoft but the fact that there are so many parts that have been patented and thus make OSS developers nervious that if they’re too successful Microsoft may strike back at the OSS community.
If these patents didn’t exist and Microsoft was just a big happy company who didn’t do any wrong, the whole GNOME community would jump into bed with mono without any quarms, but the fact is, when you take into account the above information, yes, one has to be cautious.
From a mono perspective, it is also fantastic seeing command-line based apps developed for Windows compiling and running on my Linux machine. Of further interest, some of the more basic applications like simple data migration tools actually seem to perform slightly better than on .Net/Windows.
Well, considering that Mono is not feature complete and most of the attention is being paid of completion, I would wait a few years before making a full gone conclusion.
One the thing I do hope is that Mono doesn’t become Linux centric but rather *BSD/*NIX centric thus allowing to run on Linux, *BSD, Solaris, HP-UX etc etc.
With Mono, GTK# and Glade I believe Gnome will have a development platform comparable to Longhorns APIs in the future. If Sun don’t want something as easy to use and powerful as this then so be it, they can continue their own version of Gnome with Java and the questionable GTK theme. With the X replacements/augmentations currently in the works, linux will surely have an offering on a par with Longhorn for developers, it remains to be seen what the desktop users will choose.
SUN does want something that is easy to develop and use hence the reason they’re developing RAVE which will appear in the JDS Developer Workstation Edition which will ship IIRC, mid way through this year to co-incide with the second JDS release.
Btw, having programmed using Java, it is a piece of piddle. Compared to VB – a butcher proceedural/OO language, Java is a walk the park.
Speaking about Java on GNOME, the article fails to mention SWT — a cross-platform UI library created by IBM, primarly used in the Eclipse project. On Unix systems SWT uses either Motif or GTK2 widgets (don’t know about Qt).
See details at http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.h…
The mono faq points to 2 ways to cover oneself from patent infringement:
a) live in a country where copyright is not protected.
b) hope that microsoft does not pull out of the EMCA. There by allowing them to sue every mono/c# developer (not using Visual Studio) like mad.
microsoft has never done anything for the good of society only what is good for business. Trusting microsoft do anything different is foolish.
hunan
Hello,
I found this article very interesting (as I do many OSNews articles). I have noticed that a number of people are now questioning wether the benefits of C and C++ really outweight their disadvantages (insecure, difficult to maintain code). That is not to bash C – it made UNIX! I think it is just a sign of the times.
I would suggest that Ada is another great language that could be integrated into mono/the CLR platform. It is fully Object-Oriented and has been painstakingly designed to promote good programming practices and reliable and secure code. It can also now be compiled to Java bytecode so I belive it would be a great addition to the mono family of languages.
Ada has historically been a language for embedded systems but with the advent of its GTK+ and GNOME bindings and an excellent Free compiler and IDE (GPS – the GNAT Programming System) it is proving its work as a general applications language.
Well I’ll let you start flaming me now… ๐
best regards,
—
Matthew
A few points on this article……
First, Unix was not about not being Multics. It was about simplicity. It seems that spirit has been lost today.
And the comparison to Mono / .NET is bad, because Mono is about recreating .NET on Unix.
I can’t understand why a C# app would be a better GNOME app than a simple C program. Loading several MBytes of libraries only to launch a Music player seems _very_ inefficient. But that’s not really my point. The real point is: .NET is a platform. GNOME is aplatform. Eugenia, what you suggest in the article is the exact same thing that everyone whined about when Microsoft tried to extend Java with proprietary Windows technologies. Mixing .NET code and GNOME code won’t neccessarily make better (integrated) apps. So, Sun DID NOT make a strategic mistake by not releasing GNOME bindings for Java. Why the hell should they? The Java platform is defined and does not include GNOME.
Because Mono is developed under a free license we see more GTK# apps appear than Java apps using GTK / GNOME.
There is absolutely no advantage in writing GNOME apps in C# except for C# being the simpler, better language compared to C.
Any particular reason for this perspective? Why stop a technology that could boost the adoption of linux in general?
Because it’s a technology created by MS, with possible copyright and probable patent issues.
The reason I favour GNOME over KDE is purely legal, as KDE is actually better designed (internally), but I find the QT’s ownership by Trolltech too limiting. And Trolltech is an angel compared to Microsoft
Stop spreading FUD. The fact is, Qt is maintained but owned at an arms length. This was one of the questions bought up, “what happens if Trolltech goes under? does Qt go down with the ship?”. How about instead of making unsubstantiated claims, how about reading the licensing changes they made to make Qt more acceptable to the OSS community.
I just found this:
http://swpat.ffii.org/acteurs/microsoft/index.en.html
Responding to questions about the opening-up of the .NET framework, Ballmer announced that there would certainly be a “Common Language Runtime Implementation” for Unix, but then explained that this development would be limited to a subset, which was “intended only for academic use”. Ballmer rejected speculations about support for free .NET implementationens such as Mono: “We have invested so many millions in .NET, we have so many patents on .NET, which we want to cultivate.“
Besides, there is so many things that Microsoft can do, if he doesn’t want Mono to be succesful, that it is not even funny. FUD and use of the DMCA comes to mind.
Besides, the technological move (and gasp) between Gnome1.x and Gnome2.x have already hurt them enough. A framework and main libraries must be stable. Changing them every 2 years is not a good idea.
>Stop spreading FUD. The fact is, ..
It’s not all fud. Though Qt among others is GPL, and would fall in the hands of the community(an already is..) I know
many people that _will no_ accept the fact that they have to
buy a license from Qt or release their application under the GPL or Qt. It’s a real world problem, not some free software idealogy.
> There is absolutely no advantage in writing GNOME apps
> in C# except for C# being the simpler, better language
> compared to C.
>
Thats a big advantage, don’t you think. In managed languages like Java and C# you get bounds checking, type checking, null pointer checking etc. for “free”, since the JIT compiler is able to optimize them away in most cases. That means no more buffer overruns and other security exploits that use the weaknesses of C. You also get a type system that still exists at runtime, unlike the one in C++ which only exists at compile time (reflection capabilities of C++ are basically nonexistent. rtti is a joke)
About java vs. C#: Java is very slow for stuff like vector graphics and complex numbers since it does not support value types. That is why swing and java2d is so slow. If you do something graphics-intensive your only choices are .NET or an old compiler language like C,C++,Pascal etc. Java won’t do.
I would suggest that Ada is another great language that could be integrated into mono/the CLR platform.
That would seriously rock, with the Ada95 frontend finally part of the official gcc distribution it has become much easier to get an ada compiler, but the language still suffers from incomplete/immature bindings to different stuff (the gtk bindings are pretty good, the gnome bindings still lack some stuff). With an integration into mono/CLR, it would automatically get access to the gtk# bindings (if i understood .net assemblies correctly) and all the nice .net class library.
Java is not better then mono. Also a commercial product. At this moment the JRE and the JDK freely available, and many java clone or similar solution exists (kaffe, gcj + klasspath, etc). But it is also can change in future, let see the ex-caldera SCO: one of oldest and biggest linux company sue the linux.
In other aspect, the C# far better language then java, and the CLR is better idea then java runtime environment: if you start a java application it use one JRE, and if you start a second java application it start an another JRE, etc. It is not too useable for desktop applications.
And the cat and the mouse also partners…
Why doesn’t the Mono crew ask Microsoft to issue a statement that they will NOT go after Mono for patent infringement? If they issue that assurance then Mono is good to go, if not, then we shouldn’t use it.
It really is that simple. There is no need to live with the sword of Damocles over our heads in the free-software world.
Hmm I’m a bit puzzled. It seems when people talk about high level languages they only mentions Java and C# (.net) both of which are controlled by companies (well more or less). Contrast this with C++ which has been developed by several companies/organizations.
I’m not really sure why people hype Mono (.Net). I don’t see really anything new here. Nothing that hasn’t been done with Java and C++ before that. But maybe it’s the small things that people care about.
From the article the development speed is mentioned as one of the key factors. Compared with C I would say that is certainly true for any of Java, C# or C++. I don’t think there is a major advantage in any of these compared to the others (Yes you can get GC in C++, so please don’t bother). I mainly code C++ and see a major improvement in development time compared to C while still retain almost all the speed. I so some but not as much when I go python from C++ but with a major performance decrease. When I coded Java I didn’t see any decrease in development time compared to C++. The same should be true with C# as C# is more or less Java.
Maybe it’s because I havn’t coded all that much graphical interfaces that I havn’t seen the big difference but I think gtkmm and gtk# is somewhat the same. Could anyone clarify why I should spend more time on C# when I’m fairly familiar with C++?
The only things I can think about is “Run anywhere” and Garbage collection. The first one is true I guess but I don’t think it’s that big of a problem, but the second one is really a non-issue.
http://fedora.redhat.com/projects/package-list/
nope…no mono
Fedora doesn’t include Mono yet because it’s still in development, not because of possible patent issues. Microsoft submitted specifications for C# and the .NET CLI to ECMA, which means first off that they probably WANT people to make alternative implementations and secondly that they may have a hard time patenting anything they have already published as a standard.
> Thats a big advantage, don’t you think. [snip]
Agreed, It is. For the developer when he writes the app. But using the whole .NET platform because you want a better programming language.. It just doesn’t give you “better” applications.
You could write a new compiler (say c# syntax) that compiles to native code. How about that? It would be WAY faster than the .NET VM. And btw, some of the type-safety and checking mechanisms you can get in C++ as well (don’t use pointers, write classes for arrays…).
A big disadvantage in managed languages like Java and C# is that apps usually have a very big hunger for memory. This is partly because developers get lazy on freeing resources. So you get different problems here…
I still can’t just double click on a java program and have it run, maybe Sun should worry about?
I sue gentoo with /etc/init.d/mono… works wonderfully
http://www.manageability.org/manageabilityWiki/WhyJavaIsBetterThanD…
for discussing .NET/Mono rationally, I’m tired of the flaming – and I’m sure it’s only the beginning – but I am interested in Mono and look forward to a brighter future for Linux app development.
Personally, I couldn’t give a damn about Windows.Forms. I use all ASP.NET for my UIs, not that I’m a big fan of ASP but I’m just sick of the whole EXE distribution and installation and update scene. The app should live on a server and be run, at least the UI, on the client but the client should never need to be configured or installed before the app can run. I will consider writing apps in Avalon/WAML, however, since I believe it will be possible to have the app code on a server and yet executing on the client seamlessly – no install or config, upgrade as simple as copying new files onto the server (much like ASP, only with Avalon the client side will be compiled and much more user friendly). Since MS is essentially saying Windows.Forms (which is really just a wrapper for Windows API) is crap (I thought so since my first Windows app in 1992) why not focus on a better GUI system?
I don’t like C#, there plenty of languages already.
python,perl,ruby are quite more pleasing and to be sincere I like gtk+ gobjects and so on. I don’t see why everybody wants to evangelized about C# and .NOT err .NET .
From a random article I read there are already some movement to make lock-in stuff into C# by M$… And that sucks. I remeber the Embrace and Extend and the decoy strategy…
Obviously would be great if Mono will take over C# development …
The focus on mono and incorporation of c# into GNOME will be the downfall of Linux as a desktop operating system. Microsoft can and will do anything necessary to destroy mono once they see it as a threat to their monopoly. It is amazing how blind people can be when they don’t want to see the obvious end result. Why pump all this development time and effort into c#, when java is already a mature language, and all it really needs is all these developers spending time to finish up a good open source java virtual machine. Second, all these so called benefits of C# really aren’t benefits that couldn’t have been achieved with java as well. Language independence is entirely possible with java bytecode. Why people haven’t invested the time developing language conversion tools that convert python, c, perl, whatever into native java bytecode completely puzzles me. Lastly, if the only major reason people can otherwise counter spending lots of time in C# over java is to say that C# would enable linux users to run windows applications. You really have to consider how damn slow ANY windows application would be running in a virtual machine. Microsoft has yet to debute and serious C# based application, and even when they do they will more than likely run many many times faster on x86 via Windows than they ever will on any other platform. Wasting all this development time trying ot play a game of cat and mouse with microsoft is quite counterproductive. You are better off trying to get Sun to possibly adjust their stance on java than you are believing Microsoft actually cares about open source operating systems having fully compatible and compliant clr interpreters and compilers.
There is no “next generation” of UNIX programming. If you
wan’t to program for UNIX, you use whatever you like. Someone
uses GTK, some, QT, some JDK, some TK. THe similar situation
is with languages.
There is no microsoft to dictate what is going to be “in”
next week.
Journalists always write articles from perspective of IT
industry, which is not right.
Market share, next generation tools, next generatio desktop,
it is only a part of the story. Most people quietly
install Linux, BSD, or SOLARIS, use whatever software
they like (Windowmaker, XFCE, etc.), program in GCC, Java,
or some scripting language. They are not
part of any industry, and not counted in any market share.
That is something that seems to be invisible for IT journalists. It does not make a good story, I guess.
DG
IMHO C# far better then java. And if linux prefer java it will out of market. WindowMaker, XFCE are very good toy for hackers, but the most linux users use KDE and Gnome. And if you want desktop linux you need powerful desktop environments and powerful programming environment. I not stand to .NET and C#, if anybody can tell better I will very happy. But the Java is NOT BETTER /no properties, operator overloading, etc/, the scripting langueges (python, perl, etc) are not same category: they are the tools of sysadmins not programmer tools. If you write real applications (>30 000 lines) the scripting languages are not alternatives.
If Mono becomes a major part of GNOME, my favourite DE will be KDE. However, because of the GNOME developer’s concearns with licencing, I doubt this will happen.
Actually, gtk+ is on linux, unix, windows and macos x. Why do you think it isn’t cross platform?
Even if the ports aren’t up to snuff in your opinion, you could always use wxWindows, which uses native widgets to the extent possible, including gtk+ on linux.
I like C# and .NET as a platform, as a mather of fact, I learned to use it before trying Java. What I see happening, though, is a mather of personal taste. For one reason or another, the main gnome developers did’nt like Java much. They could have used the gcj project, help to make bindings to GTK for it (bindings using the same swing view-model concept good have been nice) and help integrating it to gnome so that they could use this already made platform (with VM sharing, something java still lacks) and have the beneficts of a good high-level language, garvage colected and native binary output, that and of course, good speed and reasonable memory use. But they instead went for .NET, I would guess they did it because of the multilanguage thing, but I dare to say, all of them will use C# as their work language, so that does not make for the reason.
The real issue, and why MS loves Mono is three-fold:
1. MS knows that they can leverage .Net against Mono due to the fact that Mono will always be a clone. Why use the clone when you can use the real thing? MS can always claim to be superior to Linux and they can always be one-step ahead. The advertising campaign possibilites are endless.
2. If Mono starts getting used heavily, then MS will start enforcing patents and copyrights. I don’t think they would shut down the project, but they would really do is charge outrageous fees. Make it more costly to develop using Mono and Linux then Windows. Plus, MS would make money off Linux too and retain control of the industry.
3. Linux users feel this will ease the adoption of linux by MS developers. In reality, it will more likely ease the adoption of Linux developers to MS. Most MS developers do not care about the political beliefs of Linux, and Mono will not provide them anything better to work with on Linux. They only care about making money, and sticking with MS is the best option for that.
Eugenia, read #5 at this URL about Copyrights:
http://www.templetons.com/brad/copymyths.html
Based on previous posts, my understanding of the situation is as follows.
First, the C# language and the CLI are an ECMA standard. It is ECMA’s policy to require that any patents necessary to the implementation of ECMA standards be licensed under “reasonable and non-discriminatory” (RAND) terms.
However, IANAL, but I get the feeling that “reasonable” and “non-discriminatory” may mean different things to different people (or companies). How would GNU/Linux users feel about, say, a $10 license fee per seat? How about $50?
If you think these figures are too high, consider that the Windows XP upgrade edition costs $99 or thereabouts, so let’s assume that Longhorn will be offered for a comparable price when it is released. Now suppose that Gnome becomes the “standard” DE on Linux, and that it requires some implementation of .NET to run. So, you have a choice of two OS/DE’s, both based of .NET; one sells for at least $99, the one can be had for free, plus a $50 licensing fee. From this point of view, Linux plus the .NET license still seems like a bargain! Of course, this is an extreme example, but I’m just trying to point out that “reasonable” and “non-discriminatory” are not well-defined terms, as far as I can see.
Second, recall the TrueType bytecode fiasco. TrueType is an “open” specification, except for a few bytecodes that implement hinting operations covered by patents owned by Apple. Unless you license these patents from Apple (as I understand Codeweavers does), if you run e.g. Freetype with the native bytecode interpreter enabled, you are breaking the law. Note that it is possible to disable the bytecode interpreter, and Freetype still “works”, i.e. it produces glyphs that are either unhinted or autohinted. With some fonts (e.g. Vera), autohinting is OK, but with the standard Windows fonts (Arial, Times New Roman) you get artifacts, and the font metrics are generally different.
Something like this could very well happen with .NET: Microsoft may hold or have applied for patents that, for example, make the IL JIT compiler more efficient. As was noted above, Microsoft can choose to reveal such patents at a time of their own choosing. If such patents exist, there may still be ways around them, but possibly at the expense of efficiency.
Bottom line: Microsoft probably has ways to ensure that .NET on any non-Microsoft platform is either not cost-effective, or inferior. This seems a compelling reason to *not* make .NET an integral part of Gnome.
Sorry for the lengthy post.
M
So, Sun DID NOT make a strategic mistake by not releasing GNOME bindings for Java. Why the hell should they? The Java platform is defined and does not include GNOME.
Partly true, Java is a platform itself as well.
But Java, the platform, has a lot of possibilities to leverage the services of a platform it is running on.
Sun could have done a GTK implementation for AWT peers, which would at least make applets look nice.
The JVM could read user settings like language or locale from the GNOME config instead of the environment.
They could have created a Swing L&f for GTK earlier.
But Sun always kept the Linux implementation of the JVM as bad as possible.
Until 1.4 you where better of using IBM’s or Blackdowns (I think Sun’s 1.3.0 didn’t use native threads yet)
Sun tried the GUI segment to early, resulting in rejection from the developers.
When they could have been able to get a lot of developers on board, they faild by keeping Linux second rate (only developing certain technologies for Solaris, Windows and Mac, not allowing packaging and inclusin in Linus distributions, etc)
Based on this observations I agree with Eugenia that they made a mistake
First of all, thanks Eugenia for this article, I loved it!
On FreeBSD:
Mono runs on a variety of operating systems (Linux, MacOS, Solaris, HP-UX) and in a variety of CPU architectures (x86 and PPC have jit and interpreters, HPPA, SPARC, SPARCv9, StrongARM have interpreters).
If something fails in your platform, the only way we can fix it is if you report those problems with precise bug reports, explaining what went wrong.
We have a page that can assist you tracking and preparing good bug reports, as well as being a “portal” for bugs: http://www.go-mono.com/bugs.html
On Language Bindings:
Mono is not only a .NET VM, it is also a Java VM (we can run
Eclipse, JBoss and Jython out of the box), this is accomplished with Jeroen’s IKVM which will let Java apps run on a .NET environment.
So in a way Gtk# is not only a “C# binding” of Gtk, it is in reality a multi-language binding of Gtk. A binding that will be usable for any programming language that targets the VM. So yes, that means that you can use Java on top of Mono to use Gtk#.
We probably should be more vocal about Java in Mono, but we are very busy fixing bugs for our 1.0 release.
On Gnome and Mono
I am sure that there will be multiple editions of the same piece of software (One in C#, one in Python, and one in C ;-), so for those of you who for some reason do not want to run Mono, you will always have some C code you can run with roughly the same functionality.
Legalese
Mono is being split up in two in the upcoming releases: the ECMA core (which ECMA members have explicitly stated they are granting access to any patents they might have over the technology) and “the rest”.
Basically, in Mono, we are not only replicating the .NET APIs, but we have also been creating our own independent APIs in pretty much every area: XML, GUI toolkits, rendering, RPC, etc. The idea being that if in the future if Microsoft chose to come out with a valid patent that we could not work around (prior art, invalid claim) our value would still be independent of it.
The various Gtk# apps that you see are ECMA compliant, and hence completely safe. We plan to continue this dual path: to copy the MS APIs, but also to provide our own platform. This also is the way that we make existing libraries and components of Linux be fully exploited, instead of limiting us to the .NET subset. A way of competing in the marketplace of powerful APIs.
GNOME
GNOME was originally under the GNU umbrella, but has since become its own managed project. Our goals are shared with the GNU effort and with other groups interested in free software, but GNOME has its own government body (the GNOME Foundation) and has its own election process.
So RMS’s opinion although always considered does not dictate the direction of the project, this includes things like language choice and documentation file format for example.
Licenses
Copyright licenses apply to a particular incarnation of a body of work. When you talk about Qt’s license, you were talking about that particular implementation.
The license that covers Mono is GPL, LGPL and MIT X11.
Microsoft can not make any copyright claims on this code base. The fear that some people have is about the non-ECMA class libraries that might be covered by a Microsoft patent or by someone else’s patent.
To the man asking about whether he has to extend components in C or in C#.
You can extend them in C# without ever looking at the C code.
Look at Mike Kestner’s blog to keep track of the various enhancements that Gtk# features.
As a reference: we have tons of custom widgets and custom externsions in mPhoto and F-Spot, see the Gtk# wiki for more sample software.
> Microsoft can not make any copyright claims on this code
> base. The fear that some people have is about the non-ECMA
> class libraries that might be covered by a Microsoft patent
> or by someone else’s patent.
>
The nice thing is that the non-ECMA class libraries are not that well designed anyway, so the OSS community should be able to come up with something better. Take Windows.Forms: Handles all over the place, no decent Layout Management, complicated internationalization, no real resolution independence. I think GTK# and QT# are much better UI toolkits than Windows.Forms…
Marciano, you are right to point out that RAND is part of the ECMA requirement. But on top of RAND the contributors to the ECMA TC39 that produced C#/CLI/class-libs agreed to make the cost “0”, see the patent FAQ question on the Mono Faq.
Miguel.
perl/python/ruby/etc are all scripting languages. and generally extremely high level (that means closer to english).
while C# and java would technically be interpreted languages as well, they are both partially compiled and then executed through the VM, which allows for far better speeds.
now all the “.NET is better then java” comments really seem a little uninformed (with a few exceptions). the dotnet framework has some real nice stuff in it that java doesnt, but at the same time java has a faaaaaaaaaaaar superior api at this point in time, and people say that it will take dotnet a few years to catch up to where java is now. java is a widly trusted language, and a standard in enterprise solutions. compare the optimal dotnet stack and the optimal java stack and see which is superior. java is truly cross platform, while dotnet has the capabilities, but only so long as microsoft allows it.
now from a C# vs Java standpoint, they are remarkably similar. granted, i work in java and have only played with c#, but i believe i have a pretty good feel for it. C is the mother of modern programming languages (again, with some notable exceptions) C++ is C with object oriented extensions. Java is (more or less) truly object oriented C++. C# is pretty much the exact same thing.
From a synatax point of view, again there are a few neat things in c# that arnt in java, but not many. personally, i think it would be an easier language to be comfortable with for C++ devs, but that is just opinion. someone earlier mentioned operator overloading and properties, i find both result in messyer code. javadoc (and the c# equivilent) both do most of the tasks of properties, and operator overloading i just find messy, if your going to do that just overload the method signature.
anyways, i am behind changing the framework of gnome to something more modern, since i learned java before c or c++, i find both extremely frustrating to work with. with windows going .net, and mac doing the objective c thing, it seems the trend nowadays is to go fully object oriented. seeing the success that mono seems to be having just gives me one more reason to believe that linux will become a serious desktop competitor in the forseeable future.
that is something i hadnt even realised, RMS would have a fit if gnome went mono. he is currently quite proud of the fact gnome uses C instead of C++, because of the legal reasons.
If Java/SWT is ready today, then tell me, how do I print with Java SWT/GTK on Linux?
um, i would assume javax.print, i havnt tried it out on linux before, but there isnt any reason i can think of for it not to work.
> Your see, if everything goes well,
> in 2 to 3 years most new Gnome user/desktop
> applications will be written –hopefully–
> in Mono and C#.
…and, magically, I discover an interest in programming for Linux. I really want Miguel de Icaza to succeed with Mono.
this technology is silly, why use c# when you have java.
Because it has value types.
As some of you know, I’m a big fan of KDE(much better technology), but my preference for linux development is mono.
Here’s the thing. On KDE you have a great application framework/sdk using c++. That’s fine and is a helluva lot better than straight c/gtk+, but c++ has warts of it’s own(complexity being the major one). Whether you like it or not, the level of abstraction for programmers will continue to increase because it just makes sense to relieve the programmer from trivial, mundane, or gotchas that non-managed languages impose on you.
For the people saying we already have perl/python/php….for gtk+ that’s fine and all, but there’s a problem. First, the bindings issue. Everything is always out of sync or just plain broken. There is nothing you can really do to prevent that in the current situation, even though there is work being done to have major language bindings ready for every gtk+ release. With mono/.NET that problem just automagically goes away. If you have a .NET compliant language(actually CLS compliant or something like that) then you automagically have the bindings. This is great!
The fact of the matter is that the vast majority of windows programming in the future is going to be done using .NET. There is no way around that. Look at the longhorn roadmap and you’ll see everything is managed. Gnome has a problem. That problem is that you either program to c/gtk+ for a least common denominator or code in a higher-level language and hope/insist that your users have those required packages. In reality, a lot of linux development problems are really deployment problems. If you program in c/gtk+ then your stuck in this low-level muck that isn’t very productive these days. KDE doesn’t have this problem as much because the very nature of c++ affords the developer a higher-level abstraction of components. The fact of the matter is that Gnome is going to be a second-rate desktop forever compared to KDE unless some better technology is used.
I kindof meandered off when I was talking about windows development and how that relates to linux development. The right thing to do is to leverage non-gui .NET libraries that are already out there for windows and work out of the box for mono. Sharkbite IRC library is an example of perfect binary compatiblity. Let’s get windows developers interested in linux via mono. Contrary to popular belief, there is always a lack of good developers for linux and there are smart people out there doing windows development in .NET now and most importantly in the future. Let’s leverage these developers to make linux better. Seriously, the top Gnome people better embrace mono or, as I said before, it’ll always be second-rate compared to KDE.
P.S. too bad the qt license sucks or I would work on helping the qt# guys get that thing working. Sorry, but I refuse to pay for a toolkit. Even MS gives you the sdks for free without an app license. Even if you buy Visual Studio you can sell as many apps as you want without paying a freaking licensing free. IBM, please buy trolltech and lgpl the damn thing. I don’t have a problem with gpl, but libraries should be lgpl no matter what that idiot RMS says.
If you write quality applications, it shouldn’t matter what language the front end is written in. Mono does not propose any threat to C programming on the back end, but on the front end it’s possible it could replace it. As more language features are being added, GTK# or C# are more like Standard C++, although GTK# and C# are still too watered down. Well maybe that’s the way they want it. At any rate, as a programmer on the Linux side, rather than the Windows side, I am not hyped about Mono or .Net or Java. I think that there is a lot of theory that goes unlearned as far as interfaces and implementation are concerned as well as designing quality libraries and quality applications. I hope that Mono is an effective bridge for Microsoft programmers to deploy their applications on Linux or to even convert to Linux without giving up their programming skills, but Linux is a much richer world of programming than Mono alone, and I don’t think that anyone can change that. Mono is open source, so you can study the implementation, you can learn about it’s interpreter, the virtual machine, and the framework libraries. At first Mono will be attached to Novell because as with Java and .Net, they are attached to one vendor, however since Mono is open source, it might foster competition, that is, a company like Redhat might build some of their utilities with it, or Sun (Not .Net but Mono). Mono’s C# is different than .Net’s C# because one is open source, the other is tied to a product line. I think that the determining factor as to whether or not the Gnome community will adopt Mono is if Mono can do things that the C implementation of Gnome can’t do. The article says that the C implementation is not secure but supplies no evidence. The C implemenation instructs the developer to write modules and use GTK+ as a front end, and treat all of the GUI code as untrusted. In other words, security is handed at the back end. So where is this security problem when using GTK+? Anyway, there is definately more hype surrounding C# and .Net as usual, and I don’t have anything today against using an ‘open source’ software layer, but it is not mecha, and there is a huge host of knowledge that is not even considered by the front end, like the most important stuff, without a knowledge base how does a programmer understand how systems are implemented, how does video work, how does a windows system work, how does a compiler work, how can we generalize this information so that it is more accessible. Why is there so much fanaticism over a front end, don’t be reduced to specializing in data, but demand to open the knowledge about the systems, when is there going to be an effort to create this knowledge base.
Riassuming all:
*About language (IMHO):
C# is a quite good language, better than Java, but worse than Eiffel, Ada, Objective C, Ruby
*About platform:
J2EE is omnicomprensive
Webobjects is also very large (and there is gnustep free)
Perl libraries are massive (BTW: I have found the design of a lot of perl libraries more “object oriented” than java or c# software)
PHP is a nice replacement for asp/jsp
Microsoft offers Windows.Forms that is crap and obsolete and “PROMISE” we will have avalon (BTW:also mozilla has xml rendering and nobody uses it because it is slow)
Offers also ADO etc. that are perhaps at the same quality of J2EE. Perhaps not.
* About RAD tools:
I skip this section because I will not be polite about ms tools…
* About Legal:
Using Microsoft technology you will always be under big risk. Following microsoft will make you always ” a step behind”
When I have seen the start of Dotgnu project I was very happy. I thought “finally we will see a unification and consolidation of all open source technology: Parrot for bytecode, PHP as asp, gtk and qt + svg/xml for graphics”
And now what I see? That someone has decided to copy .net and all people throw away what we already have to follow .net.
It remembers me Xfree4.0: someone decided that DRI was “next big thing” (when everybody (me included) told that was a bad hack that opens road to proprietary solutions) and what we have now? Xfree86 team disbanding, a lot of proprietary nvidia and ati drivers… proprietary code in kernel, linux less stable etc…….
It’s clear that once Microsoft imposes .Net and C#, they will release their hounds (lawyers armed with patents) and go after every company producing clones or related technologies, and kill them.
Compare the market for Windows applications in the 80’s and 90’s, and head for the cimetery to remember what Microsoft did once Windows was established.
Look at what they were about to do to that 17yo kid Mike Rowe.
Do you really think they will allow others to compete once the market is established? Naaah. Investing anytime developping Mono or C# on Unix/Linux is just help given to Microsoft establishing their next cash cow.
C# is a quite good language, better than Java, but worse than Eiffel, Ada, Objective C, Ruby
If it is true, why nobody use Eiffel, Ada, Objectice C, Ruby for real applications instead of C++, Object Pascal, Visual Basic ?
If you have enought money you can sue anybody for anything. Let see $C0.
>>C# is a quite good language, better than Java, but worse >>than Eiffel, Ada, Objective C, Ruby
>>If it is true, why nobody use Eiffel, Ada, Objectice C, Ruby >>for real applications instead of C++, Object Pascal, Visual >>Basic ?
Is it a real question or what?
I think I will not reply to this stupid and trolling question…
But why “hopefully”?
Dear Roy,
Do not verbally attack anyone on this board please ๐
I think you should very much improve your knowledge of Intellectual Property and talk to business people who were there when Microsoft locked the Windows market. I do not plan to give you a history or law lesson …
Regs.
Microsoft doesn’t have any patents on the .NET core
Not true. They at least two patents (one on the CLR and one on C# IIRC)
Mono is protected by the EMCA
Not true. There are two ways Microsoft could stop Mono (they will of course not to this immediatly, as they will do more damage if they wait. Especially if GNOME would have Mono as a dependency).
1. Charge a “reasonable” license fee. $0.01 would be enough to invalidate the GPL and thus make Mono illegal to distribute in countries where the patents apply. This is perfectly in compliance with ECMA’s rules.
2. Pull out of the ECMA (I see no reason why they would do this as option 1 is far more attractive).
GNOME will not include/depend on Mono until these patent issues have been resolved (at least according to the statement of some individual developers, i don’t think there is an official GNOME postition on this issue). That would be asking for trouble that would make SCO seem like nothing in comparision. So those of you that are afraid of this happening can relax. It won’t happen.
Microsoft has historically been pretty liberal about patents, but that’s changing. The FAT licensing was just a start, and they have gone on record saying that they will fight open source with patents.
Now, i have hundreds of good technical arguments why Mono doesn’t cut it from a technical perspective, but i’ll leave this out because i think the legal issues are extremely important and what we should be focusing on.
(There is another poster in this thread with the same name and ISP. That’s not me, this is my only post in this thread)
Can someone explain to me the idea to take Microsoft’s centerpiece(.NET), a language they invented (C#), and port it to the one major piece of software in the world that MS doesn’t already control (Linux)? Read slowly, and comprehend: THIS. IS. A. REALLY. DUMB. IDEA.
MS has shown repeatedly that they will do anything, legal or not, to control and subjugate all others for MS’s benefit.
Linux is one of the few pieces of software out there that stands any chance of breaking MS’s stranglehold on the computer industry. I can not comprehend how someone could take all of these facts into account, and decide that something like .NET needs to be part of Linux. What an idiotic idea. If you don’t think this will eventually come back to bite Linux in some way, you are myopic and naieve.
heh, that one diserves a +5, informative ๐
personally, i dont really care if its C# or something else, i would just like to see gnome use an api more modern then C. I love the design of the gnome desktop, i think that their forcus on the HIG in recent releases has been astonishingly good, but i would rather write a c++ app with kdevelope then a C app with anjuta any day.