В наш 21-й век, когда новые технологии лезут как говориться «из всех щелей» стать новатором очень сложно. Все от мала до велика пытаются привнести что-то новое. С давних пор повелось что любой крупной компании или сообществу престижно иметь разработанный ими же язык программирования. Какие-то получают успех, какие-то уходят в небытие, но во многих языков явленных миру используются весьма спорные тенденции.

Я выделил для себя следующие тенденции:

  • Необязательность или полный отказ от точек с запятой – неужели отделять операторы данным символом так неудобно? Или же неофитов решили избавить от проблемы поиска ошибок? Современные IDE позволяют легко обнаружить ошибку, а читая чужой код который кстати в огромном количестве случаев плохой, легче разобраться с тем что там происходит.

  • Чрезмерные заимствования из других языков – понятно что ЯП так же как и вербальные языки заимствуют что-то друг из друга. Но простите, когда синтаксис одного языка сочетает в себе синтаксис кучи других языков, то он становиться чересчур за мудреным и уродливым. Вы же говорите на своем родном языке, и используете иностранные слова только в случае отсутствующего аналога в вашем языке, ну или же в случае более элегантного его звучания.

  • Все большее количество совершенно неоправданных упрощений – тут проблема вытекает из методов обучения в ВУЗах. Во многих учебных заведениях сейчас обучают совершенно неправильно. Основы программирования на С преподают буквально семестр. Дальше перекидывают в ООП, где дают основы настолько урезанно, что саму парадигму ООП студенты не понимают до конца. На втором курсе, студенты уже сами определяются на чем им вести учебные проекты, и они выбирают язык зачастую по критерию простоты. Немудрено что возможность решения половины задачи вызовом пары методов отбивают желание во всем разобраться самому, а дальше это идет с ним по жизни.

    Как-то слышал про эксперимент в котором программистов использующих JQuery попросили переписать задачу на чистом JavaScript.

    Вопрос: Смогли?
    Ответ: Не смогли.

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

  • Сильные заявления – зачастую новый язык разрабатывается как убийца какого-либо языка 20-ти летней давности, но никто так и не смог.

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

    Как говорит один известный человек:
    Болтовня ничего не стоит. Покажите мне код.
  • Внезапные замены привычных конструкций – очень заметно в Android-разработке.

Итог


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

Всем удачи.
Поделиться с друзьями
-->

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


  1. jacob1237
    03.04.2017 16:01
    +10

    Добро пожаловать на Хабр!


    И держите нас в курсе Ваших языковых предпочтений =)


    1. Myosotis
      03.04.2017 16:16
      +2

      И еще пусть держит этот сайт под рукой.


  1. impwx
    03.04.2017 16:03
    +7

    Болтовня ничего не стоит. Покажите мне код.

    Ну и где конкретные примеры «плохого кода» и сравнение — «как можно было бы сделать лучше»?


  1. sbnur
    03.04.2017 16:08
    +1

    А почему у Софокла выражение лица является тестовым (просто хочу понять )


  1. Arta
    03.04.2017 16:12
    +2

    тут проблема вытекает из методов обучения в ВУЗах

    как можно было увязать преподавание в российских вузах с развитием языков программирования :wtf:


    1. Free_ze
      03.04.2017 16:22

      Как вы лихо додумали про российские вузы!


      1. Arta
        03.04.2017 16:45

        да, не так воспринял абзац про вузы :sad:


  1. vlreshet
    03.04.2017 16:13
    +4

    Моё личное ИМХО:

    Необязательность или полный отказ от точек с запятой
    Если есть возможность не ставить точки с запятой — зачем их ставить? Просто из-за привычки? Возможно ошибаюсь, но мне кажется что они были придуманы чисто для упрощения парсера и компилятора.

    Чрезмерные заимствования из других языков
    Если, например, замыкания, есть очень удобными и полезными в одном ЯП — почему бы не взять их в другой язык? Что в этом плохого? Почему все ЯП обязаны идти по своему собственному пути, и плодить каждый свой синтаксис?

    Все большее количество совершенно неоправданных упрощений
    Опять таки, не вижу в этом ничего плохого. ЯП нужны для решения задач, а не для красивого жонглирования регистрами вручную. Если есть возможность создать удобную абстракцию — её надо создавать. А там где это не нужно (embedded, и прочие платформы) — там живут вполне себе консервативные языки типа С. «Программисты jQuery» — это уже проблемы библиотек, а не самого языка.

    Сильные заявления
    Обычный маркетинг, есть во всех сферах. Кто будет смотреть на новый язык который опишут как «ну ещё один язык. впринципе, такой же как и всё предыдущие»?

    Поиск глубинного смысла
    Никогда ещё не слышал о глубинном смысла в каких-нибудь лямбда-замыканиях или каррировании


    1. VioletGiraffe
      03.04.2017 16:21
      +2

      А меня бесят языки, где вместо нормального видимого разделителя используются переносы строк и другие whitespace-символы.


      1. arandomic
        03.04.2017 16:48
        +2

        Ну да, в них же нельзя написать main(){printf(&unix["\021%six\012\0"], (unix)[«have»]+«fun»-0x60);} или еще что-нибудь IOCCC-approved


  1. AndreyDmitriev
    03.04.2017 16:18
    +1

    Это вы ещё LabVIEW не видели, судя по всему. Я успешно программирую на нём уже семнадцать лет как (и мне нравится), но знаю людей, которых этот «язык» раздражает до тошноты (хотя там ногие вещи довольно разумно сделаны). Но штука спорная весьма.


  1. shasoft
    03.04.2017 16:19
    -1

    Как-то слышал про эксперимент в котором программистов использующих JQuery попросили переписать задачу на чистом JavaScript.
    Вопрос: Смогли?
    Ответ: Не смогли.

    Не обязательно знать как писать на чистом JS если ты пишешь на jQuery. Если понадобится — поисковик в помощь и любую функцию jQuery можно написать.

    Провести эксперимент в котором программистов использующих Си попросить переписать задачу на чистом ASM.
    Вопрос: Смогут?
    Ответ: Сомневаюсь.
    Взгляд со стороны: А зачем?


    1. Free_ze
      03.04.2017 16:27
      -2

      Взгляд со стороны: А зачем?

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


      1. HaruAtari
        03.04.2017 16:35

        Для этого есть документация.


    1. VolCh
      03.04.2017 16:43
      +1

      Отношения JavaScript и jQuery совсем не такие как у C с ASM. jQuery — это JavaScript библиотека, её невозможно пользоваться без использования JavaScript (транслируемые в JS языки опустим для ясности). А C с ASM общего мало имеют, кроме того, что компилируются оба в нативный код.


  1. IvaYan
    03.04.2017 16:21

    Что-то я не понял. Вроде написано тенденции, но с другой стороны какого-то исследования и нет. Первый пункт, про точку с запятой, очень спорный. Вы утверждаете, что


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

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


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

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


    Дальше перекидывают в ООП, где дают основы настолько урезанно, что саму парадигму ООП студенты не понимают до конца. На втором курсе, студенты уже сами определяются на чем им вести учебные проекты, и они выбирают язык зачастую по критерию простоты.

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


    Немудрено что возможность решения половины задачи вызовом пары методов отбивают желание во всем разобраться самому, а дальше это идет с ним по жизни.

    Это вообще свойственно человеку, для меня вот устройство коробки передач автомобиля представляет мало интереса, мне что, теперь нельзя машину водить?


    Сильные заявления – зачастую новый язык разрабатывается как убийца какого-либо языка 20-ти летней давности, но никто так и не смог.

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


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

    Коробка передач автомобиля тоже предназначена решать задачу, а не чтобы с выражением лиц как у Софокла обсуждать что лучше, механика, робот или автомат.


    Внезапные замены привычных конструкций – очень заметно в Android-разработке.

    Вот тут ничего сказать не могу, под Android не разрабатываю, можете привести пример?


  1. lair
    03.04.2017 16:26
    +2

    Необязательность или полный отказ от точек с запятой – неужели отделять операторы данным символом так неудобно?

    Да, неудобно. Каждый лишний символ — это визуальный мусор. Если можно от него избавиться, не внося неоднозначности — так и стоит сделать.


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

    … или не становится. Конкретные примеры в студию, пожалуйста.


    Все большее количество совершенно неоправданных упрощений

    … в языках программирования? Снова, пожалуйста, примеры в студию.


    Как-то слышал про эксперимент в котором программистов использующих JQuery попросили переписать задачу на чистом JavaScript.

    И как это пример относится к языку программирования? Да никак.


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

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


    Внезапные замены привычных конструкций – очень заметно в Android-разработке.

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


  1. deniskreshikhin
    03.04.2017 16:35
    +1

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


  1. beavis88
    03.04.2017 16:59
    +1

    > неужели отделять операторы данным символом так неудобно?

    Точка с запятой отделяет инструкции а не операторы. Оператор это синоним функции в математике.