Pergunta

O que Mirah Language Oferta sobre Jruby, Groovy e Scala?

Foi útil?

Solução

De acordo com uma entrevista com o criador de Mirah O ponto de Mirah (que significa "rubi" em javanês) é criar uma variante de alto desempenho do rubi. Chega de sintaxe do tipo Ruby para tornar confortável trabalhar, mas ainda perto o suficiente para a semântica Java e JVM, para que possa funcionar sem a sobrecarga de uma grande camada de tempo de execução no topo da JVM.

Citação de escolha:

Grande parte do benefício de Mirah em línguas semelhantes se resume a ser tão leve. Em Groovy, Scala, Jruby, Clojure ou Jython, no minuto em que você escreve "Hello, World", você se encorreou em uma biblioteca de tempo de execução. Em Mirah, "Hello, World" é tão conciso quanto em Jruby, mas tem o benefício adicional de não impedir nenhuma dependência de você; O arquivo de origem entra, o arquivo de classe sai e é isso. Acredito que a JVM precisa de uma nova linguagem sem dependência, e Mirah é minha tentativa de entregar uma.

Enquanto o desempenho de Jruby rivaliza ou excede outros intérpretes do Ruby, o código Jruby mais rápido ainda fica puro de desempenho Java por uma ordem de magnitude. Embora você possa esperar que o desempenho do Jruby melhore com a versão 1.6, Mirah é uma tentativa de romper o teto de desempenho e fornecer uma opção para programadores que procuram velocidades de execução em pé de igualdade com o código Java.

Outras dicas

Ao contrário dos idiomas completos, que vêm com suas próprias bibliotecas, Mirrah é mais como um "front-end" diferente das bibliotecas Java.

O Código Mirrah não depende do seu próprio ambiente (exceto o compilador Mirrah no momento da compilação).

Esse é o principal benefício: uma sintaxe diferente para Java.

vs. groovy

  • Sintaxe mais familiar aos programadores Ruby/Jruby existentes
  • Estaticamente digitado

vs. Jruby

  • Estaticamente digitado

vs. scala

  • Sintaxe mais familiar aos programadores Ruby/Jruby existentes

As principais vantagens são a digitação estática (desempenho mais rápido na JVM e interagir muito mais fácil com as bibliotecas Java existentes) e uma sintaxe familiar (Se você vier de Ruby).

Quando as dependências são uma consideração (Desenvolvendo um aplicativo Android, por exemplo) Então você não deve deixar isso guiar sua escolha de idioma. O uso de uma ferramenta como o ProGuard nivelará o campo de jogo.

Se você vem de Ruby, Mirah é uma boa escolha. Se você vem de Erlang ou Haskell, então você quer o Scala. Se você é um lis mais, você vai querer dar uma olhada no Clojure.

Se sua única experiência anterior é Java, vergonha para você! - E você provavelmente deve ir para Scala - está rapidamente ganhando reputação como o herdeiro aparente para o Java, o suporte da ferramenta é atualmente mais forte e você estará em uma grande comunidade de outras pessoas que fizeram a mesma transição, então há muitos blogs/ tutoriais já disponíveis.

e groovy? Groovy quase nunca é a escolha certa hoje em dia ...

Eu uso Mirah todos os dias no Google AppEngine.

Aqui estão minhas razões para usar Mirah:

  • Nenhuma biblioteca de tempo de execução
  • Sintaxe muito boa
  • tão rápido quanto java

Ter java sob o capô também é muito útil:

  • Solidário sólido
  • bem documentado
  • soluções conhecidas para problemas comuns

Eu fiz alguns groovy, muito Jruby e nenhum de Scala. Se você conhece isso, tente Mirah. Caso contrário, eu iria com Jruby.

Mirah é apenas mais uma sintaxe de rubi para Java. IMHO não é nada bom. Não sabe nada sobre genéricos e também tem ferramentas ruins. Melhor experimentar o Ceilão, Xtend, Scala, Kotlin etc.
Mirah compila com as aulas de Java (não fontes mais). O XTEND compila com fontes Java e mais simples para descobrir o que faz sob o capô. O Ceilão e o Scala têm seus próprios stdlibs (no entanto, o Java Interop está perto de aperfeiçoar em ambos), não tenho certeza sobre Kotlin. Kotlin é o filho de Jetbrains e, portanto, ligado à idéia.
Jruby eu também não gosto. Tem muitos bugs na interop Java. E também tem muitas rodas reinventadas. Quero dizer, codificações (não usa cordas e regexes Java, mas strings personalizados em cima de buffers de bytes crus), iOS, manuseio de exceções, fios etc.
A única vantagem de Jruby é que é Ruby. Muitos código Ruby funcionarão como está.
O Groovy Otoh não reinventa a roda, ele usa bibliotecas Java bem testadas e apenas adiciona açúcar de sintaxe também. Também a interopagem Groovy-Java é ótima. Pode genéricos. Tópicos, exceções, cordas, coleções - são apenas aulas de Java, como estão em Java.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top