среда, 24 июля 2013 г.

Пояснение про "функциональные языки"

Навеяно вот этим - http://18delphi.blogspot.ru/2013/07/blog-post_20.html?showComment=1374677196002#c7262330173032690440

Друзья мои! Коллеги.

Я ЗНАЮ про функциональные языки и про Haskell (http://ru.wikipedia.org/wiki/Haskell) - в частности.

И я знаю про каррирование и замыкания. И использую их в ПОВСЕДНЕВНОЙ работе.

Я даже знаю про стрелку Пирса :-) Но это из другой оперы :-)

Но не надо меня пытаться "обратить в свою веру".

Я - атеист и интернационалист.

И по-жизни и в программировании.

Я приемлю различные подходы, но в меру и к месту.

Если уж речь заходит о синтаксисе - скажу:

Я когда-то давно плевался от РАЯ (http://ru.wikipedia.org/wiki/%D0%A0%D0%90%D0%AF).

Но на новом витке развития скажу - написание тестов "по-русски" (http://18delphi.blogspot.com/2013/07/blog-post_196.html) и программирование "по-русски" (http://18delphi.blogspot.com/2013/04/dsl.html) -  имеют БОЛЬШИЕ перспективы.

А так - рад ЛЮБЫМ вопросам и предложениям. Но лучше всё же в тему.

Модерировать - конечно же ничего не буду. Ну разве что только откровенное хамство. Но этого пока слава богу - не случалось.

P.S. Если кто вдруг хочет в соавторы - с радостью позову.

P.P.S Кстати уж если пишите "есть такие языки, которые позволяют то-то и то-то" - то не стесняйтесь - называйте их. Давайте ссылки. Я с радостью изучу. Может что и другим посоветую.

P.P.P.S. Что до "выразительности" Haskell -  я не считаю его "ВЫРАЗИТЕЛЬНЫМ". Прикольным - да. Эффективным - скорее всего. Немногословным - тоже скорее всего. Но не ВЫРАЗИТЕЛЬНЫМ. Моя трактовка "выразительности" - видимо несколько иная. Не в строках кода и не в литералах выражается "выразительность".

Что "выразительнее", это:

5 5 + .

или это

"Напечатать результат выражения '5 + 5'"

?

По моему - второе. Но это конечно моё мнение. Вот так и с Haskell. Но это тоже моё мнение.

По-моему - "самодокументируемость" кода - вот ЗАЛОГ "выразительности". Чтобы не просто "коротко записать", а чтобы читающему было понятно - о чём речь.

Хотя! "Серебряной пули" - нет. Об этом всегда надо помнить.

Но "самыми" выразительными я пока считаю UML и DSL.

P.P.P.P.S. Не надо мне только говорить про интегралы, теорию групп, теорию множеств, дивиргенцию или ротор, или скажем тензоры. Или принцип максимума Понтрягина (http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D1%83%D0%BC%D0%B0_%D0%9F%D0%BE%D0%BD%D1%82%D1%80%D1%8F%D0%B3%D0%B8%D0%BD%D0%B0#.D0.9F.D1.80.D0.B8.D0.BD.D1.86.D0.B8.D0.BF_.D0.BC.D0.B0.D0.BA.D1.81.D0.B8.D0.BC.D1.83.D0.BC.D0.B0_.D0.9F.D0.BE.D0.BD.D1.82.D1.80.D1.8F.D0.B3.D0.B8.D0.BD.D0.B0). Я это всё конечно изучал. Но я и их - не считаю "выразительными". Я - не математик и не физик. Я - "технарь". Пытающийся работать с "людьми". И мне лично "графическая нотация" и/или "программирование по-русски" - сильно ближе. Меня иногда вообще "воротит" от "закорючек" и акронимов. Хотя - всё в меру.

P.P.P.P.P.S. Декларативность это - ЗДОРОВО! Сам люблю её. Но если с декларативностью "не получается" - надо переходить к императивности. А не придумывать "монады". ИМХО.

Про монады немного тут - http://18delphi.blogspot.com/2013/07/blog-post_9746.html

1 комментарий:

  1. >Я приемлю различные подходы, но в меру и к месту.
    Для меня это не такой простой вопрос "что и где в меру и к месту?".

    ОтветитьУдалить