Back-End

17 ago, 2017

Por que somente os preguiçosos falam mal do Ruby on Rails

Publicidade

É inevitável, hoje em dia nós vemos artigos proclamando o fim do Ruby on Rails vez ou outra. É o caça cliques mais fácil, como esse do TNW.

Agora, você pode dizer “outro fanboy do Ruby”. É justo, mas um argumento terrível, por ser um argumento ad hominen comum e pobre. E falando de falácias, o artigo caça cliques acima está errado exatamente porque cai descaradamente na falácia do Post hoc ego propter hoc somadas à algumas tendências nas pesquisas pelas quais somos culpados por cair o tempo todo.

Não estou dizendo que o autor escreveu falácias de propósito. Infelizmente, é fácil demais cair nelas. Especialmente quando todos têm um desejo intrínseco de confirmar as pesquisas. Mesmo tentando ser cuidadoso, eu acabo fazendo isso também.

 

Especificamente sobre o Rails, eu começo por aqui:

 

Como regra geral, qualquer um anunciando o futuro fim de alguma coisa, muito provavelmente está errado. É divertido jogar jogos de adivinhação, mas artigos em sites de alto padrão como o TNW deveriam ser mais cuidadosos, pois muitos iniciantes na área acabam confiando em suas opiniões.

Por isso eu normalmente digo às pessoas para pararem de confiar em opiniões. Todos têm uma opinião, por isso são tão baratas. Então, as pessoas normalmente dizem que “celebridades” ou “gurus” tem opiniões de maior valor. Eu não acredito nisso, e você também não deveria.

Cisnes negros aparecem, mas é um exercício à futilidade tentar prevê-los. Você pode ter sorte, uma ou duas vezes. Mas é inútil tentar. Por isso eu sou um grande defensor da Antifragilidade. Então, eu passo as regras gerais para entender o que fazer.

Estou dizendo que o Ruby on Rails vai durar para sempre? Não seja absurdo, é claro que não. Nada dura para sempre. Mais de duas décadas trabalhando ativamente na área me ensinaram que apostar tudo em somente um cavalo é um erro. É valido para o mercado financeiro, é valido para o mercado de tecnologia.

Ao invés de ações e títulos, seus ativos são o conhecimento e a experiência. A diversificação do seu portfólio normalmente é a melhor aposta.

Você investiu todos os seus 401 mil em Bitcoins. Agora você vai testar tudo para tentar confirmar sua preferência se inscrevendo em cada notícia e informação que confirme sua preferência, e vai denunciar todos os artigos que tenham argumentos contra sua aposta. Estou dizendo para você não investir em Bitcoins? Não. Somente não seja estúpido de investir tudo em qualquer coisa.

Você investiu todo o seu tempo aprendendo o Google Web Toolkit em 2006. Boa sorte para você encontrar um artigo para confirmar essa preferência. Esse é um caso, um caso após o fato, que não podemos fazer nada além de concordar que ele acabou.

O trabalho de um programador profissional não é ser especialista em uma única ferramenta ou uma única pilha de tecnologias. Seu trabalho é ser tão bom quanto seja possível em aprender e praticar um novo campo da tecnologia.

Tendo dito isso, e, mesmo que a estrutura do artigo esteja imprecisa, o sentimento não está errado. O Ruby on Rails não tem a mesma representatividade que tinha 10 anos atrás. Agora, antes que você comece a se angustiar, vamos explorar a linha do tempo.

 

2003 – Um novo renascimento

 Como um exercício após o fato, temos que entender que uma série de eventos ajudou no desdobramento do fenômeno Rails entre 2003 e 2011. Não foi o design. Não foi planejado. Poderia ter sido outra linguagem.

 

  • Estávamos nos recuperando do estouro da bolha da Internet ponto-com de 2001;
  • As redes sociais estavam começando a emergir, tínhamos o Orkut, MySpace, Friendster. O Facebook ainda não estava no radar;
  • Os blogs estavam começando a crescer e competir com agências de notícias tradicionais;
  • Grandes vendedores focavam somente no mercado empresarial naquele ponto e o resto era considerado amadorismo;
  • No geral, ou você estava criando sites empresariais em .NET ou Java, ou estava criando hotsites em Flash ou PHP para agencias ad hoc;
  • Mesmo ferramentas open source como o Eclipse eram utilizadas fundamentalmente através de alçadas empresariais como o WebSphere ou WebLogic;
  • O Manifesto Ágil tinha acabado de ser publicado em 2001 e o mercado convencional não prestou muita atenção. O PMI e o RUP eram as palavras do dia.

 

Então chagamos a 2004.

  • O Google lançou com sucesso o Gmail com a atenção da mídia. HTML dinâmico e Ajax demonstraram como nós poderíamos alcançar aplicações em nível de aplicações desktop utilizadas pela Web. É aqui também que o JavaScript ganha uma nova função, por trás dos mini games e anúncios;
  • O Facebook disparou e tivemos um vislumbre de como se parecem as redes sociais granulares;
  • A Apple consolidou seu retorno como uma das gigantes relevantes de tecnologia com a ressurreição bem-sucedida o OS X, provando que o UNIX no desktop do consumidor era viável;
  • A Microsoft entrou no século 21 após um caso pesadíssimo de antitruste que quase acabou com a empresa. Bill Gates renunciou, Steve Ballmer assumiu as rédeas e eles tiveram sua pior década;
  • Anos de bloqueios dos fornecedores começaram a desgastar os desenvolvedores, ninguém realmente queria usar IBM, BEA ou Oracle mais, e a promessa da revolução do open source iniciada nos anos 90 finalmente começava a se solidificar;
  • O estouro da bolha ponto-com deixou uma depressão no mercado da tecnologia, mas também deixou uma infraestrutura que estava finalmente tendo um bom uso.

 

 

O Ruby on Rails aparece como uma curiosidade muito pequena em uma conferência obscura de tecnologia no Brasil. Criada por uma agencia pequena mas promissora chamada 37signals. Sinalizando algo que a maioria dos desenvolvedores nunca tinham visto: uma linguagem flexível – diferente do Java ou C# ou PHP – que poderia ser utilizada para implementar aplicações web como o Gmail com um toque da visão da Apple e se afastando de tudo o que a Microsoft e a IBM representavam enquanto incorporava técnicas ágeis como o TDD (Test Driven Development) de uma maneira prática e diferente dos padrões.

 

 

O que mais você poderia pedir em 2005?

Então em 2006 aconteceu: lançamento do Amazon AWS S3 e EC2 e o termo “Elastic Cloud” se torna a nova moda.

Até esse ponto, “desenvolvimento web”, significava um departamento de TI caro e burocrático em grandes empresas, ou serviços baratos, mas fracos, de servidores compartilhados, tais como o Dreamhost, 1&1, Media Temple.

O Elastic Cloud tem a chave para superar as empresas e tornar possível para desenvolvedores independentes construir a intangível “escala web”.

Ruby on Rails está exatamente onde deveria estar. A linguagem começou a ser adotada por uma nova safra de startups de tecnologia do Vale do Silício que estavam tentando causar algum abalo no universo , nessa nova era do Ajax orientado à nuvem. Lembre-se que o Ruby foi lançado inicialmente com RJS, uma maneira de escrever Javascript através do Ruby utilizando Prototipagem e Scriptaculous. O JQuery ainda não estava na moda.

O Twitter aparece. O Groupon aparece. Engine Yard aparece. E muitos outros seguem.

Tudo acontece muito rápido, lembre-se que estou tocando somente a superfície aqui.

 

 

2007 chega e ao menos 3 coisas grandes acontecem:

  • Outra startup baseada em Ruby nasce, a Heroku. Se o AWS EC2 cunhou o termo “Infraestrutura como Serviço”, a Heroku definiu o que é uma “Plataforma como Serviço”. Ela foi capaz de fazer bom uso do EC2 e tornar seu poder acessível;
  • Ao mesmo tempo, os desenvolvedores criaram sistemas de controle de versão implacáveis, como o CVS, e novamente as opções dos grandes fornecedores como o Rational ClearCase, o Microsoft SourceSafe e outros eram terríveis. O Subversion surgiu mas sua grande quantidade de falhas se tornaria seu fim. Linus Torvald’s decide corrigir o problema e lança o Git. Os desenvolvedores mainstream finalmente aprendem termos básicos de ciência da computação como DAGs(“Directed Acyclic Graphs” – Gráficos acíclicos dirigidos);
  • O iPhone é lançado e uma nova revolução móvel inicia. Jogadores dominantes como a Nokia e Blackberry tiveram seu núcleo sacudido. Os desenvolvedores querem um pouco disso. O Safari móvel se torna relevante da noite para o dia. E seu WebKit principal atinge o estrelado, ofuscando veteranos como o Firefox/ Gecko e Opera.

 

2008: O nascimento do GitHub e a aurora do DevOps

O Git era ótimo, mas de baixo nível. Muitos outros concorrentes tentaram se tornar o novo padrão, como o Mercurial e o Bazaar. Mas o nascimento do GitHub mudaria isso. Novamente, outra startup baseada em Rails fazendo notícia.

 

 

Mas a lua de mel está dando sinais de estar chegando ao fim. O proeminente desenvolvedor Ruby, Zed Shaw, abandonou a comunidade fazendo muito barulho em janeiro. Durante esse ano também tivemos a guerra fria entre o framework Merb da Engine Yard e o Rails da 37signals, resultando na junção controversa Rails-Merb, criando outra rachadura na comunidade. Mas ainda tínhamos muito trabalho a fazer, então seguimos em frente.

 

2009: “Existe um app para isso! ”

A Apple finalmente lança um SDK nativo apropriado. Os desenvolvedores começam a construir uma nova geração de aplicativos para produtividade e jogos. O WebKit começa a aumentar sua parcela do mercado, a Apple solidifica o conceito de estética no desenvolvimento de software e o Ruby on Rails está em seu auge agora.

Começamos a era no NoSQL. Quando o armazenamento e recuperação de dados se tornam um gargalo, nós rapidamente aprendemos que os bancos de dados empresariais tradicionais não são suficientemente “escaláveis para a web”. O MongoDB lidera o bando e o desenvolvimento web começa uma era de febre pelo NoSQL.

Paralelamente, o Twitter, que era o filho modelo da geração Rails, cria uma rachadura na comunidade Rails quando eles anunciam que estão começando a trabalhar com uma outra linguagem obscura: Scala!

Isso inicia a era de uma nova obsessão sobre a “simultaneidade”, outro conceito intangível que muitos falam bastante, mas poucos realmente entendem seu significado. É o início da janela de oportunidades para o Node.js, Scala, Erlang, Clojure, Go. A lua de mel acabou.

 

2010:

  • O fim da Sun e a Oracle como a nova administradora do Java. Se as coisas não estavam boas para o Java, esse foi um grande prego no caixão.
  • A Apple declara guerra contra o Flash. Outra grande investida contra o Javascript e os aplicativos com interface pesada.

 

 

Em minha opinião pessoal, esse é o ano em que o Rails atingiu seu ápice em termos de influência. Foi o empurrão que os desenvolvedores de Mac queriam para criar sua nova startup.

 

 

2011: Uma nova era

Em aproximadamente 6 anos, o mercado de desenvolvimento de software realizou mudanças gigantescas:

  • Desenvolvimento distribuído derivado de anos de trabalho Open Source se torna o novo padrão. As grandes fornecedoras têm que correr com suas alternativas empresarias ruins tais como TFS;
  • O Ágil passa a ser levado à sério por uma nova safra de startups evangelizando sobre o desenvolvimento de software apropriado. Os testes passam de coisas improdutivas e desagradáveis à uma parte importante e de valor inestimável. Ferramentas com o Hudson/Jenkins, combinadas com o fluxo de trabalho do Git, pavimentaram o caminho para o que a integração contínua e entrega contínua se tornariam mais tarde;
  • AWS e Heroku pavimentam o caminho para tornar a TI antiga obsoleta e criar uma nova geração de infraestrutura como software, e “DevOps”. Agora existe a pressa em implantar uma super-escala da web sem atritos. O tempo se torna chave para o mercado: lance antes, lance sempre;
  • A Apple lança a AppStore e ajuda a guiar o mercado de Software como Serviço, com apps que exigem conexão com a internet para funcionarem. A “nuvem” alcança as massas;
  • Fazendo todos na Terra carregar um aparelho poderoso e sempre ligado, um smartphone. Nunca estivemos tão próximos ao futuro segundo Orwell em 1984. Tudo o que a pessoa faz é um ponto de dado, o Big Data se tornou algo. As ciências de dados se tornam viáveis como profissões, disciplinas relacionadas à inteligência artificial se tornam uma necessidade para argumentarmos sobre tantos dados;
  • O Android se aproxima do iPhone, a Microsoft ressurge das cinzas, e em outubro, Steve Jobs morre, marcando o fim da era de grande influência da Apple.

 

Mas por volta de 2011 acontece outra coisa: nós vencemos.

Os desenvolvedores independentes superam o status quo dos desenvolvedores empresariais. Existe uma mudança no poder. As convenções para o desenvolvimento de software não vêm mais das grandes fornecedoras de ferramentas. Nós não estamos mais dando ouvidos às fornecedoras de IDEs como Microsoft, BEA, Oracle. Agora estamos dando ouvidos às vencedoras dessa geração de startups: Apple, Google, Facebook.

O conceito de “uma linguagem para reinar sobre todas as outras” foi destruído no campo web pelo Ruby on Rails e no espaço de aplicações nativas pela Apple. Duas linguagens incomuns e estranhas, Ruby e Objective-C alcançaram um estado de destaque, elas provaram que os desenvolvedores podem aprender e se especializar em linguagens exóticas as tornando produtos lucrativos.

Com essas fundações estabelecidas, uma nova corrida do ouro começa. Novas linguagens em abundância, livres da noção de que para se tornarem bem-sucedidas, elas têm que ser parecidas com Java, C#, C++. As pessoas finalmente começaram a olhar para outras coisas para se diferenciarem, e assim uma nova geração de linguagens exóticas surgiu: Scala, Haskell, Ocaml, F#, Erlang, Clojure, Rust, Elixir, etc. O céu é o limite.

Matando o Flash e acelerando o HTML5, ES6, e com todas as controvérsias sobre a simultaneidade, o Javascript ganhou vida nova e uma rápida adoção como jamais visto.

 

Epílogo

O Ruby on Rails está morto? Não.

Ruby on Rails ainda é o líder da matilha? Não.

Qual o legado da geração do Ruby on Rails? Ele teve um papel importante na definição do que nós consideramos hoje o novo status quo do desenvolvimento web: Git, Integração contínua, entrega contínua, Nuvem, Métricas. Ele trouxe o pensamento sobre estética da Apple à mesa em grande estilo.

Aquela safra de startups de tecnologia teve um efeito colateral sério, colocou novos engenheiros sob os holofotes, colocando eles no nível de estrelas, e tornando-os aspirantes a Steve Jobs. Eles começaram a ver tudo o que conseguíamos como garantido, o que se tornou uma receita para o desastre.

E enquanto a influência das grandes fornecedoras diminuiu, em comparação com os anos 90, elas não estão mortas. Após 2011 nós acompanhamos uma nova era de caos, uma era de desenvolvedores insatisfeitos. Onde de tempos em tempos uma nova derivação emerge e temos aquele sentimento de insatisfação por ter que reescrever tudo sempre.

O grupo do Ruby on Rails foi diluído em linguagens de nichos menores como o Javascript, Go, Elixir, Scala.

Os mainstreams Java/Microsoft estão ganhando uma nova força. A estética também foi diluída, a engenharia cuidadosa está sendo diluída, e a onipresença das redes sociais e o caminho fácil para a rápida implementação na nuvem estão tornando as pessoas cada vez menos pacientes. O desenvolvimento exige paciência e as pessoas escavam “Likes”, uma nova geração de métricas de vaidade surgiu.

Agora nós temos um grande número de desenvolvedores independentes com pouca ou nenhuma paciência, com um senso de confiança exagerado, e a síndrome de não-inventado-aqui, tem tudo como garantido e se importam cada vez menos com os valores apropriados.

Em conclusão, a morte do Ruby on Rails é exagerada, ele vai se manter por muitos anos ainda – especialmente se a equipe do núcleo do Ruby puder realmente entregar o objetivo do 3×3. As pessoas gostam de compartilhar artigos sobre o fim enquanto relatórios mais otimistas e realistas como o “Por que o Ruby ainda é a melhor escolha? ” são ignorados. Tamanha é a vaidade nas redes sociais.

Mas ele não vai ser o que já foi porque os tempos mudaram. Nós não podemos viver worflow “On Rails” sem o Ruby on Rails, e ele não pode se manter quebrando o status quo, porque ele se tornou o status quo.

Eu me pergunto para onde isso vai nos levar. Eu tenho algumas ideias, mas, como eu disse, não estou no jogo de publicar manchetes caça cliques.

 

***

 

Fábio Akita faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela Redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: http://www.akitaonrails.com/2017/08/03/why-is-it-just-lazy-to-bad-mouth-ruby-on-rails