НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

Почему Алан Кей не любит Википедию, PowerPoint, ООП и паттерны программирования

American business is completely fucked up because it is all about competition. Но наш мир создан для взаимовыгодного сотрудничества, и это именно то, чему надо обучать людей. Лучшая аналогия -- это командные виды спорта.

Так эмоционально выразился Алан Кей в интервью изданию DrDobbs. Перескажу его самые интересные моменты.

Алан Кей (см например "Тысячекратная компактность кода") не слишком восхищен достижениями нынешней Сети. Например, Интернет, по мнению Кея, был сделан настолько профессионально в техническом плане, что его принимают за нечто природное-естественное, существовавшее всегда, как моря и океаны. А вот Сеть (в плане контента) явно наполнена любителями. Так, восторги по поводу Википедии излишне преувеличены. Например, если вы заглянете в статью по языку Лого (обучающая система программирования для детей), сможете ли вы прямо на той страничке написать и запустить пробную программу? Ну или хотя бы найдете там минимальный обучающий курс?

По этой причине Кей не любит и PowerPoint. Он позволяет создать презентацию из слайдов, которую вы вынуждены тупо просматривать (Кей называет это моральным преступлением). Вы не можете взаимодействовать с ней интерактивно, на лету, экспериментировать, что-то пробовать, изобретать.

Вероятно, самым катастрофическим последствием массового распространения ИТ стало стремление маркетологов продавать давно известные вещи. Браузеры не меняются много лет; концепция Ворда появилась в 1974-м; Hypercard (прообраз веб-страниц) -- в 1989-м.

Теперь еще одна "новая" концепция "браузер как ОС". Но современные ОС, как и браузеры, перенасыщены функциональными возможностями. Их главная задача -- обеспечивать безопасность исполняемого кода, и всё. Так, ядро Unix составляло одну тысячу строк кода.

Режим WYSIWYG сегодня столь медленный потому, что разработчики заново изобретают велосипед. Принцип WYSIWYG был известен давным-давно, потом его забыли, напихав в браузеры кучу лишней функциональности, и теперь вновь пытаются реализовать WYSIWYG уже поверх этого медленного кода.
Лучше бы люди пытались изобрести нечто вроде Hypercard.

Или например раннее связывание в Си. Из-за этого принципа сегодня огромному числу систем не хватает динамики. А загрузка компьютера? В этом никогда не было необходимости. Мегабайты функций, тысячи системных вызовов -- и только для того, чтобы получить по сети нужный объект (веб-страничку).

У нас в лаборатории PARC не было ни ОС, ни прикладных программ. Задача пользовательского интерфейса -- попросить объекты показать себя и синхронизировать свои представления на экране, этого достаточно (Алан Кей имеет в виду систему Smalltalk).

Но когда появился С++, его авторы постарались угодить сишникам, и в итоге вышло ни рыба, ни мясо. И это верно в отношении большинства современных систем ООП. Они не являются истинно объектными в моем определении. Раньше объекты были радикальной идеей, сегодня они стали ретроградными.

Алан Кей продолжает: я никогда не был сильным программистом, и это стимулировало меня к созданию новых мощных языков. Сегодня я работаю по двум направлениям: метапрограммирование и программирование "по детски", для детей в возрасте 9-14 лет.

Одна из наиболее катастрофичных вещей в программной инженерии -- это шаблоны программирования. Извлечение паттернов из сегодняшних практик разработки излишне их облагораживает. Создается замкнутый круг: из практик программирования, очень далеких от оптимальных, извлекаются шаблоны, затем этим шаблонам обучаются другие люди, и превращают практику программирования в еще более шаблонную и ограниченную!

Это проблема христианских религий -- как получить Сократа на небо. Вы не можете попасть в рай, если вы не крестились. Но если кто-то и заслуживает того, чтобы попасть в рай, то это Сократ. Правда, эту проблему решили мормоны: "they proxy-baptized Socrates".