Я не разработчик Ruby. Тем не менее, я считаю, что причиной является Пропорциональная прозрачность.
Большинство идиоматических функций Clojure являются чистыми функциями, подчиняющимися ссылочной прозрачности. В результате я лично считаю намного проще тестировать функции, которые являются независимыми автономными блоками, и они несколько обеспечивают цель модульных тестов. Clojure, являющийся очень упрямым языком, предпочитает, чтобы большинство функций были без гражданства. Он дает четкое различие между кодом, в котором происходят побочные эффекты, а также состояния поддерживаются с использованием различных других альтернатив, таких как var
, refs
, agents
, atoms
и т. Д., Сохраняя большую часть вашего кода чистым, побочным эффектом свободным и ссылочным прозрачным.
Я чувствую, что любой код, структурированный вокруг ссылочно прозрачных функций и функций без гражданства, автоматически предоставит пользу от REPL, будь то в Ruby или любом другом языке программирования.
Хотя для большинства практических целей CLI, предоставленный другим языком, будет одинаково полезен, однако концепция Read, Eval, Print and Loop
не то же самое в LISP, как и на любом другом языке. Любой язык non-homoiconic
не имеет фазы READ
, и это будет просто чтение текстового представления или строки, однако в LISP фаза READ
фактически может анализировать в любой форме s-expression
, которую вы бросаете на нее. Более подробную информацию о нем см ниже 2 ответов:
Is Lisp the only language with REPL?
How is Lisp's read-eval-print loop different than Python's?
Это аккуратный, но это не дает ответа на вопрос. Он не утверждал и не предполагал, что это невозможно (на самом деле, как раз наоборот). Он спросил, почему он не стал более популярным. – Ken
Может быть, они не используют emacs, или намного лучше в Test Driven Development, чем я. – thattommyhall