Sim, o Rails acabou sendo um amontado de “padrões” onde muitos outros players acabaram incorporando. Mas todos são padrões que já existiam, como exemplo, o ActiveRecord, que é um padrão catalogado no eaa. O Rails pegou esse padrões e aplicou alguns princípios, como DRY, CoC, etc.
eu particularmente não aprendo qualquer linguagem que seja pensando no mercado, aprendi ruby só pra adquirir mais conhecimento mesmo, e naturalmente as coisas foram aparecendo. Hoje uso tanto Ruby quanto Java profissionalmente, e te digo que o mercado de Ruby não está só crescendo, como cresceu. Muitas grandes empresas já o incorporaram, e existem até legados em Ruby.
No entanto se for olhar para as vagas em sua maioria consultorias, que já têm um legado em Java, claro que as vagas serão em sua maioria Java.
Por isso volto a dizer, que o papo de que Ruby é pra startup e Java para grandes projetos, ou a grosso modo, Ruby é pra crianças e Java é coisa de gente grande, não tem sentido
Sim, o Rails acabou sendo um amontado de “padrões” onde muitos outros players acabaram incorporando. Mas todos são padrões que já existiam, como exemplo, o ActiveRecord, que é um padrão catalogado no eaa. O Rails pegou esse padrões e aplicou alguns princípios, como DRY, CoC, etc.
eu particularmente não aprendo qualquer linguagem que seja pensando no mercado, aprendi ruby só pra adquirir mais conhecimento mesmo, e naturalmente as coisas foram aparecendo. Hoje uso tanto Ruby quanto Java profissionalmente, e te digo que o mercado de Ruby não está só crescendo, como cresceu. Muitas grandes empresas já o incorporaram, e existem até legados em Ruby.
No entanto se for olhar para as vagas em sua maioria consultorias, que já têm um legado em Java, claro que as vagas serão em sua maioria Java.
Por isso volto a dizer, que o papo de que Ruby é pra startup e Java para grandes projetos, ou a grosso modo, Ruby é pra crianças e Java é coisa de gente grande, não tem sentido ;)[/quote]
Entendi, hoje eu só aprendo à fundo algo se tiver um objetivo, claro que quando era mais novo na faculdade eu queria aprender de tudo pois não sabia onde poderia parar, por incrível que pareça o VB quem me abriu a primeira porta, hoje não sei escrever um if, acho VB tão confuso quanto a sintaxe do Ruby. Eu fujo de consultorias, pois em fábrica de software temos que estar preparados para tudo mesmo. É muito positivo o Ruby on Rails no mercado, para quem goste ou para quem ver suas vantagens sendo aplicadas em outra tecnologia mais madura.
[quote=leandronsp]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
Abs![/quote]
Não cara, de forma alguma, não foi rude não, realmente a linha que separa rudeza de uma simples opinião bem colocada as vezes é muito tênue.
Eu concordo com você quando falas que Rails não é só pra coisas simples, até porque estou presnciando alguns colegas desenvolvendo algo fenomenal com RoR. O ponto principal da minha ideia, é o tempo de resposta no desenvolvimento de apps Web 2.0.
Possível, quase tudo é em quase todas as linguagens, mas quando levamos em consideração o item velocidade de desenvolvimento, RoR está bem na frente da linguagem Java e seus calhamaços de frameworks…
Só pra ficar claro, eu usei GRails e não Rails… rsrsrs
E desculpe também se pareceu rude minha resposta, mas coloquei a ideia de forma firme também, sem de fato estar com raiva quanto ao que você escreveu.
Infelizmente o Ruby não decolou tão alto como alguns entusiastas previram na época.
Mas ele tem um impacto importante que não podemos esquecer: O mundo dos frameworks Web (em diversas linguagens) se dividiu em “antes do Rails” e “depois do Rails”.
As idéias desse framework influenciaram tudo que veio depois em termos de velocidade de desenvolvimento, uso de convenções, código enxuto, etc.
[quote=gomesrod]Infelizmente o Ruby não decolou tão alto como alguns entusiastas previram na época.
Mas ele tem um impacto importante que não podemos esquecer: O mundo dos frameworks Web (em diversas linguagens) se dividiu em “antes do Rails” e “depois do Rails”.
As idéias desse framework influenciaram tudo que veio depois em termos de velocidade de desenvolvimento, uso de convenções, código enxuto, etc.[/quote]
Exatamente isso que sempre falo, graças ao Rails sou feliz desenvolvendo com ASP.NET MVC, junta-se o melhor do Java-Struts2 e Rails. Rails deu um basta nas complicações que surgiam. Poderia vir um Struts 3 mais forte em convenções e algum jeito decente escrever código na view ao invés de ser por tags.
[quote=doravan][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.[/quote]
Concordo, e mais…
Pra mim não tem diferença nenhuma em pegar uma linguagem fortemente tipada e ficar penando na criação de objetos, ou pegar uma linguagem sem tipagem e ter que ficar enchendo métodos de validações pra não quebrar o programa…
[quote=Ruttmann]
Pra mim não tem diferença nenhuma em pegar uma linguagem fortemente tipada e ficar penando na criação de objetos, ou pegar uma linguagem sem tipagem e ter que ficar enchendo métodos de validações pra não quebrar o programa…
O tempo gasto é o mesmo…[/quote]
Eu ainda acho que se gasta mais tempo para escrever um teste do que definir o tipo da variável. Fora que definindo o tipo, você ganha code-completion o que vale muito mais do que o tempo perdido na declaração.
Além disso, em Java, é garantido que esteja tudo ok. Já numa linguagem sem tipos fotes, vai saber se o teste é abrangente o suficiente…
Eu tenho uma filosofia básica, sempre é mais vantagem pegar o erro num estagio anterior do desenvolvimento. Se mais erros são acusados em tempo de compilação, melhor.
E ainda… economizar três linhas de desenvolvimento para uma sintaxe mais enxuta mais cheia de simbolos e que muitas vezes nem tem checagem em tempo de compilação só serve para chegar aquela máxima: 5 minutos desenvolvendo, 5 horas debugando.
Fui um tanto radical na minha opinião … mas é por aí…
[quote=Ruttmann][quote=doravan][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.[/quote]
Concordo, e mais…
Pra mim não tem diferença nenhuma em pegar uma linguagem fortemente tipada e ficar penando na criação de objetos, ou pegar uma linguagem sem tipagem e ter que ficar enchendo métodos de validações pra não quebrar o programa…
O tempo gasto é o mesmo…[/quote]
Entao parte para Scala e seja feliz, fortemente tipada e com um type inference fodastico.
[quote=fredferrao][quote=Ruttmann][quote=doravan][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.[/quote]
Concordo, e mais…
Pra mim não tem diferença nenhuma em pegar uma linguagem fortemente tipada e ficar penando na criação de objetos, ou pegar uma linguagem sem tipagem e ter que ficar enchendo métodos de validações pra não quebrar o programa…
O tempo gasto é o mesmo…[/quote]
Entao parte para Scala e seja feliz, fortemente tipada e com um type inference fodastico.[/quote]
Tem algum link prático sobre Scala pra eu conhecer legal?
[quote=javaflex][quote=fredferrao][quote=Ruttmann][quote=doravan][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.[/quote]
Concordo, e mais…
Pra mim não tem diferença nenhuma em pegar uma linguagem fortemente tipada e ficar penando na criação de objetos, ou pegar uma linguagem sem tipagem e ter que ficar enchendo métodos de validações pra não quebrar o programa…
O tempo gasto é o mesmo…[/quote]
Entao parte para Scala e seja feliz, fortemente tipada e com um type inference fodastico.[/quote]
Tem algum link prático sobre Scala pra eu conhecer legal?[/quote]
Scala não tem todo o poder da tipagem pq esse poder ainda não foi explorado
Só vai ter ele quando disponibilizarem uma IDE que seja tão boa quando o Eclipse é pra Java
Eu jamais vou trocar de linguagem na JVM enquanto não oferecem alguma outra que ou tenha o mesmo suporte via IDE ou seja mais rápida. Scala não tem nenhuma dessas 2 coisas
[quote=victorcosta]Scala não tem todo o poder da tipagem pq esse poder ainda não foi explorado
Só vai ter ele quando disponibilizarem uma IDE que seja tão boa quando o Eclipse é pra Java
Eu jamais vou trocar de linguagem na JVM enquanto não oferecem alguma outra que ou tenha o mesmo suporte via IDE ou seja mais rápida. Scala não tem nenhuma dessas 2 coisas[/quote]
Existe um IDE para scala tão bom quanto o de java , se chama Eclipse. Mas cuidado que tem que ter o plugin mais recente.
Dá para fazer muitas coisas e é igual ao java (porque é igual ao eclipse). O scala é fortemente tipado, mais que qualquer outra linguagem com um sistema de generics que é absurdo (e complexo) que pode fazer quase tudo. Alguém brincou que o sistema de generics do scala é quase um máquina de Turing completa ( so o sistema de tipo). Ainda por cima em scala vc pode definir operadores. Definir mesmo, nao apenas override como em C# ou groovy. E com os simbolos que quiser. Eu fiz uma classe de Vector e defini o prudto interno como | e o externo como >< . É muito legal. Junte a isso funções e mixins e algumas outras cosas e o IDE é o que menos interessa…
[quote=victorcosta]Scala não tem todo o poder da tipagem pq esse poder ainda não foi explorado
Só vai ter ele quando disponibilizarem uma IDE que seja tão boa quando o Eclipse é pra Java
Eu jamais vou trocar de linguagem na JVM enquanto não oferecem alguma outra que ou tenha o mesmo suporte via IDE ou seja mais rápida. Scala não tem nenhuma dessas 2 coisas[/quote]
Scala roda igual java na JVM, alguns pontos uma outros a outra, mas são equivalentes. Se tu partir para um código o mais funcional possivel ele tende a ficar mais lento, mas nada que afete aplicações normais, se for um código que realmente precise ser muito performático, ainda assim tu pode escrever tal código em Scala, basicamente escrevento java com scala.
IDE, o suporte ja esta legal, tanto Eclipse quanto IDEA que é a que uso, e tem um excelente plugin Scala.
Não vou começar a velha batalha de X vs Z aqui, mas como em java temos que escrever na proporção de no minimo umas 6x ou mais código que scala ou ruby e outras, ha que precisar muito da IDE mesmo
[quote=fredferrao][quote=victorcosta]Scala não tem todo o poder da tipagem pq esse poder ainda não foi explorado
Só vai ter ele quando disponibilizarem uma IDE que seja tão boa quando o Eclipse é pra Java
Eu jamais vou trocar de linguagem na JVM enquanto não oferecem alguma outra que ou tenha o mesmo suporte via IDE ou seja mais rápida. Scala não tem nenhuma dessas 2 coisas[/quote]
Scala roda igual java na JVM, alguns pontos uma outros a outra, mas são equivalentes. Se tu partir para um código o mais funcional possivel ele tende a ficar mais lento, mas nada que afete aplicações normais, se for um código que realmente precise ser muito performático, ainda assim tu pode escrever tal código em Scala, basicamente escrevento java com scala.
IDE, o suporte ja esta legal, tanto Eclipse quanto IDEA que é a que uso, e tem um excelente plugin Scala.
Não vou começar a velha batalha de X vs Z aqui, mas como em java temos que escrever na proporção de no minimo umas 6x ou mais código que scala ou ruby e outras, ha que precisar muito da IDE mesmo [/quote]
Scala tem uma performance boa, mas oq quis dizer é que não é melhor que Java. Eu só trocaria pra outra linguagem na JVM (sem suporte bom na IDE) caso ela tivesse alguma vantagem como performance melhor
Eu caí nesse papo de suporte a IDE tão bom quanto Java no Eclipse antes e não era verdade. Mas foi a muito tempo isso, tenho que testar denovo
Livro Scala for the impatient 10 capitulos gratis:
mas o que eu quis dizer é, tu tem todo o poder da tipagem e ainda os beneficios e economia de código das dinamicas:
tipo:
val a = "fred" //ja vai ser "inferido" que a é String
//até mesmo os métodos tu nao precisa declarar o tipo de retorno
def soma(a: Int, b:Int) = a + b
Mas Scala não é só isto, tem muito mais, vale a pena dar uma olhada![/quote]
Valeu, bom conhecer. Essa parada de tipo implícito tem no C# também e sempre uso pois sou preguiçoso. Só não gostei que parece não ter ponto e virgula no final da instrução, isso me confunde igual quando olho código VB. Por fim, qual framework web mais usado, Play?
Livro Scala for the impatient 10 capitulos gratis:
mas o que eu quis dizer é, tu tem todo o poder da tipagem e ainda os beneficios e economia de código das dinamicas:
tipo:
val a = "fred" //ja vai ser "inferido" que a é String
//até mesmo os métodos tu nao precisa declarar o tipo de retorno
def soma(a: Int, b:Int) = a + b
Mas Scala não é só isto, tem muito mais, vale a pena dar uma olhada![/quote]
Valeu, bom conhecer. Só não gostei que parece não ter ponto e virgula no final da instrução. Qual framework web mais usado, Play?[/quote]
Não gostou? ; is boring
mas nada te impede de colocar, mas não é obrigado.
mas acredite, depois q acostumar nao vai mais querer saber de ponto e virgula. ponto e virgula existe pro compilador saber quando uma centença acabou, o compilador do scala tem a inteligencia necessária pra saber disto sozinho.
Frameworks web temos os dois full-stack que são Play e o Lift, e mais uma meia duzia de outros lightweight, tipo Unfiltrered, Scalatra e etc.
Scala esta bacana pra aprender, o ecosistema em volta dela esta muito grande, ja tem framework pra tudo que tu precisar, sem falar q em não havendo, tu pode usar um em java. Até um Spring Scala estão fazendo :twisted:
Livro Scala for the impatient 10 capitulos gratis:
mas o que eu quis dizer é, tu tem todo o poder da tipagem e ainda os beneficios e economia de código das dinamicas:
tipo:
val a = "fred" //ja vai ser "inferido" que a é String
//até mesmo os métodos tu nao precisa declarar o tipo de retorno
def soma(a: Int, b:Int) = a + b
Mas Scala não é só isto, tem muito mais, vale a pena dar uma olhada![/quote]
Valeu, bom conhecer. Só não gostei que parece não ter ponto e virgula no final da instrução. Qual framework web mais usado, Play?[/quote]
Não gostou? ; is boring
mas nada te impede de colocar, mas não é obrigado.
mas acredite, depois q acostumar nao vai mais querer saber de ponto e virgula. ponto e virgula existe pro compilador saber quando uma centença acabou, o compilador do scala tem a inteligencia necessária pra saber disto sozinho.
Frameworks web temos os dois full-stack que são Play e o Lift, e mais uma meia duzia de outros lightweight, tipo Unfiltrered, Scalatra e etc.
Scala esta bacana pra aprender, o ecosistema em volta dela esta muito grande, ja tem framework pra tudo que tu precisar, sem falar q em não havendo, tu pode usar um em java. Até um Spring Scala estão fazendo :twisted:
[/quote]
Por enquanto tô aposentado de aprender a fundo linguagens novas, mas conhecer eu gosto sempre, e Scala vai ficar na minha lista pra acompanhamento e conversas. Sobre mais e mais frameworks, só não pode se tornar outra JEE, senão perde o sentido de sua existência/diferencial. Que não inventem framework web baseado em server component pra não ficar escondendo a web do jeito real que ela é. O arroba na codificação das views do Play me lembrou o maravilhoso Razor do ASP.NET MVC.
Não sei se vcs tem acompanhado mas desde dezembro do ano passado saíram 2 falhas graves no framework, permitindo SQL injections em algumas aplicações (a falha q eu vi era um pouco difícil de explorar pq eram poucas aplicações q ficavam vulneráveis)
Mas agora a coisa explodiu de vez, se você tiver qualquer aplicação rails de qualquer versão seu servidor inteiro tá vulnerável pq a falha q descobriram agora permite acesso ao shell, sua rede inteira pode estar comprometida
Depois dessa vai ser difícil recuperar a reputação…