Jack said:
Lew a écrit :
Jack said:
The guy who will say to me that using the Java ArrayList<Integer> is
as fast as using int[] in C is a liar. I just don't understand why
people
i was expressing some facts : average Java applications uses so called
high level data structure wich have a high overload cost in memory and CPU.
High is a relative term, and I think you meant overhead, not overload.
In any case, Java is a High Level Language, it is designed to work well
with "high level data structures" and abstractions. It does cost "more"
in CPU and Memory than doing the same in, say, assembly, but the total
cost (including engineering time and maintenance) is far less than on
low level languages. Even C++ programs tend to have a higher engineering
overhead.
Apples and oranges. What about comparing int [] ops in Java vs. C?
For similar operations in real-world applications, Java is generally
about as fast as C for most things. It's not really worth arguing
here; such discussions rarely work from fact or resolve in Usenet.
Let those who care review the evidence.
Note that I do not claim that Java is quite as fast as C, nor that it
applies across the board to all use cases. Furthermore, having used
both C and C++ myself for some years, I remain convinced that
different tools work better for different jobs. Java is not the
perfect language.
Well i agree, but this assumption would make Java a student-assignment
language, not a highly responsive desktop application.
What? I've seen some VERY well written and highly responsive desktop
applications, despite the fact that Java's focus has shifted to
server-side and enterprise technology.
Ok so now you are the trolling guy since, like always, every single
arguments i give is cut and rejected. My point is that when you start an
average Java application, it's less reactive, or slower, than an average
C application. If you compare Notepad with the Java demo which is in the
JDK (i believe), you see it right away.
Actually, trolling is rejecting a well thought-out argument because "its
dumb". What Lew is doing is providing counter examples to your claims.
You want rational point, but you won't listen to them, you just won't
admit them, you want to fight the evidence.
You haven't made any rational points. You've summarized what points
you'd like to make, but haven't proven or explained them.
I know Java is not the perfect language, but it sacrifices too much of
speed for easiness, from my work experience.
Perhaps you chose the wrong language for your work. If you need to
drain every last cycle out of your CPU, then write in assembly.
For the other 99% of applications, Java works just fine.
I won't talk about memory, i [sic] think it's obvious.
You think what's obvious? Your earlier post said that Java wouldn't
let you free memory when you were done with it. That is not accurate;
Java most certainly does let that happen. If you have another point
about memory, please let us know what it is.
You seems to make a difference now, between "let that happen" and "let
you make it happen". I mean, in C, i can release memory when i want to.
Yeah, in C, you have to keep track and make sure you release it when you
need to.
Again, if you need to keep strict control of your memory usage, and
you're finding Java doesn't do that, then you've chosen the wrong
language. Most applications need a "pool" of memory that can grow and
shrink over time, depending on current demand. Java abstracts that away
from the programmer altogether. Yes, you give up some control, but you
also give up a LOT of worry.
Anyway, if somebody can give me hint on a programming language which
fixes the listed problems, well i would be glad.
Java.
And my last point will be that some language (like C# i [sic] think)
offers a solution to some points (the accessors), so i [sic] think
i'm [sic[ not the only one to find writing accessors dumb.
What does "dumb" mean?
Do i need to find the exact word to make my point ?
Actually, that's considered the crux of a good argument. Yes. You do
need to find the words to make your point.
Don't you have
yourself any grief against writing "mutators", with self Javadocs, and
with one dummy statement ? I mean, haven't you find yourself writing
them and thinking, what a dumb think to do, but you have to, since all
the dev team do it...
Its called the uniform access principle.
<
http://en.wikipedia.org/wiki/Uniform_access_principle>
I personally would like a more succinct syntax to create accessors and
mutators. However, even when I code in C++, I don't access the C++
equivalent of fields directly.
Take a car and push it, if you don't like the oil industry. Using half
the language means:
1/ You code alone
2/ You use the wrong language
Indeed. Although thats a straw-man argument:
<
http://en.wikipedia.org/wiki/Straw_man>
If you choose another language altogether, you still are coding along,
and using the wrong language
Unspoken is true, but i wanted to avoid "i think that" followed by "not
me". I'm pretty sure you may find drawbacks too, but you want me to list
them precisely, which i won't.
If you don't list the drawbacks, you'll find that it'll be replaced by
an idiom with the same or worse drawbacks. Don't state a problem, state
a solution.
Every rational thought call another rational thought wich claim the
opposite, so i won't do it again (like for the Java slowness point). I
just feel that Java application are slower, in average. I might start a
thesis, putting some time measure on 5 Java application, and 5 C
application, but it would be useless since it's obvious.
Windows Vista is much slower than Dos 5.0. Does that mean that Vista is
dumb? Okay, bad example, and also a Strawman, but I think you might be
able to get my point.
Anyway, thank you for answering. But it seems we won't agree on anything.
I believe Lew is more concerned by your editorial voice and the lack of
substance in your post than your actual (if not yet fully stated)
arguments.
To reiterate. You may have some good points, but you have yet to make them.