Я рискую ответить не на тот вопрос, т.к. не уверен, что до конца вас понял. Например, для меня Оракл - не язык программирования, а фирма такая. То есть это, видимо, внутренний сленг организации (или отрасли), в которой вы работаете, и под "Ораклом" вы понимаете какой-то диалект SQL, заточенный под оракловские базы данных. Если так, то отличие вот в чём: "Оракл" - это не столько язык программирования, сколько инструмент обращения к огромному количеству уже готового кода, написанного в фирме Oracle (в том числе и на С++ написанного). С++ это набор станков, а "Оракл" - пульт управления электростанцией. На С++ можно написать компьютерную игру или поисковую систему, а на "Оракле" - нельзя. Зато если я начну на С++ писать биллинг, меня сочтут идиотом, и правильно сделают: есть готовый код, в который уже вложено, оценка от балды, 20000 человеко-лет, и вокруг этого кода развернута целая индустрия, поэтому, конечно, не стоит пытаться всё это повторить с нуля.
Но это не совсем ответ на ваш вопрос, поскольку пара "Оракл/C++" не очень репрезентативна. Бывают пары языков высокого уровня, которые и впрямь делают примерно одно и то же, тогда, казалось бы, зачем.
Во-первых, по историческим соображениям. Некоторые новые языки лучше некоторых старых просто потому, что в момент, когда их создавали, люди уже знали больше, и исправили какие-то старые глупости. И уже только этим их существование оправдано. Например, кто "лучше", С++ или Java, сказать невозможно, но оба они точно лучше Алгола.
Во-вторых, по уровню абстракции. Грубо говоря (очень грубо!) на С++ придется чуть зануднее и чуть дольше объяснять компьютеру, что ты имеешь в виду, чем на Java, зато компьютер "поймет" тебя чуть лучше, и в итоге программа будет работать быстрее, и памяти займет меньше. Во многих задачах это совершенно неважно, зато в Java гораздо меньше возможностей для случайного возникновения совсем уж фатального непонимания (на уровне перепутать йодистый калий и цианистый) между компьютером и человеком. А на Python'е можно объяснять компьютеру свои мысли ещё гораздо короче, зато и выполняет он понятое совсем уж медленно.
А есть ещё легендарный волшебный язык Haskell, пользуясь которым, можно коротко объяснять компьютеру такие вещи, которых и сам-то толком не понимаешь, а уж как он потом начнет действовать, сам Вирт не разберёт. Как-то так.
no subject
Date: 2013-05-02 04:09 pm (UTC)Но это не совсем ответ на ваш вопрос, поскольку пара "Оракл/C++" не очень репрезентативна. Бывают пары языков высокого уровня, которые и впрямь делают примерно одно и то же, тогда, казалось бы, зачем.
Во-первых, по историческим соображениям. Некоторые новые языки лучше некоторых старых просто потому, что в момент, когда их создавали, люди уже знали больше, и исправили какие-то старые глупости. И уже только этим их существование оправдано. Например, кто "лучше", С++ или Java, сказать невозможно, но оба они точно лучше Алгола.
Во-вторых, по уровню абстракции. Грубо говоря (очень грубо!) на С++ придется чуть зануднее и чуть дольше объяснять компьютеру, что ты имеешь в виду, чем на Java, зато компьютер "поймет" тебя чуть лучше, и в итоге программа будет работать быстрее, и памяти займет меньше. Во многих задачах это совершенно неважно, зато в Java гораздо меньше возможностей для случайного возникновения совсем уж фатального непонимания (на уровне перепутать йодистый калий и цианистый) между компьютером и человеком. А на Python'е можно объяснять компьютеру свои мысли ещё гораздо короче, зато и выполняет он понятое совсем уж медленно.
А есть ещё легендарный волшебный язык Haskell, пользуясь которым, можно коротко объяснять компьютеру такие вещи, которых и сам-то толком не понимаешь, а уж как он потом начнет действовать, сам Вирт не разберёт. Как-то так.