Высокоуровневые языки упрощают разработку и сопровождение исходного кода, а также понимание стороннему програмисту.
На низкоуровнем ассемблере ты код с разбегу просто не воспримешь, да и не напишешь. Зато можешь очень точно допилить код для идеального быстрого исполнения под конкретную аппаратную платформу, но допиливание потребует кучу времени и знаний.
Та же java скрывает многие тонкости работы конкретной аппаратной платформы. зато "набросать" рабочй код получится очень быстро.
джава компилируется в байт-код, который исполняется на виртуальной машине (а это все равно прослойка торможения), но зато байт-код прекрасно выполняется на любой аппаратной платформе, если под нее написана виртуальная машина. с++ компилируется в нативный код под конкретную аппаратную платформу, поэтому дозволяет делать более проработанную оптимизацию, но требует по отдельной компиляции на каждую платформу.
у каждого языка и каждой из реализаций языка в компиляторе/исполнителе есть свое место под солнцем.
абсолютно универсально "вовседырошно применимого" языка пока не создали :)