<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br>
<div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">The fact that C# is a .NET language is also a major weakness, since you can only use it on Windows.<br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Original Message ----<br>From: Michael Torrie <torriem@gmail.com><br>To: python-list@python.org<br>Sent: Tuesday, April 15, 2008 1:19:31 PM<br>Subject: Re: Java or C++?<br><br>
egbert wrote:<br>> What is the role or position of C# in this context ?<br>> If I remember well, some people have said that C# is an improved<br>> C++ or Java.<br>> e<br><br>I think C# is in a great position, and might be recommended.  C# has the<br>added advantage of being able to very easily work with IronPython.  Thus<br>if you want to develop with .NET you can easily wield the beauty of<br>python with C# for speed or library routines.<br><br>Of course Jython does the same for Java, although it's way behind in<br>development these days.<br><br>Slick python integration is one area where C# and Java would beat out<br>C++.  Sure there's Boost::Python, but the learning curve is kind of<br>steep.  Installation, even, is difficult.  Python's C API is very simple<br>and C-like, so if one chooses to use primarily a C/Python combination<br>(typically what I do these days), it works well, but not quite as easy<br>as
 IronPython and C#.<br><br>Diving into the debate, I personally think all programmers, and<br>especially computer science people, should be proficient in C.  You<br>should be able to write thousands of lines of C code, use dynamic memory<br>allocation, data structures, etc, and have very few resource leaks if<br>you choose your tools wisely (glib for C ought to be standard!).  This<br>is to give you a background and low-level understanding.  However you're<br>not likely to program in C professionally unless you are into systems<br>programming, or are affiliated with core, low-level things like library<br>development, or embedded systems.<br><br>As for C++ and Java, I've found that good C++ programmers can *easily*<br>move to Java when they want/need to.  The reverse is *not typically<br>true*.  Java lends itself to too many bad habits that kill would-be C++<br>programmers, particular in regards to resource management and
 things<br>like destruction after scope.  I think that is a critical thing that<br>people forget sometimes.  Similarly people proficient in Unix and Linux<br>computers, both use and development on, can much more easily move to<br>Windows than the other way around.<br><br>A good programmer should be able to pick up new languages and paradigms<br>fairly easily, and become fluent in just a few weeks.  For me it's<br>typically one week, although learning frameworks and toolkits is more<br>difficult (Java frameworks).  A good exercise might be to pick up one<br>new language per year and do something major with it (say 4000-10000<br>loc).  Choose a new genre like web programming to explore.  Whatever.<br>Next time a little pet project comes up, try a new language or a new<br>toolkit.  Try some shell-scripting in scsh using scheme.<br>-- <br><a rel="nofollow" target="_blank"
 href="http://mail.python.org/mailman/listinfo/python-list">http://mail.python.org/mailman/listinfo/python-list</a><br></div><br></div></div><br>



between 0000-00-00 and 9999-99-99 
       </div><br></div></div><br>



between 0000-00-00 and 9999-99-99 
       </body></html>