Pull to refresh

Comments 9

Не очень понял, к чему упомянут C++
Это долгая история. В частности, Кей, являясь одним из пионеров ООП, автором первого ООП языка, считает что прежде всего именно C++ извратил само понятие ООП.

Вообще, у C++ репутация языка, ничего не внесшего в computer scince, а заимствовашего концепции из других крайне неудачным и бессистемным образом. Некоторые вообще сомневаются можно ли считать его одним языком в принципе.
Кей был автором объектного подхода, а не ООП. ООП это более поздний выродок Грейди Буча и пр. Но это ничего не меняет. Убогость объектного подхода к вычислениям (и ООП позднее) это сочетание детского наива — ассоциировать состояние программы с объектами реального мира и ограниченности — вычислять следующее состояние передачей сообщений. Без жёсткой типизации и возможности трансформации программ. А С++ просто впитал это (в большой степени благодаря волне бучизма, читай идиотизма) и сейчас слава богу активно от этого избавляется, вводя, прежде всего, возможность работы с системой типов, а не отдельными типами(классами) и плясками вокруг объектов.
Думаю потому что C++ на уровне языка это просто бесформенная куча концепций, не побуждающая к поиску толковых абстракций. Сплошные стрельбы по собственным ногам.

Хотя сейчас С++ сильно меняется на мой взгляд делая сильный упор на метапрограммировании, что уже выглядит как-то более системно.
Алан Кей очень умный. Но те вещи, о которых он тут говорит, требуют достаточно долгой работы, чтобы достичь того уровня, когда они начинают доходить до сознания. Благо, что путь открыт и все это можно изучать постепенно: начать с основ (архитектура фон Неймана и расширение понятия «энтропия» на информационный план, что придумал Шеннон), затем понять принцип Тьюринг-полноты (как так получается, что на любом Тьюринг-полном языке можно реализовать любой другой Тьюринг-полный язык) и увидеть схожесть этого принципа с диагональным аргументом Кантора, а потом изучить то, что сделал Джон Маккарти (изобрел функцию eval, которой на вход можно подавать программный код, и это был по сути первый интерпретатор Лиспа), и увидеть, насколько сильно наличие такой функции увеличивает семантическую выразительность языка (по мнению Пола Грэма, эссе которого «Побеждая посредственность» хорошо бы регулярно перечитывать, наличие eval в языке превращает его в диалект Лиспа и после этого он может быть использован как конструктор для разных других DSL, что мы и видим в практике).

Вот это вот и есть настоящая компьютерная наука. А не «какие аннотации в Spring для чего используются». Спасибо, что переводите такие посты.
придумал Шенон

Я так и не нашел — в каких единицах измеряется сложность, и вообще что такое инженерная (информационная) сложность, абстрактный бред колмогорова не считается, он метрологически несостоятелен. Что почитать из фундаментального? Пока я вижу что наука о сложности как и психология пребывает в зачатке.
Вроде всё правильно, логично, не поспоришь. А коллеге в курилке пересказать не можешь. Очень похоже на философский трактат
Все науки об искусственном — на самом деле науки о способе, которым функционирует ум. Кроме ума во вселенной ничего нет, и у ума есть свои законы, в чем-то достаточно жесткие, и именно эти законы и определяют инженерные ограничения, паттерны, алгоритмы, структуры данных и проч. Так что на самом деле компьютерные науки — это науки о естественном (уме)
Sign up to leave a comment.