salmoni: wrong. Very, very wrong. Google is by no means cross platform, it has one, well defined platform: the web. The fact that you are able to host Google’s target platform (that is, $browser) on multiple OS’s / GUIs doesn’t make it cross platform. It’s the same kind of portability that Swing does – “we look equally foreign everywhere". If you still think Google does any kind of x-platform UI, answer these simple questions: What are the platforms Google looks (and feels) native on, besides browsers? Does it have standard Win32 UI? Does it conform to GNOME HIG? Does it employ Aqua guidelines? Is it integrated in any way with KDE? Does Google use ROX UI metaphors? In any case, the answer is negative, ergo Google is not cross platform.
e8johan: That’s probably because:
- Mono is easier for high-level app development than C
- It has very good, actively promoted, FLOSS implementation readily available, together with nice set of GTK/GNOME bindings (they’re very much not perfect, but what they lack in functionality, they gain in marketing :). Compare that with (yes, yes, don’t say you thought I wouldn’t bring that up ;) Java and its eternal “not quite there” state of FLOSS implementation
- On related note, Mono is very visible. It has vibrant community of users eagerly evangelising Mono to the outside world, it has insiders advertising it left and right, and, quite unlike Java-GNOME, GTK# is being held as main selling point for Mono. Just ask yourself – how many people know of Java-GNOME, and how many people can name one GNOME app written in Java?
- Mono is new, hip toy, which just about everyone wants to try out. This is very similar to Java hype 10 years ago, with one important difference – this is today, and both Java and .NET are wiser by 10 years of Java’s experience. But it’s .NET that’s new and hip :)
Now, why bring Java on table at all? Because, whether you like it or not, Java or Mono/.NET are the platform for great majority of corporate users. Which means in-house development. Which means real majority of apps used, but invisible to the outside. I hear that Java-GNOME is particularly strong in this invisible development. But then, Mono is visible in the wild, which means newcomers, evaluating one of platforms to pick up for future development, are more likely to stumble on GTK# than Java-GNOME, and conversely, use it as in-house platform of choice. So, in the end, Java-GNOME being so little visible outside internal corporate usage can hurt it in that internal corporate world.
And finally, (WARNING: totally subjective opinion follows) Mono/.NET is nicer than Java, so it gains new users on the expense of Java followers. How is it better? Delegates, built in events, x-language support, little things here and there. Also, quite surprisingly for MS platform, it has less marketing fuss in it than Java. Noone tries to convince us that platform and language are one, versioning is quite sane (did someone say Java 1.5? I mean, Java2, that is, Java 5.0), etc.
Now, having said that, the most popular non-C language in GNOME development is almost certainly Python / PyGTK. And there’s a reason to that – it’s one insanely great language with insanely great bindings set :)