Why is Javascript so hard