Diego Plentz

20 Nov, 2005

Ruby on Rails

Posted by: Diego Plentz In: java| review| ruby| work

Rails é uma alternativa às soluções padronizadas qualificadas como “empresariais”, que implicam enormes cargas de trabalho sob o custo da compatibilidade com o vicioso ciclo burocrático de consultoria e treinamento que afeta as grandes empresas. Rails tem como proposta remover várias camadas de complexidade, salientando a capacidade individual do desenvolvedor em detrimento dos requerimentos burocráticos de equipe. Isso não deve passar a impressão, entretanto, de que Rails não é adequado para o trabalho em equipe. Rails adere ao padrão MVC de forma pragmática o bastante para promover uma separação clara de papéis, e ainda facilita o emprego de técnicas de Agile e Test-Driven Development.

O objetivo deste texto não é comparar Ruby com outras linguagens, mas sim mostrar as principais vantagens que um desenvolvedor pode ter utilizando este framework.

Antes de começar a citar os pontos positivos, me deixem esclarecer uma coisa: o foco do Ruby on Rails não é aplicações mission critical, super-clusterizadas, mega-distribuídas. Não que seja impossível realizar estas tarefas com Rails, mas não é a ferramenta adequada para tal. Bom, começando:

Simplicidade - esta é uma característica forte em Ruby, pois a solução de um problema, normalmente, é atingida de uma forma extremamente simples e clara, o que facilita o entendimento do código por outros programadores que tiverem que dar manutenção no futuro.

Produtividade - se o desenvolvedor consegue resolver seu problema de uma forma mais simples, clara e concisa, tendo ferramentas que facilitem sua vida, o desenvolvimento se torna mais agradável. Programador feliz = programador mais produtivo.

Convention over configuration - o Rails se baseia no princípio convenção sobre configuração. Ao invés de criar dezenas de XML’s para configuração, basta utilizar algumas conveções pré-definidas. Nada de XML.

Maturidade - a linguagem que está cada vez mais madura (e não é nova, pois já existe a cerca de 10 anos, quando foi criada pelo japonês Yukihiro Matsumoto, a.k.a. Matz).

Active Record - é o responsável pela persistência dos dados para quem utiliza Rails, sendo um competidor à altura do Hibernate, seguindo uma abordagem um pouco diferente da usada pelo concorrente. É compatível com os principais bancos de dados do mercado: Oracle, SQL Server, IBM DB2, MySQL, PostgreSQL, SQLite and Firebird.

IDE’s - já possui uma boa gama de ferramentas, como RadRails, RDT - Ruby Development Tools, Ruby Editor Plugin for JEdit, FreeRIDE, Mondrian IDE, Ruby Emacs bindings, TextMate, ArachnoRuby, Zeus, Komodo.

Suporte nativo para Ajax - Ruby on Rails vem por padrão com o framework Ajax script.aculo.us, que permite a adição de recursos de interface (como auto-complete para campos, drag and drop’s, etc) mais ricos e sem gastar horas desenvolvendo.

Testing is built-in - JUnit, TestNG? Ruby on Rails já vem com tudo que você precisa para testar sua aplicação. E com o lançamento da versão 1.0 ficará ainda mais fácil. Test Driven Development otimizado.

Curva de aprendizado - aprender como funciona uma aplicação criada com Rails é mais simples que em outras tecnologias com as quais já tive contato (Java, PHP, ASP(COM+), Coldfusion), como também para quem está querendo começar a desenvolver.

Segurança - Rails tem todas as features que qualquer outro framework tem como suporte à LDAP, logging, etc.

Cross-plataform - suporta Linux e outras variantes UNIX, BeOS, OSX, BSD e também, é claro, Windows.

OpenSource - completamente código aberto, assim como 99% das libraries disponíveis para ele.

Feedback instantâneo - edite o código, salve, dê refresh e a alteração está lá.

Integração - de uma forma similar ao .NET, a maioria dos componentes do Rails se integra facilmente, o que facilita o desenvolvimento.

Code generation - você não precisa criar sempre toda a estrutura de código, o que permite um desenvolvimento mais rápido.

DRY principle - Don’t Repeat Yourself é um conceito ‘criado’ por Dave Thomas (autor do livro The Pragmatic Programmer) que parafraseando significa:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

Acredito que os itens acima já tenham sido suficientes para despertar a curiosidade para testá-lo. Se você estiver interessado em fazer alguém testar Ruby on Rails mas não quer ter muito trabalho, recomendo mostrar o vídeo Take 2: Impressing with Rails 0.13, criado originalmente para ser usado no FISL 6.0, onde David Heinemeier Hansson mostra como criar um blog em 15 minutos.

Mas se você ainda não se convenceu que Ruby on Rails pode ser uma boa opção para seu projeto, abaixo seguem alguns links que reforçam o que eu falei:

Ruby on Rails: Making Programmers Happy
Entrevista com David Heinemeier Hansson no site eWeek.

Making programmers more productive
Phil Windley escreve sobre suas impressões sobre Rails.

The BBC’s programme catalogue (on Rails)
BBC está usando Rails para o seu catálogo com alguns milhões de shows.

…BBC have allowed me to rapidly prototype and deploy this 7,000,000-row database-backed site in everyone’s new favourite web framework…

Ruby on Rails and J2EE: Is there room for both?
Aaron Rustad faz uma comparação entre as principais features da arquitetura do Rails com os tradicionais frameworks J2EE

Interview with DHH
Entrevista com David Heinemeier Hansson, criador do Rails.

Get to the point!Development with Ruby and Rails
Apresentação mostrando as principais features da linguagem (Ruby em si, não especificamente do framework Rails). Muito bom pra mostrar para seu chefe(desde que ele seja/tenha sido um progrmador).

Ruby on Rails chases simplicity in programming
Entrevista com David Heinemeier Hansson, criador do Rails (saiu também no ZDnet).

SAP on Rails, and not on the skids
Com apenas algumas linhas de código, Piers Harding mostra como fazer integração com SAP, mostrando um pouco da flexibilidade do framework.

Evaluation: moving from Java to Ruby on Rails for the CenterNet rewrite
Case study muito interessante da migração do CenterNet(um grande aplicação da área de sáude) de Java para Ruby on Rails. E por ter sido feito em 6 vezes menos tempo (8 dias contra 6 semanas do Java) com uma redução de 20:1 para código, eu diria que sim, é uma redução bem relevante. Antes que alguns trolls apareçam criticando, sim, migrar uma aplicação é mais rápido do que desenvolver ela do zero, mas convenhamos, 20:1 é um número incontestável.

Ruby the Rival
Entrevista com alguns desenvolvedores experientes, mostrando sua visão da linguagem Ruby.

Ruby on Rail - Real World Usage
Uma lista com algumas empresas que já estão usando Rails em aplicações reais.

Ruby on Rails Dev Framework on Track for Growth

Fast-track your Web apps with Ruby on Rails
David Mertz demonstra através de uma mini-aplicação algumas vantagens do framework.

E isso pode ser o fim dos outros frameworks, seja Java, .Net, PHP, para desenvolvimento mainstream? Dificilmente. Que todo mundo abandonará Java e migrar para Rails? Com certeza, não.

Popularity: 17% [?]

1 Response to "Ruby on Rails"

1 | Fragmental »

November 20th, 2005 at 6:29 pm

Avatar

[...] O Diego acaba de postar um texto bem interessante e cheio de links sobre o Ruby on Rails. Se você procura mais informações, não deixe de passar no plentz.org [...]

Comment Form


  • Rodrigo Amaral Rosa: Olá Diego, como disse antes funcionou tudo certo no tutorial. Mas eu quis seguir um pouco mais além, configurando virtualhost no apache para o meu d
  • éricoulisses: absurdo: não consegui passar de 50kbps com o pacote de 500kbps, se cheguei a 50 foi um milagre, só fiz download de uma música e pronto, kkkkkk,
  • Tony Amorim: Ótimo Tutorial, parabéns.... Estou com problemas com pool de conexão no tomcat, não está funcionando. Funciona com o tomcat sózinho. Tony

Flickr PhotoStream

  • IMG_3498
  • IMG_3458
  • IMG_3450
  • IMG_3473
  • IMG_3469
  • IMG_3464
  • IMG_3444
  • IMG_3402

About

This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from.