Ray Arachelian wrote:
Don wrote:
It's like claiming "run
Java/Inferno/etc. on your machine and you'll
never have to worry about security issues" (unless, of course,
someone boots the machine to a "non-Java" state!)
I'm somewhat
unhappy with Java. It allows junior programmers to do
silly things, like allocate lots of memory and not have to worry about
it just because there's a garbage collector. In real life, what happens
is that they write applications with hundreds, even thousands of threads
that grab resources other than just memory such as JDBC connections, or
file handles and never properly release them.
It's the OS's responsibility to play policeman -- not the language.
The trouble isn't so much that java allows these
things, but rather that
it creates too many low paid junior programmers which get hired because
they're cheaper than more experienced ones. i.e. hiring two junior guys
instead of one more senior guy who at least knows what he's doing.
That's been The Way of The World ever since machines were invented.
And, I suspect it will continue to be so. An implicit goal of
software engineering is to make it easier for folks to express
their ideas -- and let the machine handle all the grunt work.
The fact that less and less skilled people are writing code
(in a particular language) is a natural consequence of that.
Personally, I want languages to let me do what I want to do,
and *how* I want to do it. Without artificial constraints
E.g., if I want "I" to represent *amps* -- as a real -- and
"A" to represent *artichokes* -- an *integer* -- I dont
want a language implicitly forcing some other types on
me based solely on the naes I have chosen, etc. (silly
example of something that a machine can -- and should -- do
for me).
It *is* amusing to see how all of these "improvements"
apparently haven't resulted in better code... :-(