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