Здравствуйте, B0FEE664, Вы писали:
BFE>Нет, не мешает. На С++ можно писать в функциональном стиле, если есть желание.
Мешает повышенная сложность плюсов.
Как ни крути, а семантика раста на много порядков проще.
Здравствуйте, DarkEld3r, Вы писали:
DE>И чем же кложа лучше других лиспов? Комон лисперы так вообще смотрят на неё как на говно.
я тут общался в телеге с кложуристами русскоговорящими насчет спеки, да кложа переоценена сильно,
единственное достижение кложи это синтаксис для хэшмапов {:name "alice" :age 12}
все остальное сильно слабее. так спеки это как библиотека валидации, но прикол в том, после валидации данные уходят дальше и могут быть как угодно преобразованы.
в отличии от коммон лиспа где можно испльзовать CLOS.
как всегда часть не может быть лучше целого.
Вообщем я забил на кложу, да и лиспов думаю в емаске хватит пока для поддержания мозговой активности.
Здравствуйте, vaa, Вы писали:
vaa>я тут общался в телеге с кложуристами русскоговорящими насчет спеки, да кложа переоценена сильно,
Мне кажется, что ты слишком легко поддаёшься влиянию "авторитетов". Лисперы любят рассказывать байки про гибкость, мощность и прочий дебаг спутников в космосе. Да, язык интересный и с налётом "илитности", но надо понимать, что многие его фичи отсутствуют в более современных языках не потому, что лисп настолько опередил время, а потому что они, зачастую, неоднозначные. Скажем, хвалёная разработка в образе подталкивает к манкипатчингу. В общем, я бы рекомендовал не слушать разнообразных гуру и не метаться от плюсов к расту и от лиспа к хаскелю, в зависимости от того чей голос будет сегодня громче. А взять и освоить тот же лисп, попробовать на нём что-нибудь написать и сделать уже свои выводы.
Я сам когда-то давно наслушался этих романтических баек, но когда язык как следует пощупал, пришёл к выводу, что мне в целом динамика не особо нравится не важно Common Lisp ли это или Racket. Пощупать всякую экзотику бывает полезно, но надо именно ознакомиться с предметом, а не бегать по форумам и выбирать "самый мощный язык в мире".
Здравствуйте, kaa.python, Вы писали:
KP>Тем что из неё всё разнообразие мира JVM доступно, в первую очередь. Как бы не был прекрасен язык, без библиотек он бесполезен.
Это понятно, я усомнился именно в прекрасности кложуры самой по себе.
Здравствуйте, DarkEld3r, Вы писали:
DE>Я сам когда-то
По спирали приближаюсь к похожу мнению, однако большинству ЯП
все же не помешало бы больше гибкости в разработке.
Так 10 лет была отличная возможность типа GUI UML-редактора в VS для C#
прямо из редактора можно было создавать инстансы и у них вызывать методы.
Что-то типа https://www.bluej.org/
Ну и REPL это же просто такая удобная штука. Куда без нее.
Или макросы, без них метапрограммивание весьма убого. и к тому же не работает, как я убедился на DispatchProxy т.е. цепочные вызовы не обрабатываются прокси.
Здравствуйте, varenikAA, Вы писали:
AA>На мой взгляд важнейшим являются простота ЯП и возможность посредством ЯП сохранять код
Доводилось мне участвовать в разработке двух разных проектов на Clojure и Haskell. Я даже не знаю, каким словом описать ту неразбериху, которая творилась в коде. У нас же все функции без побочных эффектов, да? — Ага, поэтому контекст загружался через вызовы каких-то левых функций, которые модифицировали глобальное состояние. Я думаю, что даже схемы попила госденег в РФ не такие запутанные, как функциональный код в кровавом энтерпрайзе. Кстати, в проекте на Clojure был ещё один вариант передачи контекста — он хранился в JSON-like структуре. Это просто бомба! Вместо строго типизированной иерархии объектов мы получаем какую-то кашу, которая, стоит, чуть тронуть (убрать или изменить поле), взрывается зигзиллионом ошибок. Поэтому поступали просто — не убирали старые поля, а добавляли sum2, newSum и так далее. Вот это чистый код, я понимаю!
P.S. Конкретно на Haskell можно писать красивый, более безопасный, не всегда быстрый, строго типизированный код, просто мало кто это умеет.
Здравствуйте, cppguard, Вы писали:
C> Поэтому поступали просто — не убирали старые поля, а добавляли sum2, newSum и так далее. Вот это чистый код, я понимаю!
Ну что ж, прекрасный пример из опыта. я тут пару дней назад разбирался со спекой в кложе и потролил маленько русское комунити.
там подобный подход единственно возможный видимо. т.к. хешмапа это по сути обычный словарь в который можно положить все что угодно. это позволяет быстро и наглядно закодить решение.
но спека конечно позволяет валидировать данные только на входе. в этом тупость конечно.
C>P.S. Конкретно на Haskell можно писать красивый, более безопасный, не всегда быстрый, строго типизированный код, просто мало кто это умеет.
в том то и дело, что умение гибко применять возможности языка приходит не сразу и не ко всем. 90% программистов они как религиозные фанатики, уверовавшие в истинного единого ООП/ФП/СтатТип/Динамику(подставить нужное).
Но когда понимаешь что это лишь кирпичи, а дом ты можешь построить любой, то и продукт выходит совсем иначе.
поэтому ЯП общего назначения поддерживающие все возможные методы (common lisp) лучше узкоспециализированных (clojure).
lisp это и сигналы(круче исключений в разы) и гибкий ООП и обобщенные методы(тут Ричи правильно заметил, что дженерики в языках типа c# это трэш, когда логика умножается на кол-во параметров типа)
и много другое.
Как заметил один лиспер справедливо "если бы круглые скобки были моей единственной проблемой!"
на лиспе писал только для фаната но он мне понравился больше кложи, свобода полнейшая, удобная отладка.
и самое главное простой очень синтаксис. все единообразно.
вчера посмотрел сколько операторов в F# чуть не упал.