Pull to refresh

Syntax Highlight Considered Harmful

Reading time2 min
Views1.8K
Вы думали, что "настоящие мужчины используют Windows"? Вы крупно ошибались. Они используют IDE Acme. Которую среди прочего отличает отсутствие подсветки синтаксиса.

Причём это не потому, что Acme ещё молода, и просто не успела обзавестись такой, критически важной для IDE, фичей. (Не знаю точно, сколько лет Acme, но Пайк ещё в 1994 выпустил статью "Acme — A User Interface for Programmers".) Нет, дело в другом! Эта «фича» считается ненужной, и даже вредной.

Кстати, Acme доступна не только под Plan9 и Inferno (где она является основной средой разработки), но и существуют порты под другие ОС. В частности, есть версия на базе Inferno: Acme SAC, работающая под линухом, макосью, виндой — везде где работает Inferno. Фактически это как раз пример того, о чём я когда-то писал — использование Inferno не в качестве полноценной OS, а в качестве виртуальной машины для запуска одного приложения, а-ля JVM.

Что же такого вредного может быть в подсветке синтаксиса? Ну, например, сложно отрицать тот факт, что она улучшает читабельность и восприятие кода. Хорошо ли это? Ха! А вот и не угадали! Это плохо. Дело в том, что сложный и запутанный код с подсветкой синтаксиса как то писать и воспринимать ещё можно. А вот без неё — оппаньки! Без неё он у вас даже компилироваться зачастую не будет, не то, что работать. А теперь откройте код любого приложения Inferno — он отлично воспринимается без подсветки синтаксиса. Потому, что простой и ясный. А может, он такой простой и ясный потому, что писали его без подсветки синтаксиса…

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

P.S. К своему стыду, я ещё не настоящий мужчина, и работать в таком самурайском стиле морально не готов. Поэтому код на Limbo пишу не в Acme внутри Inferno, а в Vim на host OS. Я выложил свою подсветку синтаксиса Limbo для Vim, пользуйтесь на здоровье, ненастоящие мужчины. :)
Tags:
Hubs:
Total votes 19: ↑8 and ↓11-3
Comments21

Articles