RULE 110Современные решения цифровых задачЗаметки
23 июня 20266 мин чтения

Почему мы Rule 110

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

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

Математика тут не главное. Интереснее, откуда взялась мощность, потому что из сложности правила она взяться не могла — сложности в нём нет.

Правило целиком

Строка клеток, каждая закрашена или нет. Клетка смотрит на себя и двух соседей, таких сочетаний ровно восемь, и на каждое правило отвечает «закрасить» или «не закрашивать». Восемь ответов, больше в нём ничего нет.

Восемь двоичных ответов дают 256 правил. Наше — сто десятое, потому что его ответы, выписанные подряд, складываются в 01101110, а это число 110 в двоичной записи. (Иногда спрашивают, зашифровано ли в номере что-то ещё. Нет.)

Почти все 256 ведут себя предсказуемо и скучно — картинка либо застывает в полосы, либо рассыпается в шум, — но у сто десятого начинается странное: на нём сами собой заводятся устойчивые фигуры, которые ползут вбок с разной скоростью, догоняют друг друга, сталкиваются, иногда исчезают обе, а иногда расходятся и оставляют после себя третью. В правиле про эти фигуры не сказано ни слова. Никто их туда не закладывал.

Вольфрам предположил, что этого хватит для универсальных вычислений, ещё в 1985 году. Доказали в 2004-м.

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

Что на самом деле сломалось в разработке

Про ИИ принято говорить, что он пишет код. Пишет. Это самая скучная часть новости.

Настоящая перемена в том, что исполнение подешевело в разы. Написать модуль, обложить его тестами, перебрать пять вариантов вместо одного, выбросить неудачный и переписать начисто вместо того, чтобы латать, — всё это стоило недель и потому решало не «как лучше», а «что мы потянем». Изрядная часть архитектурных решений принималась по остаточному принципу.

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

Дешёвое исполнение поднимает цену решения

Об этом почти не говорят, хотя про ИИ говорят без остановки. А следствие неприятное. Если предложить вариант стало почти бесплатно, самым дорогим местом в проекте становится то, где вариант принимают.

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

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

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

Команда, собранная под это

У растущей организации есть соблазн, поддаться которому легче лёгкого. Появилась проблема — добавили процедуру, появилась ещё одна — добавили ещё, и через год у команды регламент на сорок страниц, который целиком не соблюдает никто, включая автора. И не работает он как раз потому, что не соблюдается целиком: правило, которое держат через раз, даёт не структуру, а шум.

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

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

Почему в итоге это имя

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

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