Nodejs vs Rails, ou a ironia de quando apertam no meu calo.

Por volta de 2007/2008 quando o Rails se popularizou no mundo inteiro, um tema comum em todas as listas de discussões era como o Rails ia matar o Java. Ficavam furiosos os mais exaltados, porém míopes, javeiros.

Claro que era uma brincadeira com um fundo de verdade, um alerta para sermos poliglotas e usarmos o melhor ambiente/plataforma/ferramenta/etc para resoluções de problemas.

Claro que a comparação era esdrúxula porque comparavam um Framework com uma linguagem, aliás, não só linguagem, mas uma plataforma. Não importa se o Rails poderia ser executado na plataforma Java, a mensagem era o alerta de que não adianta fazer tudo com apenas uma ferramenta. Naquele momento se voce era programador DotNet, voce tentaria fazer tudo com DotNet, se voce fosse programador Java, o mesmo com sua linguagem/plataforma.

Na época Java era Mainstream, Rails um Framework que trazia consigo uma linguagem “Underground” com uma comunidade ainda muito pequena, porém vibrante.

A História se repete

Hoje em dia Rails é um Framework muito popular que criou um ecossistema em sua volta, graças a ele que a linguagem Ruby tem uma certa penetração até em grandes corporações. Ouso dizer que Rails é uma “plataforma” e que tudo gira em torno dele, retire esse Framework e a linguagem Ruby dificilmente se mantém no Mainstream.

Em 2009 surgiu uma ferramenta chamada Nodejs. Um “Evented I/O for V8 JavaScript“, ou seja, uma ferramenta para fazer IO não-bloqueante usando a VM do Chrome. Em pouco tempo a comunidade em volta do Nodejs repetiu o mesmo processo que o Rails levou de 2004 a 2010 só que em menos tempo. Esse ano (2011), as duas comunidades chamam a mesma atenção do mercado, principalmente as Startups do Vale do Silício.

Nodejs criou uma comunidade em sua volta, apesar de ter um propósito bem definido. Não existe um Framework no ecossistema Nodejs que sequer chegue aos pés do Rails, o máximo é algo similar o Sinatra chamado de Express. Mas somente a possibilidade de uma comunidade/ecossistema desviar a atenção e rivalizar no efeito “Sou foda, estou na crista da onda” já deixa incomodado muitos Railers.

Pois bem, eu dizia há alguns dias para amigos e clientes que a comunidade Rails iria subir nas tamancas quando o Nodejs crescesse mais do que já cresceu. O motivo que alerto é que a comunidade se tornou tão pedante quão a comunidade Java de 2007/2008. Hoje em dia temos “Railstards” que pregam o desenvolvimento somente com Ruby ao ponto de escreverem Javascript em Ruby por conveniência de não sair da sua zona de conforto.

Há alguns dias a Nodejitsu publicou uma página para acompanhar o momento onde o número de Watchers (observadores) do projeto nodejs no github ultrapassou o mesmo número no projeto Rails.

A Notícia por si só não deveria ter nenhum significado. Comparar um Framework popular com uma Ferramenta de Evented IO?

Ops, há alguns anos comparamos uma linguagem/plataforma com um Framework, ninguém disse na época que era descabido a comparação, porque seria hoje comparar Nodejs vs Rails?

Não rir dessa piada irônica só demonstra que você deveria subir um alerta, a grande maioria dos Javeiros já calçou a sandália da humildade, acho que ta na hora de nós Railers também 😉

Como disse o @leonardoeloy: Se Java é o novo Cobol, Rails o novo Java, Nodejs o novo Rails, quem é o novo Nodejs?

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a very complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may switch on erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

16 thoughts on “Nodejs vs Rails, ou a ironia de quando apertam no meu calo.

  1. Maurício Linhares

    Hoje ser poliglota é ainda mais importante do que era no passado, ainda mais pra essa galera do Rails e do NodeJS, pois ambos os frameworks são muito bons em fazer as coisas de um jeito só (o famoso one-trick-pony) e em vários momentos essa não é a melhor solução pro problema.

    Um caso clássico do Rails, receber uploads de arquivos grandes, você sempre vai travar a sua instância do Rails ao trabalhar num ambiente assim e vai ser um throughput baixíssimo se for comprar com uma solução equivalente feita em Java ou PHP.

    Já no node, tem o fato de só funcionar com evented-io, o que por só só já é um problema, já que você remove todas as outras possibilidades de lidar com o problema, aí temos a VM que é ótima pra client side mas não é confiável pra um servidor que vai passar horas rodando (você dificilmente consegue dar um SEGFAULT na JVM, por exemplo).

    Então no fim, o ideal é conhecer várias tecnologias diferentes, escolher a melhor pra resolver o problema e ser feliz, se amarrar a uma tecnologia ou outra é perda de tempo, nossa obrigação como profissionais é procurar a melhor solução para o problema e implementá-la.

  2. Andrey Agra

    Excelente Post. Muito bem colocado os pontos que devemos nos importar, ao invés do “xiitismo” de muitos. Um post bom sempre vem com bons comentários, em especial o do Maurício Linhares, que enriqueceu o post. Show “Founder” Millfont!

  3. Pedro

    Descordo completamente da pendancia da comunidade Rails. Ela é infinitamente mais aberta q a Java. Saí do mundo Java há um ano agora e estou desenvolvendo aplicações C/C++ usando Ruby pra algumas cosias básicas e claro, acompanhando a comunidade mais de perto. Digo que nesse ultimo ano aprendi muito mais sobre js que ruby em si só frequentando listas e a comunidade local.

    Xiismo nunca é bom. e eu acredito fortemente que a comunidade ruby é bem mais aberta não deixando tudo apenas em Ruby. NodeJs está crescendo forte e a comunidade ruby está influenciando bastante nesse crescimento!

  4. Maurício Linhares

    Não sei de onde você tirou esse sentimento, Pedro, pelo que eu vejo na comunidade Rails aqui no Brasil e nos EUA existe sim um forte preconceito com soluções que vem de outras linguagens, o DHH mesmo é um dos maiores “espalhadores” dessa discórdia.

    Muita gente e muitos projetos que vem de outras plataformas sofreram muito por causa desse pedantismo e inconsequência dos “adolescentes on Rails”, o Charles Nutter do JRuby sempre falou muito disso. No primeiro Rails Summit aqui no Brasil, durante a palestra do DHH, eu perguntei pra ele se ele achava importante o Rails ter se tornado thread-safe naquele momento e se ele via JRuby como uma solução interessante pra evitar os vários processos Rails sendo subidos ao mesmo tempo, a resposta dele foi “JRuby e thread-safety não importam”.

    Então a não ser que você esteja em uma comunidade Rails diferente da de todas as outras pessoas, o pedantismo existe, é forte e é um dos poucos pontos fracos da comunidade. Pra outro exemplo, recomendo dar uma olhada no “Rails is a guetto” do Zed Shawn, não é uma coisa de hoje, tem muita gente na comunidade Rails que segue cegamente os “líderes” e termina espalhando esse comportamento infeliz por aí.

    Espero sinceramente que a comunidade NodeJS aprenda com essa falha da comunidade Ruby e evite esse comportamento nocivo.

  5. Jefferson

    Parabéns pelo post Milfont! Agora sim entendi a piada :). Concordo com tudo que o Maurício disse a respeito de usar a ferramenta certa para o problema certo e em ser poliglota. Tem gente que se apega a ferramentas como se apegam a times de futebol e isso é muito nocivo.

  6. Pedro

    Oi Mauricio, Eu acho que tive sorte nas companhia que ando então. Do DHH ser espalhador de discórdia, pelo pouco que conheço das histórias dele já vi que tem um fundo de verdade. Mas como diz o Seu Jorge, é isso aí. O importante é manter a cabeça aberta, pra cada problema uma solução.

  7. Fernando Lopes

    Realmente muito bom o post e sou completamente a favor. moral da historia vc não deve se apegar a uma única linguagem e sim ser poliglota. por isso que eu trabalho com (PHP, Rails, Objective C, Js e arranho java)
    =)

  8. mairon brasil

    muito bom o post, acredito que tudo vem de acordo com sua necessidade, o importante eh nao ser xiita.
    esse lance de comparar eh muito bacana mas cara coisa no seu scopo.

    abraco

  9. Thiago Diogo

    Concordo com você Milfont. Como diz o ditado: para quem só tem um martelo qualquer parafuso é prego!

    No fim das contas acho uma tremenda perda de tempo discutir A ou B. O importante é lembrar que para o cliente/usuário não importa se é java, rails, python, node, scala, erlang, etc… O que ele quer é que o atenda e funcione!

    Abs

Comments are closed.