Найти тему

Большие компьютерные системы надо выращивать, а не проектировать

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

Большие компьютерные системы надо выращивать, а не проектировать.

Об этом говорил Геральд Сассман в своём выступлении We Really Don't Know How to Compute!

Об этом говорил Алан Кей в Programming and Scaling:

Зачем так? Уже сейчас компьютерные системы разрастаются до невероятных размеров. В ядре линукса не менее 12 миллионов строк кода. Ни один человек в мире не сможет полностью понять до конца как именно оно работает. А ведь это ядро крутится на каждом из ваших андроид-телефонов.

Но ведь многоклеточные организмы тоже своего рода программы, состоящий из миллионов клеток, которые работая сообща решают общие задачи. Можно повзаимствовать какие-то идеи из биологии.

Сегодня я смотрел лекцию Plasticity w/out genetic change: bioelectric embryos & synthetic proto-organisms от Майкла Левина, этот образ снова всплыл на поверхность.

Кажется будто внутри таким образом выращиваемых систем постоянно происходят два процесса: формирование пространства, и освоение созданного пространства.

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

Все эти клетки действуют как независимые акторы, у них нет централизованного управления. Они постоянно пытаются выполнять свою задачу в своём ближайшем окружении, и активизируются именно когда возникает проблема.

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

Писать акторы мы умеем. А вот как формировать пространства которые эти акторы будут осваивать? По-сути акторы это точки внутри какой-то искривлённой фигуры со странной топологией.

Я пока не понимаю как именно мы могли бы формировать такое пространство. Или даже больше: как именно одни акторы могли бы формировать пространство для других акторов. Но кажется что это сильно похоже на Promise Theory: http://markburgess.org/promises.html

обложка книги Promise Theory: Principles and Applications
обложка книги Promise Theory: Principles and Applications