20 марта 2008

Блоки

Коротко и сумбурно, ибо спать пора.
Читать блок=составной оператор.
Что-то меня стукнуло про блоки задуматься. Куда не плюнь - каждый пытается выдумать какое-то своё супер-пупер-охуенное-единственно-красивое-и-элегантное обрамление для блоков (это как с системой стартовых скриптов в линуксе, в какой дистриб не плюнь - везде своя).
А мысль началась с питона, блоки в котором мне не нравятся, хотя некоторые считают, что так короче (типа KISS и всё такое) и нагляднее. Сразу вспомнилось чудесное, очень точно описывающее поведение питона относительно этого.
Руби, хоть и хороший язык, но синтаксис у него - говно, и блоки не исключение. Начинаются одним способом, заканчиваются другим.
Школьная любовь, Паскаль... Begin и end, как много этих буков... Писать мне лень их до сих пор. Но уже начинаются и заканчиваются единообразно (нормальными словами из английского языка) и чётко видно, где начало, где конец блока. Что важно, если учесть, что "заголовок" блока может быть весьма длинным (как в PL/SQL: for var in select... и далее трёхстраничный селект).
Баш, ну это вообще не язык программирования, даже блоки об этом говорят. Ну взять хотя бы их окончания: done, esac... так и хочется сказать громкое fi.
И наконец, что мне всегда нравилось - блоки в C подобных языках. Парные скобки, начинаются и заканчиваются единообразно (одним видом скобок и для любых конструкций), видно, где начало и конец, печатать мало, а если это ещё и визуально приправить грамотно, то и читать станет удобно. Вот с последним пунктом у всех без исключения виденных мною редакторов очень туго. Чуть лучше у Kate и производных, но всё равно не то.
Вот так вот, нет пророка в своём отечестве.

3 комментария:

semka комментирует...

Забавные рассуждения.
Собственно хаскель имеет довольно интересный синтаксис для "блочных" конструкций.
Правда в хаскеле нет никаких "блоков" по определению, там не указывается порядок действий. Там если нужно логически объединить сложные вычисления используется let/where-биндинг. Штука крайне удобная.
Вообще хаскель поначалу выносит мозг мыслями о том, откуда препроцессор знает, что уже началась другая функция?

PhoeniX комментирует...

Ты мне зачем мозг ломаешь, а? Расшаривает всякие штуки с РСДН'а, а я их потом читаю.

Deepwalker комментирует...

Ну так если визуальненько так оформить в питоне, то и делать больше нечего.