Linked by Thom Holwerda on Mon 13th Dec 2010 19:27 UTC, submitted by lemur2
Mono Project For the most time, I've been firmly in the largest camp when it comes to the Mono debate - the 'I don't care'-camp. With patent lawsuits being hotter than Lady Gaga right now, that changed. For good reason, so it seems; while firmly in the 'ZOMG-MICROSOFT-IS-T3H-EVILL!1!!ONE!'-camp, The-Source.com investigated the five most popular Mono applications, and the conclusion is clear: all of them implement a lot of namespaces which are not covered by Microsoft's community promise thing.
Thread beginning with comment 453416
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: Evil Companies
by vivainio on Tue 14th Dec 2010 05:44 UTC in reply to "RE[2]: Evil Companies"
vivainio
Member since:
2008-12-26


No, actually very little software on a typical Linux desktop is written in C++.


By volume of code, not true. Openoffice, browsers... are written in C++. It doesn't matter much if my clock applet is written in C.

Yes, but I think it fails the "modern" requirement. C++ is better than C, but there are so many thing it got wrong that it's not even worth discussing (although there are a lot of things that I like very much about C++).



KDE is the largest user, and most distros default to GNOME.

and it's neither encumbered nor irrelevant.

C++ is "good enough", esp. when you use Qt framework. I don't see huge advantages with using C#; notably, Qt does memory management for you so GC is no biggie. Closures would be nice to have, but we will have them in c++0x.

I believe managed languages mostly belong to server side.

You can argue all you want, but it can hardly be argued that a good, open-source, unencumbered, fast, modern, GC-ed, OO language would not increase development for Linux.


Again, developers picking up Qt would increase development more than yet another new language that remains fashionable for a while, without ever growing to commercial relevance.

Reply Parent Score: 4

RE[4]: Evil Companies
by henderson101 on Tue 14th Dec 2010 11:29 in reply to "RE[3]: Evil Companies"
henderson101 Member since:
2006-05-30

"
No, actually very little software on a typical Linux desktop is written in C++.


By volume of code, not true. Openoffice, browsers... are written in C++. It doesn't matter much if my clock applet is written in C.
"

This is subjective at best. Define C++. In fact, define C. I've seen C that is basically 90% inline assembler before. I've seen C++ that is essentially C with some class based wrappers.

"and it's neither encumbered nor irrelevant.

C++ is "good enough", esp. when you use Qt framework.
"

Is this your personal opinion or that of your employer - Nokia? I've used Qt.. it's okay. It's nice, but it's no Objective-C, even though Trolltech did a damn fine job making it one of the better C++ UI's out there.

I don't see huge advantages with using C#;

Speed. Simplicity. Modern features. I seriously could not live without reflection, for example, and reflecting in C++ was painful at best. Also, it's hard to get around the short falls in the C++ static VMT implementation (or did they fix that in the 20xx spec?) The fact that adding a virtual method to a base class will break the ABI for everything is really bad. It makes shipping applications a real PITA.

notably, Qt does memory management for you so GC is no biggie. Closures would be nice to have, but we will have them in c++0x.


Um.. okay. That's your opinion. I don't share it. Having done it both ways, I know which I prefer.

I believe managed languages mostly belong to server side.


No. But then you are entitled to your opinion.

Again, developers picking up Qt would increase development more than yet another new language that remains fashionable for a while, without ever growing to commercial relevance.


Free Nokia advertisement aside - people could do a lot worse than take up Qt. It is probably the least offensive C++ UI library. Now that it has more agreeable licensing, it is probably worth looking at.

Reply Parent Score: 2

RE[5]: Evil Companies
by vivainio on Tue 14th Dec 2010 19:19 in reply to "RE[4]: Evil Companies"
vivainio Member since:
2008-12-26


Is this your personal opinion or that of your employer - Nokia?


Both. But yeah, Nokia people tend to use Qt and still like it ;-).

I've used Qt.. it's okay. It's nice, but it's no Objective-C, even though Trolltech did a damn fine job making it one of the better C++ UI's out there.


Qt has been advancing by leaps and bounds after TT acquisition. E.g. Qt Quick is all the rage these days.

I'm surprised to see someone likes ObjC, I've understood it doesn't really have much virtues by itself, esp. when compared with C++.


Speed.


That's debatable, compared to C++. Did MS rewrite IE in C# already? (they might have, didn't check).

Simplicity. Modern features. I seriously could not live without reflection, for example, and reflecting in C++ was painful at best.


Qt provides reflection (meta object protocol).

The fact that adding a virtual method to a base class will break the ABI for everything is really bad. It makes shipping applications a real PITA.


It's alright. You either recompile, or don't add a virtual method to base class. Retaining ABI is important for libraries/frameworks (like Qt), but apps don't really need to care.

Free Nokia advertisement aside - people could do a lot worse than take up Qt. It is probably the least offensive C++ UI library. Now that it has more agreeable licensing, it is probably worth looking at.


To remain on topic, taking a look at Qt is a very good idea when considering to use Mono. You don't risk getting sued (because Nokia clearly can't sue you for using stuff they themselves distribute with open license), and won't be in a "second class" situation (with C#, Microsoft .NET & Windows will always be the first class solution, others are also-ran. With Qt, Linux is a first solution).

Reply Parent Score: 2

RE[4]: Evil Companies
by fury on Tue 14th Dec 2010 18:48 in reply to "RE[3]: Evil Companies"
fury Member since:
2005-09-23

KDE is the largest user, and most distros default to GNOME.


I think that was argued ad nauseum in the previous comments, with the conclusion being half of the distributions include GNOME and half include KDE.


C++ is "good enough", esp. when you use Qt framework. I don't see huge advantages with using C#; notably, Qt does memory management for you so GC is no biggie. Closures would be nice to have, but we will have them in c++0x.


Whoa, Qt does not do memory management "for you". You still have to delete just like any C++ framework.


Again, developers picking up Qt would increase development more than yet another new language that remains fashionable for a while, without ever growing to commercial relevance.


I have no problem with Qt, but C++ with or without it is no substitute for a true, managed, statically-typed language.

Reply Parent Score: 1

RE[5]: Evil Companies
by vivainio on Tue 14th Dec 2010 19:24 in reply to "RE[4]: Evil Companies"
vivainio Member since:
2008-12-26


Whoa, Qt does not do memory management "for you". You still have to delete just like any C++ framework.


With modern C++, delete is for amateurs ;-).

RAII, QObject hierarchy and Implicit Sharing are enough for most development work.

Reply Parent Score: 2

RE[5]: Evil Companies
by flynn on Tue 14th Dec 2010 19:41 in reply to "RE[4]: Evil Companies"
flynn Member since:
2009-03-19

Whoa, Qt does not do memory management "for you". You still have to delete just like any C++ framework.

If I recall correctly all the Qt classes take a parent pointer as a constructor argument. The parent keeps track of all it's children and deletes them when the parent gets deleted. While not the panacea of memory management, it does help a lot. For other things there are always auto_ptr and shared_ptr to ensure proper deletion when resources go out of scope.

Reply Parent Score: 2