kouzdra (kouzdra) wrote,
kouzdra
kouzdra

Categories:

"примите у граждан брак и выдайте им взамен другой"

Сэр Генри wim_winter пишет про то что невозможно обходится без сигары в заднице идеологии:

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

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


Это распространенное мнение. Но не просто ошибочное - но и вредное. Поясню на конкретном примере:

В программировании идеологии называются парадигмами. Слово процвело вместе с ООП (тогда задним числом в "парадигму" произвели и "процедурное программирование" и "структурное"). ООП действительно крайне идеологизированное течение с кучей религиозны по сути типа споров на темы вроде "квадрат - это ромб или прямоугольник".

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

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

Все это легко (и с пользой) может быть вставлено в любой почти язык - скажем лямбда-выражения прекрасно были и в А-68, и канонически объектном SmallTalke (там еще и замыкания были).

Результат был смешной: во время разработки ОО-языков типа С++ или Java и C# эти (тогда уже прекрасно известные и доказавшие свою полезность конструкции) были проигнорированы "ибо это не вписывается в ОО-парадигму".

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

В С++ последовательно запихнули type inference, лямбды, щас вот поднапряглись и вставили кастрированный паттерн матчинг - не прошло и 30 лет как.

Вот потому и не надо "работать в рамках идеологии, а если надо - менять". Разработчики Caml например не мучались парадигмами и запихнули туда объекты, как только сумели придумать для них нормальную семантику (потому как конструкция крайне нелогичная).

Тот же Go тем и хорош что авторы при создании языка просто наплевали на идеологию - и сделали крайне удачный язык.

Фаритовский-же подход "... и при необходимости менять" мне более всего напоминает бессмертную фразу из к/ф "Волга-Волга" - "примите у граждан брак и выдайте им взамен другой"
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 54 comments