Информация об изменениях

Сообщение Re[3]: Julia - holy grail! от 20.12.2019 10:53

Изменено 20.12.2019 11:00 Pauel

Re[3]: Julia - holy grail!
Здравствуйте, novitk, Вы писали:

I>>ООП выкинули — значит, что пишут только мелкие скриптики в repl или узкоспециализированые утилиты. Как только начнут писать тяжелые многофункциональные приложения, или ООП вернётся само собой, или язык останется в нише.


N>На lisp/clojure нет многофункциональные приложения?


Браво — ты решил соскочить с Julia на lisp, clojure. И там, и там такие приложения за пределами статической погрешности. Можно пренебречь.

N>Ты еще не в курсе, что классический ООП с мьютабильностью и single-dispatch это анти-паттерн?


ООП не имеет отношения к мутабельности и иммутабельности. Эта парадигма целиком вся не летает. Для неё нужен нижележащий слой — императивное (С++, C#, Java), функциональное (F#, Ocaml, Scala), логическое программирование и тд. Т.е. ООП всегда живет на другой парадигме, т.к. отвечает не за вычисления, а за структуру решения. Например: агрегирование, делегирование, композиция, типы-подтипы, модули. Вот за это отвечает ООП.
Хочешь использовать иммутабельность с ООП — пожалуйтса. Эту иммутабельность придумали несколько тысяч лет назад для ведения бухгалтерских книг. С чего бы в ООП было запрещено использовать такую древнюю вещь?

Про сингл-диспатч смешно — 99% приложений писалось и по сей день пишется именно в таких языках.

Мультидиспач может совмещаться и с ООП, принципиальных проблем нет. Проблемы в самом мультидиспаче — это пока достаточно непопулярная вещь. Например, мультиметод можно добавить в модуль. Так? Тут надо вспомнить, что класс в ООП это тип + модуль. Экземпляр в ООП это снова тип + модуль. Итого — всё в порядке с мультидиспачем.
Re[3]: Julia - holy grail!
Здравствуйте, novitk, Вы писали:

I>>ООП выкинули — значит, что пишут только мелкие скриптики в repl или узкоспециализированые утилиты. Как только начнут писать тяжелые многофункциональные приложения, или ООП вернётся само собой, или язык останется в нише.


N>На lisp/clojure нет многофункциональные приложения?


Браво — ты решил соскочить с Julia на lisp, clojure. И там, и там такие приложения за пределами статической погрешности. Можно пренебречь.

N>Ты еще не в курсе, что классический ООП с мьютабильностью и single-dispatch это анти-паттерн?


ООП не имеет отношения к мутабельности и иммутабельности. Эта парадигма целиком вся не летает. Для неё нужен нижележащий слой — императивное (С++, C#, Java), функциональное (F#, Ocaml, Scala), реактивное, логическое программирование и тд. Т.е. ООП всегда живет на другой парадигме, т.к. отвечает не за вычисления, а за структуру решения. Например: агрегирование, делегирование, композиция, типы-подтипы, модули. Вот за это отвечает ООП.
Хочешь использовать иммутабельность с ООП — пожалуйтса. Эту иммутабельность придумали несколько тысяч лет назад для ведения бухгалтерских книг. С чего бы в ООП было запрещено использовать такую древнюю вещь?

Про сингл-диспатч смешно — 99% приложений писалось и по сей день пишется именно в таких языках.

Мультидиспач может совмещаться и с ООП, принципиальных проблем нет. Проблемы в самом мультидиспаче — это пока достаточно непопулярная вещь. Например, мультиметод можно добавить в модуль. Так? Тут надо вспомнить, что класс в ООП это тип + модуль. Экземпляр в ООП это снова тип + модуль. Итого — всё в порядке в ООП мультидиспачем.