Одним из огромных преимуществ в языках, которые имеют своего рода отражение / интроспекцию, является то, что объекты могут автоматически создаваться из различных источников.
Например, в Java я могу использовать одни и те же объекты для сохранения в БД (с Hibernate), сериализации в XML (с JAXB) и сериализации в JSON (json-lib). Вы можете сделать то же самое в Ruby и Python, обычно следуя некоторым простым правилам для свойств или аннотаций для Java.
Таким образом, мне не нужны лоты "Объекты передачи домена". Я могу сосредоточиться на области, в которой я работаю.
Кажется, что в очень строгих FP, таких как Haskell и Ocaml, это невозможно.
Особенно Haskell. Единственное, что я видел, - это какая-то предварительная обработка или метапрограммирование (ocaml). Просто принято, что вам нужно делать все преобразования снизу вверх?
Другими словами, вам нужно проделать много скучной работы, чтобы превратить тип данных в haskell в объект строки JSON / XML / DB и снова в объект данных.