Design pricinples behind smalltalk design

https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html

Некоторые не самые интересные выжимки ниже:

Циклический подход к дизайну языка. Придумать язык, реализовать на нем систему, проанализировать результаты, внести изменения в язык. Я постоянно встречаю циклический подход в разных областях (от обучения до бизнеса). Этот цикл выглядит как общий паттерн при работе с новым, неизвестным.

Чтобы заниматься криативом в рамках системы, система должна быть понимаема одним человеком.

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

Дизайн языка должен строиться вокруг однообразной концепции, которую можно применять на любом уровне системы. В лиспе это списки, в smalltalk это объекты, общающиеся сообщениями.

Компоненты системы не должны быть завязаны напрямую на внутреннее состояние других компонент системы. Сообщения отделяют намерение от реализации намерения (в противоположность вызова метода объекта напрямую или обращению к его свойствоу).

1 лайк