why is java so hard