Para quais aplicativos do mundo real as pessoas usam o Clojure?
Eu uso Groovy para cola, Java para grandes sistemas, scripts Python / Perl para análise e cola. Eu poderia me ver chamando o Clojure de Java, mas não consigo ver onde poderia usá-lo sozinho. Acho que seria mais fácil usar quase qualquer linguagem de script para tarefas ad hoc.
Não sou um expert em Groovy ou fanboy de forma alguma, mas me parece que ele tem um framework de suporte melhor, ferramentas e muitas construções de linguagem (closures, programação funcional). O mesmo pode ser dito para Scala.
Será que seu futuro é como uma linguagem embutida em outros sistemas?
(sandwich me BLT)
?Respostas:
Eu usei o Clojure para:
Essa é a parte prática / divertida.
Mas Clojure também tem muita profundidade teórica. Idéias que se tornarão cada vez mais relevantes à medida que o mainstream realmente compreender o potencial da Programação Funcional.
Uma opinião pessoal, mas Clojure fornece a melhor construção de linguagem para organizar o software corretamente (sem causar dor indevida para o programador em trabalho) de todas as linguagens que usei até agora acadêmica e profissionalmente - C, C ++, Objective-C, Java, JavaScript, Python, Ruby.
O que não quer dizer que Clojure seja perfeito. Mas me parece que foi construído em uma base melhor do que a maioria das que estão por aí.
fonte
Talvez comece com a justificativa de Rich Hickey .
Quanto aos aplicativos do mundo real, que tal essa lista de chamada de uso de produção do grupo do google?
fonte
Clojure está sendo usado extensivamente para processar grandes volumes de dados. É muito adequado para mineração de dados / IA comercial (ou seja: Runa) e previsões em grande escala (também conhecido como WeatherBill). A história de simultaneidade do Clojure realmente ajuda nesses domínios de dados pesados, onde o processamento paralelo é simplesmente a única resposta.
fonte
Bem, essa é uma pergunta difícil de responder. O que você quer fazer? Não há muita coisa para a qual o Clojure não seja adequado. Quero dizer, não é muito bom para scripts de linha de comando isolados por causa do tempo de inicialização da JVM (a menos que você esteja usando cake ou algo semelhante), mas isso pode ser dito para qualquer linguagem JVM.
Clojure é especialmente adequado para tarefas de simultaneidade. Ele foi construído do zero para ser uma linguagem incrível para simultaneidade, e seu sistema STM é fantástico. Se você precisa fazer algumas coisas relacionadas à concorrência, Clojure pode ser especialmente adequado para essa tarefa.
No entanto, é preciso lembrar que Clojure é uma linguagem de propósito geral. Não é adequado apenas para determinados nichos e tende a ser útil para muitas ou todas as coisas para as quais as outras linguagens JVM podem ser adequadas.
Clojure foi projetado para ser uma linguagem fantástica em seu próprio direito, e não necessariamente uma linguagem cola. Você pode construir sistemas do zero no Clojure sem nunca tocar no código Java diretamente. Não que não seja uma boa linguagem de cola, sei que muitas pessoas a usam dessa forma.
Se você tem algo em mente, a melhor coisa a fazer é considerar como seria a solução em quaisquer idiomas que sejam opções. Se parecer / parecer melhor no Groovy, escolha o Groovy. Ambos são idiomas radicalmente diferentes e ambos têm seus propósitos.
fonte
Você pode usar o Clojure em qualquer lugar em que usaria Groovy ou java. Por que você gostaria de fazer isso ? Algumas pessoas gostam de ceceitar. Aqueles escolherão o clojure em vez do Groovy. Algumas pessoas não gostam de ceceitar. Aqueles escolherão Groovy.
fonte