Por que o Lisp não é mais difundido? [fechadas]


50

Estou começando a aprender o esquema pelos vídeos do SICP e gostaria de passar para o Common Lisp a seguir.

A linguagem parece muito interessante, e a maioria das pessoas que escreve seus livros defende que possui um poder expressivo inigualável. CL parece ter uma biblioteca padrão decente.

Por que o Lisp não é mais difundido? Se é realmente tão poderoso, as pessoas deveriam usá-lo todo, mas é quase impossível encontrar, por exemplo, anúncios de emprego do Lisp.

Espero que não sejam apenas parênteses, pois não são um grande problema depois de um tempo.



5
O LISP do Steel Bank (comum) é realmente mais popular do que você imagina. LISP como processadores de macro (por exemplo, M4) também são amplamente utilizados. Você pode não vê-lo no seu domínio de escolha, mas ainda está lá fora (para melhor ou para pior).
Tim Post

8
O recente terremoto e tsunami destruíram a fábrica de parênteses no Japão. :-(
oosterwal 22/03

11
Qual versão do Lisp devemos usar? Lembre-se de que os dialetos Lisp são mais ou menos incompatíveis.

2
LISP (ou dialetos de) são usados ​​em todo o lugar, por exemplo, AutoLISP é um dialeto de LISP usado pelo Autocad en.wikipedia.org/wiki/AutoLISP ou EMACS en.wikipedia.org/wiki/Emacs_Lisp
Jaydee

Respostas:


68

Expressividade nem sempre é uma característica positiva da linguagem em um ambiente corporativo. Java é extremamente popular em parte porque é fácil de aprender, fácil de escrever e fácil de ler. Programadores medíocres ainda podem ser muito produtivos em Java, mesmo que seu código seja prolixo e deselegante.

Além disso, é fácil abusar de idiomas expressivos. Um programador java especialista pode refatorar códigos mal escritos rapidamente. Quanto mais expressiva a linguagem, mais difícil é entender e refatorar o código horrível. As macros LISP são um bom exemplo. Macros são ferramentas poderosas nas mãos certas. Nas mãos erradas, eles podem resultar em códigos confusos e difíceis de depurar.

O LISP é uma escolha arriscada para a gerência sênior. Se tudo der errado, ninguém vai culpar o gerenciamento por escolher uma linguagem popular orientada a objetos, apoiada por uma grande corporação como Oracle ou Microsoft. É muito mais fácil contratar programadores com experiência em idiomas populares e fáceis de aprender.

Mesmo empresas progressistas que desejam usar uma linguagem mais poderosa geralmente não escolhem o LISP. Isso ocorre porque muitos dos idiomas mais novos tentam se comprometer emprestando recursos poderosos do LISP, mantendo o aprendizado fácil para as massas. Scala e Ruby seguem esse modelo. Os programadores ruins podem buscá-los rapidamente e continuar escrevendo o mesmo código medíocre que eles criaram em Java. Bons programadores podem tirar proveito dos recursos mais avançados para escrever um código bonito.

Parênteses não são o problema. Haskell é uma linguagem incrivelmente poderosa e expressiva com uma sintaxe semelhante a Python ou Ruby e não foi amplamente adotada pelos mesmos motivos que o LISP.

Apesar de tudo isso, eu espero ...

Clojure tem uma chance de se tornar popular. É executado na JVM, possui excelente interoperabilidade com Java e simplifica muito a programação simultânea. Tudo isso é importante para muitas empresas.

* Essa é minha perspectiva como programador profissional de JVM com experiência em Java, Clojure, JRuby e Scala.


24
A objeção sobre a dificuldade de encontrar programadores qualificados é um pouco de cachorro perseguindo seu rabo. Se o Lisp fosse mais difundido, seria mais fácil encontrar bons programadores.
21311 Andrea

2
@ Andrea Isso é definitivamente verdade. Porém, é mais difícil aprender o cocô, o que também contribui para o problema. Sei que essa pode ser uma opinião controversa, pois muitos professores ensinam esquema como primeira língua.
dbyrne

8
Sim, o APL é um excelente exemplo de uma linguagem expressiva. Além disso, um bom exemplo de porque expressividade não é a coisa mais importante;)
dbyrne

9
Eu não acho que essa definição realmente transmita o que significa expressivo. Pessoalmente, antes de chamar um idioma expressivo, eu me certificaria de poder ler o que escrevi. Por exemplo, o uso de lógica não trivial no inicializador de loop em C pode economizar algumas linhas de código, mas não é facilmente compreensível. Por outro lado, uma compreensão de lista no Python pode economizar algumas linhas e ser mais legível. Então você realmente encontrou uma maneira de expressar o que quis dizer de forma mais concisa. Se não for legível, você não encontrará uma maneira de expressar nada.
Andrea

3
Acho que estou saindo como alguém que não gosta de cocô. Na verdade, eu amo isso. Clojure é uma linguagem incrível. Eu acho que é uma escolha muito viável para um determinado tipo de empresa usar. Estou apenas apontando que existem muitas empresas em que não faria sentido, e usar algo como Scala é uma escolha muito mais prática.
dbyrne

17

Por que o Lisp não é mais difundido? Se é realmente tão poderoso, as pessoas deveriam usá-lo todo,

Se você acredita que os idiomas são escolhidos por seus méritos técnicos, você terá uma decepção esmagadora.

Tais decisões são tomadas com base em Strippers e bifes . A Microsoft pode pagar por eles. Oracle pode. A Sun gastou tanto dinheiro exagerando em Java que foi à falência. Duas vezes. Uma comunidade voluntária descentralizada, heterogênea e não pode competir com isso.

mas é quase impossível encontrar, digamos, anúncios de emprego do Lisp.

Curiosamente, as empresas Lisp dizem exatamente o oposto: elas constantemente têm vagas de emprego, mas não conseguem encontrar pessoas suficientes para preenchê-las. (O mesmo se aplica a Haskell, ML, O'Caml, Forth, Smalltalk, ...)


3
Onde eu moro (Itália) Eu duvido mesmo uma única empresa Lisp existe ...
Andrea

11
Quais grandes empresas estão promovendo Ruby, Python e JavaScript? JS é um caso reconhecidamente especial, mas os outros dois parecem muito popular sem apoio / corporativa fornecedor maciça
Ben Hughes

Sim, isso também é válido para outros idiomas. A maioria dos bons codificadores COBOL já tem emprego e não está lendo os anúncios de qualquer maneira. Por que incomodar a publicidade?
Bo Persson

O que realmente? Codificarei em qualquer idioma que não seja mainstream, embora Haskell pareça exagerado. A pequena quantidade de código que eu codifiquei é extremamente bonita, mas sem um bom mentor, não tenho idéia de quando usar cada Mônada e os Functors aplicáveis.
aoeu256 01/07

9

Não tenho experiência em trabalhar para uma empresa real, mas sei por que o LISP tem sido difícil de usar.

Antes de tudo, isso me lembra desta publicação no blog: http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html

O principal problema que tenho com o Lisp é a pergunta "qual Lisp". Normalmente trabalho no Linux como minha plataforma principal, mas as coisas que faço precisam ser compatíveis com o Windows. Isso significa que, quando estou avaliando uma tecnologia a ser usada, ela deve facilitar minha vida ao trabalhar em dois sistemas operacionais radicalmente diferentes. Não gosto desse requisito, mas usá-lo em um projeto real é um requisito. Agora vou usar idiomas que não têm um suporte muito bom no Windows para meus projetos paralelos pessoais, mas como nunca tenho a chance de escrever um grande projeto de software neles, não tenho a experiência necessária.

Agora, quando eu estava tentando aprender uma linguagem funcional, eu realmente queria aprender Common Lisp. Parecia a coisa certa a fazer. Comecei a ler o Practical Common Lisp como um ponto de partida, porque eu realmente não conhecia as funções internas e precisava de um projeto para trabalhar no Lisp. As expressões S eram bonitas e fáceis. Todos esses parênteses foram incrivelmente bonitos para mim, pois ficou claro como o dia exatamente o que estava acontecendo no código.

Então, eu tento escrever meu primeiro programa em Lisp fora do livro. Eu queria uma ferramenta de linha de comando que contasse linhas de código e removesse linhas triviais da contagem de códigos. Não é a ferramenta mais útil, mas divertida de fazer. Envolve acesso a arquivos, um pouco de análise e contagem. Eu havia implementado a mesma ferramenta em Python cerca de uma semana antes.

Eu preciso acessar argumentos de linha de comando. Então eu aprendo que não há uma maneira padrão de obter argumentos de linha de comando. Eles são todos os recursos não padrão. Não é de plataforma cruzada. A partir de então, a situação piora, pois a linguagem não possui muitas bibliotecas incorporadas. Acabei mudando para Haskell e não fui muito longe no Common Lisp (portanto, minhas queixas podem nem ser válidas).

Esse tipo de coisa fora do padrão sempre foi uma dor para mim no passado. O C ++ tem esse mesmo problema, mas com bibliotecas como o Boost, você pode contornar essas fraquezas.

Também não ajuda que a sintaxe Lisp para tudo que não seja expressões S seja um pouco feia.


11
O raquete PLT (antigo esquema PLT) funciona bem no Linux e no Windows.
Larry Coleman

Interessante, eu esperaria que o Common Lisp fosse muito mais padrão e utilizável para aplicativos reais do que o Scheme. (Estou lendo Practical Common Lisp agora.)
Giorgio

Recomendo que você escolha Haskell (que é um idioma melhor na minha opinião), mas e Clojure? Ele é executado na JVM, portanto deve ser portátil e ter acesso a todas as bibliotecas necessárias.
Andres F.

Argumentos de linha de comando são difíceis de usar em C ++? Realmente?
Nick Keighley

Não é trivial criar um cross-complier que altere Lisp para Scheme para Clojure? Por que as pessoas não as usam?
aoeu256 01/07

8

IMO, é principalmente devido a:

  • Suporte de biblioteca insuficiente. Claro, agora existe o Quicklisp, o que facilita a instalação de bibliotecas, mas não compensa o fato de elas ainda serem muito poucas, e algumas delas são mal documentadas ou mal mantidas. Comparado ao Python, há uma boa chance de que escrever um aplicativo Lisp não trivial (independentemente do dialeto em particular) provavelmente ainda envolva a reinvenção de pelo menos parte de uma roda ou duas.
  • Falta de familiaridade com o modelo adotado pelas ferramentas de desenvolvimento. A maioria das pessoas que conheço se sente bastante intimidada por ter que usar o SLIME e o Emacs, o que é compreensível para as pessoas acostumadas ao Eclipse e ao Visual Studio. Acho que existem dois plug-ins do Eclipse, eu só tentei um deles há alguns anos e foi bastante complicado. Todo o ecossistema Lisp parece estar preso no meio do caminho entre os dias em que fazia parte de um sistema completo de execução de Lisp e o padrão moderno de oh-é-outro-idioma. Aprender o Lisp não se limita ao aprendizado de um novo idioma - você também precisa aprender uma maneira totalmente diferente de trabalhar e pensar, e embora isso seja bom se você estiver fazendo isso como um hobby, é questionável se vale a pena fazê-lo em um o negócio.

As coisas estão começando a parecer um pouco melhores, especialmente com Clojure por perto.


11
"A maioria das pessoas que conheço se sente bastante intimidada por ter que usar o SLIME e o Emacs, o que é compreensível para as pessoas que costumavam usar o Eclipse e o Visual Studio.": Mais uma vez, sinto que Lisp é a elite.
Giorgio

2
"Você também precisa aprender uma maneira completamente diferente de trabalhar e pensar, e, embora esteja tudo bem se você estiver fazendo isso como um hobby, é questionável se vale a pena fazê-lo em um negócio.": O aumento da produtividade não é um razão boa o suficiente?
Giorgio

Este "aumento de produtividade" foi demonstrado? Certamente não está claro para mim (sim, eu programei em um dialeto Lisp). Não há balas de prata.
Nick Keighley

5

Eu aprendi o LISP há um bilhão de anos atrás na faculdade.

LISP, como FORTH, é ótimo para lógica. Mas a maioria da programação não é sobre lógica, trata-se de manipular dados de maneiras mecânicas chatas. Por exemplo, no momento, não há como justificar corretamente a saída numérica.

LISP é sobre funcionalidade aninhada, e as pessoas simplesmente não pensam assim. Eles pensam em termos de DO A, B, C, D e depois E. Não fazem A, que envolve fazer B e C, então D e E. Isso envolve um tipo de simultaneidade que é confusa. Exceto para tarefas predefinidas como "registrar uma declaração de imposto de renda", as pessoas não pensam simultaneamente, pensam sequencialmente. É por isso que as linguagens processuais são dominantes hoje.

Como resultado, o código produral como Java e C pode ser traduzido para o inglês facilmente. Código LISP não pode; nenhuma linguagem humana é estruturada dessa maneira.

Portanto, é ótimo para a solução de problemas, mas a solução de problemas não é muito importante na programação. Entrada de dados, validação, formatação de saída, todos os quais o LISP era terrivelmente fraco.


7
A solução de problemas é tudo o que fazemos. Manipular dados não é fácil em Java ou C. Manipular dados em células contras é muito mais fácil no Lisp e em outras linguagens funcionais. A maioria das operações nos dados é exatamente a mesma e não se importa em que ordem você os processa. Isso é feito facilmente com uma chamada para mapear e um ponteiro de função. Eu diria também que é mais fácil pensar na funcionalidade aninhada do que na funcionalidade processual (como uma detalha seu objetivo e a outra detalha como executar esse objetivo), mas não tenho provas disso. De qualquer maneira, eu não diria que esse é o motivo pelo qual o LISP não é usado.
jsternberg

4
Programação não tem a ver com solução de problemas? Acho que não. E, a propósito, também não acho que você possa aprender um idioma na faculdade.
Adam Arold 2/08

+1, parece muito plausível para mim que não conheço nenhum Lisp. Eu indicaria a mesma razão que C / Java é melhor que Python para soluções de tamanho corporativo.
Jonas Byström

Esta é a única resposta até agora que suscitou o enorme tópico de funcional versus processual, mas não vamos esquecer que o pensamento processual tende a mexer com globs de dados em vars em todos os lugares em que você pode tocar em muitos lugares e segmentos, criando problemas de sincronização. O funcional não sofre tão rapidamente com isso, o funcional bem escrito não sofre nada.
maxpolk

11
Uma vez, um programador me perguntou qual a melhor maneira de expressar um loop for usando um diagrama de fluxo de dados. Para essas pessoas, não há sentido em linguagens não processuais. O pensamento em FORTRAN.
precisa

5

Eu acho que um problema com o Lisp ainda não mencionado é que, para um programador medíocre ou iniciante (como eu, eu admito livremente), pode ser difícil ver como você transforma o código Lisp em um grande programa. É fácil de escrever, mas difícil de arquitetar. Não acho que nenhum dos conceitos seja particularmente difícil, mas a mentalidade do bricolage é tão forte que muitas vezes me sinto perdido por onde começar.

Com uma linguagem OOP como Java ou C #, você pode usar o sistema de tipos para se aprimorar em direção a um modelo de trabalho e criar isso. Com Lisp (ou Lua, ou Javascript, para esse assunto), existe a noção de que você pode sair e fazer do jeito que quiser. Se você deseja POO, basta criar seu próprio sistema POO! Exceto fazer o seu próprio POO, ou aprender o de outra pessoa, é uma nova barreira no topo do idioma antes de você obter programas utilizáveis. Além disso, eu sempre sinto que o OOP no Lisp ou Lua não está realmente lá, como se eu pudesse simplesmente ignorá-lo, se quisesse, então qual é o objetivo?

Em resumo, acho que a programação no Lisp exige muita disciplina, e isso é muito difícil de encontrar. Linguagens fortemente tipadas e linguagens OOP oferecem um tipo de disciplina embutida, para que o programador possa concentrar suas reservas limitadas em projetos de conclusão, em vez de ajustar o idioma.

EDIT: Como uma analogia que acabou de me impressionar, é como se você precisasse trabalhar em madeira e duas pessoas oferecerem suas caixas de ferramentas. As ferramentas de uma pessoa são meio ruins, mas basicamente o trabalho seria feito com um pouco de esforço. A outra pessoa tem um grande compartimento de peças, mas é promissor que você possa combiná-las para criar as melhores ferramentas que você já usou, perfeitamente adequadas ao seu punho e da melhor qualidade. Você apenas precisa construí-los primeiro.


2
O Common Lisp, pelo menos, é explicitamente uma linguagem OO: o Common Lisp Object System faz parte do padrão.
Frank Shearar

É verdade, e pelo que entendi, é muito poderoso, mas me parece uma característica lateral da linguagem. Não é como o Java, no qual você precisa entender objetos desde o dia 1. O Common Lisp prático não toca no CLOS até o capítulo 16. Também posso estar inclinado para a digitação estática, apesar de não gostar de linguagens dinamicamente tipadas. .
CodexArcanum 22/03

O Lisp permite que você use closures (let-over-lambda) em vez de objetos para OOP leve, mas acredito que seja fácil atualizar para usar o OOP via CLOS.
aoeu256 22/07

2

Há muito que me pergunto o mesmo, e fui até as conferências do Lisp para tentar entender o que é esse "lado sombrio" do Lisp que impede todos de adotá-lo.

Não encontrei uma resposta decente completa.

A ignorância pode ser o motivo da popularidade perdida, mas o que mais me intriga é que mesmo quem sabe com certeza o Lisp (por exemplo, o Google - Peter Norvig trabalha para eles) não o está usando.

A única explicação parcial que me é apresentada é que a maioria das grandes idéias do Lisp agora é comum, a única falta realmente importante (uma IMO extremamente importante) é a facilidade da metaprogramação.

Infelizmente, não vejo uma maneira fácil de absorver esse conceito para outros idiomas, porque a metaprogramação para ser agradável exige uma linguagem homoicônica e regular (estou falando de metaprogramação geral, não da versão simplificada do modelo). Em outras palavras, requer basicamente a abordagem Lisp da sintaxe: código é dados e dados são código. Escrever código em uma linguagem rica em sintaxe que manipula um AST é mais difícil porque você precisa conhecer dois idiomas: como escrever o código e como escrever o AST. Isso é especialmente difícil se o seu AST for fixo e também complexo e irregular com muitos tipos diferentes de nós. O Lisp possui um AST razoavelmente regular (e extensível!) E você já codifica normalmente escrevendo diretamente o AST.

A metaprogramação também é inerentemente mais difícil (e a meta-metaprogramação ainda mais e assim por diante) e a maioria dos programadores e gerentes aparentemente prefere apenas a resposta "ninguém precisaria disso".

Acho particularmente triste que linguagens "novas", como goacabaram usando metaprogramação baseada em texto, quando necessário (geradores externos de código gravando arquivos de texto) e "mágica" (ou seja, o compilador possa fazer o que os programadores não podem).

Eu acho que a solução para o problema da complexidade são ferramentas poderosas e educação. Aparentemente, a tendência é ferramentas bruscas e fingir que o problema não está presente.


+1 em "Acho que a solução para o problema da complexidade são ferramentas e educação poderosas".
Giorgio

depois de 50 anos a desculpa de 'ignorância' está vestindo muito fina
Nick Keighley

11
@NickKeighley: depende. Ainda hoje a maioria dos programadores realmente não sabe nada sobre o Lisp (por exemplo, na maioria das vezes você ouve o Lisp descrito como uma linguagem funcional). Mesmo entre os que "conhecem" Lisp, quase ninguém viu a idéia macro com detalhes suficientes (não estou falando da versão simplificada do esquema, mas de todo o poder algorítmico com a conveniência de quase citar quando isso se encaixa melhor).
6502

@ 6502: Embora não seja puramente funcional, o IMO Lisp oferece suporte à programação funcional muito melhor do que muitas linguagens convencionais como C #, Java, C ++ e assim por diante. Para muitos programadores, FP significa apenas usar uma expressão lambda de tempos em tempos: esses programadores não sentirão falta de Lisp, Clojure ou Haskell. Então eu acrescentaria: (1) o Lisp suporta muito bem o FP e os programadores funcionais se beneficiariam com isso, mas (2) a ignorância sobre o FP e seus benefícios é uma das razões pelas quais o Lisp não é usado com mais frequência.
Giorgio19 /

11
@ 6502: Ter listas como estrutura de dados básica e funções habituais de alta ordem nas listas também é um recurso que falta no Javascript. E, tanto quanto me lembro, o Javascript também tem a declaração / expressão de dualidade. Definitivamente colocaria o Lisp (Common Lisp) mais alguns passos na direção do FP do que o Javascript ou o Python. Com isso, não quero dizer que o Common Lisp seja uma linguagem puramente funcional; concordo que seja multiparadigma, mas suporta FP muito melhor que outras linguagens multiparadigma.
Giorgio

1

Parece que mesmo o CL não possui um suporte de biblioteca muito bom. Pelo menos de acordo com as pessoas que mudaram de Lisp para Python:

http://www.redmountainsw.com/wordpress/archives/reddit-switches-from-lisp-to-python

Pessoalmente, conheço algum esquema e gosto de brincar com ele, mas não consigo imaginar fazer um projeto não trivial nesse idioma.


2
Isso não é mais verdade. O Quicklisp resolveu esse problema.

2
Também vale mencionar que, com o CFFI, qualquer biblioteca C pode ser usada no Common Lisp. O CFFI está bem documentado e funciona bem. Por outro lado, se passar algumas horas escrevendo wrappers para funções C tem um grande impacto em seu projeto, o Lisp provavelmente não é a escolha certa para ele.
Larry Coleman

Eu fiz um projeto não trivial no Scheme e conheço uma empresa que usa o Scheme (Chicken Scheme) para vários produtos.
Giorgio

1

Ser poderoso não implica necessariamente uso generalizado. Você já ouviu falar do termo "Otimizar para o caso comum"? Infelizmente, como muitos disseram antes da mediocridade, se a garantia consistente é muito melhor para as pessoas do que grandes sucessos, com muitas falhas entre elas.

Este não é apenas o caso do lisp, mas de muitas tecnologias. Um bom toque nas ferramentas de processamento de texto Unix, awk, sed, perl, pode economizar dias de programação. Infelizmente, tenho visto pessoas que demoram dias realizando mal esse tipo de tarefa em outras ferramentas, o que poderia ter feito com essas ferramentas de maneira mais eficiente em minutos. Mas se alguém passa a vida inteira em eclipse, nunca chegará a apreciar o valor dessas coisas. Você pode escrever um programa enorme com legibilidade, facilidade de manutenção e tudo mais, mas qual é o objetivo de escrever um programa sem escrever, poderia ter feito o trabalho facilmente.

Outro aspecto ao projetar ferramentas hoje em dia é útil, pois elas são prontas para usá-las diretamente na solução de um problema. Você não pode criar algo muito genérico e, em seguida, dizer que irá proteger tudo isso por meio de bibliotecas e estruturas. É um pouco difícil resolver as coisas dessa maneira. Uma boa ferramenta combina bem com o ambiente e com os problemas ao seu redor. É por isso que ferramentas como php, perl e awk continuam a ser relevantes, apesar de intermináveis ​​trollagens e ataques, porque são úteis demais para jogá-las fora e geralmente fazem muito trabalho do que uma linguagem geral com muitas bibliotecas e estruturas ativadas.

Da mesma forma, você verá que linguagens como Java / Python são muito boas e eu diria o melhor para determinadas tarefas. O Python é especialmente bom e fácil de aprender e escrever. Além disso, esses idiomas são realmente bons se os pontos finais de dados forem padrão. Algum tipo de banco de dados ou XML ou dados desse tipo. Dados basicamente estruturados.

O Lisp estará lá por muito tempo, mas não necessariamente generalizado. Como você verá, cada ferramenta tem seu nicho. E eles resolvem certos problemas muito bem fora da caixa. Penso e tenho certeza que o lisp está se saindo bem em áreas e problemas para os quais foi projetado para resolver bem.


+1 por citar o princípio "Otimizar para o caso comum".
Giorgio

Sim, mas o fechamento do LISP é uma otimização para o caso comum de objetos. Também queria saber se alguém faz alterações em sua base de código LISP, tratando-a como uma árvore e executando consultas como o JQuery para HTML.
aoeu256 2/07

1

Para o desenvolvimento da Web com dialetos Lisp, pode haver um problema de galinha e ovo - porque poucas pessoas usam o Lisp, os hosts não o permitem ou não o facilitam, e porque não é fácil, poucas pessoas use-o. Mas, na verdade, colocar o Lisp em execução em um host pode ser mais fácil do que você imagina, mesmo que exija um pouco mais de trabalho do que o serviço PHP pronto para uso. Recentemente, recebi aplicativos do Scheme guile trabalhando aqui com apenas um pequeno esforço.


0

Na IMO, é principalmente uma questão de tempo ruim: o Lisp era velho (e quase por definição não é mais empolgante) muito antes de se tornar prático para a maioria das pessoas ou usos. Clojure (por exemplo) tem uma chance muito melhor. Seu sucesso dependerá muito mais de ser percebido como novo, elegante e legal do que qualquer coisa tão prática quanto a interoperação com Java (e tudo o mais que é executado na JVM).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.