levi at cold.org
Tue Feb 13 19:51:43 MST 2007
On 2/13/07, Bryan Sant <bryan.sant at gmail.com> wrote:
> And though there is a fair amount of language trashing dished out to
> everyone, no language receives more slander than Java on this list.
> That's what you get when you're #1. As Bjarne Stroustrup said, "There
> are just two kinds of languages: the ones everybody complains about
> and the ones nobody uses." Rarely do I start a thread. I'm usually
> cleaning up after some false, severely outdated, or otherwise slanted
> comment about Java.
Well, Java has also had a bit of a rocky past. Cue images of outdated
browser-based JVMs slowing web pages to a crawl, crashing randomly,
etc. Also, performance hasn't always been as good as it is now,
especially with Swing apps. There has been plenty to criticize, but
plenty to admire as well. I don't think anyone minds correction of
factual errors and information about the current state of Java, but
the style in which you present that information often leads to these
fun threads in which I feel compelled to point out where the cool Java
stuff came from and why Java isn't the coolest thing ever to to bring
a little balance into the picture.
> Well, I'll be interested to see how things turn out. So far there
> have been early reports of JRuby being twice as fast on the JVM than
> Ruby C. I think speed and compatibility will be the motivator for
> coming to the JVM, probably not ease of implementation.
Ruby is a cool language in a lot of ways, but it's also a victim of
the same sorts of amateur design decisions that plague a lot of
scripting languages that now want to grow into systems programming
languages. It's got an awkward grammar and semantics that aren't
well-defined. Furthermore, the current implementation has ignored the
last 30 years of interpreter technology and does naive syntax tree
interpretation instead of defining an abstract virtual machine. That
technology goes back at least to the pCode machines of early Pascal
implementations in the 70s. A simple virtual machine tailored to Ruby
would likely give a similar 2x speedup, and a virtual machine like
Strongtalk's would likely yield performance within the same order of
magnitude as C. All that is hampered by the above design decisions,
though, since figuring out what a Ruby translator is supposed to do
requires mucking through the current interpreter.
More information about the PLUG