Читать книгу Код. Культура, скомпилированная в байты - - Страница 14
ЧАСТЬ I: ФИЛОСОФИИ
Глава 2. Синтаксис как мировоззрение
Синтаксис как мировоззрение
ОглавлениеМы рассмотрели три аспекта синтаксиса: границы блоков, типизацию, обработку ошибок. В каждом случае технические решения оказывались философскими.
Скобки или отступы – вопрос о доверии программисту и о природе читаемости. Статика или динамика – вопрос о познаваемости мира и о том, когда ловить ошибки. Коды возврата, исключения, типы-суммы или «пусть падает» – вопрос об отношении к неудаче и о том, как строить надёжные системы.
Синтаксис – это не косметика языка. Это его мировоззрение, отлитое в форму.
Программист, который годами пишет на языке, впитывает это мировоззрение. Он начинает думать в категориях языка. Видеть проблемы так, как язык предлагает их видеть. Решать их так, как язык предлагает их решать. Это не насилие над мышлением – это формирование мышления. Как естественный язык формирует мысль говорящего, так язык программирования формирует мысль пишущего.
Программист на Haskell видит мир как композицию чистых функций, как поток преобразований данных. Программист на Java видит мир как иерархию объектов, как взаимодействие сущностей с состоянием и поведением. Программист на Си видит мир как последовательность операций над памятью, как байты и указатели. Программист на Erlang видит мир как сеть процессов, обменивающихся сообщениями.
В этом – сила и ограничение языков программирования. Они дают нам инструменты мышления. Мощные инструменты. Но эти инструменты формируют мысль. Молоток видит везде гвозди. Функциональный программист видит везде функции. Объектно-ориентированный – везде объекты.
Ни одна картина не полна. Ни одна не единственно верна. Но каждая по-своему когерентна, по-своему красива, по-своему продуктивна. Каждая позволяет решать определённые задачи элегантно – и делает другие задачи неуклюжими.
Синтаксис – это не случайность. Это не произвольный выбор создателя. Это философия, которую можно записать в грамматике, скомпилировать в байт-код, выполнить на машине.
Код – это культура, выраженная в синтаксисе.