IBM Releases Fastest SDK For Java 6
IndioMan writes "IBM is releasing an SDK for Java 6 and is sponsoring an Early Release Program to gather feedback from the Java community. Product binaries and documentation are available for Linux on x86 and 64-bit AMD, and AIX for PPC for 32- and 64-bit systems. In addition to supporting the Java SE 6 Platform specification, IBM's SDK also focuses on platform stability, performance, and diagnostics. It's tops on every benchmark."
x86-64 isn't just for AMD anymore you know!
Whatever happened to all that "Open Source Java" thingie?
Inquiring minds want to know.
If they include a x86_64 browser plugin they'll be heros. It's 2007 and Sun still refuses to release a 64-bit browser JRE plugin because..... why?
Top Most Bizarre/Disturbing Error Messages
Funny, but even Sun's JDK blows Perl out of the water.
Looks like it could run, not only on AIX/PPC but on a Playstation as well:
* Linux® on x86
* Linux® on PowerPC® 32-bit #!
* Linux® on PowerPC® 64-bit
* Linux® on AMD64/EM64T
* IBM AIX® on PowerPC 32-bit
* IBM AIX® on PowerPC 64-bit
send + more == money?
It would be nice to see a few links uphold that claim.
I know the statement was tagged as funny, but Java is quite fast these days. Java7 will only get faster with some really spiffy JVM ideas. I don't see Python, Perl, and Ruby catching up for a while.
It seems to me that once Java is opened up and is included with every Linux distro out there, Java will not be perceived as large and slow anymore. It will be a simple apt-get, yum, etc away. It will just work.
1998 called, and they want their joke back.
Hasn't been funny or true for a long time...
This was originally released back in the middle of November 2006!
h read.jsp?forum=367&thread=142364&cat=10
http://www-128.ibm.com/developerworks/forums/dw_t
Hasn't been funny or true for a long time...
I think you're wrong. Even today, over 15 years since Java was first announced, we see little use of it for client-side development. There are only a handful of consumer-grade applications written in Java, with the most popular being Azureus and RSSOwl. Even then, one of the chief complaints against them is their lack of responsiveness and their excessive memory consumption. And keep in mind that they use SWT for their GUIs, which is in fact far lighter and more responsive than Swing. But compared to purely native applications, they're still noticeably slower.
We really don't see Java applets used much any more. Flash has taken over.
The only reason Java has obtained some level of success for enterprise-grade applications is because most large corporations can afford to spend hundreds of thousands of dollars on expensive, high-end Sun and IBM hardware. Those are the sort of systems one needs in order to make Java truly useful.
It's in the best interest of the Java community for us to admit that Java is indeed quite slow. Only after we have admitted this fact will we truly be able to improve the situation.
Why did the parent modded as troll? It's quite true. For example, look at The Computer Language Shootout. Sun's JVM is much faster than Perl in almost every benchmark except for startup times. Perl's memory consumption is somewhere better, but not even close to the same degree that Java is faster.
Those benchmarks are based on Java 1.5, too. 1.6 is even faster.
Karma: Terrifying (mostly affected by atrocities you've committed)
FTA
Systems Affected
Sun Java Runtime Environment versions
* JDK and JRE 5.0 Update 9 and earlier
* SDK and JRE 1.4.2_12 and earlier
* SDK and JRE 1.3.1_18 and earlier
Fortune favors the bold.
Of course, I meant to say "Why did the parent get modded as troll?" That'll teach me not to use the preview button...
Karma: Terrifying (mostly affected by atrocities you've committed)
Scimark wasn't even close:
IBM java6:
Composite Score: 482.8282568762099
FFT (1024): 551.8002634079949
SOR (100x100): 568.7588552216857
Monte Carlo : 64.62096017621073
Sparse matmult (N=1000, nz=5000): 219.84569330460474
LU (100x100): 1009.1155122705532
Sun java6:
Composite Score: 617.5119705454583
FFT (1024): 510.7586118547276
SOR (100x100): 829.8686416193439
Monte Carlo : 118.25350583943022
Sparse matmult (N=1000, nz=5000): 470.6355733620428
LU (100x100): 1158.0435200517468
Higher scores are better. Both run on AMD X2 5000+
Sun VM stomped on IBM's. That wasn't true with earlier VM's. IBM used to smoke Sun on scimark. Maybe there's more development to be done.
Client side, that is true. Server side, its just as fast or sometimes faster. See http://kano.net/javabench/ and http://www.aceshardware.com/Spades/read.php?articl e_id=153
Why did the parent modded as troll?
Because this is slashdot, and perl is one of the Chosen Few Languages, along with C, Ruby, Python and PHP. Java, being both closed (for the moment) and slow (5 years ago on the client side) is not. Therefore, any statement that compares Java favourably with one of the Few Chosen Languages must be either a troll or flamebait.
It's easier when you stop fighting the groupthink.
It's official. Most of you are morons.
It's certainly possible for Java code to run fast, once it's been through the just-in-time compiler, i.e. once it has been compiled to native code. That would surely be true for any language. But that means that you have to load up the whole of the compiler into memory in order to run your program. This is fine on a server, so long as you don't care about the cost of memory. It's a disaster on a client machine.
Java7 will only get faster
Yes, and Java 53 will be really good, and everyone will like it.
In the meanwhile, we've still got customers stuck on 1.3, because our "write once, run anywhere" code doesn't run on 1.4, and it's too much effort to puzzle out why because Sun's runtime is just such a mess.
That'd be nice. At the moment, eclipse has this sluggish performance when it comes to swt on linux. The VE project on my ubuntu box is much slower than in windows, and if this new jvm can perform better in this aspect, then I'm happy to read this. (there are alternatives to ve, and overall performance is fine, but again, faster is better...)
Because this is slashdot, and perl is one of the Chosen Few Languages, along with C, Ruby, Python and PHP. Java, being both closed (for the moment) and slow (5 years ago on the client side) is not.
I believe you mean "Chosen-Few-Languages-for-Slamming". they all get it from the slashcrowd, in no particular order:
Stop Computers/Cars Analogies on S
It still makes me wonder. Sun has been known to do crass benchmarketting before.
E.g., when Hotspot first came around, it claimed to accelerate some benchmarks thousands of times, which was already suspect. It turns out that in one popular benchmark at the time, it completely elliminated the loop. Which in and by itself would be a valid optimization, if it were on the general case. But it turned out that as little as changing an "if (A == B)" to "if (B == A)" was enough to disable that optimization. Sun's smart guys literally recognized and elliminated the _exact_ bytecode sequence of that particular benchmark. In actual programs the gains and ability to recognize dead code were _much_ lower.
Not to say IBM doesn't do the same thing, but I'd take such claims with a grain of salt. If on one particular benchmark Sun is doing twice as well, but not on the general case, well, you know what I'll suspect.
A polar bear is a cartesian bear after a coordinate transform.
Are your "write once, run anywhere" applications using internal APIs, or are they relying on bugs in the 1.3 class libraries to run? Personally I've only ever come across code that DOESN'T run properly on 1.3, due to bugs introduced between 1.2 and 1.3, and fixed in 1.4.
Out of interest, are you using AWT or Swing?
-- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz
The links you provide have nothing to do with 'server side' and have headings like 'Why the(!) java is fast and C++ sucks'. Such a heading is obviously not indicative of bias. Furthermore, 'serverside', people compare code which is linked into a webserver (java) with external scripting languages like PHP and perl. I want to see a benchmark of a servlet pushing a simple http 'hello world' versus an apache module doing the same thing. And then with a thousand requests per second. I'm sure that you're sure that java will keep it up, it's just that I'm not so sure.
Religion is what happens when nature strikes and groupthink goes wrong.
The SWT binding directly accesses gtk through JNI. This may have suited IBMs purposes of accessing gtk through the SWT API but might not be the most optimal binding of gtk to Java.
The java-gnome project produces java bindings for gtk. They are in the process of being re-written from scratch using 2007 best practice JNI binding techniques. I suspect that an SWT implementation using this approach would far outperform the current offering. Maintenance would be far simpler too: no native code in the SWT layer!
In the meanwhile, we've still got customers stuck on 1.3, because our "write once, run anywhere" code doesn't run on 1.4, and it's too much effort to puzzle out why because Sun's runtime is just such a mess.
h tml
There could be several reasons why Java 1.3 code won't run on 1.4. One is if you use sun.* or com.sun.* packages directly, which is funcamentally against portability guidelines. Another could be real incompatibilities. There are very few incompatibilities between 1.3 and 1.4. They are listed here:
http://java.sun.com/javase/compatibility_j2se1.4.
If you keeping customers from using Java 5.0 or Java 6.0 because you can't sort this out, you are keeping them from major performance and functional improvements.
we've still got customers stuck on 1.3, because our "write once, run anywhere" code doesn't run on 1.4, and it's too much effort to puzzle out why
... that can be tweeked however by forcing the 1.4 compiler to generate 1.3 compatible byte code.
... you should be able to rewrite your code to use my.working.repalcement.of.MyClass very simple.
Sorry, but I don't believe that. You probably have problems to run 1.4 java on a 1.3 VM
1.3 byte code must by definition run on a 1.4 machine, and if there is indeed a problem in the class libraries a simple look at the exception trace should show you where. Even if you have used the same faulty class often, e.g. a com.sun.faulty.MyClass
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
SUN has released the sources to it's compiler and JDK.
IBM where are thou the benefactor and promoter of Open Source ? Show us the GPL sources to your JDK and compiler!
- mritunjai
It's in the best interest of the Java community for us to admit that Java is indeed quite slow. Only after we have admitted this fact will we truly be able to improve the situation.
Sorry, but this is simply wrong. Java is as fast as anything else. If you feel Azureus is slow and unresponding the reason is its written by an unexperienced programmer. Java is a simple language, in relation to C, and with modern IDEs it is as simple to hack code together as with Visual Basic.
The only reason Java has obtained some level of success for enterprise-grade applications is because most large corporations can afford to spend hundreds of thousands of dollars on expensive, high-end Sun and IBM hardware.
Well, that again is only your perception. $100.000 for one high end SUN/IBM machine is less than I cost one year. That of course has nothing to do with Java being fast or slow. Lots of companies use linux clusters to run the java applications, especially when it is a web application. So they don't need your estimated expensive hardware at all.
On the server where you are facing a lot of concurrency, network access, data base access, security and other concerns, there is no other language/environment existing meeting our days demand on: available fluent programmers, available libraries/tools, speed, and far more important speed of development
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
As far as rates go, I'm not willing to take a stand on current possibilities, as the load tests I've done are on systems who's bottlenecks lie in relatively long term data retrieval and processing, not network I/O. In these scenarios Java easily meets or exceeds C++ in performance and coding time is considerably quicker under Java, as the potential for bugs is simply lower.
The blanket statement that A is better than B in all cases simply isn't true.
The cesspool just got a check and balance.
It's a simple matter of complex programming.
If you read my post carefully, then you'll have noticed that I said 'servlet', not 'JSP'. I was trying to make an orange vs. orange comparison here. On the one hand you have precompiled (again, therefore not a JSP) java-code embedded in the server, on the other hand you have an apache module written in C, embedded in the server. In the first case, a request will have to pass via an arbitrary native (JVM-) implementation of 'select', in the latter case you're dealing with one of the fastest webservers on the planet executing native code. I am under the impression that this is all a bit over your head maybe, but would you be willing to take bets on tomcat ? or oc4j ? or websphere ? I know I wouldn't.
Secondly, that bit you wrote about coding times, you can shove that in your dump truck, because any of that is subjective and entirely dependent on your expertise.
Religion is what happens when nature strikes and groupthink goes wrong.
Well, you're probably not a Ruby developer then :-) Ruby's switching to a new VM in the next release, it's part of the mainline CVS sources. I've not benchmarked it myself, but it's supposed to be 2x faster already.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
When started on Debian unstable it terminates immediately with:
Could not create the Java virtual machine.
This is probably caused by NPTL-less glibc. Anyone with suggestions how to fix it?
"Man in the Moon and other weird things" - wfmh.org.pl/thorgal/Moon/
Regarding coding speed: Give me two equally skilled programmers, and tell them to hook up to a messaging queue, a couple of DBs, and throw in some business logic during the processing of your now somewhat complex "Hello World" app. If you want to make it more realistic, add in some transactional processing with writes to an external store. The Java guy will be at home while the code is tested and in production while the C++ guy is still working on getting the initial skeleton running. Note that in this scenario, which is a much closer semblance of reality in the business world, that the speed of the serving application becomes a miniscule portion of the total response time as the back-end systems and connections to them are your major bottlenecks. There is a reason companies have converted to Java. It wasn't because the development time went up.
And this is not conjecture about Java being the better choice for business programming of the sort outlined - I have seen it in RL with Perl, COBOL, C, and C++. Those languages have their places as well, but large scalable flexible business applications are not it.
BTW, you should note that I think Apache is a fine web server, and it fronts most of the web apps I have worked on and I use it personally.
The cesspool just got a check and balance.
As someone who writes client-side Java, I can say that Swing is actually fairly responsive these days. However, it often suffers from a "first click is slow" problem, where the very first time you do something it's slow, then it's fast after that. So a cursory glance at Java apps often show them in the worst possible light.
In any case, the meme that it's impossible to write a fluid, responsive UI in Java is just as wrong as it is on the server-side.
E pluribus unum
Yes - there's economies of scale involved with Java, it comes into its own in huge server-side applications... the startup time and overhead are nothing compared to the benefits you get from the built-in memory management and dynamic re-optimisation. It often works out faster and more memory efficient than the C/C++ equivalent.
Don't confuse a Java app server with a web server. An app server takes a lot more memory and often can't be tuned for performance to the same extent as a standalone web server. OTOH, you can usually front an app server with one or more standalone web servers for serving static content (images, boilerplate text, CSS) and get the improved performance, plus the ability to serve dynamic content.
Just junk food for thought...
]] JSPs are servlets.
That's being a wise-ass for the sake of being a wise-ass. There is no way to predict _how_ a JSP will be compiled into a servlet (it's engine specific, after all), ergo no way to compare the outcome. For all I care the engine encodes a JSP to go to sleep for a second or so before it produces any output. Wouldn't violate the spec, but I wouldn't be able to tell.
And I was trying for a bare-bones comparison, because anything beyond bare-bones is equally unpredictable; what do you want to test - database access ? How can you possibly tell what it is you're waiting for ? Well, in my experience, you're waiting for network latency, no matter what you program your client in. I want the bare-bones comparison precisely because it tells me what I can expect in terms of primary throughput from a webserver.
As for programmability (which, I suspect, is really your point) then I guess your conjecture is as good as mine. The fact that there are more java programmers out there, or that business people use java programmers more doesn't necessarily mean that java is better for the job; it might just mean that java is more comprehensible to stupid people.
Religion is what happens when nature strikes and groupthink goes wrong.
Is Eclipse written with Swing? I'd say it suffers from more than the first click problem.
That's being a wise-ass for the sake of being a wise-ass. wise-ass? I think not - you explicitly stated servlets, not JSPs when in truth JSPs are for all intents and purposes servlets. There is no way to predict _how_ a JSP will be compiled into a servlet (it's engine specific, after all), ergo no way to compare the outcome. For all I care the engine encodes a JSP to go to sleep for a second or so before it produces any output. Wouldn't violate the spec, but I wouldn't be able to tell. The end result is a class file on every single system I've worked on. The conjecture that spurious crap happens is an empty strawman at best. Some engines may be more efficient than others, but that's true of any set of compilers. And I was trying for a bare-bones comparison, because anything beyond bare-bones is equally unpredictable; You're missing my point: the application server within which servlets run typically contain far more plumbing than Apache web servers. They were also designed for different tasks. You'll note that my originally statement was that your "'benchmark' wholly slanted to the 'lightness' of C++.". That statement is true, and even more true in light of the above sets of statements. what do you want to test - database access ? How can you possibly tell what it is you're waiting for ? Well, in my experience, you're waiting for network latency, no matter what you program your client in. So you're admitting that the performance of your application layer is largely irrelevant? Then what's the argument about? I want the bare-bones comparison precisely because it tells me what I can expect in terms of primary throughput from a webserver. which is irrelevant for an application layer. Let the webserver serve web pages, let the application tier do its job. As for programmability (which, I suspect, is really your point) then I guess your conjecture is as good as mine. The fact that there are more java programmers out there, or that business people use java programmers more doesn't necessarily mean that java is better for the job; it might just mean that java is more comprehensible to stupid people. Perhaps C++ programmers are so set in their ways of making buggies.... (just in case you don't get the double entendre, as you seem to be intentionally dense, that's a direct reference to the buggy manufacturers in the early 1900s as those new-fangled motor vehicles started taking over. It's also a reference to how C/C++ programmers continually produce the same common bugs, over and over again in their code - buffer overflows, bad pointer math, etc. Not that Java programmers don't do their own versions of these things, they just get there faster.;)
But seriously - you're either an elitist snob C++ programmer or a troll - I don't really care to figure out which. I personally think C++ has grown into an abomination of its initial intent, which was a clean concise OO version C. Either way, I've met folks in both that are unfit for coding. It just so happens that in C/C++, those that are unfit are generally filtered out pretty quickly because continuous crashes are hard to hide. (Yes, Java is more forgiving.)
Meanwhile maybe I'll go checkout the latest releases of Smalltalk or Ruby, or perhaps even Eiffel.
The cesspool just got a check and balance.
Now if they could only port Websphere to it! Seriously, I tried to install a web service on a new Websphere server, just upgraded to Websphere 6.0. It wouldn't run, because 6.0 only supports Java 1.4.2! The new V6.1 runs 1.5, but doesn't support web services unless you install an extension, and even then doesn't fully support the spec (only the @WebService and @WebMethod annotations). I find it odd that IBM supposedly has such cutting-edge JVM technology, but it just trickles down to their actual money-making products...
Just junk food for thought...
Java is not as fast as anything else. A statement like this can only come from a non-C++ coder.
The Client vs. Server argument seems to always be mentioned whenever Java's performance comes into question... as if server-side Java is some kind of turbo-charged utopia. It's not. Throwing more hardware at inefficiency doesn't make it fast. It only covers up the problem. I don't care that this kind of waste has become the norm in the Java community. It's fundamentally repulsive.
Java is definitely slow for client applications. There's just no argument, not even bad coding practices can explain why it's so bad. When was the last time you used client-side Java and thought, "Wow, this is snappy." For example (since I can't throw project code up here):
Eclipse is slow even with Sun's latest JVM. I've seen (and debugged) C++ applications, written much more poorly, that execute much faster... and crash less often... and use much less RAM... and not freeze up while doing garbage collection... and not struggle so hard to write a 4k text file... etc.
I use Eclipse daily. I use it on Windows, Mac OS X, and Linux. It sucks on all three platforms because it's slow, prone to crashing, and has periodic bouts of unresponsiveness. This sums up my experience with Java everywhere I've used it. It's not the code, as Eclipse is actually written quite well. Besides, isn't Java supposed to prevent developers from writing code bad enough to cause a crash? I think it's the JVM, but I might be wrong. Java developers (all of them) might just not be very good, because that's the only other explanation.
As someone who has a lot of practical experience with Java in the workplace, the supposed "gains" in coding productivity ("Speed of development") are a tad over hyped. You can still leak resources and memory. You can still code dead locks and race conditions. You still have to profile your code & memory usage. Large programs execute slowly and erratically. On top of all of this, Java still has its fanboys that insist it's not so bad. I'm still surprised at how much developers will put up with just to avoid learning a compiled language.
Maybe you should look at an actual benchmark instead of assuming servlets would be slow. Yes, it depends on the platform, JDK, and servlet container. Resin with the IBM JDK did 510 'Hello, world' pages per second while mod_perl/Apache did only 324. The 'Hello, world' servlet even been mod_php on Apache's static page rate of 497 requests per second. With a 'Hello, world' implementation, you really have to look at the web server overhead. Where did you think the overhead was going to be in writing to a stream? What made you assume a servlet would be slower? It really depends on how the web server performs.
The slowest thing about Java has been Swing, and the slowest thing about Swing has been the startup times. I switched from Java to C++ .Net for my personal programs because of this. However, I installed Sun's JDK 1.6 a week ago, and I was amazed at the improvement in startup time. I just did a "race" with a calculator program that I wrote in both C# and Java, and they both started up in less than a second. When I first wrote the Java program several years ago, the startup time was (if I remember correctly) about 8 seconds.
You can still leak resources and memory. You can still code dead locks and race conditions. You still have to profile your code & memory usage.
A great man once said: "You can always write bad code." This seems like a simple statement, and if you think you understand it, read it again. At its base, it is saying something akin to what Godel said in his incompleteness theorem.
Java never promised any of the things you said, and no decent programmer would have believed it if it had. The "speed of development" you mention is not about bugs, it is about how concisely you can capture the idea in code. Java is better than C++ in this respect (IMHO), but not much. It is a lot better than C, but not as good as Python/Ruby/Lisp.
I'm still surprised at how much developers will put up with just to avoid learning a compiled language.
Java is a compiled language. I'm kind of surprised you would write with such authority on the language and make that mistake.
Java is a compiled language. I'm kind of surprised you would write with such authority on the language and make that mistake.
Sorry, but I don't consider byte code to be compiled. Just in time compilation isn't quite the same thing, it's a translation layer. If it were, then JavaScript and C# would be considered to be compiled languages.
The fact that Java can be compiled, doesn't necessarily make it a compiled language, IMO. If I'm wrong in this, then I apologize. It is possible to compile Java with gcj, but this is an extra step that requires external tools. Do you think it's really fair to include external, and optional, tools? Besides, gcj isn't exactly endorsed in many circles because of loosing platform independence.
...it is about how concisely you can capture the idea in code
conciseExpressing much in few words; clear and succinct.
In this world nothing is certain but death, taxes and flawed car analogies.
Ok. I'm not saying that in the real world, Java will perform just as much better than Perl as it did in those benchmarks -- but I am saying that it will still blow Perl away. It simply doesn't make sense that Java could soundly beat Perl in almost every single benchmark and then suddenly be worse in a "real" situation -- besides, many of those are possible real situations. In my job, for example, I do a lot of FFTs. A lot. Regardless of how the other aspects of the language perform, whichever language can do FFTs the fastest is generally the best for my purposes.
So, rather than hyperbole and unsubstantiated anecdotes, do you have any verifiable data that backs up your opinion?
Karma: Terrifying (mostly affected by atrocities you've committed)
No Eclipse is written in SWT, which while it uses "native" widgets also imposes a Java-to-native translation. I haven't benchmarked SWT against Swing, so I'm not sure.
Of course, our client doesn't use either, but rather our own GUI we wrote in house. And it's extremely fluid. Java simply isn't a slow language anymore.
E pluribus unum
Why is IBM even bothering to write their own JDKs? Don't they know that WebSphere and WSAD are dead? JBoss and Eclipse have murdered them in their sleep. Having had to deploy on WebSphere and develop on WSAD, I would say it was a mercy killing. I would be curious to see the sources to see how they did it. See the compromises. Java Lectures for Free - Free Java Lectures
It's a disaster on a client machine, because current OSs go to a lot of lengths to make C apps quick to execute, but leave everything else out in the cold. C/C++ applications load fast because the C runtime is already in memory and ready to go. Operating systems could have integrated support for caching, sharing, and loading JIT'ed chunks of code, but they don't. Not because of complexity reasons (linking, loading, and sharing an ELF shared library is no harder in principle than doing the same for a JIT'ed assembly for any language), but because they are built on the assumption that everything in the world can be made to look at the system level like C.
Things would likely look a lot different in a system where Java was the default language, and C was the interloper. In such a world Java apps would run substantially faster than they do now, because you could get rid of things like memory protection, position-independent-code, etc, that you don't need when you're dealing with a safe, JIT'ed language. Java apps would also load substantially faster than big C/C++ applications do on present systems. You see, when the compiler is available at runtime, program loading becomes really simple. You don't need the complex (and slow) shared library linking protocols you need to support C code. Instead, just store cached images of non-relocatable JIT'ed code. If adding or upgrading a library invalidates a cached image (a relatively rare operation), you can always just re-JIT the image with a small amount of overhead. This sure beats processing hundreds of relocations and doing tons of shared library symbol resolution *every* time you start an application!
A deep unwavering belief is a sure sign you're missing something...
I'm getting a little tired of seeing that "benchmark" posted. I am not some kind of blind perl-worshipper - I mostly program C++ these days. But I have to point out that the programs in this benchmark are far from the domain where Perl is commonly used. Calculating digits of PI? If you actually need to do that, use C. Trees? Not a common structure in Perl programming. The language has a built-in associative structure (hash).
The class of problems for which Perl was created is a bit more complex than integer math. The point of both Java and Perl is to manage complexity at the cost of some performance loss. In a typical Perl program, much of the CPU time is spent in the hash implementation and the regex engine. Both of these are written in C and well optimized.
Want a more real-world comparison? Check out the phonecode paper of Lutz Prechelt. (Warning - pdf).
Prechelt's data agree with my experience. Java applications are, on average, slow. Perhaps this is due to mistakes in coding or deployment. Either way, the "benchmark" on debian is self-serving nonsense.
In this url, http://www.microsoft.com/mscorp/java// , it is stated,
The MSJVM will reach its end of life on December 31, 2007. Customers are encouraged to take
proactive measures to stay informed about obsolete software and move away from the MSJVM
in a timely fashion. The MSJVM is no longer available for distribution from Microsoft and
there will be no enhancements to the MSJVM. Microsoft products and SKUs currently
including the MSJVM will continue to be retired or replaced by versions not containing
the MSJVM on a schedule to be announced.
what doest it mean?
ozgur uksal