[այստեղից][1]
Ռոբ Փայքի, որը այժմ Գոու-ի ֆյուրերն ա ամենահայտնի խոսքերից։
Ինձ շատ ուրախացրեց [այս փոսթը][2]․
<blockquote style="border: 2px solid rgb(127, 195, 59); padding: 10pt; margin-left: 30pt; background-color: #a6df6d;">
<p>
> Java is done right in concept.
</p>
<p>
wtf?
</p>
<p>
[ Let me start by saying I don’t speak for any of these guys,<br /> I can’t even get their OS to run a GUI.]
</p>
<p>
Java is better than C++, but as others have mentioned that’s like saying<br /> toothache is better than herpes.
</p>
<p>
It’s just C without pointer arithmetic. Leaving aside actual<br /> implementation bugs, it :
</p>
<p>
* runs on less platforms than any other language I’ve ever used,<br /> * wimped out of having numeric types implemented as objects, then<br /> bolted on ‘containers’ for them in 1.1<br /> *has changed its GUI twice and *still* doesn’t do it right,<br /> * it’s thread model is essential to its operation but differs widely<br /> between VMs even on the same platform<br /> * the same it true for its garbage collector.<br /> * The APIs are huge and inconsistent.<br /> * it *finally* – in 1.4 – has a regex API (which is unusably complex).<br /> * it’s native code bindings are absolutely the worst I’ve ever seen,<br /> even Perl does a better job
</p>
<p>
And don’t forget m5 current personal favourite –<br /> its pointlessly restrictive type system.
</p>
<p>
Type is stored in the *pointer*, not the object.<br /> So I have to hold the VMs hand each time I pass an argument.<br /> I’m not allowed to reuse a variable to<br /> point to an List and a Vector, even if I’m going to call a method<br /> with the same name on both.
</p>
<p>
And then to really piss in my chips, 90% of the Collections API<br /> which lets me store these objects and actually *do* something with them<br /> only lets me pull them out as Object.
</p>
<p>
I HAVE TO CAST THEM. So when I get an object ‘dynamically’ – via RMI or<br /> out of a Vector or whatever, I have to know what it is in advance.<br /> The poor frigging object doesn’t know (no, don’t get me started on the<br /> abomination that is the reflection API, people are already starting to<br /> stare).
</p>
<p>
And this is a dynamic language. KERR-RIST.
</p>
<p>
None of this matters of course, because “it’s better than C++”.<br /> And IT managers think the Sun shines out of its ass.
</p>
<p>
Java is the f*cking COBOL of the 90s and<br /> future generations of geeks are going to fly back from Mars to piss on<br /> our graves for inflicting it on them.
</p>
<p>
> Unfortunately. I can do system programming and command-line<br /> > apps with Java.
</p>
<p>
Sure. If you don’t mind a fifteen second delay while the VM drags itself<br /> up from the bottom of the sea each time you run a command line app.
</p>
<p>
Or should that ‘.’ be a ‘,’ ?
</p>
ու տենց