В процессе обучения тому, как говорить то, что вы раньше не могли сказать, вы, вероятно, научитесь думать то, о чем раньше не могли думать.


Когда люди говорят, что, по их опыту, все языки программирования в основном эквивалентны, они делают заявление не о языках, а о своем способе программировать.

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

Но остальные 0,5% программирования непропорционально интересны. Если вы хотите узнать, из чего он состоит, странность странных языков — хороший ключ к разгадке.

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

Конкретный пример: макросы Lisp. Макросы на Lisp кажутся странными даже многим программистам на Lisp. Они не только не пересекаются с популярными языками, но по их природе было бы трудно правильно реализовать на языке, не превратив его в диалект Lisp. И макросы определенно свидетельствуют о методах, выходящих за рамки программирования на основе склеивания. Например, решение проблем, сначала написав язык для проблем этого типа, а затем написав на нем свое конкретное приложение. И это не все, что вы можете делать с макросами; это всего лишь одна область в пространстве техник манипулирования программами, которые даже сейчас еще далеко не полностью изучены.

Так что, если вы хотите расширить свое представление о программировании, один из способов сделать это — изучить странные языки. Выберите язык, который большинство программистов считает странным, но средний пользователь которого умен, а затем сосредоточьтесь на различиях между этим языком и пересечением популярных языков. Что вы можете сказать на этом языке, что было бы невероятно неудобно говорить по-другому? В процессе обучения тому, как говорить то, что вы раньше не могли сказать, вы, вероятно, научитесь думать то, о чем раньше не могли думать.

Комментарии (13)


  1. fireSparrow
    29.08.2021 10:31
    +14

    Это что — вступление перед основной частью статьи? Хабр — не какой-то бложик, куда можно запостить шесть абзацов и назвать это статьёй.


    1. Vest
      29.08.2021 10:45
      +1

      Думаю да. А если по теме, то я недавно для себя открыл новый термин code golf: https://codegolf.stackexchange.com/

      Там можно найти кучу «странных» языков, на которых народ решает всякие задачки.



    1. fireSparrow
      29.08.2021 15:32
      -3

      Я что-то не так сказал? За что карму-то слили?


      1. edo1h
        29.08.2021 17:13

        у вас почти тысяча комментариев, почему вы уверены, что карму слили именно за этот?


        1. fireSparrow
          29.08.2021 17:36
          -5

          Потому что сначала именно этот коммент у меня был с минусовой оценкой. А у меня очень мало комментариев, которые получают минусы.


      1. Politura
        29.08.2021 20:22
        -1

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


  1. Arlekcangp
    29.08.2021 10:48
    +5

    Кто о чём, а Пол Грэм о Лиспе... Вот только избавиться от "99.5% это склеивание библиотек" можно только начав писать собственную ос... А с лиспом пока это не очень получалось.... (Ну ещё может какие то очень завёрнутые штуки, вроде каких нибудь физических стмуляций, но все равно там будет 75% библиотек...) Короче статья - фигня ))


    1. MagisterLudi Автор
      29.08.2021 10:59
      -9

      На Hackernews 450+ дельных обсуждений этой «философской» заметки: news.ycombinator.com/item?id=28336891

      Красота в глазах смотрящего.


      1. JJBaltika
        31.08.2021 03:16
        +1

        Было бы странно, если бы на сайте Грэма не обсуждали статьи Грэма.


  1. anonymous
    00.00.0000 00:00


  1. AirLight
    29.08.2021 22:55

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


  1. shuhray
    30.08.2021 00:38

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