Estou pensando em começar a estudar JRuby… será que ainda é uma boa opção para desenvolvimento, ou foi uma moda momentânea? Um tempo atrás eu ouvia falar muito mais sobre isso…
Existe algum bom curso em português?
JRuby ainda é uma boa opção?
14 Respostas
Qual seu objetivo com o JRuby? Se eu fosse estudar alguma linguagem dinâmica que rode em cima da JVM, estudaria escala.
Não sei como anda a indústria, mas o Ruby deu uma baita de uma esfriada mesmo.
Estuda JavaScript ou algum frameword JavaScript se seu fóco for Web. Acho que vale mais a pena.
[]'s
Acho que vou estudar esse framework Play (Scala/Java):
http://www.playframework.org
Pareceu interessante…
Interessante como Ruby chegou forte, foi visto até como sucessor do Java e esfriou rápido. Dá pra refletir bem sobre o quanto é dinâmica e imprevisível nossa área.
O pessoal chegou fazendo “CRUD"zinho com Ruby e viu como era simples em relação ao Java, começaram a fazer sistemas médio e perceberam que era rápido o desenvolvimento, a equipe foi crescente e começaram a 'rotatividade” de programador… ai sim que o bixo pegou … ao contrario do java,é muito dificil dar manutenção em programas grande feitos em ruby e logo de cara a comunidade começou ver os ponto fraco do mesmo…
pois antes ruby era usado em projetos de pequeno/medio porte e quando começaram a expandir , logo de cara viram que não era aquela maravilha toda
O pessoal chegou fazendo “CRUD"zinho com Ruby e viu como era simples em relação ao Java, começaram a fazer sistemas médio e perceberam que era rápido o desenvolvimento, a equipe foi crescente e começaram a 'rotatividade” de programador… ai sim que o bixo pegou … ao contrario do java,é muito dificil dar manutenção em programas grande feitos em ruby e logo de cara a comunidade começou ver os ponto fraco do mesmo…pois antes ruby era usado em projetos de pequeno/medio porte e quando começaram a expandir , logo de cara viram que não era aquela maravilha toda
[citation needed]
Roger75 não sei quais são os seus propósitos em aprender outras linguagem, mas penso assim:
JRuby tem vários fatores positivos para qualquer desenvolvedor que queira aprender mais sobre a linguagem Ruby, Java e a própria JVM.
A implementação do JRuby https://github.com/jruby/jruby tem um código muito bem escrito e é realmente fascinante o quanto
você aprende de Java programando em cima do JRuby e isso sem contar a grande vantagem de se aprender uma linguagem orientada a objetos,
funcional e dinâmica como Ruby.
Scala também é uma ótima opção, procure ver o que te agrada mais.
Abs.
para aplicações corporativas, scala tem mercado ?
dei uma olhada nesse código do blog(www.urubatan.com.br):
def whileLoop(cond: => Boolean)(body: => Unit): Unit = {
if (cond) {
body
whileLoop(cond)(body)
}
}
var i = 10
whileLoop (i > 0) {
println(i)
i -= 1
}
o código faz um re-make do classico while que conhecemos
teria algum motivo especial para ser usado scala ao invés de java no mundo corporativo?
se sim, qual seria a aplicação da linguagem no qual java não daria conta.
pois me parece muito pouco produtivo…(primeira vez vejo codigo scala)
Dinâmica sim, imprevisivel não. 
O ruby nunca chegou forte. Quem chegou forte foi o Rails. É diferente. Ai quem gostou da linguagem tentou vender a ideia que Ruby era mais que Rails. Ok. Mas então cadê as outras coisas que são “mais que rails” ? Por outro lado, quem usou rails (ex: twiter) saiu para Java ( e scala) .
A moral é que Ruby era só Rails.
O pessoal não quer apenas rails. Quer escalabilidade e um monte de outras coisas. A rapidez em por a aplicação no ar é balancea pelo tempo que ela fica no ar. Scala trouxe Actors e Actors trazem escalbilidade. Então o pessoal mudou.
A VM do Ruby têm vários defeitos de design que o Java não tem (por exemplo, processamento de UTF-8). Ok, isso foi corrigido depois. Mas apenas depois. A JVM tem isso desde sempre.
Não nos vamos enganar a JVM é a VM mais sofisticada que existe. Não é por acaso nem imprevisivel que todos venham para a JVM. O JRuby não é bem igual ao Scala. Em scala não ha VM de Scala. É tudo Java normal. O truque está no compilador, não no runtime. Ruby está no runtime. Logo, é mais complexo. Mesmo com os updates do java 7 e o novo bytecode de invocação de métodos o JRuby já perdeu a corrida.
Só que agora vem ai o Java 8. Depois do Java 8 temos um novo mundo, tal como depois do Java 5. Ruby é cada vez menos importante neste cenário.
Rails sim. Esse ainda pode ser importante, mas o Grails o Spring Roo e outros estão ai para o destronar. E vamos lá, o Rails não passa de um Maker em Ruby :twisted:
Eu quero ver gente falando aqui de experiencias com ruby fazendo sistema dos zero. Isso sim é relevante à força da linguagem. Se todo o mundo só sabe usar ruby com rails, então, nem sequer ha argumentos.
É sempre bom aprender outros paradigmas. Selecione a linguagem que você gosta mais.
Apesar do hype do Scala, eu não consigo imaginar aquela complexidade toda sendo popular entre desenvolvedores Java: http://www.artima.com/weblogs/viewpost.jsp?thread=339521
Atualmente estou utilizando bastante Groovy, especialmente o framework Grails (uma cópia do Rails), e acho muito bom e simples. É melhor do que Javascript, mais fácil do que Scala e mais rápido para desenvolver do que Java.
para aplicações corporativas, scala tem mercado ?dei uma olhada nesse código do blog(www.urubatan.com.br):
def whileLoop(cond: => Boolean)(body: => Unit): Unit = { if (cond) { body whileLoop(cond)(body) } } var i = 10 whileLoop (i > 0) { println(i) i -= 1 }o código faz um re-make do classico while que conhecemos
teria algum motivo especial para ser usado scala ao invés de java no mundo corporativo?
se sim, qual seria a aplicação da linguagem no qual java não daria conta.pois me parece muito pouco produtivo…(primeira vez vejo codigo scala)
Calma la, tu pegou um exemplo de um contexto mostrando outro apecto da linguagem, scala tem while normal, neste caso ai ele estava explicando outra coisa(closures) e para tal re-criou o while como exemplo, não que tu tenha que ficar fazendo isto.
E na verdade dizem que scala é muito mais produtivo, pois é muito mais expressiva, voce precisa de muito menos linhas de código, dizem que a economia de linhas relação a java é de no minimo 5x1 dai pra mais.
Em scala, quando a pessoa estiver programando o mais funcional possivel(que é o recomendado) dificilmente tu vai usar while e for convencionais como em java.
olha este código por exemplo
scala> val a = "frederico"
a: java.lang.String = frederico
scala> a.foreach(println)
f
r
e
d
e
r
i
c
o
// ou melhor ainda, tu pode fazer isto aqui dependendo do metodo, caso ele rebeba apenas um parametro:
scala> a foreach println
f
r
e
d
e
r
i
c
o
para aplicações corporativas, scala tem mercado ?dei uma olhada nesse código do blog(www.urubatan.com.br):
def whileLoop(cond: => Boolean)(body: => Unit): Unit = { if (cond) { body whileLoop(cond)(body) } } var i = 10 whileLoop (i > 0) { println(i) i -= 1 }o código faz um re-make do classico while que conhecemos
teria algum motivo especial para ser usado scala ao invés de java no mundo corporativo?
se sim, qual seria a aplicação da linguagem no qual java não daria conta.pois me parece muito pouco produtivo…(primeira vez vejo codigo scala)
Calma la, tu pegou um exemplo de um contexto mostrando outro apecto da linguagem, scala tem while normal, neste caso ai ele estava explicando outra coisa(closures) e para tal re-criou o while como exemplo, não que tu tenha que ficar fazendo isto.
E na verdade dizem que scala é muito mais produtivo, pois é muito mais expressiva, voce precisa de muito menos linhas de código, dizem que a economia de linhas relação a java é de no minimo 5x1 dai pra mais.
Em scala, quando a pessoa estiver programando o mais funcional possivel(que é o recomendado) dificilmente tu vai usar while e for convencionais como em java.
olha este código por exemploscala> val a = "frederico" a: java.lang.String = frederico scala> a.foreach(println) f r e d e r i c o // ou melhor ainda, tu pode fazer isto aqui dependendo do metodo, caso ele rebeba apenas um parametro: scala> a foreach println f r e d e r i c o
Mas a programação funcional sempre foi possivel em Java. Sim é um pouco feito, mas é perfeitamente possivel. Scala apenas adiciona açucar sintatico nesse aspeto. O Java 8 vai resolver este problema fazendo com que functors sejam objetos de primeira classe.
A diferença entre Scala e Java que importa não é na linguagem. Esse tipo de diferença é irrelevante. Sempre foi. É como comparar C# e java pela linguagem ou C++ e java pela linguagem. Não faz sentido.
O que marca a diferença são os construtos. Os conceitos envolvidos. Por exemplo, C++ é diferente de java porque java embute o conceito de thread e C++ não. Porque java embute o conceito de Garbage Collector e C++ não. Etc… é possivel criar GC em C++ ? claro. E possivel usar threads em C++? claro. O proprio java é escrito em C++. O ponto é que a linguagem não tem suporte nativo - não vem pronto de fábrica.
O scala tem funcionalidades prontas de fábrica que o tornam especial. Uma delas é o mixin. Não existe em java nativo. Obviamente é possivel criar algo parecido usando API ( com bytecode rewrite) mas a linguagem nunca oferecerá suporte para isso como scala.
Scala oference singleton nativo. Em scala vc pode declarar algo como Object em vez de Class e isso signfica que está sendo definido um singleton.
Além disso temos a API. Um grande diferenciar do java vs outras linguagens do passado era a vasta biblioteca que permitia fazer tudo. Scala vem com algumas API que não existem em outras linguagens e só existem em scala porque é mais facil com os construtos que tem. A API de Actors é bastante citada e normalmente é a razão de porque o scala foi escolhido. Como o ruby era escolhido pelo rails e o java é escolhido por ser multiplataforma.
Não é a linguagem que faz a diferença, é o que ela permite construir que os outros não permitem. Por exemplo Kotlin é como java mas força regra anti null pointer. Nesta linguagem é impossivel dar null pointer. Ceylon, por exemplo trás o quê de novidade ? Uma tipagem melhor, mais rica ? … isso pode não ser suficiente.
Se estamos discutindo quantas linhas a linguagem A pede em relação a B, não estamos dicutindo o que interessa.
Mudando levemente o foco…
Achei interessantíssima essa discussão, e gostaria de saber o que vocês pensam sobre Python e seu uso no mercado atual…
Estou (re)começando a estudar Python e inclusive tenho pensado no uso dele (ou C++) no TCC (ciência da computação), pois é uma linguagem muito interessante pra área científica.
Python ainda usado, gosto bastante, principalmente para automatizar alguns processos manuais.
Acho a sintaxe facil de aprender, mas há algumas questões que deixa a linguagem um pouco “tecnica”, tipo os metodos pre-definidos ex: CALL , init .
Se a empresa que voce trabalha usa produtos Oracle, python da uma força grande com o WLST