Math algorithms in Java
Among one of the things that have been bothering me about Java's libraries is a complete lack of any mathematical packages. I'm not talking about BigInteger or BigDecimal, or even not about hyperbolic trigonometric functions (that took amazing 10 years to make it into JDK). I'm talking about matrix, linear algebra and related packages.
If you take a look at a scientific community, it has not been an avid adopter of the Java technology (besides the ubiquitous multi-threading examples). There are many reasons which are essentially distilled to a single point - Java has no systematically based and tested mathematical packages.
The majority of the scientific community write in C++, MatLab and (believe it or not) Fortran :O. The later one has such an extensive algorithmic database, that most of the modern algorithms are based on this code (using an equivalent of JNI to access it). Try to write a sparse-matrix linear equation solver in Java - it doesn't even has a sparse matrix package. Well, for this matter it doesn't even have a dense matrix package.
Of course, the algorithms are not simple, but neither XML or NIO. This has been really hurting Java in the academic community: it has nothing to do with the assumption that Java runs way too slow for them. They have nothing to base their work on. I've implemented an image-processing package in Java, i had to implement everything from the beginning (including a lot of JUnit tests).
There are a lot of packages out there (like Jama or MTJ). Some of them use native libraries :(, some of them are way too slow for practical purposes :(, some of them offer only a limited number of functions. Comparing that with the code base for MatLab or Fortran - and you have a definite loser.
This is not really a suggestion for JSR or JCP, just a thought on one of the bigger holes in a vast span of issues covered by the current Java standard libraries :)