Chronon Systems, which offers technology for recording and playing back Java programs, contends that the bytecode verifier featured in Java 7 is a huge step backward for the Java Virtual Machine.
"The feature's supposed to increase the speed of your Java program, but it does the exact opposite," says Prashant Deva, a founder at Chronon, which has published a report about the issue. The bytecode verifier "adds a whole bunch of complexity to Java in a way that really impacts the whole Java ecosystem," Deva says. Even Java tools and frameworks such as the Spring Framework are affected, he says.
"Java 7 brings with it a new bytecode 'feature' called Stack Map Frames, which is the most complicated and unnecessary addition to Java yet and which erodes any simplicity the JVM bytecode has enjoyed thus far," Deva writes. Stack Maps were initially introduced in Java 6, but they were an optional part of the class file, so nearly every tool maker ignored them, he says. Java 7, though, makes them a compulsory part of bytecode.
Dealing with the feature requires that developers be compiler experts, and there are few of those around, Deva says.
Ovum analyst Michael Azoff also wonders if Java has become too complicated for its own good. "The added complexity of new language constructs may introduce vulnerabilities, so Chronon may have identified a genuine issue that is the result of this evolution," Azoff says. "I'm not in a position to comment on that, but the accretion of layers on top each other may well introduce surprises. The remedy is a lot of testing. My personal view that for mission-critical production use, it's prudent to use one version below the current one."
Oracle declined to comment on Chronon's concerns.
This article, "Java 7 bytecode checker is a real drag," was originally published at InfoWorld.com. Get the first word on what the important tech news really means with the InfoWorld Tech Watch blog. For the latest business technology news, follow InfoWorld.com on Twitter.