Dolphin is coming… do you think they’ll listen to us? From the looks of the most popular RFE’s, I’m kind of hoping they don’t.
What follows is a very brief and highly opinionated tour of the top ten requests for enhancement (RFE’s) on Sun’s Java Bug Parade. These 10 are pulled from the dynamically-updated list of the Top 25 RFE’s, as voted for by registered SDN members (there is also a list of the Top 25 Bugs).
For each, I’ll summarize the issue, and assess whether the RFE is a good idea, and whether I think it’s likely to get done in Dolphin. You are welcome to use the comments section to tell me what a dumb-ass I am for denigrating your favorite bug.
Bug ID 4499904 - RFE: Ogg Vorbis and Tarkin support for JMF Bug quality: Low Odds for Dolphin: Zero
JMF hasn’t been touched in almost two years, Ogg Vorbis isn’t relevant to anyone outside the geek community (and even then it’s an act of ideological zealotry to rip your CDs as Ogg), and Tarkin has given way to Theora, which is also known only to zealots. Have Java developers ever heard of a little standard called MPEG-4? They use it for satellite TV and iPods. Seriously, guys, look into it. That this is the top RFE says a lot, and a lot of it not good, about Java developers.
Bug ID 4449383 - Support For ‘Design by Contract’, beyond “a simple assertion facility” Bug quality Medium Odds for Dolphin Low
This RFE argues for a full-blown implementation of Design by Contract, with checkable method pre- and post-conditions. The comments suggest that the language may be too large to implement this feature now, and furthermore, third party tools exist for those who would like to bolt it on. If those took off, they could be folded into the language (like Doug Lea’s concurrency libraries), so this can be seen as a very understandable “wait and see”.
Bug ID 4802695 - Support Java Plug-in on 64-bit AMD Opteron Bug quality: High Odds for Dolphin: High
Bug ID 4680244 - RPM does not follow LSB or filesystem hierachy Bug quality: High Odds for Dolphin: High
Eminently sensible to straighten out the end-user install. On the other hand, is there any chance the Distro License for Java aspires to just let the distros themselves figure out where things are supposed to go?
Bug ID 4724038 - (fs) Add unmap method to MappedByteBuffer Bug quality: Medium Odds for Dolphin: Low
It’s sensible that once you’re done with a file that you’ve mapped into memory for NIO, you’d like to have the freedom to delete or otherwise modify the file, but you can’t until the memory is freed, and that’s non-deterministic. Reasonable RFE, but Sun’s evaluation is that they can’t see a way to do this in a fast, secure, portable way.
Bug ID 4820062 - Provide “struct” syntax in the Java language Bug quality: High Odds for Dolphin: Medium
Not quite C structs, but the idea is that given some arrangement of primitive members, you know the size of the arrangement (or struct) and could operate over them in memory in a fast, efficient way. The proposal comes from the needs of game programmers to load in OpenGL vertexes, textures, etc., in a highly-efficient way. This isn’t as icky-C as it might first seem, but then again, one of the knocks against Java from the scripting crowd is that the primitives were a premature optimization — Sun’s evaluation suggests that similar functionality could be achieved with annotations and a library to process them. This is an interesting problem and proposal either way.
Bug ID 4296022 - html4.x support within a JEditorPane Bug quality: Medium Odds for Dolphin: Low
Welcome to the nightmare that is HTML handling in Java. HotJava was abandoned years ago, and Swing’s HTML handling stopped evolving back in the HTML 3.2 era, if not earlier. So, rendering real-world HTML in a Java GUI is a nasty proposition… so nasty that the new solution seems to be punting and loading up a native browser via JDIC. Too bad though, if you need to do anything with the page, like inspect its DOM. There’s also Flying Saucer, an all-Java option for the rare case of standards-compliant XHTML. Sun does have a survey up where you can tell them what your text-rendering needs are.
Bug ID 4267080 - break up rt.jar into downloadable-on-demand components to reduce jre size Bug quality: Medium Odds for Dolphin: Medium
You call it bloat, I call it features, but the days of the monolithic JRE have to be numbered. My guess is that they could simultaneously solve the problems of end-user deployment and library versioning (as promised at JavaOne 2005), and apply that to the JRE itself. That way, you could ship a bare-bones JRE and the end-user dynamically get the pieces s/he needs — whether of your libraries, your dependencies, or the JRE itself — on an app-by-app basis. Let’s hope they finally get this one done, and done right.
Bug ID 4910812 - Enhance Hot Code Replacement Bug quality: ??? Odds for Dolphin: ???
This is totally out of my league, sorry. It would seem like bytecode manipulation potentially gets you some of this, and the use cases seem completely restricted to development-time “fix and continue” functionality (you wouldn’t want this in the end-user’s VM, would you?). Is this really a VM RFE, or a request for a kick-ass IDE feature?
Bug ID 4045688 - Add chdir or equivalent notion of changing working directory Bug quality: Low Odds for Dolphin: Medium
Given 1.3’s ability to specify a current working directory for
Runtime.exec()-type commands, what’s the value of this? What’s the remaining problem that has 188 votes behind this? No, I don’t consider the current directory viable when I work with
java.io.File, but then again, I don’t trust anything related to the miserable API that is
java.io.File, and I carefully construct paths with new
Fileconstructors whenever possible.