Слова Алана Кея взяты здесь.
«Я придумал термин «объектно-ориентированный», и я уверяю вас, что не имел в виду C++».
«Я жалею, что придумал термин «объекты» много лет назад, потому что он заставляет людей концентрироваться на мелких идеях. По-настоящему большая идея — это сообщения». (!)
«Благодаря математическому образованию я понял, что каждый объект может иметь несколько ассоциированных с ним алгебр, возможно, даже целые семейства, и они могут быть очень-очень полезны».
«Ключ к тому, чтобы делать большие и расширяющиеся системы, заключается в том, чтобы придумывать, как модули будут общаться друг с другом, а не заботиться об их внутренних свойствах и поведении». (!)
«Я думал об объектах как о живых клетках или как об отдельных компьютерах в сети, которые обмениваются сообщениями».
«Одна из ключевых идей — делать системы, которые бы продолжали работать во время тестирования и, в особенности, во время внесения изменений. Даже большие изменения должны быть инкрементарными и тратить не больше секунды перед вступлением в силу».
«Я думаю, что единственный тип науки, на который может походить программирование, — это наука строительства мостов. Кто-то строит мосты, а другие разбирают их, выдвигают более совершенные теории, и таким образом строительство продолжается.»
«Пока мы не придумаем, как по-настоящему нужно разрабатывать софт, выходом может быть создание динамических систем с экстремально поздним связыванием во всех его проявлениях».
«Позднее связывание позволяет воплощать идеи на поздних стадиях разработки с экспоненциально меньшими усилиями чем традиционное раннее связывание как в C, С++, Java и прочих похожих языках».
«Если вы используете язык с ранним связыванием, как делает большинство людей, вместо языка с поздним связыванием, вы окажетесь взаперти у проделанной работы. Переформулировать что-то будет уже непросто».
«Объектно-ориентированное программирование для меня означает только отправку сообщений, локальное удержание и защиту, а также скрытие состояний-процессов, и экстремально позднее связывание всего. Это может быть сделано в Smalltalk и в LISP. Возможно, есть другие системы, где это возможно, но мне они неизвестны».
«Я не против типов, но я не знаю ни одной системы с типами, которая бы не вызвала мучений, так что я по-прежнему за динамическую типизацию».
No comments…