Языки программирования

Jan 27, 2021 02:33

Я тут понял удивительную вещь. Одно из тех открытий, когда вдруг понимаешь, что всю жизнь говорил прозой. Ну когда обнаруживаешь, что ты какую-то вещь считал естественной, считал что вообще все вокруг так думают, а оказывается, ровно наоборот: так не думает почти никто ( Read more... )

Leave a comment

Comments 53

redreptiloid January 27 2021, 04:42:36 UTC

Главное не забывать что фопмализуется не все и не все надо фопмаоизрвывать, и уметь отличать)

Reply


vitus_wagner January 27 2021, 06:50:30 UTC
Да, осознание что текст на языке программирования это именно текст, и написан он не столько для машины, сколько для людей, которые его будут читать и модифицировать, это очень важное осознание.

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

Reply

akuklev January 28 2021, 01:34:36 UTC
Безусловно, но не следует забывать и о следующем шаге - осознать разницу между выразительными средствами и смысловым охватом. И отметить, что насколько благотворным может быть ограничение в выразительных средствах (как творчество Дюрера обрело насыщенность и оригинальный стиль через ограниченность выразительных средств гравюры в сравнении с живописью), настолько тлетворно ограничение по части принципиальной выразимости чуть более сложных мыслей и концепций.

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

Reply


vitriolik January 27 2021, 07:25:19 UTC
Возражения против FP или императивных конструкций как раз от НЕпонимания, что язык - всего лишь набор инструментов для описания вычислений. Современный ЯП общего назначения должен быть эклектичным.

Reply

akuklev January 28 2021, 01:36:31 UTC
Современный - да. А язык программирования будущего будет сочетать инструменты гармонично.
Эклектика - шаг на пути к последующей интеграции парадигм.

Reply

ext_836326 March 14 2021, 14:29:20 UTC
А какой вы видите эту интеграцию, пути к ней, и/или что, по-вашему, точно будет в ней (и что "возможно будет, пока непонятно")?

Reply

akuklev March 19 2021, 01:30:20 UTC
Confluent concurrency, parallelism, non-determinism, квантовые вычисления и элементы императивного программирования со временем будут элегантно интегрированы в (функциональные) языки на основе интуиционистских теорий типов, об этом очень схематично и для специалистов вот в этом треде: https://akuklev.livejournal.com/1306754.html?thread=10220930#t10220930

Могут ли с этим быть как-то элегантно интегрированы декларативные языки, базирующиеся на logical constraint satisfaction - не знаю. Есть всякие Curry и λProlog, но я пока не понимаю как они вкладываются в большую картину.

Reply


vit_r January 27 2021, 08:01:32 UTC
Не надо путать уровни представления. Впихивать в язык метапрограммирование - дело гиблое изначально. Нужны языки описания моделей и кодогенерация, а не попытки скрестить ужа с ежом.

Reply

akuklev January 28 2021, 01:39:49 UTC
“Хоть горшком назови, только в печку не ставь.”
Давайте я скажу, что меня интересуют языки описания моделей, и я считаю языки на базе теории типов именно языками моделей, которые затем используются для кодогенерации машинного кода, толкающего туда-сюда байтики. Просто у нас принято называть их языками программирования, а кодогенерацию (кстати, редко в машинный код, чаще в промежуточный низкоуровневый язык) - компиляцией.

Reply

vit_r January 28 2021, 07:41:45 UTC
Если смешивать уровни абстракции, язык будет неработоспособным. Это чистая психология.

В смысле описать готовую задачу ещё туда-сюда. В смысле решать задачу - гири на ногах.

Reply


jahr2 January 27 2021, 08:51:10 UTC
А что такое "HoTT", простите за невежество?)

Reply

chaource January 28 2021, 11:54:11 UTC
jahr2 January 28 2021, 13:56:32 UTC
Спасибо.)

Reply


Leave a comment

Up