В октябре 1998 года, разочарованный упрощенным пониманием ООП, Алан Кей написал сообществу Squeak знаковое письмо. В нем он напомнил, что главная идея Smalltalk, о которой все забыли, — это не классы, а отправка сообщений. Это письмо стало манифестом, отделяющим оригинальную философию объектов от ее популярной интерпретации. Публикуем перевод этого короткого, но исторически важного документа.

Электронное письмо от 10.10.1998

Дорогие друзья, 

Мягко напомню, что на последней OOPSLA я приложил определенные усилия, чтобы донести до всех, что Smalltalk — это НЕ его синтаксис или библиотека классов, и что суть вообще не в классах. Мне жаль, что я давным-давно ввел для этой темы термин «объекты», поскольку из-за него многие фокусируются на второстепенной идее. 

Главная идея — это «отправка сообщений», именно она и составляет ядро Smalltalk/Squeak (и именно ее не удалось довести до конца в период работы в Xerox PARC). В японском языке есть небольшое слово — «ма» — означающее «то, что находится между». Возможно, ближайшим эквивалентом будет «промежуток». Ключ к созданию масштабных и расширяемых систем в первую очередь связан с проектированием способа взаимодействия между их модулями, а не с тем, какими должны быть их внутренние свойства или поведение. Взгляните на интернет: чтобы быть жизнеспособным, он должен (a) допускать существование множества различных идей и реализаций, которые не укладываются в какой-либо единый стандарт, и (b) поддерживать разные уровни безопасного взаимодействия между этими идеями. 

Если фокусироваться именно на отправке сообщений — и осознать, что хорошая метасистема способна обеспечивать позднее связывание разнообразных архитектур второго уровня, используемых в объектах, — то многие дискуссии в этой ветке, основанные на вопросах языка, пользовательского интерфейса или операционной системы, утрачивают смысл. Именно поэтому на последней OOPSLA я сетовал на то, что, хотя в PARC мы постоянно меняли Smalltalk и всегда считали его незавершенной работой, когда он вышел в большой мир, его стали воспринимать как «нечто, что просто нужно выучить», словно это был Pascal или Algol. Smalltalk-80 так и не стал платформой для следующих, более совершенных версий ООП. Учитывая нынешнее плачевное состояние программирования в целом, я считаю это серьезной ошибкой.

Кажется, я также отмечал, что жизненно важно не только иметь полноценную метасистему, но и создавать ограждения, помогающие контролировать переходы через метаграницы. Один из простейших примеров такого перехода лег в основу моих первых исследований конца 1960-х: я понял, что операция присваивания представляет собой изменение на метауровне по отношению к функциям, и поэтому их не следует смешивать на одном уровне — это послужило одной из причин инкапсулировать такого рода изменения состояния, не позволяя выполнять их произвольным образом. Я бы сказал, что система, которая позволяет выполнять другие метаоперации в ходе обычного программирования (например, менять значение наследования или того, что является экземпляром), плохо спроектирована. (Я считаю, что системы должны допускать подобные действия, но спроектировано это должно быть таким образом, чтобы существовали четкие ограничения, которые необходимо явно преодолевать при создании серьезных расширений.)

Я полагаю, что куда большего прогресса можно было бы достичь, если бы умные и талантливые участники рассылки Squeak глубже задумались о том, в каком направлении делать следующий шаг в метапрограммировании — как нам обрести силу, лаконичность И семантическую устойчивость?

Всем спасибо,
Алан

Комментарии (8)


  1. wl2776
    05.01.2026 10:38

    Не могли бы Вы раскрыть тему подробнее?

    Что такого знакового в этом письме, и какие следуют выводы?


    1. neodavinchi
      05.01.2026 10:38

      Присоединяюсь к вопросу. Статья заинтриговала, но я не смог понять мысль автора... хотя обычно с этим проблем не бывает ;-)

      Может быть автор перевода подскажет?


      1. teecat
        05.01.2026 10:38

        Вообще-то описана достаточно стандартная трагедия

        Многие вещи входят в историю не благодаря тем вещам, которыми гордились их создатели и в которые они вложили громадные усилия, а благодаря проходным, по их мнению, решениям

        Кто помнит, что ps/2 это не название разьема, а название компьютера, которым IBM хотела завоевать мир? Что USB изначально не разьем, а локальная сеть для интранет? Что трехуровневая модель Windows создавалась для возможности работы не только на x86? Что Джеймс Уатт больше всего гордился в конструкции паровой машины коромыслом, которое достаточно быстро ушло из использования?

        Несть числа таким примерам

        Как я понял Смалтолк создавался как решение для сложных архитектур и классы были лишь средством. Но в историю вошли они, а не то, для чего изначально создавался язык. Бывает


        1. teecat
          05.01.2026 10:38

          Самое паршивое, что под напором популярных публикаций крайне сложно становится найти факты, о которых конкретно ты, как последний могиканин, помнящий публикации конца 90х, помнишь

          Читаешь публикации на Хабре и рука тянется в гугль найти пруфы для фактов, которые помнишь. Иногда находишь (что Гейтс мечтал построить Windows вокруг супер базы данных), а иногда уже и нет (что IBM купила Лотус тупо скупив акции на рынке). А в процессе поиска ИИ пишет, что то, что ищется - ложь...

          А многих фактов в интернете и нет. Например почему IBM хотела убить OS/2 - какие ОС разрабатывались на ее замену в 98м - в московском представительстве просто захлебывались от восторга, рассказывая, что в них будет

          Официальная история пишется на основе публикаций маркетологов и в итоге от реальной истории не остается ничего (или ее перевирают в интерпретациях). как сидели гребцы на древнегреческой биреме? а никто не знает. Современников не интересовало описывать всем известную бытовуху и история ушла. Как на наших глазах уходят те, кто знает реальную историю оснований известных компаний и хода громких проектов


          1. Flammmable
            05.01.2026 10:38

            Иногда бывает, что сами родоначальники, будучи ещё живыми, весьма легкомысленно относятся к своему наследию. Я, например, в рамках подготовки вот этой статьи связался с разработчиком одной из первых систем интерактивной вёрстки Camex-135, о которой в интернете полтора упоминания.

            Спрашивал: "расскажите, как же вы в начале 1970-х сделали WYSIWYG редактор?"

            "Там это для газеты, ну да, чёт такое делали", ответил он.


        1. FromArcanum
          05.01.2026 10:38

          а можно про usb поподробнее?


          1. teecat
            05.01.2026 10:38

            Когда Интел придумала USB, то во всех журналах рисовались схемы локальных сетей на этой технологии. Расшифровка же USB не какой-то там универсальный порт, а универсальная шина общения. С хабами, подключаемыми устройствами и тд. У меня монитор Вьюсоник был - в подставке с хабом на несколько USB

            Сейчас попытался поискать - сходу только рассказы про создание самого разьема, но никак не про то, как его пиарили как основу сетей масштаба офиса

            На фоне тогдашних моих мучений с Лантастиком это выглядело фантастично


  1. allter
    05.01.2026 10:38

    А что такое "архитектура второго уровня" в контексте приведённого письма?