Qual linguagem para JVM?

Bom dia,

Qual você prefere ? outra ?

* AspectJ
* Clojure
* Duby
* Fantom
* Groovy
* Ioke
* Jaskell
* JavaFX Script
* JRuby
* Jython
* Noop
* Rhino
* Scala

http://www.developpez.net/forums/d894018/java/general-java/langage/langage-jvm-promis-bel-avenir/

Abraços

Scala tem boa performance mas é estatica e por isso não é muito apropriada para desenvolvimento web.

JRuby ainda possui uma implementação muito pobre na JVM.

Groovy é boa para web mas assim como Ruby, não para aplicações que requer alta performance.

Para substituir Java como linguagem que é pau pra toda obra e desenvolver qualquer tipo de programa, Clojure sem dúvida. A comunidade esta crescendo bastante, assim como o suporte oferecido por IDEs.

http://clojure.org/

AspectJ

Groovy

  • JavaFX Script

vlw

[quote=mochuara]Scala tem boa performance mas é estatica e por isso não é muito apropriada para desenvolvimento web.

JRuby ainda possui uma implementação muito pobre na JVM.

Groovy é boa para web mas assim como Ruby, não para aplicações que requer alta performance.

Para substituir Java como linguagem que é pau pra toda obra e desenvolver qualquer tipo de programa, Clojure sem dúvida. A comunidade esta crescendo bastante, assim como o suporte oferecido por IDEs.

http://clojure.org/[/quote]

E porque estatica nao seria boa para web?? O que estatica tem haver com web ou qualquer outra coisa?

O fato é que ser estatica é exatamente um ponto defendido pelos criadores e adeptos.

nenhuma delas na minha opinião. Sobre performance, todas teriam a mesma, pois quem dita isso é a jvm.
Eu preferiria que a jvm suportasse c#. Acho uma linguagem muito boa. É só uma questão de opinião pessoal .

[quote=juliocbq]nenhuma delas na minha opinião. Sobre performance, todas teriam a mesma, pois quem dita isso é a jvm.
Eu preferiria que a jvm suportasse c#. Acho uma linguagem muito boa. É só uma questão de opinião pessoal . [/quote]

Não conheço muito C#… já trabalhei a muito tempo atrás com ela…

Tem uns recursos que realmente Java nao tem…

A unica coisa que nao gostei foi o padrao de nomeclatura… onde tudo era maiusculo…

[quote=juliocbq]nenhuma delas na minha opinião. Sobre performance, todas teriam a mesma, pois quem dita isso é a jvm.
Eu preferiria que a jvm suportasse c#. Acho uma linguagem muito boa. É só uma questão de opinião pessoal . [/quote]

Na verdade nao!! depende do compilador que fizerem. Por exemplo é fato que o JRuby é lento, e que o do Scala roda praticamente igual java na JVM!

Uma pergunta para os conhecedores de scalla…

Scalla suporta hot swap? Se alterar os métodos da classe por exemplo…

[quote=fredferrao][quote=juliocbq]nenhuma delas na minha opinião. Sobre performance, todas teriam a mesma, pois quem dita isso é a jvm.
Eu preferiria que a jvm suportasse c#. Acho uma linguagem muito boa. É só uma questão de opinião pessoal . [/quote]

Na verdade nao!! depende do compilador que fizerem. Por exemplo é fato que o JRuby é lento, e que o do Scala roda praticamente igual java na JVM![/quote]
JRuby é mais lento porque carrega mais dependencias na inicialização. Isso é perfeitamente visível usando um debugger. Depois que o hotspot compilou para código nativo, ele roda na mesma velocidade que java, ou qualquer outro código na jvm, porque são praticamente o mesmo código. Quem dita isso é o hotspot.

Scala parece ser bem interessante pra desenvolver pra web, usando o Lift. Dessas ‘novas’ linguagens que tem uma boa plataforma e suportam concorrência, Scala parace ser a mais pragmática pra mim, que desenvolvo pra web. Não acho que tenha muita coisa a ver a linguagem ser estática/dinâmica e a produtividade que ela te dá. A maioria do pessoal que critica linguagens estáticas dizendo que são verbosas e menos produtivas, falam isso porque as linguagens estáticas que conhecem tem sistemas de tipos pouco expressivos comparados a haskell, ml, ocaml.

Segundo o criador do Lift, que já trabalhou com Rails, Scala tem grande parte da flexibilidade do Ruby e ainda tem as vantagens que um bom sistema de tipos em uma linguagem estaticamente tipada pode trazer. Parece ser uma boa apsota pra quem quer sair do lugar comum e não quer ficar preso a uma linguagem que tem features interessantes, mas que não é muito pragmática.

JRuby =D

[quote=dlt]Scala parece ser bem interessante pra desenvolver pra web, usando o Lift. Dessas ‘novas’ linguagens que tem uma boa plataforma e suportam concorrência, Scala parace ser a mais pragmática pra mim, que desenvolvo pra web. Não acho que tenha muita coisa a ver a linguagem ser estática/dinâmica e a produtividade que ela te dá. A maioria do pessoal que critica linguagens estáticas dizendo que são verbosas e menos produtivas, falam isso porque as linguagens estáticas que conhecem tem sistemas de tipos pouco expressivos comparados a haskell, ml, ocaml.

Segundo o criador do Lift, que já trabalhou com Rails, Scala tem grande parte da flexibilidade do Ruby e ainda tem as vantagens que um bom sistema de tipos em uma linguagem estaticamente tipada pode trazer. Parece ser uma boa apsota pra quem quer sair do lugar comum e não quer ficar preso a uma linguagem que tem features interessantes, mas que não é muito pragmática.[/quote]

O Alex Payne em seu livro tambem fala isto, ele fala que a verbosidade se da tambem pela falta de type inference, o que scala tem:

[quote=juliocbq][quote=fredferrao][quote=juliocbq]nenhuma delas na minha opinião. Sobre performance, todas teriam a mesma, pois quem dita isso é a jvm.
Eu preferiria que a jvm suportasse c#. Acho uma linguagem muito boa. É só uma questão de opinião pessoal . [/quote]

Na verdade nao!! depende do compilador que fizerem. Por exemplo é fato que o JRuby é lento, e que o do Scala roda praticamente igual java na JVM![/quote]
JRuby é mais lento porque carrega mais dependencias na inicialização. Isso é perfeitamente visível usando um debugger. Depois que o hotspot compilou para código nativo, ele roda na mesma velocidade que java, ou qualquer outro código na jvm, porque são praticamente o mesmo código. Quem dita isso é o hotspot.[/quote]

Bom eu não tenho muito know-how para discutir isto profundamente, mas seguindo tua logica todos os códigos feitos em C por exemplo rodariam na mesma velocidade. E onde fica a optimização??? Falei do compilador porque os caras podem ter feito um que gera um bytecode sofrivel, sem pensar na performance.

[quote=fredferrao][quote=mochuara]Scala tem boa performance mas é estatica e por isso não é muito apropriada para desenvolvimento web.

JRuby ainda possui uma implementação muito pobre na JVM.

Groovy é boa para web mas assim como Ruby, não para aplicações que requer alta performance.

Para substituir Java como linguagem que é pau pra toda obra e desenvolver qualquer tipo de programa, Clojure sem dúvida. A comunidade esta crescendo bastante, assim como o suporte oferecido por IDEs.

http://clojure.org/[/quote]

E porque estatica nao seria boa para web?? O que estatica tem haver com web ou qualquer outra coisa?

O fato é que ser estatica é exatamente um ponto defendido pelos criadores e adeptos.

[/quote]

Aplicações web costumam requerer 100% de disponibilidade, poder corrigir bugs sem precisar derrubar o servidor é um grande negócio. Em clojure voce poder conectar com um processo web e efetuar as alterações necessárias remotamente.

Acredito que isso possa ser feito em outras linguagens dinamicas, mas clojure é melhor projetada pra esse tipo de coisa. Como vc faria em Scala?

[quote=juliocbq][quote=fredferrao][quote=juliocbq]nenhuma delas na minha opinião. Sobre performance, todas teriam a mesma, pois quem dita isso é a jvm.
Eu preferiria que a jvm suportasse c#. Acho uma linguagem muito boa. É só uma questão de opinião pessoal . [/quote]

Na verdade nao!! depende do compilador que fizerem. Por exemplo é fato que o JRuby é lento, e que o do Scala roda praticamente igual java na JVM![/quote]
JRuby é mais lento porque carrega mais dependencias na inicialização. Isso é perfeitamente visível usando um debugger. Depois que o hotspot compilou para código nativo, ele roda na mesma velocidade que java, ou qualquer outro código na jvm, porque são praticamente o mesmo código. Quem dita isso é o hotspot.[/quote]

Ou seja, nem todas as linguagens na JVM tem a mesma performance, depende de como ela foi projetada. Se ela faz uso constante de reflection por exemplo, claro que sera mais lenta. Não fale besteira.

Você pode corrigir bugs de apps feitas em clojure sem sequer reinicializar o servidor?

[quote=dlt]Scala parece ser bem interessante pra desenvolver pra web, usando o Lift. Dessas ‘novas’ linguagens que tem uma boa plataforma e suportam concorrência, Scala parace ser a mais pragmática pra mim, que desenvolvo pra web. Não acho que tenha muita coisa a ver a linguagem ser estática/dinâmica e a produtividade que ela te dá. A maioria do pessoal que critica linguagens estáticas dizendo que são verbosas e menos produtivas, falam isso porque as linguagens estáticas que conhecem tem sistemas de tipos pouco expressivos comparados a haskell, ml, ocaml.

Segundo o criador do Lift, que já trabalhou com Rails, Scala tem grande parte da flexibilidade do Ruby e ainda tem as vantagens que um bom sistema de tipos em uma linguagem estaticamente tipada pode trazer. Parece ser uma boa apsota pra quem quer sair do lugar comum e não quer ficar preso a uma linguagem que tem features interessantes, mas que não é muito pragmática.[/quote]

Tenta fazer uma aplicação web usando lift e depois volta pra dizer pra gente quanto scala é pragmatica. :lol:

[quote=mochuara][quote=fredferrao][quote=mochuara]Scala tem boa performance mas é estatica e por isso não é muito apropriada para desenvolvimento web.

JRuby ainda possui uma implementação muito pobre na JVM.

Groovy é boa para web mas assim como Ruby, não para aplicações que requer alta performance.

Para substituir Java como linguagem que é pau pra toda obra e desenvolver qualquer tipo de programa, Clojure sem dúvida. A comunidade esta crescendo bastante, assim como o suporte oferecido por IDEs.

http://clojure.org/[/quote]

E porque estatica nao seria boa para web?? O que estatica tem haver com web ou qualquer outra coisa?

O fato é que ser estatica é exatamente um ponto defendido pelos criadores e adeptos.

[/quote]

Aplicações web costumam requerer 100% de disponibilidade, poder corrigir bugs sem precisar derrubar o servidor é um grande negócio. Em clojure voce poder conectar com um processo web e efetuar as alterações necessárias remotamente.

Acredito que isso possa ser feito em outras linguagens dinamicas, mas clojure é melhor projetada pra esse tipo de coisa. Como vc faria em Scala?

[/quote]

E eu sei la como eu faria? Faria como é feito hoje com 99% das aplicações web :lol: Bom eu nao sei se em Scala tem essa feature, ainda nem sai do primeiro capitulo do livro que peguei pra ler :oops: , Mas se esta falando de Hot Code Swapping, pelo que andei vendo aqui neste Scala x Erlang o erlang levou o ponto neste quesito, mas pelo que entedi o problema não é da linguagem em si, é a JVM que não tem muito suporte para isto, ou seja qualquer outra linguagem que estiver rodando na JVM estaria na mesma condição.

Ai ficam as perguntas:
1 - É sobre hot code swapping que estas falando?
2 - Clojure consegue fazer isto DENTRO da JVM? Pois a pergunta do post é sobre linguagem para a JVM.

Sim. Voce pode compilar codigo java em tempo de execução. Compilação AOT é permitido, mas não obrigatório.