Я заметил, что Java, Python, Perl и Haskell / Clojure имеют совершенно разную трактовку статических функций.В частности,
1) Каковы идиоматические различия в способах реализации и использования статических функций на разных языках.
2) Выполните некоторые из этихязыки имеют «более полное» разделение и поддержку статических и статических методов по сравнению с другими?
Например:
В clojure все функции, по сути, являются статическими - с учетом крайней модульностисочетаемость, не связанная ни с какой вещью в объекте-эфире.Clojure-функциональное программирование может быть описано программистам Java как схожие со статическими функциями.
Между тем, в традиционной идиоматической Java часто встречается смесь, в которой объектно-ориентированные функции поддерживают внутреннее состояние, полагаясь на внешние статические методы для определенных, часто не имеющих состояния операций преобразования.
Кроме того, существует мир сценариев: я заметил в Perl и Python, что понятия разграничения статического кода и кода с состоянием не так сильно подчеркнуты (ОБНОВЛЕНИЕ: согласно комментарию - возможно, это связано смультипарадигмальный характер).
И, наконец, у нас есть объектно-ориентированная разновидность разработчиков PHP-5, которые, похоже, кодируют аналогично разработчикам java при обработке статических функций и функций с состоянием (объектная область).
Любое другое понимание различий в том, как разные программисты из разных областей относятся к статической функциональности, действительно помогло бы мне рассмотреть код с несколькими разработчиками PHP / Perl, с которыми я работаю.