sab123: (face)
[personal profile] sab123
Читал в последнее время научные и околонаучные статьи. Обратил внимание, что от математической записи я во-первых отвык, во-вторых меня с нее воротит.

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

Но у нас в программировании все по-другому. Мы не делаем механические преобразования вручную, у нас для них есть компьютер. И для зашифровки у нас тоже есть компьютер. Поэтому не надо маяться шифровкой вручную, надо писать так, чтобы было сразу понятно, о чем идет речь. В этом смысле интересно посмотреть на прогресс автоматизации. Фортран когда-то был создан по образу и подобию математической записи. Но по мере развития компиляторов стало менее важно внутримашинное представление и более важна человеческая читабельность - появилось структурное программирование, и так далее.

Дополнительный момент заключается в том, что записанная человеком математическая запись обычно неточная, она сопровождается примечаниями типа "тут играйте, тут не играйте, тут рыбу заворачивали". А вот программа - штука точная, с фиксированным синтаксисом и семантикой.

Так вот, меня очень бесит, когда в статьях люди используют математическую запись чтобы записать некую формулировку, а потом не делают с ней никаких перобразований. Поэтому процесс чтения сводится к бесмыссленной расшифровке и угадыванию, где они там рыбу заворачивали. Вместо того чтобы записать или популярно словами или в виде точной и читаемой программы. Зачем так делают - непонятно, видимо для пущей наукообразности. Причем заметна очень четкая корреляция: чем более ни о чем статья, тем больше наукообразности пытаются изобразить авторы.

Та же самая претензия применима ко всяким хаскелам и прочим APLам: математико-образный крипто-язык без малейшего смысла в этом шифровании. Смысл во всяком хаскельном мета-мета-программировании возможно и есть, но для него надо придумать менее зашифрованную запись.

Date: 2016-03-04 10:29 am (UTC)
From: [identity profile] amarao-san.livejournal.com
Истинный смысл всех хаскелей - дать компилятору и программисту общий язык для описания сложных ограничений на типы данных. Так, чтобы компилятор "понимал", что является запретным, а у программиста, то, что остаётся после запретов, имело выразительный смысл.

Все монадки и прочие семигрупоиды, на самом деле, только об этом.

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

(что не отменяет требований по удобству сопровождения и т.д.)

Date: 2016-03-04 11:33 am (UTC)
From: [identity profile] vit-r.livejournal.com
Поздравляю. Благородный дон открыл для себя Большой Секрет функциональных языков :-D

July 2025

S M T W T F S
  1 2345
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 8th, 2025 03:28 am
Powered by Dreamwidth Studios