Lançado JRuby 1.1

Olá

O JRuby é uma implementação de Ruby feita 100% em Java.

Ruby, para quem ainda não conhece, é uma linguagem interpretada MUITO mais poderosa do que o Java. Os comandos mais poderosos do Ruby permitem escrever programas com um número muito menor de linhas sem que fique difícil de ler.

Parafraseando o Pat Eyler na apresentação do livro do Ola Bini sobre JRuby, digo que JRuby não é tão gostoso quanto chocolate Diamante Negro, mas com certeza merece sua atenção. No prefácio do mesmo livro, o Martin Fowler diz que o JRuby é importante para a comunidade Java, porque oferece a chance de experimentar uma linguagem poderosa e um framework igualmente poderoso, enquanto ainda usufrui das vantagens das inúmeras excelentes bibliotecas disponíveis para Java e também poder trabalhar tanto em Ruby como em Java.

O principal objetivo da versão 1.1 foi a melhoria na performance mas há outras novidades:

  • Compilação de Ruby para Java Bytecode (modos AOT e JIT)
  • Biblioteca Oniguruma (para regex) portada para Java (muito mais rápida do que a do JRuby 1.0)
  • Refatorada a implementação de IO
  • Melhoria no consumo de memória

Homepage: http://www.jruby.org/
Download: http://dist.codehaus.org/jruby/

[]s
Luca

Olá Luca.
Realmente trabalhar com ruby é muito bom, e usar a implementação do JRuby também é uma execelente escolha, comentamos bastante sobre essa nova linguagem e os seus beneficios.
Porem o meu conhecimento sobre Ruby é limitado, você poderia citar casos onde isso ocorra: linguagem interpretada MUITO mais poderosa do que o Java. Os comandos mais poderosos do Ruby permitem escrever programas com um número muito menor de linhas
O que vem a ser mais poderoso :?:

No site Ruby Brasil tem uma matéria falando do JRuby: http://ruby-br.org/?p=179

Um trecho da matéria diz: “A idéia é tão boa, que o Charles Nutter, criador e desenvolvedor do JRuby, foi contratado pela Sun para dedicar-se integralmente ao projeto.”

O site tem várias matérias e tal… vale a pena a consulta, por todos os interessados na lei do menor esforço :smiley:

Olá

[quote=ronildobraga]você poderia citar casos onde isso ocorra: linguagem interpretada MUITO mais poderosa do que o Java. Os comandos mais poderosos do Ruby permitem escrever programas com um número muito menor de linhas
O que vem a ser mais poderoso :?:[/quote]

O melhor que posso dizer é: Experimenta!

Qualquer programa escrito em Ruby tem muito menos linhas do que um similar em Java. O principal motivo é que em Ruby, muitas vezes, se pode fazer em uma ou duas linhas, o que em Java às vezes é necessário mais de 20. E não estou considerando a supressão de {}s ou pontos e vírgulas. Acho que isto é a primeira coisa que a gente percebe ao aprender Ruby.

Tentando exemplificar sobre o que me refiro ao poder da linguagem e sua API, cito também o Scala. Scala gera bytecodes Java mas rambém é uma linguagem muito mais poderosa que permite escrever os mesmos programas escritos em Java com muito menos comandos.

Ficou claro que o que chamei de poder da linguagem e de sua API é propiciar fazer as mesmas coisas gastando menos tempo e energia?

[]s
Luca

Sim, entendi.
Eu perguntei porque não concordo com a sua opinião.
Guando eu melhorar os meus conhecimentos sobre ruby, talvez eu entenda melhor a sua opinião.

Acho a notícia ótima. Mas, infelizmente, continuo achando o Rails sobre ele lento. Uma pena. Mas pelo que estou vendo, eles agora estão correndo atrás desse quesito, porém, ainda deixa muito a desejar.
Para outras coisas, já melhorou demais. Vale a pena usar essa versão, com certeza.

Bons códigos a todos

Pelo fato do codigo ser pequeno nao significa ser mais rapido e tao pouco
legivel em alguns casos, principalmente em grandes projetos.

Olá

Certo, principalmente para quem esquece de que Ruby é uma linguagem interpretada.

Mas há também muitas coisas que podem e devem ser feitas para que o site não fique lento. O Stuart Halloway, javeiro de primeira hora e atualmente rubista, costuma dizer que até hoje ainda não viu um projeto em que a lentidão do ruby atrapalhe o negócio. Isto é verdade desde que o programador escreva o código lembrando SEMPRE que a linguagem é interpretada (*) e que tome algumas medidas a mais no site do que simplesmente usar o webrick como se usa em desenvolvimento. O google está cheio de recomendações sobre como evitar que um site usando Rails fique lento.

(*) há trechos de código em versões antigas do Rails em que isto foi um tanto esquecido como aponta Stefen Kaes no livro Writing Efficient Ruby Code.

O Java também pode ser muito lento quando usado por programadores descuidados. Um exemplo clássico é a ignorância generalizada sobre as classe do java.nio e o tanto de gente que teima em não usar.

[]s
Luca

Mais isso não muda o fato de ser lento. Ainda que tenhamos a possibilidade de acessar bibliotecas Java, se a pessoa for utilizar apenas Rails para criar novas aplicações, não há vantagem em cima do JRuby. É isso que eu quis dizer :smiley: .

[quote=j-menezes]Pelo fato do codigo ser pequeno nao significa ser mais rapido e tao pouco
legivel em alguns casos, principalmente em grandes projetos.
[/quote]
Em um projeto grande, com um grande número de pessoas, ainda não vejo como Ruby pode ajudar. Além do mais, nunca devemos esquecer que os holofotes se voltaram para Ruby devido ao Rails. Sem Rails, Ruby é uma linguagem como tantas outras que existem. Aliás, ainda que goste do Rails, sem esse framework, continuaria trabalhando com Python como sempre fiz.

Que mal lhe pergunte, o que é que uma linguagem em específico tem haver com o número de pessoas em um projeto?

Ter muitas mãos mexendo no mesmo código é ruim independente da linguagem ou da ferramenta que você escolher e é uma falha de gerência de projeto abominável.

bacana o lançamento… mas será quanto tempo vai levar pra ganhar mercado :?: digo do sentido de ver oportunidade de empregos pedindo tal, será que demora :?:

Que mal lhe pergunte, o que é que uma linguagem em específico tem haver com o número de pessoas em um projeto?

Ter muitas mãos mexendo no mesmo código é ruim independente da linguagem ou da ferramenta que você escolher e é uma falha de gerência de projeto abominável.[/quote]

Nem sempre, como no caso do Ruby, quando uma variável é declarada com o mesmo nome e tipo em outro lugar, não sendo de escopo local, como você faz. Desculpe a ignorância, mas nunca trabalhei com Ruby on Rails com equipe maior que 5 pessoas. Em java as equipes são bem, mas bem maiores, nem tem comparação.

Em outro lugar não sendo de escopo local? No escopo do que? De uma closure? Uma variável declarada em um método só existe dentro de um método e uma variável declarada dentro de uma closure só existe dentro de uma closure. Não entendi o seu ponto.

Você já trabalhou profissionalmente com Rails?

E isso é bom? Mais uma vez, equipes grandes demais mexendo num mesmo “módulo” é sinal de falta de competência dos gerentes.

[quote=Luca]Olá
é uma linguagem interpretada MUITO mais poderosa do que o Java.
[/quote]

huummm, não diria “MUITO mais poderosa do que o Java” e sim “Uma sintaxe mais facil doque o java”, já que o poder da linguagem vem de quem a usa, independe da linguagem.

Ai concordo :lol:

abraços!

Ohhhh…“MUITO mais poderosa do que o Java” … Acho que cada linguagem tem seus prós e contras… acho que não tem uma “MUITO mais poderosa”… quem acha isso, por que não formam uma comunidade do JRuby ou Ruby que seja … ou se já existe postem estas “frases” lá… Me desculpem pela maneira com que escrevi …mas as vezes não me conformo com certas afirmações …

Olá

Um exemplo de como uma linguagem pode ser mais poderosa do que outra dentro do contexto do que eu escrevi, isto é, como uma linguagem pode ter modos de fazer as coisas usando muito menos comandos

Java

[code]import java.util.Map;

public class PrintEnv {
public static void main(String[] args) {
for (Map.Entry entry: System.getenv().entrySet()) {
System.out.println(
String.format("%s : %s", entry.getKey(), entry.getValue()));
}
}
}[/code]

Ruby

Quando se estuda Ruby aparece um monte de exemplos como este. E é neste aspecto que escrevi que uma linguagem mais poderosa pode fazer as mesmas coisas com menos comandos.

E para você Leopoldo, que entrou no GUJ no dia 7 do mês passado, primeiro seja bem vindo. Segundo digo que aqui no GUJ a gente tem discutido e comparado outras linguagens desde a fundação do GUJ. Muita gente aqui usa no dia a dia outras linguagens. E muita gente aqui acha muito bom um programador que procura aprender outras linguagens. Tanto isto é verdade que criamos um forum só para isto. Porém notícias devem ser postadas aqui mesmo.

[]s
Luca

Ok, ok… mais uma vez peço desculpas pela maneira como me espressei, é que não acho válido dizer que uma liguagem é melhor que a outra, mas se comparar dentro do contexto de codificação, até concordo. Mas analisando de um ponto de vista maior, é como disse, cada linguagem tem seus prós e contras.

Quanto ao tempo de meu cadastro… não me cadastrei no mês passado, faz quase um ano, não sei porque tá aparecendo isso… de um dia pro outro as minhas mensagens zeraram e data de cadastro tbm… Mesmo assim isso não significa que eu entenda ou não de java pelo tempo de cadastro, pois posso estar trabalhando com java a 5 ou seis anos e ter me cadastrado somente o mes passado, se for o caso

Mas não quero prolongar discuções… analisando melhor, acho viável e útil a discução sobre outras linguagens. Apenas não concordei com a frase.“Muito mais poderosa”… mas como você disse… “Dentro de um contexto”… aí é válido…

Valeu…

Sinceramente, não dou créditos ao Ruby por causa desse mau exemplo.

Ruby tem sim muitos beneficios, por exemplo o active record, e quando se usa o rails na fabricação do software, ae a diversão fica ainda melhor, pois tem conceito de convenção ao invés de configuração, ou seja, muita coisa ja vem pronta por convenção e não precisamos ficar configurando.

Mas dizer que Ruby é melhor porque a sua sintaxe é mais clean, eu não acho muito coerente, pois os meus problemas de software nunca estão relacionados a sintaxe da linguagem.
Apesar de eu ainda não ter usufruido muito da sintaxe Ruby, eu acho que entendo o seu ponto de vista Luca, realmente uma sintaxe mais clean ajuda, mais este é o menor dos meus problemas.

Olá

Sem polemizar mais do que já polemizei, não me lembro de ter escrito que Ruby é melhor ou que Java seja melhor. Apenas me lembro de ter escrito que Ruby é uma linguagem cujos comandos são mais poderosos do que Java assim como os comandos Scala também tem mais poder do que os de Java.

Uso Fortran até hoje e onde eu uso, Fortran é melhor do que Java. Mas os comandos de Fortran, mesmo no Fortran 95, são menos poderosos do que a maioria das linguagens que já usei à exceção de Assembler. Não usaria Fortran em 99,999% dos casos de uso normais do dia a dia.

Alguém aqui falou em Phyton. Só de lembrar que o YouTube foi feito com Phyton já fica claro para mim que Phyton pode ser uma ótima opção quando se tem liberdade de escolha.

Uma das vantagens do JRuby é propiciar aproveitar parte do legado do Java. Nisto Scala é melhor ainda. Mas Scala não dispõe de um framework MVC tão ágil como o Rails ou mesmo o Merb.

Esta notícia serve para aqueles que quiserem experimentar JRuby ou para aqueles que já usam.

[]s
Luca