Различия в разделении статического кода и кода с сохранением состояния на разных языках - PullRequest
0 голосов
/ 23 декабря 2011

Я заметил, что Java, Python, Perl и Haskell / Clojure имеют совершенно разную трактовку статических функций.В частности,

1) Каковы идиоматические различия в способах реализации и использования статических функций на разных языках.

2) Выполните некоторые из этихязыки имеют «более полное» разделение и поддержку статических и статических методов по сравнению с другими?

Например:

В clojure все функции, по сути, являются статическими - с учетом крайней модульностисочетаемость, не связанная ни с какой вещью в объекте-эфире.Clojure-функциональное программирование может быть описано программистам Java как схожие со статическими функциями.

Между тем, в традиционной идиоматической Java часто встречается смесь, в которой объектно-ориентированные функции поддерживают внутреннее состояние, полагаясь на внешние статические методы для определенных, часто не имеющих состояния операций преобразования.

Кроме того, существует мир сценариев: я заметил в Perl и Python, что понятия разграничения статического кода и кода с состоянием не так сильно подчеркнуты (ОБНОВЛЕНИЕ: согласно комментарию - возможно, это связано смультипарадигмальный характер).

И, наконец, у нас есть объектно-ориентированная разновидность разработчиков PHP-5, которые, похоже, кодируют аналогично разработчикам java при обработке статических функций и функций с состоянием (объектная область).

Любое другое понимание различий в том, как разные программисты из разных областей относятся к статической функциональности, действительно помогло бы мне рассмотреть код с несколькими разработчиками PHP / Perl, с которыми я работаю.

1 Ответ

1 голос
/ 23 декабря 2011

Соответствующим отличием может быть парадигма программирования, подчеркнутая языком. Функциональные языки, такие как Haskell & Clojure, стремятся устранить побочные эффекты и подчеркнуть детерминизм; инкапсулирование изменчивости или состояния в мыслях как монад. Это в отличие от императивных языков. Perl и PHP - это мультипарадигмальные языки, поэтому можно реализовать императивные стили, такие как процедурное и объектно-ориентированное кодирование, или даже эмулировать функциональные стили.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...