[insert ritual ew ick Mono]

Story: Tomboy - Desktop Note Taking in openSUSE LinuxTotal Replies: 18
Author Content
tuxchick

Aug 31, 2008
11:02 PM EDT
I still don't understand why an application like Tomboy needs this whole freaking "framework". Linux is dying under the weight of "frameworks." It's not good enough to write to X, nooo, must invent Gnome and KDE. Now Gnome isn't good enough, nooo, must lard it with Mono.

I think I understand development frameworks- supposedly they streamline writing applications. But users don't have to install the whole framework just to run the apps.
tracyanne

Aug 31, 2008
11:26 PM EDT
You won't hear that from me.
gus3

Sep 01, 2008
12:00 AM EDT
@tuxchick:

Let me guess, you like FVWM?

FVWM Crystal FTW! (If only it had a graphical menu organizer...)
tuxchick

Sep 01, 2008
12:13 AM EDT
lol gus :). I like KDE a lot, and Gnome isn't too bad as long as I ignore Nautilus. I don't see the point of basing standalone apps on Mono- it's a dot Nut clone, which is for running dot Nut client and server applications. That makes no sense for apps like Tomboy and F-Spot and Beagle and all the other famous Mono-infested apps that really should be standalone, and not part of some freakish client-server framework.

I could be misunderstanding, but nobody ever corrects me when I rant against these things, so that means I'm right.
tracyanne

Sep 01, 2008
12:47 AM EDT
Please define stand alone
gus3

Sep 01, 2008
1:13 AM EDT
@tracyanne:

Would you write a real-time sensor-monitoring system using dot-not?

Would you write a FreeBSD compiler to native code using dot-not?

Would you re-write the Linux udev system in dot-not?

Most applications are highly platform-specific. Dot-not is wholly inappropriate for those tasks. They should be stand-alone programs.

OTOH, my primary complaint against dot-not is speed, both launch and execution. I have yet to see a dot-not app that didn't have a faster native-code counterpart.

That's my take, anyway. TC will probably have other things to say.
tracyanne

Sep 01, 2008
1:35 AM EDT
@gus I think you knew the answer to those questions before you posted them. The examples Carla gave are Tomboy and F-Spot and Beagle, and they are not of the thype of application you were talking about. Tomboy and F-Spot and Beagle could have been written in almost any language, and in the case of Tomboy, F-Spot and Beagle C# was the chosen language. If they had been written in Basic they might have required the GAMBAS Framework and runtime, or the realBasic Framework and runtime.

The fact that each of these frameworks is capable of Client server applications is irrelevant, and it's a straw man argument to suggest that because the framework the language utilises is capable of supporting Client Server applications that an application written in said language is not stand alone.

Hence my request for the definition of stand alone that Carla is using.
tuxchick

Sep 01, 2008
11:10 AM EDT
TA, you're dodging the question. Everyone knows you heart Mono. Fine, that's not the point here- what is the value of adding yet more overhead to these apps and to the system by requiring Mono? Your examples of GAMBAS and Basic are not relevant. Tomboy and F-Spot and Beagle are not standalone apps because they require Mono, and you can't give a good reason for this Mono dependency. It seems just as contrived as Microsoft trying to ram dot Net into everything, whether it's appropriate or not. What value is there for the user, who not only has to load up their system with the usual Gnome libraries, but also Mono? Mono is about networked applications and compatibility with dot Net- Tomboy and the other examples don't need any of that.
Sander_Marechal

Sep 01, 2008
11:46 AM EDT
@TC: Mono is also just the C# runtime without the .Net libraries.
bigg

Sep 01, 2008
12:13 PM EDT
> What value is there for the user, who not only has to load up their system with the usual Gnome libraries, but also Mono?

I have to agree completely. My experience has been that Mono is done in the finest performance traditions of Vista. Why it's installed by default in many distros is beyond me.
tuxchick

Sep 01, 2008
2:03 PM EDT
Quoting: Mono is also just the C# runtime without the .Net libraries.


If only more geeks could explain things so clearly.

I'm still at a loss to understand the benefit to the user. C# is described as an alternative to Java (or "the Java Killer, mwahahaa!"), and like Java is beloved by developers, but not so beloved by users, because of all the extra baggage and performance hits. Plus the special case of being "tainted" by MS and Novell. But presumably the tradeoff is easier and more cross-platform development. So what does this mean in the real world? Are Windows application developers going "yay, now I can write for multiple platforms in one fell swoop!" Not a single one that I can see. Nobody seems to be in any big rush to adopt Mono apps for Windows, either. Another factor is Java is now GPL, so hopefully it will be improved and suck less, and it has a huge established presence.

I've done a lot of reading trying to understand this stuff, and I hope to write an article that real people can understand someday. Despite Miguel de Icaza's unfortunate gift for generating negative PR, I think projects like Mono and Moonlight are valuable.

Here are some Mono articles that might be useful for other folks who want to get past the binary "Mono rawks!/Mono suxx!" perspective:

Programming Bits: Meeting C# and Mono http://linuxgazette.net/issue84/ortiz.html This one is good at getting past the typical useless geek-style of explaining all the wrong things.

http://www.mono-project.com/FAQ:_General The Mono FAQ

http://www.onlamp.com/pub/a/onlamp/2004/03/11/mono.html Will Mono Become the Preferred Platform for Linux Development?
Sander_Marechal

Sep 01, 2008
3:05 PM EDT
Quoting:I'm still at a loss to understand the benefit to the user.


There is no Big Benefit. Why do we have Perl and PHP and Python and Ruby and a dozen more interpreted languages on any given Linux system? None of those have a Big Benefit over the other. There is no killer interpreted language. It's small benefits, availability or libraries/bindings and most of all programmer preference.

Quoting:C# is described as an alternative to Java


Marketing. Bleh. If I look at the most popular Mono applications and see what people do with Mono, I'd say Mono is more of a competitor to Python than to Java.

Quoting:but not so beloved by users, because of all the extra baggage and performance hits.


That is common to all interpreted languages. Speaking in raw speed and resource usage, Mono ain't half bad if you just use C# and skip the .Net libraries. It's a bit faster than Python. I think that the real overhead is that it's yet another interpreter with yet another big set of libraries and yet another pile of bindings, etcetera.

Quoting:Are Windows application developers going "yay, now I can write for multiple platforms in one fell swoop!"


No. Portability problems don't go away just because a language is interpreted and the runtime available on multiple platforms. You're often still using platfom-specific libraries (XAML versus Clutter, W32GUI versus GTK, etcetera).

Anyway, I don't have too much of a problem with C#, aside the "yet another" as I explained above. I.e. DotGNU is fine in my book. The core C# of Mono I'm less enthousiastic about because instead of implementing the standard (like DotGNU does) it's bug-for-bug compatible with MS .Net. I'm even less happy about the extra .Net libraries that Mono implements. The specs for those were not released by Microsoft as liberally as the C# spec was. Mono choose to implement them anyway (while DotGNU does not). Moonlight is derived from even more closed specs IMHO.

In short, I see little risk with C#, some risk with the Mono implementation of some .Net libraries and even bigger risks with Moonlight. I won't have any of that on my system, thank you. That is simply my opinion/choice and I don't feel like debating this yet again in a 300-post thread. Go find the older threads for that :-)
tuxchick

Sep 01, 2008
3:46 PM EDT
heh, thanks sander, that helps. I know it's a much-flogged topic, but for all the words written on the subject there isn't much clarity.
tracyanne

Sep 01, 2008
5:05 PM EDT
Quoting:TA, you're dodging the question.


No I'm not. You may be missing the point.

Quoting:Everyone knows you heart Mono.


Well I do know C# rather well, and C# depends on either Mono or .NET.

Quoting:Fine, that's not the point here-


You are correct, whether or not I like Mono is irrelevant

Quoting:what is the value of adding yet more overhead to these apps and to the system by requiring Mono?


Wrong question. The apps are written in C#/Mono, you haven't added extra overhead, by requiring mono, mono was required to write them, just as a Java runtime/ Framework is required to write Java applications, or the GAMBAS runtime/Framework is required to write BASIC apps using GAMBAS, or the realBasic runtime/Framework for BASIC apps written using realBasic.

Quoting:Your examples of GAMBAS and Basic are not relevant.


But of course they are, and it's realBasic, and they are both provide OO Library Framworks/runtime environments for the BASIC language, Mono is an OO Library Framework/Runtime environment for the C# language.

Quoting:Tomboy and F-Spot and Beagle are not standalone apps because they require Mono, and you can't give a good reason for this Mono dependency.


I did, they can't exist without Mono, just as a Java application can't exist without Java, and a BASIC application written using GAMBAS can't exist without the GAMBAS Runtime environment. In fact by your definition of standalone no ruby application, or PHP application, or Python application is standalone.
gus3

Sep 01, 2008
6:20 PM EDT
Quoting:I did, they can't exist without Mono, just as a Java application can't exist without Java
Are you saying you can't write F-Spot without C#/Mono?

I can write, build, and run a program in Java without ever using JVM-based code. And the first non-Java compiler that targeted the JVM was a FORTRAN compiler.

Granted, those are differences in compilation, not source.

If someone creates an Xlib-based equivalent to F-Spot, will you claim that the Xlib is a framework, X is client-server based, and tc's point still fails?
Sander_Marechal

Sep 01, 2008
6:26 PM EDT
@Gus: Read my first reply in this thread. Mono isn't always the .Net framework. Mono is also plane-jane C#. It's very likely (and probably Tracyanne's point) that F-Spot and Tomboy use C# from Mono but not the .Net client-server framework stuff.
tracyanne

Sep 01, 2008
6:30 PM EDT
Quoting:I can write, build, and run a program in Java without ever using JVM-based code.


And when someone writes a compiler for C#/Mono that compiles to native code, one will be able to do the same with C#/Mono code. We also have to wait until someone writes a compiler for GAMBAS Basic, or realBasic BASIC, that compiles to native as well.

Quoting:If someone creates an Xlib-based equivalent to F-Spot, will you claim that the Xlib is a framework, X is client-server based, and tc's point still fails?


Only based on Carla's definition, as implied above. My definition is that the C#/Mono based applications, like the JVM based applications, like the GAMBAS and RealBASIC based applications, are stand alone, which of course, means, by my definition, that your mythical Xlib-based equivalent to F-Spot is also stand alone.
tuxchick

Sep 01, 2008
10:04 PM EDT
OK TA, thanks, I think I understand better.

Tomboy (for one example) on *buntu has these Mono dependencies:

mono-runtime libmono-corlib2.0-cil libmono-sharpzip2.84-cil libmono-system2.0-cil libmono2.0-cil

The .Net dependency is called plain old mono:

mono - Mono CLI (.NET) runtime

tracyanne

Sep 01, 2008
10:30 PM EDT
The Mono CLI (or .NET CLI) is the Common Language Interface ii's what makes it possible to turn the C#, or any other language integrated into the Mono (or .NET) framework, source code into Byte Code so that it can be JITed (Just In Time compiled) to native at run time by the mono-runtime or (.NET runtime), it's no different in application to how Java works, or BASIC (both GAMBAS and realBasic).

Posting in this forum is limited to members of the group: [ForumMods, SITEADMINS, MEMBERS.]

Becoming a member of LXer is easy and free. Join Us!