[ale] Hello World - in C# - in Mono - in Ubuntu is done
Ron Frazier
atllinuxenthinfo at c3energy.com
Thu Sep 16 22:25:39 EDT 2010
Aaron,
I would have hoped for a more informative and less divisive reply from
you. However, I have no desire to start an argument. 8-) If you type C#
vs C++ vs Java into Google, you get about 2.5 million results. So,
obviously, it's a hot debate. Instead of trying to read or summarize them,
I'll just give my take on the issue.
First and foremost, I want the knowledge I'm trying to acquire to make me
money. These Wikipedia articles talk about market share:
http://en.wikipedia.org/wiki/Microsoft_Windows - Windows - ~ 91%
http://en.wikipedia.org/wiki/Macintosh#Software - Mac OS - ~ 10%
http://en.wikipedia.org/wiki/Linux - Linux Server - ~ 20% - 40%, Linux
Desktop - ~ 5%
A quick and dirty search on the Monster job board within 200 miles of
Atlanta yields:
C++ - 11 jobs
C# - 57 jobs
Java - 106 jobs
So, I think I can certainly make money by learning C#. I could make money
with Java too, but I'm more concerned about Oracle being a corporate evil
demon than Microsoft at this point, given their propensity to sue people
after acquiring Sun. The Java community seems to be in an uproar. Also,
Microsoft is under scrutiny by the US Government for potentially anti
competitive practices. That past is not good, but they have to be careful
about further activities of that nature.
http://arstechnica.com/open-source/news/2010/08/oracles-java-lawsuit-undermines-its-open-source-credibility.ars
http://www.linuxinsider.com/rsstory/70619.html?wlc=1284686907
http://www.infoworld.com/t/intellectual-property/oracles-android-lawsuit-pandoras-box-serious-evils-359
http://phandroid.com/2010/08/23/android-developers-unhappy-with-oracle-over-baseless-lawsuit/
In addition, I want the following from my language of choice:
Modern, high performance (but not real-time, for drivers, or kernels),
object oriented, multi threaded, capable of usage for desktop, server, or
network based applications. In my mind, the candidates are:
C++, C#, Java
In terms of performance, the list above should be in order of fastest to
slowest. Also, my personal experience with Java applications indicates
they tend to be slower than native applications.
I want my language to protect the programmer from bugs like memory leaks
and pointer errors. That knocks out C++. Both Java and C# are resistant
to those types of errors and have automatic garbage collection as far as I
know. Remaining candidates:
C#, Java
In terms of being proprietary, both C# and Java are - in that their syntax
and features are controlled by corporations. See post #11 in the following
thread:
http://bytes.com/topic/c-sharp/answers/249140-c-proprietary-programming-language
C# is documented and specified in international EMCA standards. I'm not
sure whether anything similar exists for Java.
I want my language to be cross platform. Java is well known for
this. However, through the Mono project, as well as possibly others, it
appears that C# is very cross platform as well. I believe the situation
has been improving recently. A Google search on C# cross platform yields
948,000 results. Also, the following link on the Mono site lists 20+
applications that have been written in Mono.
http://mono-project.com/Screenshots
Finally, I want my language to be able to produce self contained free
standing applications. As far as I know, this knocks out Java.
So, overall, I don't think I was so short sited after all. 8-)
PS# 1 - I was thinking about learning Java, before the Oracle debacle.
PS# 2 - I did produce my Hello World app in a fully Linux environment.
PS# 3 - The /ect/sudoers file, for example, uses the # symbol as a comment,
not a NOT.
Sincerely,
Ron
At 9/16/2010 05:51 PM -0400, aaron wrote:
>I can't think of anything more short sighted than learning to program in
>a totally proprietary language, especially given that there are so many
>fully capable and liberated open source languages available whose
>designers don't try to handcuff you to proprietary API's and put
>daunting
>roadblocks in the way of cross platform compiling.
>
>In some assembly code languages, "#" is the NOT symbol, so even the
>name of the C# language is telling you NOT to use it! :-)
>
>peace
>aaron
--------------------------
(PS - If you email me and don't get a quick response, you might want to
call on the phone. I get about 300 emails per day from alternate energy
mailing lists and such. I don't always see new messages very quickly.)
Ron Frazier
770-205-9422 (O) Leave a message.
linuxdude AT c3energy.com
More information about the Ale
mailing list