>Такое говорят невежды, которые и сами толком не разобрались ни в самом языке ни в библиотеках
Такой толстый вброс, что заслонил собой небо.
Вы вот все напираете что библиотеки предоставляют синтаксический сахар для модели предусмотренной в языке, но прототипы и классы – разные вещи. Делегирование и наследование – разные вещи.
Нет, если внимательно читать доки, то можно узнать что главное предназначение в исключении конфликтов имен, а не сокрытии. Да и скрытые таким образом методы/атрибуты не составит труда выковырять через словарь.
а каррирующие языки в принципе не поддерживают функций более одного аргумента.
Передача много аргументов за раз = передача кортежа, что поддерживается без проблем
Алан Кей о наследовании:
I didn't like the way Simula I or Simula 67 did inheritance (though I thought Nygaard and Dahl were just tremendous thinkers and designers). So I decided to leave out inheritance as a built-in feature until I understood it better.
C++ – эксперимент по тому, сколько абстракций можно протащить в язык C, не сломав ничего и оставаясь производительным. В целом получилось не очень, хотя протащили много разного.
Про erlang я в целом согласен. Дело в том что обмен сообщениями естественно вытекает из идеи позднего связывания.
ООП — это одно, АТД — это другое. ООП — инкапсуляция и полиморфизм. Наследование затесалось туда случайно и, вопреки всеобщим заблуждениям, не является обязательным атрибутом.
ООП появилось из идеи моделирования сущностей реального мира. К сожалению пока что ничего более адекватного для данных целей не придумано.
В большинстве случаев в головах у людей каша от того что языки не предоставляют никаких других механизмов абстракции кроме классов, отсюда и смешение понятия класса и абстрактной структуры данных, анонимные классы или функторы (которые объект + оператор вызова) вместо замыканий и т.п.
Программы – суть конвейер по обработке данных, но парадигма Data Flow не очень распространена, вот и городим.
Ваша статья пока похожа на поток сознания нежели на какое-то объяснение или руководство к действию.
Возможно следовало бы сначала немного структурировать все?
Немного оффтоп: Что заставило покинуть разработку игр?
метод печати у принтера это ооп, но не принтер печатает строку на себе, а строка себя на принтере. Он про строку ничего знать не может, как он из нее символы достанет, к ним не у кого доступа нет. А строка знает публичный интерфейс принтера, и что надо подергает.
Такой толстый вброс, что заслонил собой небо.
Вы вот все напираете что библиотеки предоставляют синтаксический сахар для модели предусмотренной в языке, но прототипы и классы – разные вещи. Делегирование и наследование – разные вещи.
я имел ввиду это:
let add (a, b) = a + b;;
add 1;; (* ошибка: передали int, ожидали int * int *)
Передача много аргументов за раз = передача кортежа, что поддерживается без проблем
int number;
byte mByte=*((cast(byte*) &number) + 3);
Problems, officer?
А вообще задолбали уже оправдываться. Обидели C++ и теперь всю неделю будем читать толстые вбросы и наезды.
I didn't like the way Simula I or Simula 67 did inheritance (though I thought Nygaard and Dahl were just tremendous thinkers and designers). So I decided to leave out inheritance as a built-in feature until I understood it better.
Про erlang я в целом согласен. Дело в том что обмен сообщениями естественно вытекает из идеи позднего связывания.
ООП появилось из идеи моделирования сущностей реального мира. К сожалению пока что ничего более адекватного для данных целей не придумано.
Программы – суть конвейер по обработке данных, но парадигма Data Flow не очень распространена, вот и городим.
Возможно следовало бы сначала немного структурировать все?
Немного оффтоп: Что заставило покинуть разработку игр?