Evoluir sim, Quebrar jamais
Evoluir sim, Quebrar jamais
Java ou .net? Quem estava no mercado na virada do século deve ter vivido está situação. Muitas empresas montaram grupos para analisar qual caminho seguir. Mesmo as empresas que tinha seus produtos baseados em tecnologia Microsoft fizeram essa pergunta. Java ou .net? Em muitos casos, o que levou esse questionamento não eram questões estritamente funcionais. O fato é que todos estavam cansados de ter que adaptar seus códigos toda vez que uma nova release era lançada.
Backward Compatibility, ou simplesmente compatibilidade reversa é o termo utilizado para designar alguma coisa que sofreu ou sofrerá evoluções sem deixar de ser compatível com seu legado. Java prometia backward compatibility e quem comprou se deu bem porque Java cumpriu o que prometera. Até as clássicas besteiras feitas nas constantes da awt.color onde a própria Sun violou o Java Code Convetions nos idos do JDK1.2 continuam lá. Por que? Oara não quebrar a compatibilidade dos programas que foram escritos naquela época.
Quem migrou para .net nas primeiras versões sabe que seus códigos não são compatíveis com a versão atual. Até aí tudo bem, A Microsoft sempre foi assim e nunca escondeu que não iria mudar. Quem tem código em ASP 3.0 que se prepare, dizem que o próximo IIS não os rodará mais.
O que me deixa chateado é o Rails sofrer desse mal. Eu sei que Rails não é uma plataforma (alguns acham equivocadamente o contrário) e que comparar Rails com Java ou .net é no mínimo injusto da minha parte. Sei também que evoluir é preciso, mas não concordo com a quebra de compatibilidade introduzida a partir da versão 2.0.
Tudo bem que as alterações nem foram tão grandes assim, mas e as centenas de tutoriais que foram escritos que deixaram de funcionar de um dia para o outro? Isso dificulta a curva de aprendizado de novos programadores. Tenho experimentado isso. Várias pessoas que querem iniciar com Rails perdidas porque aquilo que estão tentando fazer simplesmente não funciona. Outro ponto, até mais importante que esse: Confiança quebrada. O que será que vai acontecer com minha base de código quando a 3.0 vier? Vai tudo para o espaço?
Não se engane. Adoro novidades. Por isso mesmo quero utilizar meu tempo com coisas novas e não para ficar portando código que funcionava bem e que simplesmente deixou de funcionar.
ps: Achei que o título do post lembrava o nome desse filme tosco.