Language strengths

  1. Software development
    1. Threads make network software easier
    2. Exceptions and garbage collection make robust design easier
    3. Security features catch programming mistakes
    4. Package facilities provide structure

  2. Shallow learning curve
    1. Syntax is the same as C++
    2. Not as subtle as C++
    3. Threads and synchronization are simple