Сегодня мне снился замечательный сон. Мне приснилось, что я изобрел новый, совершенно потрясающий стиль программирования. Программы, написанные этим стилем, получались очень компактными и очень легко читаемыми. По крайней мере, во сне, когда я переписывал существующую программу в новом стиле, то она уменьшалась раз в десять. И очень легко читалась, потому что одним взглядом можно было охватить кусок, который раньше занимал несколько страниц, и сразу понять, что он делает и как.
Смысл новой концепции был таков.
Программа сильно распухает в объемах, потому что в ней используются длинные мнемонические идентификаторы. От этого надо уходить. Вот в перле, например, часто используется такая переменная, как '$_', которая каждый раз означает разное. Я же додумался, что было бы чертовски эффективно использовать символ '|' Этот символ - самый узкий из всех символов. Поэтому программа получится наиболее компактной.
Этот символ надо использовать везде - и в качестве переменных, и в качестве аргументов функций. Если у функции несколько аргументов, то надо использовать кэрринг и сводить ее к нескольким функциям с одним аргументом. В конце концов, мне удалось даже строго математически доказать, что любую программу на любом языке можно переписать с использованием одного единственного идентификатора '|' для всех переменных. Доказательство было очень коротким, в одну строчку, и очень изящным. К сожалению, проснувшись, не смог его воспроизвести. Используя примитивный препроцессор, который я написал во сне за пять минут, мне удалось добиться, чтобы символ '|' использовался также для названия всех классов и названия всех функций, и всех методов классов, и всех других идентификаторов, используемых в данном языке (язык при этом неважен, препроцессор не вникал в семантику, а просто по хитрому правилу заменял все найденные '|' на обычные иденитфикаторы, чтобы все это потом нормально скомпилировалось). Какую именно переменную, класс или функцию мы имеем в виду, написав '|' - зависело от контекста. Например, при первом упоминании | имеется в виду первый по счету класс, при втором упоминании - второй по счету класс, и так далее. Просто описывай классы в том порядке, в котором будешь использовать, и все само собой получится. Аналогично с функциями, и т.д.
Подумав еще, я решил, что названия функций можно вообще сделать пустыми. Все функции будут безымянными. Если встречается открывающая скобка - то компилятор или интерпретатор понимает, что мы вызываем безымянную функцию, и дальше в скобках будет ее единственный аргумент - '|'.
И вот я, наконец, проснулся, и побежал к компьютеру, пытаясь удержать в голове такую замечательную парадигму программирования и хоть что-нибудь успеть записать, потому что сны я быстро забываю.
Я срочно открыл нотпад и дрожащими руками записал, как будет выглядеть вызов безымянной функции от единственного аргумента |
(|)
Вглядевшись, я узнал что-то знакомое в этой картинке. Это было потрясением. До чего жестоко и коварно мое подсознание. Оно решило меня оскорбить. Оно могло бы просто приснить мне жопу. Но нет, это было бы слишком грубо и примитивно! Оно решило добиться, чтобы я сам себе нарисовал жопу, не подозревая об этом до последнего момента! Оно начало издалека. И блестяще подстроило мне ловушку, в которую я попался, как последний лох. :'(
Временами я слышу, как где-то в глубине души раздаются злорадные смешки.