Read in english (Automatic translate wiht Google)
Atualizado 11/07/2008: Fabio Akita lançou uma apresentação muito interessante onde ele explica o que é Rails e tira várias dúvida para quem está iniciando.
veja a apresentação do Akita aqui
Este post aqui no blog é só um empurrãozinho inicial para quem está começando com Rails e esclarecer algumas dúvida comuns, claro, sob o meu ponto de vista.
À alguns dias atrás, um amigo meu se interessou por estudar Rails e me pediu alguns links perguntando por onde começar. Pessoalmente comecei no Rails pelo livro Agile Web Development With Rails (já foi traduzido para português e pode ser comprado aqui) e com o livro do Fabio Akita ( também pode ser encontrado aqui). Gosto bastante de livros e por isso comprei de cara dois para poder aprender, mas acredito que a melhor forma de conhecer um tecnologia sem precisar investir dinheiro inicial, é através de links.
Como eu comecei com livros não me lembrava de muito links no estilo aprendendo rails do zero, ou sua primeira aplicação em 3 dias. Resolvi pedir ajuda a grupo de discussão Rails-br e o resultado foi que o post se tornou uma boa fonte de links para iniciar no Rails.
Abaixo coloquei alguns dos links que foram postados no grupo (o post completo pode ser visto aqui )
Se alguém lembrar de algum outro, posta nos comentários que eu atualizo aqui :D .
Agora, continuando, esse meu amigo começou a estudar Rails e hoje me fez algumas perguntas clássicas que acho que é uma das maiores dúvidas que sempre acontece quando alguém pensa em usar Rails comercialmente. Abaixo coloquei as perguntas e as minhas respostas pessoais a cada uma delas:
1) ja me disseram que rails eh instável e que por isso não é qualquer servidor que segura a onda com ele o que vc diz disso?
Existem várias formas de fazer deploy de Rails em diversos servidores diferentes, mas de fato no inicio do framework essa não era uma realidade e uma das únicas opções era usar FastCGI, o que em alguns casos poderia não ser o suficiente. Mas hoje temos diversas alternativas que já se mostraram extremamente eficientes para 99% do problemas. Alternativas com Mongrel, Passenger, Nginx, Thin e várias outras formas de colocar sua app Rails em produção sem dor de cabeça.
Resumindo, Rails não é instável e aplicações como yellowpages.com (páginas amarelas americana, recebe milhões de requisições dia), basecamp (gerenciador de projetos da 37Signals, utilizamos diariamente em nossos projetos), lighthouse (bug tracking) , github (gerenciador de código e rede social, também utilizamos para os nossos projetos) , Shopify (lojas virtuais em Rails) e mais centenas de outros projetos Rails estão aí para mostrar que Ruby e Rails não são nada instáveis.
Outra coisa que deve surgir com os iniciantes são especulações como Rails não Escala (levantado no Techcrunch sobre o twitter) e comunidade Rails é uma zona (levantado pro Zed Shaw em seu blog).
Na última Rails Conf dezenas de palestras foram realizadas sobre o assunto escalabilidade, mostrando que fazer Rails escalar é muito fácil dependendo da sua arquitetura (não é um problema do framework ou linguagem, mas sim da forma como sua aplicação é desenvolvida) e provando que Rails também pode ser absurdamente performático (basta ver o Passenger e os experimentos com o Maglev).
Quanto ao post do Zed Shaw o que concluímos é que apesar da notória competência dele não devemos levar suas incapacidade de ficar milionário com Rails como um problema que deva nos afastar deste magnífico framework.
2) Hospedagem de rails em sites como dreamhost, bluehost e ou lunarpages da vida são interessantes?
São interessantes sim, empresas como a Dreamhost possuem boms planos para Rails e inclusive shared hosting com preço acessível e totalmente capaz de ser performático através do Passenger quando o FastCGI não for o suficiente.
Mas aqui na empresa quase sempre utilizamos a RailsPlayground pois o suporte é excelente(realmente excelente, nunca vi nada igual em todos os outros hosts que conheço) e tem toda a estrutura que precisamos( como GIT, Mongrel, Passenger e etc).
Outra boa notícia que temos sobre hospedagem de Rails no Brasil é a Locaweb (pessoalmente não gosto da empresa pois já tive problema graves com hospedagem PHP em projetos grandes) mas Fabio Akita tem feito um esforço muito grande para tornar a Locaweb um grande hosting de Rails no Brasil. Para quem ainda está entrando no Rails talvez não conheça este cara, mas sem sombra de dúvida é extremamente competente e vai fazer um trabalho bom na Locaweb, por tanto vale a pena olhar os planos de Rails da Locaweb e também assinar o feed do blog do Akita pois é excelente.
3) tenho um freela de administração de sites, ele em teoria seria pra ser feito em php mas achei que seria um bom aprendizado tentar fazer ele em ruby vc acha que eh possível ter alguma produtividade e ir aprendendo ao mesmo tempo? ou aconselha a prosseguir com php e soh me comprometer com rails qdo estiver mais experiência em desenvolvimento?
Dependendo do prazo para o projeto aconselho começar com Rails sim, nada melhor que a prática para aprender. Uma das grande qualidades do Rails é a capacidade de refatorar, o que permite que caso você faça alguma bobeira em seu código seja possível concertar sem grandes dores de cabeça.
Caso você esteja vindo do PHP sem nenhum framework(ex.: cakephp e symphony) e ORM (ex.: php-object-generator), o que é algo muito comum no mundo PHP, terá um enorme ganho de produtividade no Rails usando o ActiveRecord(como rails trabalha com DB), helpers HTML, testes automatizados e versionamento do seu DB através de migrations. Também terá acesso a uma infinidade de plugins que auxiliam em tarefas repetitivas (ex.: Attachment_fu para uploade de imagens e arquivos e restful_authentication para usuários e autenticação).
Outra coisa é que Rails é bem fácil de aprender e se tornar produtivo mas é muito difícil de se tornar um expert (estou lutando nisso todos os dias :D ) por tanto comece logo e terá resultados rápidos e com o tempo você vai estudando a fundo.
No caso de dúvidas você pode recorrer a grupos como o Rails-br que são bem fortes e ativos, além de poder contar com milhões de tópicos em blogs no mundo inteiro.
Vale lembrar que é bom ter um conhecimento razoável de leitura e escrita em inglês para poder ter acesso rápido a bons recursos e também dar uma importância considerável ao prazo do projeto, pois mesmo com todo o material disponível em Rails por aí, será um processo de aprendizado e aprender algo novo é sempre complicado.
Todo este texto e as repostas são minha opinião sobre o trabalho com Rails mas acho seria mais ou menos essas as respostas que grande parte da comunidade Rails também iria dar.
Espero que este material ajuda algumas pessoas no inicio dos estudos em Rails
10/07/2008 em 11:05 PM
Boa noite Daniel Lopes.
Já estou inscrito no curso de Flex 3 da e-genial e estou aguardando anciosamente por ele. Tenho uma dúvida: Sou programador java iniciante, participo de um projeto onde já uso hibernate(nível básico), Spring(Básico) , css , html e javascript , até aqui tudo normal. Venho notando minha inconformação com algumas coisa, tipo validações do js , problemas com css, muita demora para desenvolver uma interface com estas tecnologias. Andei comparando meu trabalho com um que fosse em RoR + flex, já comprei o livro Desel. Web Ágil com Rails. Na sua opnião , Como está ou ficará o mercado para estas tecnologias: RoR + Flex? Penso em migrar meu foco de trabalho para elas.
Grato !!!
11/07/2008 em 12:36 PM
Olá Alexandre. Rails está com uma comunidade cada vez maior e mais ativa, basta ver o último release do Rails. 1400 desenvolvedores ajudaram no projeto, é fácil encontrar livros, plugins e todos os dias melhorias são feitas no projeto. O ruby também está andando a passos monstruosos, basta ver os últimos lançamento do ano tipo Passenger, Ruby Enterprise Edition, versão nova do ruby chegando e etc.
E também vemos melhorias gigantescas no Flex, a comunidade está cada vez maior. Varias empresas tem adotado o Flex (empresas como Oracle, Ebay e a própria Adobe com seus novos aplicativos online). Podemos ver melhorias significativas que vão ser lançadas no Flex 4 e adjacentes como o projeto Thermo.
Se os dois estão evoluindo ótimo, pois eles sempre vão poder se comunicar e a integração dos dois é muito bem sucedida.
Mas eu penso da seguinte forma, hoje uso Rails em 100% do projetos e Flex quando existe a necessidade, se um dia essas linguagens começarem a entrar em declínio, ótimo, já deu o que tinha que dar, já ajudaram a pagar minhas contas e me fizerem ser um programador melhor. Se continuarem bombando, melhor ainda pois já vou ter muito tempo de experiência.
Eu sigo a idéia que mesmo que eu não vá usar, é sempre bom estar estudando coisas diferentes, o problema é arrumar tempo para tanta coisa legal. :D
*obs.: O Rails facilita muito a vida com seus helpers para XHTML, JS e Ajax, isso diminui o tempo gasto em interfaces em XHTML.
13/08/2008 em 07:07 AM
Boa Noite estive no site aqui pois estou interessadíssimo em começar o estudo de Rails e vcs mencionaram o seguinte trecho lá em cima da página:
“Pessoalmente comecei no Rails pelo livro Agile Web Development With Rails (já foi traduzido para português e pode ser comprado aqui) e com o livro do Fabio Akita ( também pode ser encontrado aqui). “
Por favor qual dos dois vcs me indicam para a compra ? Qual seria melhor para mim ?
Tenho um MacOS onde irei utilizar como plataforma de desenvolvimento. Já programo um pouco em .Net (asp.net) com VB.Net mas quero aprender RoR de vez …
Por favor me indiquem qual dos dois livros está melhor ?
Obrigado Junior
13/08/2008 em 08:59 AM
Olá Junior, eu gosto dos dois livros porém eles acabaram ficando um pouco desatualizados. Então você tem duas opções, (eu acho o do Akita mais fácil para quem está começando) comprar um dos livros e instalar o rails 1.2.3 para estudos e assim que acabar o livro dar uma olhada na serie de screencasts do Ryan Bates no railscasts.com sobre Rails 2.0 e depois baixar o livro do Carlos Brando sobre Rails 2.1 . A outra forma que acredito também ser muito boa seria comprar ou o Agile ou o do Akita e junto comprar o The Rails Way, então tudo que você for vendo no Rails 1.2.3 você já corre o olho no Rails Way para ver como está agora.
Se você tem um Mac então já está meio caminho andado, ainda mais se for um Leopard pois você não terá problema algum com plataforma ou pequenos hacks para fazer funcionar as coisas.
Também recomendo este link para consultar a documentação do Rails(já que ele tem o help de acordo com as versões do Rails): http://rails-doc.org/
Boa sorte.
13/08/2008 em 12:57 PM
Oi Daniel valeu pelas indicações , mas então não teria um livro para iniciantes já nessa última versão pois já partiria direto aprendendo o que está mais recente !!!
13/08/2008 em 05:13 PM
Existem alguns livros para o Rails 2, mas em português apenas o livro do Carlos Brando que na verdade é um guia mostrando o que há de novo no 2.1 .
Se você sabe ler bem em inglês pode comprar a versão betão do agile web atualizado.
O link é: http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition que já trata do 2.0 mas eu não li, por tanto não sei como está a atualização que eles fizeram.
Se eu fosse comprar para iniciar do zero pegaria o agile beta em inglês mesmo.
Também existe uma lista grande de livros que vão ser lançados por agora.
http://rubyworld.wordpress.com/2008/07/26/wow-very-huge-list-of-upcoming-rubyrails-books-in-2008/
Mas todos são em inglês.