Current Limitations and Disadvantages of Java
These exist mostly because the language is still evolving.
It is unclear which problems will be solved and when.
Slow
Internet as a whole
- Potential huge show-stopper problem.
 - Bandwidth is a limited resource that is easily squandered.
 - Minimal incentive for people to conserve.
 - Potential demand is unbounded, potential supply is bounded.
 
Solutions:
- Write applications instead of applets (but then you lose some
advantages)
 - Cache your applets (only partial solution).
 - Be a good Internet citizen: Minimize your use of detailed images and other
bandwidth-hungry objects
 
Java
compiler
- Not yet well optimized.
 - Takes more time to compile a large program than a good C++ compiler.
 
Java
programs
Environment
limitations
Currently lacks:
Applet
limitations imposed due to security model
- Cannot access local data
   
 - Can only download data from the site where the applet is located
 - Cannot make system calls
 - Solution: Use applications
 
Uncertain
status of security
- Security `holes' are repeatedly found.
 - Unclear when problem will stop
 
Programming
language limitations
- No `Templates' yet.
- Limits ability to create really good data structures
 
 - No `Function pointers' or `blocks'
- These would allow greater abstraction and more flexible data-structure
design
 - Available in both C++ and Smalltalk
 
 
 - Basic classes in class library are lacking important features
- The class library was created to quickly and has now been widely adopted,
making it hard to change.
 - This is also a problem with other languages
 - We can expect the current widespread standardization to fragment as
vendors introduce competing classes to fill the gaps
 
 
Platform
limitations
Full environment available only for:
- Windows 95/NT
 - Macintosh
 - Sun Solaris
 
Other platforms must wait for 3rd party support
General
stability concerns
There are many bugs in:
- Browsers
 - Example programs
 
Change is very rapid