I am not bragging, but I have 12698 JAR Files on my local hard disk. I am a heavy Java user and developer, but surely there must be something wrong with the platform if you get this kind of proliferation. I don't expect it to be any kind extraordinary example - certainly no record.
I know that if I used a better OS I could hard link them and get a few gig back, but I should not have to do that. I am also aware that quite a few of these jars are copies produced by various application server instances and ant builds.
To illustrate the scale of the problem I scanned for Jakarta's commons-logging.jar. I found over 200 of them - 4 different versions. That is not too bad because each jar is only around 30k. But log4j is ten times the size and when I searched for that jar I found about the same number. Some commonly used (and growing) jars are very large, like Xalan and jaxrpc.
All this disk usage makes the Java platform/technology the single biggest user of disk space on my machine. Java is already the biggest user of my cpu cycles and memory. And this annoys me, that bloat could be easily avoided.
So that is my suggestion for the next version of Java: solve the bloat problem.
My own suggestion for a solution would be to make the classloader use an inbuilt cache of jars. So that way jars are imported into the VM environment rather than just loaded by reference. Now that most manifest files have the 'Class-Path:' setting then it would be possible to extend this behaviour to a build guid style reference model.
There are obvious problems with this solution that I am aware of. But even a slightly better system would alleviate the issue.