If you need high speed,high flexibility, and fine control over threads with lower emphasis on an easily ported language look at a C/C++/Objective C model.
If you need highly flexible,highly componentized,easily ported programming language, and easy to use threads but can sacrafice 10%-20% of C/C++'s speed don't need such fine thread control then look at a Java model.
If you need Rapid Application Development look at a Smalltalk model.
If you need infinte flexibility at the cost of high learning curves and high debugging times and reduced interoperability with other technologies, look at a Lisp model.
Me, I like almost everything about Java, but my primary use is building large inter-dependent systems in a short time, so C++ (my next favorite language) usually gets in the way by requiring so much debugging for a speed difference that is irrelevant for most of my needs and my clients' needs.
In general, I prefer the Java references to C++ pointers,stack variables, and references. The flexibility of C++ is wonderful, but 95% of what I (and most people in my segment of the industry) do doesn't require that much flexibility. Before anyone accuses me of fluff-programming; no, I don't build web-sites and everything I have done is server-side.
I don't like the VM controlled Garbage Collection (GC) and I don't like the lack of a destructor (one thing I really miss about C++). I also wish I could expose private aspects of my objects to "friends" (like in C++) so I can enforce object factories easier,but outside of that, I'm pretty happy with Java.
So now that I've done what I could to muddy the waters, what is your intentions of the use for this language?
|