Java pros and cons