E as tecnologias 'de outro mundo?'

Diria que metaprogramação em Java é impossível. Você precisa fazer gambiarras com frameworks horrorosos para conseguiar algo próximo.

Agora em uma linguagem baseada em S-expressions, onde o próprio código é uma árvore que pode ser inspecionada e modificada em tempo de execução, metaprogramação se torna muito melhor e mais fácill. É uma flexibilidade que não tem em Ruby ou outras linguagens.

Afinal, porque o pessoal foca tanto na linguagem Java para comparar com Ruby, Python e outros?
Pior, porque declarar Ruby e outros como “de outro mundo”?
De outro mundo é Java. Quem primeiro passou pelo mundo do desenvolvimento usando essas linguagens (como eu) e depois caiu no mundo Java, só Deus sabe como não há um dia que não seja chingada por ainda ser usada. Nem preciso declarar sobre os frameworks Java né? É motivo de piadas aos montes.
Não há remendo que melhore a linguagem Java. E duvido que a Sun venha a usar a linguagem Java nos próximos 5 anos.

Grandes companhias não são necessáriamente bom exemplo de tecnologias em que devemos investir.
Acho que as perguntas relevantes seriam : Quais empresas grandes apostam em RoR (não que usam, que apostam)
E quais empresas grandes apostam mais em RoR que em Java ou .NET ou outra. Alguma empresa por ai que tenha seu sistema central em Ruby ? E quantas em Java ou .NET ?

Sim o cara faz um site com RoR. Ele faz desktop tb ? (o Ruby usa qual tookit gráfico mesmo ? ) programas de alta demanda por transações? ambientes distribuidos ? ambientes embarcados ? … ou seja, quem aposta RoR ou mesmo Ruby sozinho para aplicaçãos empresariais que não sejam meros sites / CRM e afins ?

Qual é a diferença entre Grails e Rails com JRubi ? afinal corre tudo na mesma JVM para quê aprender uma nova sintaxe se tem o Grails com sintaxe java like.

Vamos lá, Rails não é tudo isso não… a ideia “fantástica” de usar ActiveRecord e outros artificio RAD já transpirou… já tem outros fazendo isso… o que justifica aprender uma nova linguagem ? e não me venham com essa de que se deve aprender uma linguagem por ano que isso é completamente idiota. Alguem que faça isso não conhece nenhuma linguagem em profundidade… fora que Java é uma plataforma, não uma linguagem.

RoR é um nicho, nada mais que isso. Assim como Spring, Grails, Seams e qualquer framework por ai… Já agora porque não aprendemos todos Lua e vamos fazer programas de e-comerce com ela ? Não, melhor ainda, porque não fazer sistemas de apoio à vida com javascript rodando no browser ? mais facil que C++ , não ?

Tookits gráficos?

Cocoa, Fox, GTK, Qt, Tk, WxRuby, além de bindings pra API do Windows. Ah, em Java você usa Swing né?

A mesma diferença entre um original e uma cópia xerocada, feita naquelas máquinas amareladas. E a sintaxe do Grails, bem, Grails não tem sintaxe, quem tem sintaxe é Groovy :slight_smile:

Vamos lá, esse foi provavelmente o comentário mais obtuso que você já fez aqui. Espero que quem esteja lendo essa thread ignore por completo essa sua afirmação e entenda que não se aprende outras linguagens pra se conhecer a fundo, mas para conhecer outras formas e outros paradigmas de se resolver os mesmos problemas.

[quote]
Minha decepção é em relação a mercado de trabalho, não com a tecnologia em si. Nunca vi projeto requisitar esta skill. Vou aprender isso pra que pra usar em casa? [/quote]

Não, vc não vai utilizar só em casa… o mercado para RoR é bem considerável nos EUA, e está aumentando no brasil…

Estou trabalhando somente com RoR faz uns dois meses via offshore e digo que estou feliz com meu trabalho atual…

Aprenda novas linguagens, evolua! be happy! :smiley:

Abraços

Tookits gráficos?

Cocoa, Fox, GTK, Qt, Tk, WxRuby, além de bindings pra API do Windows. Ah, em Java você usa Swing né?

A mesma diferença entre um original e uma cópia xerocada, feita naquelas máquinas amareladas. E a sintaxe do Grails, bem, Grails não tem sintaxe, quem tem sintaxe é Groovy :slight_smile:

[/quote]

É perfeitamente possível usar GTK+ e Qt com java, aliás, ambos toolkits possuem bindings oficiais para o java.

Quanto à comparação entre Grails e Rails, acho que foi equivocada. O Grails tem muito da filosofia do Rails, mas não tem nada de cópia. Não é um “port” do Rails para groovy. Pelo contrário, possui suas próprias tecnologias base (as mais conhecidas são Spring e Hibernate). Apenas para citar um exemplo, uma coisa que o Grails tem e que o Rails não é ORM de verdade, já que o Grails usa o Hibernate por baixo dos panos.

:smiley:

É galera, no Brasil eu não tenho visto muitas vagas para ruby não… Sabem me dizer como anda o salário? Maior que java?

Eu cheguei a brincar um pouco com o console do Ruby e só. Sempre ouço falar dele junto ao Rails, ou seja desenvolvimento de aplicações web. Fico curioso de como a tecnologia tem sido usada em outras áreas. Pessoal critica o swing mas sempre tem empresas utilizando, fora isso o web start é bem bacana, eu pelo menos gosto.

Rails tem ORM de verdade e se chama DataMapper, é melhor se informar um pouco mais antes de falar isso :slight_smile:

E Grails é tão “port” que o nome original era Groovy on Rails e as tecnologias base não tem nada haver com ser uma cópia ou não, afinal, elas são base, elas não aparecem dentro da aplicação.

[quote=lavh][quote=Sparcx86]
Já ouvi que no Java 7 haverá muita coisa parecida com ele logo pra que serve isso?
[/quote]

Você tem alguma fonte?

Provavelmente não, pq é impossível a linguagem Java ficar parecido com Ruby sem quebrar pelo menos 90% dos sistemas que existem hj![/quote]

cara não foi windows 7 ?

[quote=Mauricio Linhares]Rails tem ORM de verdade e se chama DataMapper, é melhor se informar um pouco mais antes de falar isso :slight_smile:

E Grails é tão “port” que o nome original era Groovy on Rails e as tecnologias base não tem nada haver com ser uma cópia ou não, afinal, elas são base, elas não aparecem dentro da aplicação.[/quote]

Bom, até há um tempo atrás tinha apenas o ActiveRecord. Não estou muito atualizado com o Rails. :oops:

E nomes parecidos não significa cópia de tecnologia. Já disse, o Grails não é um port, internamente faz as coisas bem diferentes do que o Rails.

Acho que você não entendeu, internamente não importa, o que importa é como ele faz do lado de fora.

De qualquer forma, não é uma questão de por ser uma cópia é ruim, mas se você puder usar o original sempre vai ser melhor. Além do mais, Rails tem uma comunidade bem maior e muito mais material, tanto de referência (ainda mais com os Rails Guides agora) como plugins e complementos.

Sim, não estou dizendo que o Grails é melhor do que o Rails, tanto porque o Grails é meio jovem ainda. Mas o Grails tem seus méritos sim. Um dos maiores desses é trazer mais agilidade para a plataforma java.

A questão é que, para o desenvolvedor java, a transição para Groovy/Grails é mais fácil do que para Ruby/Rails. O groovy tá bem legal, evoluindo bastante, inclusive na performance. Acho que é uma transição natural para o desenvolvedor java.

Não que eu acho ruby ruim, pelo contrário. Só acho mais fácil partir de java para groovy do que para ruby.

Acho que você não entendeu, internamente não importa, o que importa é como ele faz do lado de fora.

De qualquer forma, não é uma questão de por ser uma cópia é ruim, mas se você puder usar o original sempre vai ser melhor. Além do mais, Rails tem uma comunidade bem maior e muito mais material, tanto de referência (ainda mais com os Rails Guides agora) como plugins e complementos.[/quote]

Maurício, aqui vou descordar um pouco de você. Acredito que houve sim inspiração e cópia do raciocínio RoR para a escrita de um framework com a mesma ideologia. Daí pra frente o Grails possui uma estrutura de plugin muito bem pensada. Há também nativamente suporte ao ORM com uma camada de abstração interessante, GORM, que torna tão simples quanto o ActiveRecord realizar os mapeamentos.

Há um ponto extra que é a separação da camada business, por IoC com Spring. Faz uso do MVC do Spring que é bem parrudo e até um mês atrás RoR não era threadsafe.

O projeto de buscas Compass integrado à ferramenta, segurança ACEGI são outros exemplos de projetos consolidados que pode fazer uso de maneira simples, sem necessidade de ler documentação extensiva.

Roda melhor em cima da JVM, JRuby ainda tem muitos gargalos e li muitos blogs de problemas enfrentados pelo pessoal da TW+Oracle produzindo o OracleMix.

Com a compra do Grails pela SpringSource que está capitalizada com VC por trás, acredito que o projeto deve ganhar um outro grau de maturidade.

Bom sempre haverá quem preferia um ao outro, mas não acho que a comparação deve ser Cópia vs Imitação e sim tecnologias e o que cada um agrega, plugins, performance, facilidade de adoção pelas companhias e developers e por aí vai …

É uma alternativa ao mundo Ruby tangível e não de baixa qualidade como postou. Há quem prefira Ruby pela comunidade, p

Por falar nisso, o Fábio Akita tava falando que a nova caracterísitca de thread-safety do RoR só faz sentido se você usar JRuby. E ele postou também um outro link que dá mais informações sobre isso.

Vamos lá…

Containers de IoC não fazem muito sentido numa linguagem que não é estaticamente tipada, então não há motivos pra se preocupar com isso. O fato de ser threadsafe realmente era um problema, hoje não é mais :slight_smile:

Tenho usado Solr pra buscas e tem me servido muito bem, sobre segurança, bem, dizer que dá pra usar Acegi sem ler uma tuia de documentação é meio complicado né, o Acegi não é nem um pouco simples, se você vai mesmo usar o que ele oferece. De qualquer forma, existem diversas opções pra se fazer o mesmo com Ruby, na verdade, “inventar” a sua própria solução é extremamente simples devido a facilidade que você tem de alterar o programa em tempo de execução.

Eu, pessoalmente, não vi isso. Estamos nos preparando pra migrar tudo aqui pra rodar em JRuby e não tivemos problemas. E pela lista de discussão das JVMs o pessoal do JRuby parece estar bem mais avançado do que a galera do Groovy em termos de interpretador/compilador.

JRuby é bancado pela Sun e já é do interesse de muita gente grande que está interessado em fazer com que a coisa continue seguindo em frente (como Oracle e Thoughworks).

[quote=Kenobi]Bom sempre haverá quem preferia um ao outro, mas não acho que a comparação deve ser Cópia vs Imitação e sim tecnologias e o que cada um agrega, plugins, performance, facilidade de adoção pelas companhias e developers e por aí vai …

É uma alternativa ao mundo Ruby tangível e não de baixa qualidade como postou. Há quem prefira Ruby pela comunidade, p[/quote]

Eu, pessoalmente, ainda acho que Grails não está em condições de ser comparado com Rails, acho até uma sacanagem a galera continuar tentando colocar um de frente pro outro, já que a vantagem é clara pra Rails e todo o ecossistema que existe ao redor dele.

De qualquer forma, eu perdi o meu encanto por Groovy, antigamente eu achava a idéia de “ah, parece Java” interessante, depois de ver num projeto as pessoas escrevendo Java em Groovy eu percebi o mal que isso pode fazer. É muito mais fácil subverter as coisas e não usar nada da linguagem, já que ela foi feita pensando nisso, do que aproveitar o verdadeiro poder que ela oferece. Nisso eu acho que usar JRuby é sim uma grande vantagem, você vai ser levado a fazer as coisas de forma diferente, não vai ter a opção de não mudar.

Ficou complicado dar quotes, muitos encadeados risos, mas vamos lá :

1- IoC pode até não fazer sentido, mas o RoR não tem meios de separar a camada business de maneira elegante. Mesmo projetando em cima do seu model, como faz quando seu negócio faz uso de 2 ou 3 ? O que costumo ver é o pessoal poluindo a camada controller, ou separa por lib ? não gosto da abordagem.

2- Tem diversos projetinhos de busca para RoR, conheço outros também, mas o Compass está realmente um passo à frente e é um projeto muito performático. Quanto ao Acegi, realmente há necessidade de se ler para tirar melhor proveito, mas as funções básicas, consegue usar sem problemas com pouca leitura.

3- O próprio OláBini teve que corrigir - http://www.infoq.com/news/2007/11/oracle-mix-jruby-experiences , mas por mais performance que a JRuby tenha, é um interpretador em cima da JVM, não será mais rápido do que rodar nativamente.

4 - Particularmente acho que dá pra colocar sim, pois o Grails é uma casca feita em groovy (15%) o resto são projetos consagrados no meio java, como Hibernate, Compass-Lucene, Acegi, Spring e por aí vai, então começa a ficar interessante de se comprar uma série de questões, como colocar um ambiente de alta produtividade numa empresa que possui como padrão Java.

Realmente Groovy e Java se parecem e isso também é ruim, não gosto de ver projetos em groovy que o camada começa a escrever em java, nesse ponto mudar radicalmente como a sintaxe do Ruby é uma ótima.

Ah não! Muita idiotice pro meu gosto!

Vamos lá, o que tem a ver IoC com separação da camada “business”? É possível sim separar o model do controller! afinal, você não poderia devolver apenas um objeto que tem meios de trazer outro objeto, por exemplo?

Fazer cagada não tem nada a ver com framework usado.

Ainda existem áreas onde não há bibliotecas maduras pra Ruby, mas paciência. O jeito é fazer por conta própria a sua solução e liberá-lo open source. Quem tiver usando JRuby, pode muito bem usar Lucene, Compass, Acegi e o escambau. Não tem essa de “só o Groovy pode te oferecer”.

Esse texto tem um ano. De lá pra cá, novas versões do JRuby surgiram, onde uma é mais rápida que a anterior. E no fundo, não existem frameworks onde não tenha onde “corrigir”, os projetos open source são feitos iterativamente, não em cascata.

E o Rails é uma casca feita em Ruby, e daí? E o que é um “ambiente de alta produtividade”, afinal? Juro que não entendi.

Pra completar, esse negócio de usar Groovy e Grails é coisa de quem não quer sair do cercadinho do Java e nem pensar de um jeito diferente.

Nossa! Ruby também tem xiitas?!?!? :lol:

Estou engatinhando com Groovy e estou gostando! Pretendo fazer algum projeto em breve, se tiver interessados em criar algo na web por ai me mandem mp.

Sobre o mercado pra groovy/grails não vi nada ainda, tentei implantar um projeto com ROR quando estava são paulo, mas por preconceito meu diretor barrou!

Ah, e “sair do cercadinho do Java” implica em deixar muitas tecnologias e bibliotecas muito importantes que uso hoje. E sinceramente é um grande absurdo querer jogar todo isso no lixo. Um exemplo que eu lembro é uma implementação 100% java de SSH. O java tem mais de uma, e o ruby, possui?

O groovy é limitado a muitas coisas que a plataforma java tem, mas não por isso que ele tem que ser idêntico ao java. Se maus programadores o usam como se fosse java, a culpa é da linguagem? Ou dos programadores que o fazem? Quantos não programam proceduralmente em linguagens OO? Culpa da linguagem, que permite ser usada de forma procedural, ou do programador? Se o cara se informar minimamente sobre o groovy, vai fazer as coisas de forma diferente.

O ruby tem bastante recursos, mas o groovy também tem muitas coisas bem interessantes que o ruby não tem. Exemplos? Os que eu lembro agora: AST Transformations, Safe Navigation Operator, ser dinamicamente e estaticamente tipada ao mesmo tempo… Groovy tem o melhor dos dois mundos.

E java tem seus usos específicos. É uma linguagem de mais baixo nível, e uma coisa que ela tem que ruby não é performance. Você não percebe? São propósitos diferentes.

Você também não vai querer comparar C com Ruby né?