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.

  1. Slow


  2. Environment limitations

    Currently lacks:

    • Browser

      - This might be the biggest weakness, although there is promise on the horizon

    • Interactive source-level debugger

    • User interface builder


  3. 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


  4. Uncertain status of security

    • Security `holes' are repeatedly found.

    • Unclear when problem will stop


  5. 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


  6. Platform limitations

    Full environment available only for:

    • Windows 95/NT

    • Macintosh

    • Sun Solaris

    Other platforms must wait for 3rd party support


  7. General stability concerns

    There are many bugs in:

    • Browsers

    • Example programs

    Change is very rapid