On 19 avr, 23:40, Razii <whatever1...@[EMAIL PROTECTED]
> wrote:
> On Sat, 19 Apr 2008 05:26:05 -0700 (PDT), s0s...@[EMAIL PROTECTED]
wrote:
> >I've been programming Python for a couple of years now. Now I'm
> >looking to move on to either C++ or Java, but I'm not sure which.
> There is nothing that you can do in C++ that you can't do
> in Java (except write low-lever drivers perhaps).
There's actually a lot: programming by contract, for example, or
intelligent management of locks. Or distribute a program for
which you can give reasonable guarantees of reliability on any
platform on which it runs (i.e. no dynamic linking).
I work mainly on large servers. I can't use Java for
reliability reasons; my code must work, every time.
> Everything that you can do in C++, you can do it much easier
> in Java with standard libraries that sup****t threading,
Threading is actually considerably easier to do right in C++
than in Java.
> networking, GUI and much more.
GUI is easier in Java. I've had no problem networking in C++,
and all of the large servers I'm familiar with (e.g. Apache,
etc.) are written in either C or C++---never in Java. When I
wrote the server for dynamic allocation of IP addresses
(networking), we used C++ for the server itself (for reliability
reasons, mainly---we guaranteed up time), and Java for all of
the interface code around it (mostly beans under WebSphere).
> Also, the java app with GUI and networking will run only every
> OS that has a JVM. In C++ you have to hunt for libraries,
> build them, and there is no guarantee that you will get a
> ****table product in the end.
And if the code is only supposed to run on one machine, or a
small set of machines? With care, it's possible to write C++
code which ****ts easily to most Unix machines, and for large
scale servers, that's all you're interested in anyway.
--
James Kanze (GABI Software) email:james.kanze@[EMAIL PROTECTED]
en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34


|