Ознакомьтесь с нашей политикой обработки персональных данных
13:02 

APL

CD_Eater
в опе ещё играет детство, а жить уже надо по-взрослому
бывают странные языки программирования
нет, я не про брейнфак
я про более древний (полвека) и серьёзный язык, но не менее странный - APL

кому-то пришла в голову идея заменить все слова языка программирования (т.е., названия функций, процедур и операторов) для краткости односимвольными строками
возможно, авторы вдохновились языком математических формул, где каждый оператор (+ - * / и т.д.) записывается одним символом, и попробовали расширить эту идею на весь язык программирования
разумеется, на все функции и операторы языка обычных символов ASCII не хватило, и в ход пошла сборная солянка символов из совсем разных алфавитов (символов использовалось больше, чем клавиш на клавиатуре)

возможно, что сперва казалось, что краткость сделает программы более легко читаемыми (ведь математические формулы действительно легко читаются)
но, как это бывает, хотели как лучше, а получилось как всегда )))

судите сами: вот пример программы, реализующей известную игру Конуэя "Жизнь"
youtu.be/a9xAKttWgP4

аналогичных языков (там, где каждый символ исходного кода программы - это отдельный оператор или функция) уже настрогали немало
но используются они только для "код-гольфа" (для соревнований между программистами, кто сможет закодировать заданный алгоритм наиболее кратко, язык программирования для реализации алгоритма можно выбрать любой, победитель выбирается по минимуму длины исходного текста в байтах)

@темы: APL, write-only language

Комментарии
2017-06-25 в 09:37 

smll
Практически все современные среды для математический исследований (Matlab, Mathematica, R, ...) используют парадигму APL. Хоть он и write-only, но дал нехилый толчок в своё время. Но вот что самое интересное, есть, например, J – это более современный диалект APL, но в котором используются ASCII символы, но читается он ещё сложнее.

Вообще, в скором времени опять вовсю будут использоваться нестандартные символы в языках. Сейчас появляются шрифты с красивыми лигатурами (например github.com/tonsky/FiraCode). А в том же Agda приветствуется использование символов юникода.

2017-06-25 в 12:27 

CD_Eater
в опе ещё играет детство, а жить уже надо по-взрослому
забавный фонт - этот FiraCode )))

вроде бы, уже юникодные символы пролезли во все стороны нашей жизни, но осталась одна техническая проблема - наши клавиатуры

как вы могли заметить, в существующих приложениях вся эта юникодная муть набирается чаще всего просто выбором из списка (напр., есть список смайликов, вы его раскрываете и оттуда мышкой выбираете нужный смайлик, он вставляется в текст)
а что делать программистам, которые работают 100% клавиатурой? непонятно...

клеить наклейки на клавиши и выучивать ("пальцевой" памятью) новые сочетания клавиш?
это гемор
да и спецсимволов явно больше, чем клавиш на клавиатуре

назначать последовательность обычных ASCII-символов для каждого спецсимвола? типа, как смайлик можно набрать через :) или :smirk:
ну так это получится аналог обычного автодополнения, существующего во многих текстовых редакторах: пишешь if, нажимаешь Ctrl-B, получаешь if - then - else и курсор уже стоит на нужном месте
это тоже неудобно, т.к. на деле очень мало кто этой фичей пользуется

замечу, что знакомое слово (типа if-then-else-return и т.д.) набирается менее чем за секунду, и примерно столько же времени уйдёт на нажимание сочетания двух клавиш, чтобы набрать спецсимвол для соответствующей команды
так в чём же выигрыш? нет плюсов ни в читаемости кода, ни в скорости его ввода

2017-06-25 в 21:57 

smll
так в чём же выигрыш? нет плюсов ни в читаемости кода, ни в скорости его ввода

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

Комментирование для вас недоступно.
Для того, чтобы получить возможность комментировать, авторизуйтесь:
 
РегистрацияЗабыли пароль?

ru_programming

главная