Linked by Eugenia Loli on Wed 21st Jan 2004 07:56 UTC
Mono Project 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.
Order by: Score:
Crossplatform
by Brian Matzon on Wed 21st Jan 2004 08:04 UTC

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?

RE: Cross platform
by Eugenia on Wed 21st Jan 2004 08:06 UTC

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 always want to learn C#, but..
by bsdrocks on Wed 21st Jan 2004 08:18 UTC

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....

more reasons to like Gtk#
by Anonymous on Wed 21st Jan 2004 08:20 UTC

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.

.Net
by JCooper on Wed 21st Jan 2004 08:20 UTC

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.

RE: Crossplatform
by Sean (harshy) Harshbarger on Wed 21st Jan 2004 08:21 UTC

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.

RE: I always want to learn C#, but..
by Eugenia on Wed 21st Jan 2004 08:21 UTC

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.

Kernel mods
by Taras on Wed 21st Jan 2004 08:24 UTC

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.

RE: I always want to learn C#, but..
by bsdrocks on Wed 21st Jan 2004 08:28 UTC

Yeah, aware of this and it still doesn't work correct. Marcus and I have talked together about Mono/GTK#, before. :-)

Sad..
by Anonymous on Wed 21st Jan 2004 08:31 UTC

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.

re: Sad..
by JCooper on Wed 21st Jan 2004 08:33 UTC

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?

.NET still immature
by /dev/null on Wed 21st Jan 2004 08:37 UTC

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.

two-handed sword.
by .ez on Wed 21st Jan 2004 08:40 UTC

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.

re: Sad
by Chernobog on Wed 21st Jan 2004 08:45 UTC

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

RE: two-handed sword.
by Eugenia on Wed 21st Jan 2004 08:47 UTC

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.

Running mono executables
by moose on Wed 21st Jan 2004 08:50 UTC

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.

licences problems
by enrico on Wed 21st Jan 2004 08:51 UTC

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

RE: Running mono executables
by Eugenia on Wed 21st Jan 2004 08:52 UTC

thanks, I will have a look in adding it to my Slackware.

Re: Sad
by Steve on Wed 21st Jan 2004 09:42 UTC

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

re: Sad
by Anonymous on Wed 21st Jan 2004 09:47 UTC

>>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...

Mono in GNOME?
by Fredrik on Wed 21st Jan 2004 09:48 UTC

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).

licences problems
by Steve on Wed 21st Jan 2004 09:49 UTC

> 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

Re: Eugina
by Rds on Wed 21st Jan 2004 10:02 UTC

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. ;)

Re: Statute of Limitations on IP
by DCMonkey on Wed 21st Jan 2004 10:12 UTC

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).

Patents / Copyright / Applications
by JCooper on Wed 21st Jan 2004 10:34 UTC

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?

RE: .NET still immature
by murphee on Wed 21st Jan 2004 10:38 UTC

>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"?

RE: I always want to learn C#, but..
by Sagres on Wed 21st Jan 2004 10:49 UTC

For freebsd check this out:
http://msdn.microsoft.com/net/sscli/

Python + pyKDE or pyGTK
by Tom on Wed 21st Jan 2004 10:50 UTC

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.

RE: two-handed sword.
by Sagres on Wed 21st Jan 2004 10:55 UTC

Besides, if mono becomes successful MS could start selling everything they port to .NET (eventually office .NET) to *nix users.

binfmt_misc support
by scandium on Wed 21st Jan 2004 11:07 UTC

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

Mono and dotGNU
by Wesley Parish on Wed 21st Jan 2004 11:15 UTC

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 disagree
by Mario Giammarco on Wed 21st Jan 2004 11:33 UTC

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.

ugh...
by dan on Wed 21st Jan 2004 11:37 UTC

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?

ugh...
by Anonymous on Wed 21st Jan 2004 11:40 UTC

"where many people bitched about the non-free KDE/QT license"?
>>>>>>>>>>>>>
FUD-STOP!

There is no non-free KDE license.

Java, SWT ready today
by Anonymous on Wed 21st Jan 2004 11:41 UTC

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#.

patent problems.
by Jer on Wed 21st Jan 2004 11:47 UTC

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.

Native components
by Anonymous on Wed 21st Jan 2004 11:52 UTC

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.

Better init script from Gentoo
by Halanegri on Wed 21st Jan 2004 11:55 UTC

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

RE: .Net Still immature
by Anonymous on Wed 21st Jan 2004 12:02 UTC

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

Is Java Open Source?
by John Blink on Wed 21st Jan 2004 12:18 UTC

If it isn't, why do people feel more comfortable with Java instead of MONO?

patent issues?
by Jer on Wed 21st Jan 2004 12:19 UTC

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)

Why .NET?
by Huh on Wed 21st Jan 2004 12:21 UTC

Because it makes it easier to port windows apps over to Linux.

re: patent issues?
by JCooper on Wed 21st Jan 2004 12:26 UTC

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

It's a matter of freedom
by Dominique Sidiropoulos on Wed 21st Jan 2004 12:29 UTC

.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.

RE: JCooper (IP: ---.syntegra.com) - Posted on 2004-01-21 08:20:48
by ChocolateCheeseCake on Wed 21st Jan 2004 12:29 UTC

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...

RE: patent issues
by hunan on Wed 21st Jan 2004 12:35 UTC

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

CLR and Ada?
by Matthew Atkinson on Wed 21st Jan 2004 12:38 UTC

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

Re: Commentary: The Upcoming GNOME Monarchy of Mono
by Ronny on Wed 21st Jan 2004 12:39 UTC

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.

RE: Chernobog (IP: 217.220.117.---) - Posted on 2004-01-21 08:45:47
by ChocolateCheeseCake on Wed 21st Jan 2004 12:42 UTC

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.

Re: patents
by jmf on Wed 21st Jan 2004 12:47 UTC

I just found this:
http://www.go-mono.com/faq.html#patents


At first, this made me more confident.
Then, I did go to the website of the <<Foundation for a Free Information Infrastructure>> which leads very well the protests against software patents in Europe (big but not definitive victory for the moment)

What do I read here after a quick search about Microsoft and patents ?
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.

RE: Chernobog
by Anonymous on Wed 21st Jan 2004 12:48 UTC

>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.

Advantages of C# over C/C++/Pascal
by tuttle on Wed 21st Jan 2004 12:50 UTC

> 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.

RE: CLR and Ada?
by Anonymous on Wed 21st Jan 2004 12:54 UTC

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.

v Mono is bad option for developers!
by Thor on Wed 21st Jan 2004 13:02 UTC
Re:Java on GNOME -- why is there no mention of SWT?
by LC on Wed 21st Jan 2004 13:14 UTC

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.

Re:Mono is bad option for developers!
by LC on Wed 21st Jan 2004 13:15 UTC

And the cat and the mouse also partners...

This is entirely up to Microsoft
by Anonymous on Wed 21st Jan 2004 13:21 UTC

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.

C++
by anonymous on Wed 21st Jan 2004 13:22 UTC

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.

Fedora package list
by Bob on Wed 21st Jan 2004 13:41 UTC
re: Sad..
by Drew L. on Wed 21st Jan 2004 13:43 UTC

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.

Re: Advantages of C# over C/C++/Pascal
by Ronny on Wed 21st Jan 2004 13:45 UTC

> 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...

Java executables
by Anonymous on Wed 21st Jan 2004 13:51 UTC

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 ;)

thanks Eugenia
by APW on Wed 21st Jan 2004 14:00 UTC

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'd wait
by lu_zero on Wed 21st Jan 2004 14:16 UTC

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 ...

C# and mono
by Anonymous on Wed 21st Jan 2004 14:29 UTC

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.

next generation ?
by Drazen Gemic on Wed 21st Jan 2004 14:43 UTC

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

C# and mono
by LC on Wed 21st Jan 2004 15:14 UTC

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.

GNOME & Mono? Please no.
by Matthew Baulch on Wed 21st Jan 2004 15:16 UTC

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.

crossplatform
by Dan Stromberg on Wed 21st Jan 2004 15:18 UTC


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.

C# and Java on GNOME
by insdr on Wed 21st Jan 2004 15:24 UTC

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.

Mono weakens Linux and strengthens MS
by Kyle on Wed 21st Jan 2004 15:30 UTC

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

RAND: The devil is in the details
by Marciano on Wed 21st Jan 2004 15:42 UTC

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

Answering a few questions.
by Miguel de Icaza on Wed 21st Jan 2004 15:54 UTC

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.

More answers.
by Miguel de Icaza on Wed 21st Jan 2004 16:01 UTC

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.



Gtk# components.
by Miguel de Icaza on Wed 21st Jan 2004 16:03 UTC

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.

Re: Miguel
by tuttle on Wed 21st Jan 2004 16:07 UTC

> 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...

Patent cost.
by Miguel de Icaza on Wed 21st Jan 2004 16:09 UTC

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.

language talk
by Matt on Wed 21st Jan 2004 16:13 UTC

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.

@miguel
by Matt on Wed 21st Jan 2004 16:18 UTC

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.

RE:Java, SWT ready today
by Anonymous on Wed 21st Jan 2004 16:19 UTC

If Java/SWT is ready today, then tell me, how do I print with Java SWT/GTK on Linux?

RE RE::Java, SWT ready today
by Matt on Wed 21st Jan 2004 16:23 UTC

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.

That would be cool
by John Carroll on Wed 21st Jan 2004 16:27 UTC

> 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.

it is dumb
by bill on Wed 21st Jan 2004 16:34 UTC

this technology is silly, why use c# when you have java.

Re: it is dumb
by tuttle on Wed 21st Jan 2004 16:38 UTC

Because it has value types.

My take on mono/Gnome, .NET in general
by RoyBatty on Wed 21st Jan 2004 16:39 UTC

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.

Also...
by RoyBatty on Wed 21st Jan 2004 16:46 UTC

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.

v RE:Also...
by Anonymous on Wed 21st Jan 2004 16:59 UTC
...
by Anonymous on Wed 21st Jan 2004 17:10 UTC

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.......

Re:
by omega on Wed 21st Jan 2004 17:26 UTC

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 ?

v @omega
by RoyBatty on Wed 21st Jan 2004 17:32 UTC
Re: Re
by LC on Wed 21st Jan 2004 17:33 UTC

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...

uh whatever
by hmmm on Wed 21st Jan 2004 17:34 UTC

But why "hopefully"?

Re: RoyBatty
by omega on Wed 21st Jan 2004 17:36 UTC

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.

Mono myths
by Fredrik on Wed 21st Jan 2004 17:39 UTC

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)

Mono is a TERRIBLE idea
by Frodo on Wed 21st Jan 2004 17:46 UTC

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.

re: Mono Myths
by Matt on Wed 21st Jan 2004 17:49 UTC

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.

@frodo
by Matt on Wed 21st Jan 2004 17:53 UTC

the goal of linux isnt to bankrupt ms, its to make good software. there are alot of things to like in C#, and having a dotnet vm for linux means that most apps written in windows after longhorn ships will require little to no work to port to linux.

how is this a bad thing? how is this stupid? imho, defending or rejecting technology just to "spite microsoft" is pretty stupid, but thats just me....

...
by Anonymous on Wed 21st Jan 2004 17:55 UTC

You don't have to use C with GTK+, there are many language bindings...however I'm not sure if these bindings are shipped as part of a standard distribution.

Maybe Novell is the one in control and not Microsoft, after all, Mono could be a strategy for MS Windows users to convert to Linux.

I'd like to know how to use Mono and C together, that is C as the back end, and Mono as the front end. Kind of like in .Net where you can make Win32 calls.

Very Nice
by Anonymous on Wed 21st Jan 2004 18:06 UTC

Eugenia, very nice article. You hit on every point I had made myself.

...
by Anonymous on Wed 21st Jan 2004 18:09 UTC

There is no such thing as a monopoly on Linux because Linux is a platform, Gnome is only one DE. What kind of turkey nonsense is the abstract of this article. The article itself is not scientific.

Re: Mono Myths.
by Miguel de Icaza on Wed 21st Jan 2004 18:14 UTC

You are correct that RAND licensing might mean any random price on the C# and CLI patents. But Microsoft, IBM and Intel who were part of the standard effort all agreed to the price zero (0) for the RAND terms.

This point has been beaten to death.

I support Mono
by anon on Wed 21st Jan 2004 18:24 UTC


I am a pure Windows programmer and slowly moving over to .NET. Once Mono is ready (i.e it is as easy to install as a windows app (including the GTK stuff), I don't have time for the linux fiddle mentality - time is money) we will also begin porting stuff over to linux. One of the things that stops us at the momemt from writing stuff for linux is that is it actually more expensive in terms of time, with Mono that should go away (No, you can't use python etc to sensibly write apps that are 300K+ lines long).

For the Java freaks, Java is currently not an option, the GUI is slow (yes is still is, I just beta tested a Java app two weeks ago for another company) and ugly (yes you can theme but why should I have to?). Our customers want somethng that looks modern and is responsive. 1.5 *may* change our opinion on this, although whether SWING will be updated or not is another matter. SWG is not an option, it's incomplete.

...
by Anonymous on Wed 21st Jan 2004 18:40 UTC

Quality software should not be tied to one front end. My C application should be able to use GTK#, GTK+, wxWindows, or QT. The modules for the front end should encapsulate the GUI functionality but not the entire system.


...
by Anonymous on Wed 21st Jan 2004 18:42 UTC

Mono, as far as I can see is not a solution to the back end, so it is not a challenge to C programming.

RE: anon@caltech.edu
by RoyBatty on Wed 21st Jan 2004 18:52 UTC

That's the great thing about mono. You get a huge pool of talented windows programmers that don't even have to really think about linux, but a lot of the libraries will just work out of the box on mono. For linux people you get a modern language that is arguably better syntacticaly than java, with nice class libraries and a great development effort behind it.

...
by Anonymous on Wed 21st Jan 2004 18:57 UTC

I can see where Microsoft might want the 'solutions developer' to exclusively use the .Net framework, but MS Windows and Linux are very different, because MS Windows is much more product focused rather than open platform oriented.

It's very possible that Mono is a much richer front end than many other libraries out there, so why not use it, however why should the Linux developer leap head first into Mono and write the back end in C# or GTK#?

Where is the convincing argument for that approach. I think that I'd rather keep my applications front end neutral, so that a wider audience can use them, and so that the application is more versitile, more modular.

...
by Anonymous on Wed 21st Jan 2004 19:01 UTC

...if Microsoft is going to do anything restrictive than they might prevent Mono specific functionality to run on their product (MS Windows) or to operate with their product line (their servers). I don't know if Microsoft will be able to sue Novell or anything like that, although somehow the SCO might find a way :+)

So maybe Mono should try to co-operate with the Linux platform by makeing Mono functionality available to a number of programming methodologies, and not just as C# implemented wrappers.

To the FUDsters
by RoyBatty on Wed 21st Jan 2004 19:02 UTC

If Microsoft is such a threat then why haven't they shut down CodeWeavers or the Wine project? With the current political climate surrounding MS do you really think they're going to go after Mono. Remember, Ximian now has Novell as an umbrella. Novell ain't no MS, but it's got a lot more legal muscle than Ximian alone would have had. Even though Ximian isn't just mono, mono is a big part of ximian, and don't you think that Novell thought about these issues before acquiring Ximian?

Contrary to the wishful thinking of RMS cultists, MS isn't going away anytime soon, and it just makes sense to leverage the good technology they've come up with. One of the biggest problems with Gnome is that it's a pain to code for and if you use language bindings then who knows if a distro distributes those bindings and if they are broken or out of sync. If you think that java, perl, or python is going to be the saving grace of Gnome, then think again. It's just not going to happen. Sun dropped the ball with java, perl is too hackish, python is too slow....

...
by Anonymous on Wed 21st Jan 2004 19:15 UTC

A C program that is distributed in a tarball, will often use various utilities like Makefile and Automake, as well as shell scripts and perl, and python, etc. Can we add Mono? The point is that a C program should not only rely on C, so why should any other application be so limited that it has to be used for everything. The article uses the word 'monopoly' and it should say that if you only use Mono, than you are promoting a monopoly, so don't do it, but instead use a more general strategy when you build software. Mono could be a part of that strategy but it should not be exclusive.

...
by Anonymous on Wed 21st Jan 2004 19:19 UTC

Mono has advantages in terms of Internet and web applications as well as productivity, but if it can't be used with other languages (not just C# bindings) than it's like putting all of your eggs in one basket. So use Mono where it is an advantage, and combine it with C and the shell, as well as various utilites at the operating system layer where they are an advantage. If it can't be used that way than it isn't worth using at all.

Re: To the FUDsters
by omega on Wed 21st Jan 2004 19:39 UTC

What evidence do you have that Sun dropped Java ??
Please make sure you do not spread FUD either :-)

...
by Anonymous on Wed 21st Jan 2004 19:45 UTC

The idea that C is not a productive language is a myth. Maybe Microsofts MFC was not as productive as Visual Basic, however what does that have to do with C? Is MFC the standard on the C language. Only in your minds.

It's enirely possible to design a VB like library and to use C to be able to create a window with one simple call, to be able to write an entire front end in a hundred lines of code using C. In other words C can be as specialized as you want it to be, it doesn't have to be general.

What we know of programming has been influenced by word of mouth, but how many of us have actually implemented the libraries and discovered the truth? The past has been a commercial endevour, now it's supposed to be time for open source, for giving the user more control, but the user doesn't know how to take control, and that's the real difference today. I'd rather see a Linux knowledge base than any super hyped library damage.

Re: 'I love programming in Java'
by Anonymous on Wed 21st Jan 2004 20:15 UTC

How can anyone possibly 'love' programming in Java?
How can you love having to do

String[] names=subs(channel);
Hashtable subs=central().subs();
Subscriber s;

for(int i=0; i<names.length; i++)
{
s=(Subscriber)subs.get(names[i]);
if(s!=null)
s.take(not,channel);
}

all the time when you make do with

names:=self subs: channel.
subs:=central subs.

names do: [:name| |s|
s:= subs at: name.
s notNil ifTrue: [s take: not from: channel]

in Smalltalk?

...
by Anonymous on Wed 21st Jan 2004 20:54 UTC

Any front end programing tool for mono?

Have the APIS and the framework is good, but I want a front end tool to do my stuff to, like sharpdevelop on Windows.

Still not convinced
by Anonymous on Wed 21st Jan 2004 20:55 UTC

I'm still not convinced that C#/.NET or any clone is going to make anything more than a dent and page in the geek history books. For me, I still prefer writing cross platform code with Python as the GUI and C on the backend (thank you SWIG!). Non GUI C code is still easy to write portable, and still faster than any high-level language out there.

RE:Anonymous (IP: ---.megared.net.mx)
by Anonymous on Wed 21st Jan 2004 20:58 UTC

Any front end programing tool for mono?

There's C# Studio that still in very early development.

http://csharp-studio.sourceforge.net/

v do not give microsoft a chance!!!
by xxx on Wed 21st Jan 2004 20:59 UTC
Other important thing
by LC on Wed 21st Jan 2004 21:19 UTC

IMHO in long term (3-5 years) .NET will replace FLASH, java applets and other browser technologies on client side. In this case if not exists any useable CLR solution under linux, the linux desktop will die (you cannot use any browser on the most of web pages under linux, because you cannot see the .NET based applets).

Dream on
by root on Wed 21st Jan 2004 21:34 UTC

Whoever thinks Mono is going to be GNOME's development API can dream on. Mono and/or GTK# is not going to replace GTK+, its bindings and the gnome/linux libraries.

RE: Dream on
by Eugenia on Wed 21st Jan 2004 21:36 UTC

Nobody said anything about "replacements". The grassroots of Gnome is C and so GTK+ will always be there, present. However, Mono and GTK# could become the "front line" of the toolkit of choice among Gnome developers.

RE: Dream on
by root on Wed 21st Jan 2004 22:04 UTC

However, Mono and GTK# could become the "front line" of the toolkit of choice among Gnome developers.

And what gives you that idea? Perhaps when Nautilus, Epiphany and Evolution are rewritten in Mono, I'll begin to take that statement seriously and reconsider. Until then, it's all hype. This is exactly what happened years ago with Java.

Many GNOMErs use GNOME for philosophical reasons (the GNU/FSF and stuff). I know the hardcore amongst them would never install the mono libraries except they are forced to. And believe me for every mono/GTK# app, there will be GTK+ clone. I'm pretty positive someone is already written a Glam clone of Blam.

I also need to mention that the majority of GNOME developers are the hardcore type. No, I'm not talking about those that frequent planet gnome. Just my opinion and observation nothing more.

> 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.

You've summed up one of the main problems with mono, only you've put a positive spin on it. Mono's new libraries of it's own that you mention (XML, GUI, RPC. etc) and Microsoft's .NET specification are APIs that are largely untested and immature. They haven't proven themselves in the marketplace and probably won't for another 5-10 years. During that time, the world's (5 million?) Java programmers will have grown in size enormousely. NASA didn't start using python the year it was written, neither did Google.

Software Development projects are major propositions where the latest *cool* language with the hype doesn't always get a part to play. As for GNOME, millions of lines of code have been written atop of GTK+, GNOMElib. You overestimate how adventurous people are with their time. Spending years re-writing something (in C#) that works almost perfectly (GNOME) will help us in what way Miguel?

"Patent Issues"? Don't make me laugh.
by Danny MacMillan on Wed 21st Jan 2004 22:27 UTC

I will preface this comment by saying that I like Java and use Java daily in my work.

Sun is not inherently better than Microsoft. Sun would be Microsoft if they could. Microsoft has submitted C# and CLI to ECMA for ratification as standards. In so doing, they lost any leg they might have had to stand on in challenging alternative implementations such as Mono or dotGNU.

Sun has not submitted Java for ratification by a standards body. That is what made it possible for them to sue Microsoft over Microsoft's extensions to Java. Microsoft did not see Sun's source code. Their implementation was independent. Yet Sun sued them into the ground (well, into the low stratosphere) because they didn't approve of what Microsoft had done with the language.

I consider Sun a greater threat in a way because, having released their source under the Community Source License they can make credible claims about intellectual property contamination against alternate implementation providers.

C# is ahead of Java in a few places. Some of those are going to be addressed with J2SE 1.5. Java is still ahead as far as providing a holographic suite of tools for developing solutions, especially for the enterprise. C# will advance significantly in this area over time, in large part due to projects like dotGNU and Mono.

I'm actually pretty optimistic about the whole thing. Java will not go away unless Sun does something fatally stupid. C# is already providing an excellent motive for competitive innovation (Java 1.5 is Sun's answer to C#, which is Microsoft's answer to Java).

RE: Dream on
by Ben Maurer on Wed 21st Jan 2004 22:50 UTC

Honestly, most people who are `hardcore' know well enough that Mono is an open source project meant to allow apps that would have otherwise been bound to propritery platforms (namely Windows) to be used on Linux. Also, I see that many of the most `hardcore' people have OO.o installed, which happens to allow the opening of Microsoft Word documents.

Most of the `hardcore' GNOMErs are able to filter out the FUD.

Understand the Article Firs
by Richi Plana on Wed 21st Jan 2004 22:51 UTC

Before people start commenting on and criticizing the article, it would help all of us if you would first try to understand the article first instead of having some pre-conceived notion of what it's about because of your own person bias.

If it's not apparent, the intended audience of said articles are C/C++ and Java programmers who have not done any Gnome programming (to say that's the majority would be an understatement) and, to some extent, existing Gnome developers. Eugenia perceives that people will have an easier time of learning Gnome programming through Mono/C# rather than C/Gtk+. An argument for this statement is that to program in C/Gtk+ would require a paradigm shift for regular C programmers (since Gtk relies heavilly on a C objects system based on glib/GObject) whereas no such shifts exist for moving from Java to C#. Objects simply aren't inherent in C and in order to learn to program in Gtk, one must learn that first.

To this reader, what Eugenia is hoping for over and above programmers using Mono/C# is that we attract more programmers to write Gnome apps. Let me repeat that ... to write Gnome apps. By suggesting C# for existing C, C++ and Java programmers, she's making it easier for programmers to enter the world of Gnome programming. She does NOT suggest that Python users use C#, nor Perl users.

That said, it is always good for programmers to try new things out if only to gain a different perspective and learn a good thing or two. She states "Having an idea of what a new platform can do will only act on your behalf in many ways".

When people are young and in their university days, that is the time they make the most progress and come up with their brightest ideas. This is so because the youth are always raring to try new things. When people are too set in their ways, they start to stagnate. I hope that that doesn't happen to this developer community.

So to all programmers out there, I suggest they you try Mono out. That's the only way you'll learn whether you'll like developing in it or not.

To all naysayers, if you're really interested in the progress of Gnome, get off of your soapboxes and provide more objective comparisons of the language aspects.

Rewriting GNOME?
by Spark on Wed 21st Jan 2004 22:55 UTC

Matthew, I think you are seriously confused (almost as much as root). Nobody wants to rewrite GNOME, Mono will allow us to write additional applications, which don't exist yet in a very short amount of time.
Another advantage of "rapid" development frameworks like Mono is, that new user interface ideas can be tested in a very short amount of time. And besides, it's just plain fun.

It doesn't even matter if Mono will ever become a part of the GNOME core. Applications will be written and distributions will integrate the Mono runtime (at the very least, Novell/Ximian/SuSE will) to make those applications run. Mono will be a possibility to write GNOME applications. Whether or not there will ever be a "core" part of the desktop written in C#, that remains to be seen but is ultimately irrelevant.

Matthew,

Nobody is suggesting rewritng GNOME or GTK+ in C#. This would be a horrible and stupid idea, and as you said would cause instability in the platform. A port to C# is only advisable when one wants to do a complete change of the structure of a program anyways, and wants to reduce the effort required.

Remember, Gtk# is a wrapper around Gtk+. 99% of Gtk# is generated by a tool with transforms the C api into C#. As well, many C applications could allow C# plugins. I know the Evolution team is making an effort to allow such an API for plugins.

Patent Issues - forget cost ... but other conditions?
by A4 on Wed 21st Jan 2004 22:59 UTC

There's alot of public comment out there which says 'zero cost' for using the various ECMA specs - I've never read an official document which says this - but we'll assume this to be the case since I doubt they'd pull back from this public statement.

It's so not the problem.

Cost is only *one* condition of the use of the patents related to the ECMA specs - what are the rest? Does anyone actually know? One could easily be "It cannot be open source" ... which would be a bit of a bugger.

That would be `discriminatory' so it would be a violation of the terms of the ECMA work.

If this were a requirement for the use of the ECMA specs then you might be correct - but that's not what I mean.

This could be a requirement for use of the patents. Since ECMA doesn't control the terms of patent use, I don't see why this or some other terms couldn't be applied. Patent terms can certainly be discriminatory.

The requirement is for patents. As a condition of being a member, all patents required to implement a technology in their ECMA spec must be licenced RAND

...
by Anonymous on Thu 22nd Jan 2004 00:45 UTC

I would use Mono if I could use C as a back end, and if Mono had good documentation, and a nice library. Better yet, I'd use it for web applications or as an API to a server...but I wouldn't want to abandon C as the back end.

To those who believe .NET will have no take up until a few years after the release of Longhorn really should take a look at MS's move concurrently. They are actively promoting and pushing Windows developers in the direction of .NET which will be the underlying API for Longhorn when released.

I fully support the ability for me to take the aps I like from a Windows platform accross to Linux. This would break me free from using such a dodgy OS and Mono helps in this regard. I do Audio work at home and Graphic design and comp administration at work and to be able to take the apps I use and use them on Linux would be great and I believe that is the aim of Mono. This will help give people cross platform choice and compatability which is a good thing isn't it.

I haven't used .NET apps but I know for sure MS will have a load of developers who will have some decent apps ready to coinside with Longhorns release and developers I know who use .NET rave about it. If mono could be compatable or at some future time become the defacto standard this would be a great win for people.

Also Java doesn't cut it on a UI base it is clunky and slow. It is not, in it's current itineration, capable in a GUI space (re: GUI apps) and it will need a lot of work to get it up there. It has it's place but not for large scale application development with GUI front ends.

There are some great developments taking place which will make alternative computing to Windows more viable for the average user. Long live Open Standards and freedom of choice. (-:

for cross platform.
by tetsuo on Thu 22nd Jan 2004 01:57 UTC

i know java & qt. i like wxwindows the most the community/resource is better than qt or gtk.

both wx and mfc share some same 'weakness' so its so easy to port mfc to wx.

waiting for c++builderx 2.0 ;)

Anonymous (IP: ---.cg.shawcable.net) and Piers
by RoyBatty on Thu 22nd Jan 2004 03:26 UTC

RE: Anonymous
You should check out how much easier it is to use native code in c# than it is in java. None of this jni tool crap that produces a header file and then you roll your own glue library. You just declare that your going to use a function from a library, marshall some data into native code, and then just use it. All in the c# code. It just blows away java in that regards.

RE: Piers
Regarding java on the client, Sun's big mistake was that they were and are now to a certain extent in denial about linux. They probably could have owned the desktop on linux but it's too late now. Some java gui apps aren't that bad, like IDEA, ut the Intellij guys know what their doing and workaround Swing quirks. Eclipse is good, but I don't know about SWT. The last time I checked the interface was a bit clunky. But your right on in regard about longhorn. Everything is going to be managed apis. It's just stupid not to leverage that stuff for linux. But of course, you'll get the zealots who will tinker around Python out of blind vitriol of Microsoft.

Ben,

Okay ... that sounds good to me. So if I were to use Mono in a project would I need a RAND license or is this something you have already?

Re: patent issues? @ Jer
by Wesley Parish on Thu 22nd Jan 2004 09:15 UTC

Quote:
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.
Close Quote.

That would be the sound of Microsoft shooting itself through the head. If an ASP.NET clone isn't allowed on Apache as a module, then Microsoft has already confined itself to about 23 % of the Internet development market. If ADO.NET likewise isn't allowed on Apache, then Microsoft can't sell any SQL Server licenses to be accessed on a MS Windows backend server. Windows.Forms doesn't appear to be such a problem - neither Mono - as I read it - or dotGNU seem to be worried about that. It's only interface.

v Mono sux
by Rafael on Thu 22nd Jan 2004 11:59 UTC
RE:RoyBatty
by Volodymyr M. Lisivka on Thu 22nd Jan 2004 12:10 UTC

You should check out how much easier it is to use native code in c# than it is in java. None of this jni tool crap that produces a header file and then you roll your own glue library. You just declare that your going to use a function from a library, marshall some data into native code, and then just use it. All in the c# code. It just blows away java in that regards.
On _ALL_ platforms? On my mobile phone, my PDA, my desktop, my server,my browser,my smartcard? On I386,IA64,Sparc,ARM,etc? OR _WIN32_ _only_?

Aspect Oriented Programing
by Volodymyr M. Lisivka on Thu 22nd Jan 2004 12:13 UTC

Why not use something aspect oriented instead of object oriented? OOP paradigm is too weak.

RE: Patent Issues - forget cost ... but other conditions?
by Ben Maurer on Thu 22nd Jan 2004 15:56 UTC

As I said, no license is needed. You just need to accept the license on the code, which is implied by your use of the software. Mono's code is under 3 different licenses:

-- Class libraries : X11/MIT
This is so that you can link to the framework with fearing that your application will be required to follow the terms of the GPL. Non-free programs are able to link to the classlibraries, as are GPL'd programs

-- Runtime : LGPL
This is so that the runtime can be embeded in any program, but gives greater protection to the JIT. Most people will not be linking to the runtime, and so will treat it as if it were licensed under the GPL.

-- MCS : GPL
MCS is licensed under the GPL as there is no need to link to MCS, given that it is a tool.

Sorry if I'm being thick here, but ....

To use the mono code I need to abide by your licenses - I understand this.

To use the ECMA related patents I need to abide by the appropriate RAND license.

Mono contains code which uses these patents - so it would seems like I need a RAND license, with its terms and conditions just like your licenses.

Mono is a good idea, but more effort should be put into C++
by gururise on Thu 22nd Jan 2004 17:16 UTC

Having .Net on linux will allow easier porting of the numerous .Net applications that will be developed on the Windows platform. In that regard, Mono is a good idea. Mono is also a good idea for companies wanting to migrate to Linux from Windows, where they have done alot of .Net development.

C++ with the very mature gtkmm bindings (www.gtkmm.org) is where I believe Gnome development should be concentrated. C is a good language, but C++ offers OO and a higher level language, with almost no speed penalties as compared with C. Furthermore, C++ is just as easy to code in as any of the newer languages (C#,JAVA) etc. The gtkmm gnome bindings are the most promising and most mature at this point. Furthermore, C++ is one of the official bindings of the new Gnome bindings release. This should help further adoption of C++ in gnome/gtk+ applications.

RE: Patent Issues - forget cost ... but other conditions?
by Ben Maurer on Thu 22nd Jan 2004 17:18 UTC

Exactly

the RAND license costs you $0.00, and has no restrictionns that prevent the use of the Mono licenses.

I am not a lawyer, I cant really help you any more than that. If you think there are legal issues, you should talk with a lawyer.

You should realize that if there is a license that prevented the Mono licenses from being applicable, Novell would take action, etc. If microsoft had ground to sue someone, which they dont, it would be difficult to go after end users. The larger target would be Novell. They have had lawyers look into this.

Note the FSF sponsers PNet, which is also an implementation of the ECMA spec. Their lawyers have looked into it as well, and determined it is not an issue.

If you havent noticed, Microsoft is not against mono. There is an interview with Miguel on MSDN, and many of the Mono developers are great friends with the Microsoft developers. Novell is a member of the committee reviewing the v2 specification. Miguel has direct input on the v2 c# specification.

For the last years, Mono has been welcomed as an implementation of the .net platform. For example, we have had a microsoft employee on our IRC channel. He said to me once something like;

`At Microsoft, we do not have `how to bash the penguin presentations' wrt mono. You guys report alot of bugs in our framework and we love it'

Even assuming that Microsoft would take a turn for the worst against Mono, their legal position would be very weak. There is alot of prior art for there patents, and it would not be wise for them to bring it up in court because it would likely be marked invalid.

Again, talk to your lawyer...

RE: Ben Maurer
by Filip on Thu 22nd Jan 2004 21:25 UTC

"If you havent noticed, Microsoft is not against mono."
Oh, well, some are just never going to learn!
And you even help MS to iron out the bugs, for free. Simply briliant!

So, let's recap; you guys are going to build complete .Net enviroment which will lead to instant and painless portability of all new Windows apps to Linux. Which MS will gladly accept because some of their developers said so on mailing list.

And if that fails you will leave just ECMA core for which you think there won't be RAND "costs" ever in the future and build non .Net but better set of API's around that.

I do understand that Mono was a cool project to start; much cooler than helping classpath, kaffe and gcj efforts to get better and finished; after all, there were quite a few Java incarnations on Linux (blackdown,sun,ibm + those OSS ones) and no .Net ones. I even can have simpathy for value classes and few bytecode tweaks + CLR spec - JNI which make a life simpler when mixing C,C++,C#,Java libs and languages together. Managed environment is a plus too. And that is all fine and nice. But, I'm suprised with how fast some people forget who are they dealing with; like Stockholm syndrome, really; now we like MS? Because they say they've changed? They will tolerate you just for fun of saying that "OSS community doesn't innovate", some Java hurting portability issues (see, you CAN be portable in .Net) and some benchmarking PR nonsense (but, see how much is that same app nicer and faster and more stable on Windows). Then they'll throw all their WinFX, WinFS, XAML, Inidigo and DRM inovations on you every two-three years, just to show how "OSS community doesn't innovate" and "but, see how much is that same app nicer and faster and more stable on Windows". They may even surprise you with some XML related patant application on New Zealand (like for single XML file with word processing data that can be manipulated with some apps that know XML). And if it ever becomes possible to have the same important app (like Office, uhm, 13, lets say) better running on Linux, and you start eating their lunch using their tehnology, they will sue. Period.

Just a little reminders:

J ++
> The "strategic objective" of its new toolkit is to "Eliminate/contain cross-platform Java by growing the polluted Java market," "migrate and lock Java developers to Win32 Java," and ultimately to "kill cross-platform Java by grow[ing] the polluted Java market.

Statement by a Microsoft vice president:
> I would explicitly be different -- just to be different.... [W]ithout something to pollute Java more to Windows (show new cool features that are only in Windows) we expose ourselves to more portable code on other platforms.

Another Microsoft memo:
> At this point its [sic] not good to create MORE noise around our win32 java classes. Instead we should just quietly grow j++ share and assume that people will take advantage of our classes without ever realizing they are building win32-only java apps

Or, read the http://www.theregister.co.uk/content/archive/5618.html article
"Analysis: How MS used the WISE Trojan Horse against Unix"

> By 1996 Gates is wondering if "by creating cross-platform solutions we risk weakening the Windows franchise - hurting ourselves rather than let Netscape hurt us."
> Neault's staff are writing that they want "the WIN32 layer (on unix) to be fairly mediocre in performance and feature coverage. We want it to be just good/cheap/timely enough to get a lot of people to use it," and that "we don't want it to work too well. A non-objective is total redeployment of Windows on Unix."

The idea was to push customers who relied on these APIs in the direction of Windows NT:

> Neault actually devised a list of technologies to "jerk" from the source, describing it as a "beautiful" list which removed "the technologies that third-parties are going to try their damnedest to put on Unix."

Or, as Microsoft's Jim Allchin put it:
> "What we're trying to do is to get Netops to add NT services to their existing Unix networks and to migrate over time all of their services to NT."

(above quotes are from groklaw article submitted by anonymous)

Doesn't all of this sound familiar to you guys. MS simply looooves you in your current form. Especially when you fix their bugs for them! And lure Java developers. But you are going down. I'm sorry, but that is the FACT.

RE: RE: Ben Maurer
by lluis on Fri 23rd Jan 2004 12:27 UTC

Filip, it is not a matter of whether we like MS or not, the matter is whether we like the .NET technology or not. If a technology is good, and it is a ECMA and ISO standard, who cares who designed it? There isn't any legal or technical reason for not using it, only "religious" reasons (and if your reasons are religious, stop reading, since anything won't convince you against it).

We dont't need to stay and wait for WinFX, WinFS, XAML, etc. to be released. We can use Mono as the core for our own technologies, which can be eventually better that MS's ones. Or do YOU think that we can't innovate?

Cross-platform portability is a nice side effect of the CLR, and Mono is trying to take advantage of it by implementing non-ECMA libraries. But portability is not the main objective of the project, as you seem to think. You should read the rationale of the project (http://www.go-mono.com/rationale.html).

Regarding all those quotes about MS poluting Java and tying it to Windows, don't worry, we are also going to polute .NET and tie it to Linux, and MS can't do anything against it because we are just extending a published standard (we can't say the same about Sun, who sued MS for this very reason).

Great
by Uno Engborg on Fri 23rd Jan 2004 13:08 UTC

Great to see another object oriented language to use for development of Gnome applications. Doing object orientation by ideom in languages like C puts too much burden on the developer, and the result is usually diminished code quality in terms of maintainability and testing. C# is nice language no doubt about that.

But I don't think mono ever will be a major part of Gnome, Sun will make sure of that. They will probably rather fork Gnome than addmitting C#.They will use java instead.

Many Gnome developers make the mistake to think that Gnome apps will be created from Java Gtk bindings. They will not, instead it will be written like standard java applications using standard java apis like swing, etc. It is the job of the Sun Gtk Wrapper to make the application behave like a Gnome application if run in a Gnome environment.

The article states that almost no developers use the Gtk wrapper, and this is how it should be. If you write in java you should not need to know or use anything platform specific. The whole idea of creating java-bindings for things like gtk is flawed.

If your system is configured properly, all modern java applications should get Gnome UI automagially. Today this is supposed to be the standard configuration of java on Solaris. Unfortunately most Linux distros require additional steps by the admin.

Unfortunately, there are a lot of bugs in the current wrapper, but from what I understand Sun is working on them.
It should be interesting to see how it looks in the upcomming JDK1.5.



Re: Why .NET?
by Uno Engborg on Fri 23rd Jan 2004 13:27 UTC

>Because it makes it easier to port windows apps over to Linux.

Well, that is true as long as the apps you port have no
windows GUI, or use databases. The windows GUI and database parts are non free.

>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.


The risk of Sun sueing gcj is probably not higher than Microsoft sueing the mono/dotGnu projects.
Even if Microsoft never sues over any patent issues, third parties might find patent issues in mono code and sue both mono and the MS version. In that respect it would probably be safer to use a commercial product as java where Sun would be hit first, giving the community the ability to act.


>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.


Don't expect that to last forever, my guess is that we have shared JREs long before mono is commonly used in Gnome. Have a look at the prereleas of the next version of java and you will see that it almost looks like it was specifically designed to beat the crap out of C#. This is competition at its best.

Besides if you use gcj your java applications can be compiled as native applications and you don't use a JRE at all.

are we blue yet?
by kenk on Fri 23rd Jan 2004 20:13 UTC

We can argue about whether .NET is better than Java or vice versa until we are blue in the face. They are so close it makes no difference, and each will continue to get better because of the other.

The winner is NOT going to be the one that is technically better, but the one that can snag the "VB crowd". That is not a slight to VB developers. In fact VB-like RAD development is exactly where most development should be done (and is in the business world). Right now, I don't see Linux having a really easy-to-use, visual, RAD environment other than the major Java IDE's (JBuilder, NetBeans, etc...). Even these are not "easy" enough. Microsoft has always been very good at this, so there is no doubt they will continue to be. We will have to wait and see what project Rave from SUN, and any other similar projects bring to Java.

For GNOME developers all that doesn't matter. I'm sure they use Emacs or Vi. However, it matters most as to which technology will stand the test of time, and which platform those developers chose to develop on. As we all know, the platform that you use to do development is probably the platform that you prefer to target your apps for.

For those that want a native GTK binding without being tied to a single platform, take a look at SWT.

Waste of time :/
by Ninoo on Sun 25th Jan 2004 04:43 UTC

All this is can be doomed by Ms anytime, so why on earth am i to waste my time on it??? See what has happen with Fat and Xml patents and how can you avoid it ?? Huh did you ever wonder??

Don't forget
by Neil Corlett on Wed 28th Jan 2004 12:44 UTC

A major issue is that C# support will not bring portability of Windows applications into *NIX platforms. Microsoft are developing the Longhorn infrastructure : WinFS, WinFX, Sharepoint. The .NET infrastructure is only a small part of their vision. X# anyone?

I agree that there are benefits to having the compilers and runtimes available, but the developers should not overhype this. Its just going to be another development environment, and there are plenty of these as it is.

Don't get me wrong, having a 'C' or 'C++' alike interpreter is a good thing. For performance and safety.

As an aside, experiments with VMs (HP, and perhaps also Sun, have tested these) which implement a full processor instruction set and then dynamically compile at runtime showed (HP's case) a 25% improvement over optimised code.

Cheers

Neil