Что такое Clojure полезно для? [закрытый]
для каких реальных приложений люди используют Clojure?
Я использую Groovy для клея вещи, Java для больших систем, Python / Perl скрипты для разбора и клея. Я мог видеть, как я звоню в Clojure с Java, но я не вижу, где я буду использовать его сам по себе. Мне кажется, что было бы проще использовать почти любой язык сценариев для задач adhoc.
Я не Заводной эксперт или фанат, но мне кажется, что он имеет лучшую структуру поддержки, инструменты и множество языковых конструкций (замыкания, функциональное программирование). То же самое можно сказать и о скале.
может ли быть, что его будущее как язык, который встроен в другие системы?
5 ответов:
Я использовал Clojure для:
- выскабливание веб-страницы
- Shell скрипты
- создание сайтов
- играем с OpenGL
- написания асинхронных веб-серверов
- HTML Templating
- запуск параллельных задач (извлечение нескольких URL-адресов и параллельный процесс)
- воспроизведение в режиме реального времени аудио
- моделирование
это практично / весело материал.
но Clojure имеет много теоретической глубины, а также. Идеи, которые будут становиться все более актуальными по мере того, как мейнстрим приходит к реальному пониманию потенциала функционального программирования.
личное мнение, но Clojure flat out обеспечивает лучшие языковые конструкции для правильной организации программного обеспечения (не вызывая чрезмерной боли для рабочего программиста) всех языков, которые я использовал до сих пор академически и профессионально - C, C++, Objective-C, Java, JavaScript, Python, Ruby.
что не означает, что Clojure идеально подходит. Но мне кажется, что он построен на лучшем фундаменте, чем большинство из того, что там есть.
может начнем с Рич Хики обоснование.
Что касается реальных приложений, как об этом перекличка производственного использования из группы google?
Clojure широко используется для обработки большие объемы данных. Он очень хорошо подходит для интеллектуального анализа данных / коммерческого AI (т. е. Runa) и крупномасштабных прогнозов (aka WeatherBill). История параллелизма Clojure действительно помогает в этих тяжелых доменах данных, где параллельная обработка является просто единственным ответом.
ну, на этот вопрос трудно ответить. Что ты хочешь сделать? Существует не так много, что Clojure на самом деле не подходит. Я имею в виду, что это не очень хорошо для одного из сценариев командной строки из-за времени запуска JVM (если вы не используете торт или что-то подобное), но это можно сказать для любого языка JVM.
Clojure особенно подходит для задач параллелизма. Он был построен с нуля, чтобы быть удивительным языка для параллелизма, и это Система СТМ фантастическая. Если вам нужно сделать некоторые хардкорные вещи, связанные с параллелизмом, Clojure может быть особенно подходящим для этой задачи.
однако следует помнить, что Clojure является языком общего назначения. Он подходит не только для определенных ниш, и он, как правило, полезен для многих или всех вещей, к которым могут подходить другие языки JVM.
Clojure был разработан, чтобы быть фантастическим языком в своем собственном праве, и не обязательно языком клея. Вы можете создавайте системы с нуля в Clojure, никогда не касаясь кода Java напрямую. Не то, чтобы это не было хорошим языком клея, я знаю, что многие люди использовали его как таковой.
Если у вас есть что-то на уме, лучше всего рассмотреть, как будет выглядеть решение на любых языках, которые являются вариантами. Если он выглядит / чувствует себя лучше в Groovy, пойдите с Groovy. Они оба совершенно разные языки, и у них обоих есть свои цели.