Monday, August 13, 2007 6:44 PM

Tenho acompanhado a migração do Samir do .Net Framework para o Ruby On Rails em seu blog. Respeito sua decisão de partir para uma tecnologia e acredito que existe espaço para o crescimento do Ruby on Rails no mundo do desenvolvimento, embora ainda não se possa dizer o tamanho e posicionamento deste espaço.

Em seu último post ele apresenta alguns argumentos pelos quais ele considera a plataforma .Net (especificamente o ASP.Net) inferior que o RoR para desenvolvimento web. Não concordo com os seus argumentos e gostaria de colocar alguns pontos explicando melhor minha opinião.

Um dos agumentos seria que o .Net estaria se tornando um gigante incompleto. Antes de discutir isto, temos que separar o .Net Framework das ferramentas ao seu redor. Para mim o Framework em si está cada vez mais maduro, sem mudanças radicais nem crescimento desordenado.

Por outro lado o ecossistema ao redor do .Net está crescendo bastante, com ferramentas Open source e proprietárias. O fato de existirem várias alternativas e ferramentas “competindo” entre si para mim é uma qualidade e não um demérito. A diversidade é uma grande impulsora da inovação, além de nos dar opções de escolha.

Com certeza, algumas destas ferramentas estão e ficarão incompletas, isto faz parte do processo de desenvolvimento Open Source. Alguns projetos, que despertam mais interesse ganham adeptos e usuários, outros, sem tanto apelo, são abandonados. Isto ocorre em todas as comunidades, inclusive na comunidade ao redor do Ruby.

A evolução do C# também não pode ser considerada como negativa. Se você olhar a lista das novidades do C# 3 nenhuma delas quebra o atual modelo de programação. Ou seja, você não precisa mudar seu dia-a-dia, se não quiser. Ao mesmo tempo você poderá evoluir à medida que o uso destas novas funcionalidades for interessante.

Um terceiro ponto seria que com o RoR fica mais fácil aplicar práticas ágeis. Existe uma comunidade bem grande desenvolvendo .Net com metodologias ágeis. Não é dificil, pelo contrário, existem todas as ferramentas necessárias, até de refactoring ;)

Em seu comentário, o Aguinelo afirma que o ASP.Net te prende muito a “metodologia Microsoft” (não sei bem o que significa isto). Mas acho que justamente a grande vantagem do .Net é justamente a liberdade e o poder que ele nos dá. Você não fica nem preso ao ASP.Net, é possível utilizar frameworks alternativos como o Monorail, ou até criar o seu próprio. Não gostou do C# 3.0? Prefere desenvolver em linguagem dinâmica? Faça a sua própria, como fizeram com o IronPhyton, Vista Smalltalk, ou o boo.

A coisa não é tão livre assim no Ruby on Rails. A sua facilidade de uso vem justamente de sua arquitetura pré-definida. Se você tentar “inventar” muito vai se dar mal. Por exemplo, o acesso a dados é feito através do design pattern Active Record. Se você quiser uma camada de negócios mais robusta, que não conheça nada da persistência de dados (estilo Domain Driven Design) parte das facilidades do RoR não estarão disponíveis.

É justamente este poder do .Net Framework que vai permitir em pouco tempo o RoR rodar sobre a plataforma .Net. Ou quem permitir florescer uma terceira opção, agregando o que há de melhor nos diversos frameworks web que surgiram recentemente.

Para quem tem interesse no assunto, segue uma thread interessante no blog do Scott Bellware.

Comments

At 8/14/2007 12:49 PM, Rafael S. Souza said:

# re: Rails é melhor que ASP.Net?

Vejo o rails como um conjunto de frameworks, onde cada um se encarrega por uma parte, o fato de você não querer usar uma dessas partes, como por exemplo, o ActiveRecord, não o torna "menos livre", pelo contrário, isso me permite escolher o que eu realmente preciso para suprir uma necessidade. Agora, se eu escolho nao usar algum pedaço desses, não posso querer que as "mágicas" por trás dele estejam disponíveis no meu projeto ;)
At 8/14/2007 3:15 PM, Eduardo Miranda said:

# re: Rails é melhor que ASP.Net?

Portanto, a "liberdade" do RoR não é diferente da "liberdade" do ASP.Net. Na prática, como a comunidade ao redor do RoR não está tão madura, você pode descobrir que você terá que desenvolver um grande pedaço para então plugar no RoR. Veja o comentário do Robert, no post do Scott Bellware, a respeito de utilizar RoR com SQL Server:

The Rails ActiveRecord implementation for SQL Server and Oracle is spotty and pretty much unsupported. Put any decent load on the application for a sustained period of time and you will start throwing runtime errors. When I reported these errors to Rails team members I was told “yeah, you should really only use MySQL or Postgres”.

At 8/14/2007 6:05 PM, Samir said:

# re: Rails é melhor que ASP.Net?

<p>Ola Eduardo!</p>

<p>Obrigado pelo seu comentário. Respeito sua opinião também, sobre projetos Open Source no .NET, posso afirmar que ja utilizei várias alternativas como NHibernate, Castle ActiveRecord e também o Monorail onde fiz alguns projetos de grande porte inclusive!</p>

<p>Sobre a comparação do ASP.NET, o que realmente me irrita é o modelo de codificação, depois que aprendi MVC, vejo o code-behind e todo o ciclo de vida de uma página ASP.NET um grande canhão pra matar formiga, isso não é só uma reclamação minha, você pode ver que muitos desenvolvedores la fora também acham isso, menos aqui o pessoal no Brasil, você pega revistas como a .Net Magazine por exemplo, eles não incentivam boas práticas, alias, o que eles mais sabem fazer é as "piores práticas" com aqueles artigos "Arraste um GridView aqui", e assim por diante.</p>

<p>O dia que Microsoft aprender a parar de reiventar a roda, ai eu volto para a plataforma, afinal nunca deixei de gostar, mas ultimamente ando bem insatisfeito.</p>

<p>Abraços!</p>

At 8/14/2007 10:06 PM, Eduardo Miranda said:

# re: Rails é melhor que ASP.Net?

Como já disse, se você não gosta do ASP.NET pode optar pelo Monorail do proMesh.Net. Esta é a beleza do .Net Framework.
At 8/21/2007 7:15 PM, Emmanuel said:

# re: Rails é melhor que ASP.Net?

Acho estranho a crítica quanto a diversidade, uma vez que nos projetos Open Source o que mais existe é diversidade.
Somente sei que o RoR existe, por isso não tenho ciência alguma para criticá-lo, mas por exemplo, Java pra mim é horrível exatamente pela vasta diversidade! Você tem uma dúzia de servidores de aplicação conhecidos, fora os desconhecidos, uma dúzia de frameworks... Fica difícil você se decidir por algo, e como saber que fez a escolha certa dentre tantas variáveis? Não estou reclamando da diversidade, mas a grande quantidade mais atrapalha do que ajuda.
At 8/21/2007 8:27 PM, Eduardo Miranda said:

# re: Rails é melhor que ASP.Net?

Emmanuel,

A diversidade é muito importante por vários motivos, mas principalmente por dois:

1 - Inovação e evolução - A diversidade é uma aliada da evolução, caminhos diferentes são testados e aprovados ou não, soluções são descobertas por novos projetos. O próprio RoR já nasceu do aprendizado de outros frameworks web, de seus erros e acertos;

2 - Em software as necessidades e demandas são diferentes, o que leva a necessidade de diferentes soluções. Sem diversidade as ferramentas para a melhor solução podem não estar disponíveis para o desenvolvedor.
At 8/27/2007 5:51 PM, Eduardo Miranda said:

# re: Rails é melhor que ASP.Net?

Uma atualização da nossa conversa:

Duas notícias que complementam o meu ponto sobre diversidade:
O InfoQ apresenta um framework MVC em Ruby alternativo ao ActionPack do RoR: Merb. Segundo eles:

Rails can really slow down when your application deals with a lot of File exchange or concurrent connections. That is what Merb has been designed for.


O Akita On Rails fala sobre como resolver alguns problemas do ActiveRecord.

Para mim esta diversidade é boa e necessária para a comunidade Ruby ganhar maturidade.
At 9/14/2007 1:44 AM, Dennes Torres said:

# re: Rails é melhor que ASP.Net?

Oi !

Concordo plenamente.

O RoR é como as antigas linguagens (VB, Delphi, PowerBuilder) que hoje eu chamaria de ambientes de desenvolvimento, porque não é apenas síntaxe, mas cada ambiente tem toda a sua metodologia de trabalho, forma de acesso a dados, etc, etc.

Evoluimos para as máquinas virtuais, extremamente flexiveis como citou. Voltar ao RoR é como um retorno a antigos ambientes. O RoR pode ser agregado ao framework .NET ? Claro que pode ! Vai se tornar mais uma linguagem do framework, vai agregar sua síntaxe ao framework .NET.

Agregará novos recursos ao ASP.NET ? Sim, talvez. Hoje temos o MS Ajax que fez isso, o Ajax Toolkit que foi uma produção da comunidade, quem sabe não sai algo parecido da experiência com RoR ?

Mas no final estaremos de volta ao Framework e as máquinas virtuais.

[]'s

Dennes
At 10/21/2007 2:40 AM, Samir said:

# re: Rails é melhor que ASP.Net?

É impressionante como o Dennes só fala besteira!

"O RoR é como as antigas linguagens (VB, Delphi, PowerBuilder)"
Tem que rir pra não chorar...

"Hoje temos o MS Ajax que fez isso, o Ajax Toolkit que foi uma produção da comunidade, quem sabe não sai algo parecido da experiência com RoR ?"
Será que ele não conhece a Prototype ou Scriptaculous???? Pelo jeito não né...

Santa ignorância....
Post Comment
Title *
Name *
Email (never displayed)
Website
Comment * (Allowed tags: blockquote, a, strong, em, p, u, strike, super, sub, code)  
Please add 5 and 6 and type the answer here: