E porque o tal do Ruby on Rails não decolou?

tava lendo este topico que por sinal foi travado sei lá por que:

O sujeito que abriu tem sim muita razão em alguns argumentos, pensei que ele iria falar do Ruby e outras linguagens desse estilo pois esse negocio de type casting do Java, ter de criar get and sets e outros recursos só servem pra uma coisa: perder tempo e muito. Não sei precisar quanto tempo perdemos com bobagens como isso de verifica se um tipo é determinado, de verificar se um objeto é igual ao outro e outras coisas que poderiam ser simplesmente dinamicas com o uso do tal do Ruby que infelizmente jamais decolou (se virem citar meia duzia de projeto sinto muito mas nao serve).

Na epoca que ouvi falar do ruby achei uma otima ideia, alias até pensei que a Sun (epoca era a Sun hoje Oracle que detém o Java) iria incorpora-lo no compilador, assim poderiamos desenvolver codigo em Ruby nativamente em vez de java. Mas infelizmente nada disso se provou eficaz. Até hoje sinto uma raiva danada de perder tanto tempo definindo objetos, Value Object, get and seters, casting e outras coisas ultrapassadissimas que poderiam ser limadas ou simplesmente opcionais.

Na minha opinião algo como o ruby ou parecido devia ter sido incorporado há muito tempo dentro do JDK! Digo isso pois usar biblioteca separada nao dá, teria de ser nativo algo interno do compilador.

Veja sobre o Grails, framework de groovy que roda em cima da JVM

[quote=Sparcx86]tava lendo este topico que por sinal foi travado sei lá por que:

O sujeito que abriu tem sim muita razão em alguns argumentos, pensei que ele iria falar do Ruby e outras linguagens desse estilo pois esse negocio de type casting do Java, ter de criar get and sets e outros recursos só servem pra uma coisa: perder tempo e muito. Não sei precisar quanto tempo perdemos com bobagens como isso de verifica se um tipo é determinado, de verificar se um objeto é igual ao outro e outras coisas que poderiam ser simplesmente dinamicas com o uso do tal do Ruby que infelizmente jamais decolou (se virem citar meia duzia de projeto sinto muito mas nao serve).

Na epoca que ouvi falar do ruby achei uma otima ideia, alias até pensei que a Sun (epoca era a Sun hoje Oracle que detém o Java) iria incorpora-lo no compilador, assim poderiamos desenvolver codigo em Ruby nativamente em vez de java. Mas infelizmente nada disso se provou eficaz. Até hoje sinto uma raiva danada de perder tanto tempo definindo objetos, Value Object, get and seters, casting e outras coisas ultrapassadissimas que poderiam ser limadas ou simplesmente opcionais.

Na minha opinião algo como o ruby ou parecido devia ter sido incorporado há muito tempo dentro do JDK! Digo isso pois usar biblioteca separada nao dá, teria de ser nativo algo interno do compilador.[/quote]

Dynamic typing não é bom em nenhuma linguagem. O java é fortemente tipado por uma grande razão, os sistemas legados em pascal/fortran/cobol quebravam muito por conta de variáveis fracamente tipadas.
Orientação a objetos não é suposta a ser fracamente tipada, o tipo dynamic no C# é um fiasco, veja as comunidades e o que elas reclamam sobre ele.

Como assim não decolou?
Segundo o Indeed, que é um agregador de vagas de emprego, há atualmente mais de 11 mil vagas de Rails pelo mundo e quase 200 só aqui no Brasil.
http://www.indeed.com/jobs?q=rails&l=
http://www.indeed.com.br/empregos?q=rails&l=
Acho que isso vai muito além de “meia duzia de projetos”, não acha?

E não sou “rubista”.

Eu já acho que não é questão de “decolar” ou “não decolar”, é questão de atingir seu público alvo. Ruby (bom, Rails. Ruby é uma linguagem de propósito geral) atingiu seu objetivo de mostrar pras pessoas um ambiente de desenvolvimento rápido voltado pra web sites. Lógico que não dá pra fazer projetos muito grandes com ela, porque a manutenção se torna um pesadelo, mas o objetivo foi atingido.

[]'s

[quote=Alexandre Saudate]Eu já acho que não é questão de “decolar” ou “não decolar”, é questão de atingir seu público alvo. Ruby (bom, Rails. Ruby é uma linguagem de propósito geral) atingiu seu objetivo de mostrar pras pessoas um ambiente de desenvolvimento rápido voltado pra web sites. Lógico que não dá pra fazer projetos muito grandes com ela, porque a manutenção se torna um pesadelo, mas o objetivo foi atingido.

[]'s[/quote]

Exato, fora que ainda é algo realmente novo, mas só cresce… Embora não seja nativo na JVM já há o JRuby que outro dia assistindo a uma apresentação, achei a proposta interessante.

Creio que a linha do raciocínio do RoR se diferencie da do Java. RoR não não veio pra tomar o lugar do Java, veio pra atacar fortemente onde o Java não era o melhor dos mundos, que era justamente o desenvolvimento Web rápido.

Mantenho Java como linguagem de desenvolvimento principal e é aonde sou mais produtivo, mas não dá pra fechar os olhos que Ruby On Rails tem conquistado.

Ainda não consigo enxergar tal coisa em Java: http://startupdev.com.br/

Abs []

Postei recentemente o link para um artigo que explica um pouco essa euforia sobre novas linguagens e porque isso não dá certo.

Recomendo também a leitura do artigo: No Silver Bullet: Essence and Accident in Software Engineering
“there is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement within a decade in productivity, in reliability, in simplicity”

Além disso, como os outros colegas disseram e só estou reforçando aqui, RoR é mais indicado para substituir PHP do que Java.

[quote=Sparcx86]tava lendo este topico que por sinal foi travado sei lá por que:

O sujeito que abriu tem sim muita razão em alguns argumentos, pensei que ele iria falar do Ruby e outras linguagens desse estilo pois esse negocio de type casting do Java, ter de criar get and sets e outros recursos só servem pra uma coisa: perder tempo e muito. Não sei precisar quanto tempo perdemos com bobagens como isso de verifica se um tipo é determinado, de verificar se um objeto é igual ao outro e outras coisas que poderiam ser simplesmente dinamicas com o uso do tal do Ruby que infelizmente jamais decolou (se virem citar meia duzia de projeto sinto muito mas nao serve).

Na epoca que ouvi falar do ruby achei uma otima ideia, alias até pensei que a Sun (epoca era a Sun hoje Oracle que detém o Java) iria incorpora-lo no compilador, assim poderiamos desenvolver codigo em Ruby nativamente em vez de java. Mas infelizmente nada disso se provou eficaz. Até hoje sinto uma raiva danada de perder tanto tempo definindo objetos, Value Object, get and seters, casting e outras coisas ultrapassadissimas que poderiam ser limadas ou simplesmente opcionais.

Na minha opinião algo como o ruby ou parecido devia ter sido incorporado há muito tempo dentro do JDK! Digo isso pois usar biblioteca separada nao dá, teria de ser nativo algo interno do compilador.[/quote]

cara você cria gets e sets na mão? não usa a IDE pra isso não? como que você perde tanto tempo com isso?
quanto a casts, qual versão do java você está usando, 1.4 - ? se for de 1.5 para cima (os generics “E” os boxing e unboxing) resolvem um monte de problema de cast, se você está usando uma versão antiga, o problema é estar usando uma versão antiga, se está usando uma nova e continua com estes problemas, provavelmente você está programando como se estivesse na versão antiga, eu te indicaria estudar e usar estes recursos…

java tem seus defeitos, é verdade, mas não vejo nada que seja assim problemático, particularmente acho que o alguns reclamam demais, muitas vezes por motivos bestas…

numa boa eu tinha que falar…

recentemente recebo ofertas de trabalho na Inglaterra pra trabalhar com Rails, lá pelo menos tá bombando muito… o salário é menor que o de Java, mas há muitas, muitas vagas mesmo!

acho que é difícil nós, que temos esse background de Java, ver se ele realmente “decolou”, pois vivemos lidando com sistemas legados, corporativos e integrações aleatórias. Eu vejo Rails (e Django) bombando muito em startups e empresas de internet. Agora, acho muito difícil ver Rails em empresas aqui no BR, citando por baixo alguns clientes: Net, Sky, Claro, Oi, Vivo, Tim, Itaú, Bradesco, CVC etc -> empresas onde há bastante gente que trabalha com Java (e pessoas daqui do fórum também)

[quote=doravan]

Dynamic typing não é bom em nenhuma linguagem. O java é fortemente tipado por uma grande razão, os sistemas legados em pascal/fortran/cobol quebravam muito por conta de variáveis fracamente tipadas.
Orientação a objetos não é suposta a ser fracamente tipada, o tipo dynamic no C# é um fiasco, veja as comunidades e o que elas reclamam sobre ele.[/quote]

O motivo que eles quebram devia ser outro então porque nenhuma dessas linguagens é fraca, ou dinamicamente tipada.

Eu se fosse chutar diria que quebrava porque os programadores não sabia o que estavam fazendo mesmo.

Por quê dynamic do C# é um fiasco? Tudo existe para ser usado em momentos que aquilo seja adequado, cada equipe deve ter a consciência de trabalhar unido para isso, do que preferir trabalhar sem novas possibilidades flexíveis, como se fossemos crianças em não saber direito o que estamos lidando.

O que não fez decolar não sei, cheguei a comprar um livro e fazer algo, larguei pois a linguagem Ruby é muito chata. Mas a ideia do Rails é legal, só que preferi seguir com ASP.NET MVC que traz o melhor de todos os mundos.

[quote=maior_abandonado]

java tem seus defeitos, é verdade, mas não vejo nada que seja assim problemático, particularmente acho que o alguns reclamam demais, muitas vezes por motivos bestas…

numa boa eu tinha que falar…[/quote] Concordo em gênero e “número igual”…

Quanto ao assunto…

Tirem das vossas visões sistemas legados e grandes corporações financeiras. Esqueçam repartições públicas, pensem por apenas em algum momento em negócios do século XXI, com todo esse boom de empresas com novos modelos de negócios, onde entregas rápidas para feedbacks rápidos são fundamentais, Java não é nem TOP 3 na hora de escolher uma linguagem pra esse modelo, isso sendo bonzinho com a linguagem, embora eu acho que seja adequado a perto de 100% das situações como plataforma.

Abs []

Pessoalmente, eu também achei. Sem “porques” simplesmente meu espírito não bateu com a sintaxe…

Enfim :roll:

eu poderia passar batido nessa thread com assunto tosco como muitas aqui, mas essa não podia deixar de dizer que a maioria dos argumentos aqui foi totalmente mediano e sem sentido algum.

  • primeiro, dá sim pra fazer o site startupdev em java em pouco tempo. É tão difícil isso?
  • getters e setters tomam tempo. Não usa IDE?
  • dizer que Rails veio pra substituir PHP. Só sabe fazer scaffold em Rails?
  • empresas grandes não usam Rails. É piada né?

ruby é uma linguagem como outra qualquer, assim como java. ser religioso e não gostar dela não quer dizer que não presta.
e rails é um framework, não linguagem de programação. dá pra fazer desde um blog de 15 minutos (que muitos não saem disso) até sistemas complexos e distribuídos.

Não precisa disso. Olha só:

A JVM é uma maquina virtual.
O compilador do java gera o bytecode, e a jvm por sua vez interpreta esse bytecode pra instrucoes de maquina.

O JRuby faz a mesma coisa, tem o processo de analise lexica, ou tokenizer, faz o parsing e gera bytecode. Igualzinho no Java. Depois a Jvm pega o bytecode gerado e pumba!, interpreta pra instrução de maquina da mesma forma.

Pra que incorporar? Não tem sentido isso. Nem o próprio java, digamos assim, é “incorporado” no processo. Cada ferramenta com seu trabalho…

Por quê dynamic do C# é um fiasco? Tudo existe para ser usado em momentos que aquilo seja adequado, cada equipe deve ter a consciência de trabalhar unido para isso, do que preferir trabalhar sem novas possibilidades flexíveis, como se fossemos crianças em não saber direito o que estamos lidando.[/quote]

Também não entendi. A documentação é bem clara ao dizer que esse tipo de dado é usado para representar objetos COM, páginas HTML e coisas que, a princípio, você entupiria o código de casts cheios de pré-supostos.
Não para transformar o C# em uma linguagem não tipada.

Opa, como esse argumento foi meu, me sinto na responsabilidade de responder…

Em pouco tempo, dá, consegui fazer um protótipo em Java para um negócio que tenho hoje em 1 dias… Depois foram mais 2 semanas refinando e colocando frameworks facilitadores em alguns aspectos sem mexer em nada no negócio. Ou seja, não foram apenas 24 horas foram 2 semanas e 1 dia.

Tá, pode ser o meu tempo e minha produtividade, mas meu argumento é baseado no tanto de esforço que eu tenho pra fazer um Sistema WEB com a linguagem Java e em GRails…

Se você consegue fazer ambos no mesmo tempo, legal, talvez eu esteja precisando praticar mais Java, mas pelo menos percebo o ganho de 60% ou mais de tempo com a segunda opção.

Agora me ficou uma dúvida, só eu acho que o ganho é assim? Pois posso estar com algum problema na hora de desenvolver em Java e preciso detectar…

Abs []

Não gostar não significa religião, apenas opção da pessoa ou equipe, e acho que não falamos que não presta. Sei do valor, mas pessoalmente hoje não me sentiria motivado escrevendo em Ruby, pra mim o fator de produtividade que mais pesa é a motivação da pessoa. Já o Rails realmente achei legal, tanto que o framework web que mais gosto (ASP.NET MVC) copiou muita ideia positiva dele. Eu quando fui tentar aprender Ruby on Rails agarrei o livro muito empolgado, mas a sintaxe da linguagem me desanimou, e se pode usar outra linguagem isso é obscuro para mim no mercado. Claro que se não tivesse um bom mercado para o que gosto (C# e Java), valeria o sacrifício de aprender essas linguagens diferentes de meu costume. Para as pessoas mais jovens que estão começando com certeza é muito tranquilo entrar nessa onda.

Então, realmente pelo fato de usar menos configurações, menos preocupação com ambiente e tal, você acabou fazendo em Ruby em menos tempo.
Acho que da forma que citei ficou um pouco rude, pois minha intenção não era entrar no mérito da produtividade de cada um, mas acabar com essa falácia que tem surgido nos últimos tempos aqui de que Ruby é apenas pra coisas simples.
E esse tipo de falácia não tem sentido nenhum, pois não vejo muito interesse por parte da galera em estudar ou aprender realmente como funciona. Mas nada contra ti, só usei teu argumento pois já vi parecido muitas vezes por aqui :wink:
Abs!