Comments 17
Мне кажется, или «комбинация парадигм (или их частей)» — не есть «отказ от парадигм»?
Java как пример чистого ООП так себе - целые числа там всё таки не посылкой сообщений складываются.
А тем временем https://habr.com/ru/articles/596517/
Hidden text

@moderator, поправьте
Пожалуйста, напишите нам в форму обратной связи https://habr.com/ru/feedback/. В частности, нам понадобится название вашего устройства, версия Андроид, а также версия браузера.
Я думаю что парадигма - это скорее способ мышления программиста, чем язык. Поэтому язык программирования - это просто формальный способ изложения со своими особенностями, не более того
Я один раз столкнулся с программированием вне парадигм. Взяли на доработку сайт на Битриксе, там был какой-то импорт, функционал которого содержался в одном файле на 5000 строк без единого комментария, без функций, без классов, вообще без каких-либо структурирующих элементов. Просто поток сознания на 5000 строк. Вернее не сознания, а какой-то коричневой субстанции, т.к. ни одно существо, наделённое сознанием, не написало бы такое.
Так работало же, нет?
Ого, а без функций и классов это как? Да и какие-то знания это "существо" всё же имело получается, иначе невозможно написать 5000 строк, чтобы оно при этом даже работало, вот с десяток строк там да, может повезти.
Я сам не сразу поверил. Даже через Ctrl+F пытался найти слово function - безрезультатно.
Да уж... Но это не только разраб виноват, но и язык что он позволяет писать так, в PHP уже давно есть ООП, но можно писать процедурно, а можно и не процедурно, а вообще как хочешь, поэтому его и не любят :D Парадигмы нужны хотя-бы поэтому.
В данном случае виноват не php, а Битрикс. Потому что в какой-нибудь ларе или симфе используется ООП, и всё устроено так, что ты не можешь его не использовать. А в Битриксе ужасно буквально всё, буквально каждая строчка кода там это набор наихудших практик, начиная с именования переменных, заканчивая отсутствием автозагрузки классов и пакетного менеджера.
Собственно то был первый и последний раз, когда я работал с битриксом.
Все же автор не понял разницу в классификации парадигм и запихнул все под одну гребёнку. Так, например:
Си — императивный язык
И далее он говорит, что Java - ООП, а Haskell - функциональщина. И это две разные классификации:
Есть классификация по императивности-декларативности.
А есть другая, которая определяет то, как именно будет происходить работа с данными, и отношение к иммутабельности и тд. И вот тут уже мы видим ФП и ООП в качестве ярких представителей. И Си по такой классификации - это процедурный ЯП.
Что-то статья целиком из неверного понимания парадигм растет. Противопоставлять императивность ООП - ну, такое себе. Императивность/декларативность парадигмам ортогональна.
Парадигмы, в основном, касаются способов организации программ и (самое важное) ограничений, вокруг которых парадигмы строятся. Процедурное (структурное) программирование - программа есть набор подпрограмм (запрет на использование безусловного перехода). ООП - программа есть набор объектов, обменивающихся сообщениями (запрет на прямое присваивание). Функциональное программирование - программа есть функция в математическом понимании (запрет на присваивание).
То, что в Java завезли лямбды или то, что в Go есть замыкания, не делает языки функциональными. Наличие примитивных типов в C++ или С# не делает их процедурными. Важно то, как организовывается программа.
Объединяющим аспектом новых языков, таких как Rust, Nim и Gleam, является то, что они с самого начала разрабатывались вне парадигм.
Маркетинговый булщит, если честно. Вполне себе процедурные языки.
мультипарадигмальные
Чем не нравится такой вариант? ru.wikipedia.org/wiki/Мультипарадигменный_язык_программирования
Программирование вне парадигм