2010-11-23 4 views
76

В каких реальных приложениях используются люди, использующие Clojure?Что такое Clojure?

Я использую Groovy для склеивания, Java для больших систем, скрипты Python/Perl для разбора и склеивания. Я мог видеть, что я звоню в Clojure с Java, но я не вижу, где бы я использовал его сам по себе. Мне кажется, было бы проще использовать практически любой скриптовый язык для специальных задач.

Я не эксперт по Groovy или поклонник любыми способами, но мне кажется, что у него есть лучшая структура поддержки, инструменты и множество языковых конструкций (замыкания, функциональное программирование). То же самое можно сказать и о Scala.

Может ли это быть его будущее как язык, встроенный в другие системы?

+17

Все, кроме меня, сэндвич. – wheaties 2010-11-23 20:26:37

+10

@wheaties: Вы пробовали `(сэндвич меня BLT)`? – FrustratedWithFormsDesigner 2010-11-23 20:30:35

+0

Groovy также старше, чем Clojure. Инструменты не волшебным образом написаны и стабильны в одночасье. – Rayne 2010-11-23 20:30:46

ответ

69

Я использовал Clojure для:

  1. выскабливание веб-страниц
  2. Shell скрипты
  3. Строительные сайты
  4. играть с OpenGL
  5. Написание асинхронных вебсерверов
  6. HTML Шаблоны
  7. Выполнение параллельных задач (выбор нескольких URL-адресов и d процесс параллельно)
  8. Игра вокруг в реальном времени аудио
  9. Симуляторы

Это практический/прикольных вещей.

Но у Clojure также много теоретической глубины. Идеи, которые станут все более актуальными, поскольку основной поток действительно понимает потенциал функционального программирования.

Личное мнение, но Clojure flat out обеспечивает лучшие языковые конструкции для правильной организации программного обеспечения (без причинения чрезмерной боли для рабочего программиста) всех языков, которые я использовал до сих пор в академическом и профессиональном плане - C, C++, Objective- C, Java, JavaScript, Python, Ruby.

Это не значит, что Clojure совершенен. Но мне кажется, что он построен на лучшей основе, чем большая часть того, что там.

12

Ну, это трудный вопрос для ответа. Что ты хочешь делать? Существует не так много, что Clojure на самом деле не подходит. Я имею в виду, что это не очень удобно для одного сценария командной строки из-за времени запуска JVM (если вы не используете cake или что-то подобное), но это можно сказать для любого языка JVM.

Clojure особенно подходит для задач параллелизма. Он был построен с нуля, чтобы быть удивительным языком для параллелизма, и это система STM фантастична. Если вам нужно сделать что-то вроде хардкор-параллелизма, Clojure может быть особенно подходящим для этой задачи.

Однако следует помнить, что Clojure является языком общего назначения. Он не только подходит для определенных ниш, и он, как правило, полезен для многих или всех вещей, к которым подходят другие языки JVM.

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

Если у вас есть что-то в виду, лучше всего подумать о том, как будет выглядеть решение на любых языках, которые являются параметрами. Если он выглядит/чувствует себя лучше в Groovy, пойдите с Groovy. Они оба совершенно разные языки, и оба они имеют свои цели.

15

Clojure широко используется для обработки больших объемов данных. Он очень хорошо подходит для интеллектуального анализа данных/коммерческого AI (т. Е. Runa) и широкомасштабных прогнозов (он же WeatherBill). История параллелизма Clojure действительно помогает в этих тяжелых данных, где параллельная обработка - это единственный ответ.

5

Вы можете использовать Clojure где угодно, используя Groovy или java. Зачем вам это нужно? Некоторые люди любят lisp. Те будут выбирать clojure над Groovy. Некоторые люди не любят lisp. Те будут выбирать Groovy.

Смежные вопросы