Olá pessoal! Nesse post tentarei mostrar meu ponto de vista sobre o Ruby on Rails. Está sendo um trabalho de descoberta da linguagem e do framework e acredito que renderá outros posts. Vamos lá?

Aqui no trabalho tive uma missão de resolver um problema. O projeto estava em Rails e o trabalho era simples: criar uma tela. Isto me fez pensar bastante em como resolvê-lo. Subentende-se que você já tenha noção sobre Rails. (assim como eu)

Como consegui por pra rodar?

Bom, lendo uma pergunta do StackOverflow, sobre como aprender Rails melhor, uma resposta que me chamou bastante atenção foi o fato de que, para você aprender Rails, deve começar estudando um framework como Django. Disse também que, depois, a transição seria mais transparente.

Mas como assim? Django?

Por “parível que increça” o estudo de django é muito mais tranquilo ao Rails por alguns motivos que considero decisivos:

  • É uma linguagem de fácil leitura, até mesmo para pessoas não acostumadas com a linguagem;
  • Uma das diretrizes do Python é a “explícito é melhor que implícito”, sobre o “Convenção acima de configuração” do Rails.

Usar Python se torna muito mais fácil de se aprender quando se começa com uma IDE (Obrigado Pycharm ). O debug é simples e seu core é bastante rápido de se trabalhar.

Funcionou aprender Python/Django para se voltar ao Rails. Vale muito o aprendizado.

Tentando fazer um paralelo com o Python

Bom, se você desenvolve em python vai achar legal pois será uma forma de vocês aplicarem uma tecla SAP e já saírem com o seu primeiro projeto rodando.

Acho que é importante traçar mais ou menos um paralelo das tecnologias:

Em python Em Ruby
Django Rails
Virtualenvwrapper* RVM gemsets*
PIP Bundler

Basicamente estas são as relações que eu consigo verificar de primeira, com uma pequena modificação. O virtualenv permite que criemos instâncias separadas de python com suas próprias bibliotecas. Até aí tudo certo. Só que o RVM é muito mais que isso. Ele vai fornecer, além do “virtualenv”, a possibilidade de você instalar versões do ruby distintas e gerenciá-las na mesma máquina. Isso é fantástico.

No python, para eu iniciar um projeto em Django eu faço o seguinte:

mkvirtualenv meuvirtualenv
workon meuvirtualenv
pip install django
django-admin startproject meuprojetodjango pasta_onde_quero_instalar
cd pasta_onde_quero_instalar
python manage.py runserver

Já em Rails…

rvm use 2.1.4@meuprojetorails --create
gem install rails
rails new meuprojetorails
cd meuprojetorails
bundle exec rails s

Resumo da introdução

Bom, o que me mais me chamou no Rails foi seu esquema restful e sua característica de testes. Bastante organizado e possui uma comunidade bem ativa. Realmente peca no desempenho, mas em produção isso é facilmente contornável com o escalonamento do serviço.

Um bom local pra postar perguntas é no grupo do Ruby Natal.

Tentarei nos próximos posts fazer um projeto nas duas tecnologias para compará-las mais a fundo. Algum comentário que considerem pertinente para uma discussão? Ficarei muito feliz em poder escutá-lo! =D

Abraços e até breve!