True, native executables have similar issues to deal with, but with Java they tend to be worse. The second and third items in the above list are related. Java's heavy resource consumption and sluggish execution speed make it score poorly in this area, especially on older computers. However, with careful programming, you can obtain acceptable results. This brings me to a related issue that Garfinkel strikes upon in his article.
Careless programming can produce bad results in any language.
Given that Java is not as fast as C by design, Java programmers should be especially careful to produce efficient code. Having lots of inexperienced programmers writing key Java code doesn't help the situation. In this case, time is on Java's side. The number of highly skilled Java programmers will grow, computer power will increase, and Java technology will continue to mature. In a Windows-dominated world, platform independence is not a big advantage.