sab123: (face)
[personal profile] sab123
Originally posted by [livejournal.com profile] vit_r at Про ёжика в тумане, зазнайство, языки программирования и вериги


<<
ConstructiveParanoia Roman_Numbers draft 2014-04-30

Вот, собственно, и всё, что я хочу сказать по поводу стиля современных программистов в общем, functional revolution в частности, а также её проповедников [livejournal.com profile] ivan_gandhi, [livejournal.com profile] nponeccop и прочих лично.

>>

Да, красивая картинка про функциональнео программирование (непонятно только, почему оно предполагается быть modern).

Date: 2014-05-03 12:49 am (UTC)
From: [identity profile] anspa.livejournal.com
Я что-то нифига не понял аналогии. Какая-то очередная религиозная херня?

Date: 2014-05-03 01:13 am (UTC)
From: [identity profile] vaddimka.livejournal.com
бггг
мне кажется, тут все дело в том как у человека мозг мыслит, соответственно язык должен наиболее удобно позволять выразить эти мысли в коде
я сам с трудом представляю как я могу функциональщину применить на реальных задачах, но чисто теоретически, если отбросить проблемы производительности, функциональный код может быть более простым и менее глючным

Date: 2014-05-03 05:31 am (UTC)
From: [identity profile] sab123.livejournal.com
Не, как раз более простым и менее глючным он быть не может. Функциональный код обычно имеет совершенно неочевидную последовательность выполнения, и потому оказыватся (1) фундаментально неотлаживаемый и (2) работает криво в граничных случаях, про которые функциональные программисты норовят забывать.

Date: 2014-05-03 08:19 am (UTC)
From: [identity profile] vit-r.livejournal.com
В принципе, полно задач, где ошибки можно просто выбрасывать, а граничные случаи не обслуживать. Особенно, если это веб, где показ четырёх картинок из шести запрошенных ошибкой не является.

Date: 2014-05-03 10:07 am (UTC)
From: [identity profile] vaddimka.livejournal.com
аргумент с неотлаживаемостью я слышал даже касаемо многопоточных приложений
в принципе, пока все операции хорошо изолированы - в каком именно порядке они реально запускаются / работают параллельно - не так интересно
я вероятно не имел дела с той функциональщиной про которую ты говоришь (не считать же функциональщиной лямбды, ленивые вычисления, иммутабельность в виде copy on write), поэтому отношусь достаточно нейтрально

т.е., конечно, речи о том что С/С++ существуют до тех пор, пока для какой-то определенной ниши не специализируют компиляторы, поднимают бровь, но это все равно что говорить, что [набор современных языков программирования] существует только до тех пор, пока не изобрели квантовые компьютеры

Date: 2014-05-03 04:45 pm (UTC)
From: [identity profile] sab123.livejournal.com
Ну да, многопоточные гораздо сложнее однопоточных. Но за ради скорости идут на страдания. И при наличии дисциплины оказывается не так уж страшно.

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

Я лично имел дело с функциональностью больше всего в виде XSLT, и оно у меня оставило очень нехорошее ощущение.

Date: 2014-05-03 08:48 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
у нас один отдел некогда отказался от многопоточки, все заменили межпроцессным взаимодействием
и в принципе даже не сильно хуже получилось, учитывая некоторые бонусы

Date: 2014-05-03 11:21 pm (UTC)
From: [identity profile] sab123.livejournal.com
А вот межпроцессное - уже ничем не лучше многопоточки, особенно если с разделяемой памятью.

Date: 2014-05-03 11:28 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
ну, как, не лучше
шизанутый драйвер железки какой например не крешит весь процесс, а только процесс работающий с ней )
куча опять же блокируется по-другому (но тут конечно аллокаторы решают)

Date: 2014-05-03 08:16 am (UTC)
From: [identity profile] vit-r.livejournal.com
мне кажется, тут все дело в том как у человека мозг мыслит, соответственно язык должен наиболее удобно позволять выразить эти мысли в коде

Ну вот, хоть кто-то понял смысл, вместо того, чтобы начать придираться к отдельным словам :-D

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

Date: 2014-05-03 10:13 am (UTC)
From: [identity profile] vaddimka.livejournal.com
>вот только функциональщики считают, что их способ мышления единственно правильный

т.е. вся проблема только в том что они слишком много о себе думают? :) я за темой пристально не слежу, но по-моему у них за последние года 4 сменилось уже несколько парадигм, скорее всего они даже внутри себя не могут договориться как именно надо мыслить. и это, в принципе, хорошо, в конце концов они дойдут до чего-то, что окажется пригодным для продакшна и получит широкое распространение
Edited Date: 2014-05-03 10:14 am (UTC)

Date: 2014-05-03 11:12 am (UTC)
From: [identity profile] vit-r.livejournal.com
т.е. вся проблема только в том что они слишком много о себе думают? :)

Не вся проблема, но достаточно существенная её часть.

Date: 2014-05-03 04:45 pm (UTC)
From: [identity profile] sab123.livejournal.com
Да они уже 60 лет всякую фигню выдумывают, а воз и ныне там :-) Впрочем, конечно, из этой фигни вышло несколько полезных вещей.

Date: 2014-05-03 08:45 pm (UTC)
From: [identity profile] vaddimka.livejournal.com
на самом деле, я отчасти разделяю нападки на С/С++
это языки на которых достаточно сложно писать хорошо и легко стрелять себе в ноги
если люди с опытом за 10-15 лет в принципе в большинстве своем адекватны, то молодые с опытом работы пусть в 5 лет зачастую умудряются делать всевозможные варианты ошибок
при том что на большинстве других языков learning curve другая и 5 лет - это вечность
я уже не говорю про кучу "диалектов", где народ использующий Qt может совсем ничего не знать про boost
должно что-то придти на смену, более дружелюбное к новичкам с не сильным оверхедом по производительности (я пока ставлю на кроссплатформенный шарп и расширения жаваскрипта)
но это в принципе оффтопик в контексте функциональщины, функциональщина просто копает в том же направлении
Edited Date: 2014-05-03 08:46 pm (UTC)

Date: 2014-05-03 11:20 pm (UTC)
From: [identity profile] sab123.livejournal.com
Это не диалекты, это библиотеки. В этом смысле самый кошмар - это Джава, где они наворотили библиотек просто кучу, и все говенные.

Date: 2014-05-03 01:49 am (UTC)
From: [identity profile] smalgin.livejournal.com
Спасибо, посмеялся. Функциональщину с некоторым успехом применяю в C#. Не представляю, как бы жил без нее.

Date: 2014-05-03 08:13 am (UTC)
From: [identity profile] vit-r.livejournal.com
Картинка, вообще-то про стиль написания кода. Потому и "modern"

Функциональщина тут подходит хорошо потому, что люди не видят, что используют свои красивые формулы в стиле математики с римскими цифрами, но очень активно ругают всех вокруг за тупость.

January 2026

S M T W T F S
     12 3
45 6 7 8 9 10
11 12 13 14 151617
1819202122 23 24
25 26 2728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 27th, 2026 10:58 pm
Powered by Dreamwidth Studios