15 de julho de 2009

Compromisso com a compatibilidade reversa

Como eu comentei no post inicial desse blog (Mais um framework para Python?) uma das vantagens que eu vejo no web2py é ter acesso a quem o desenvolve.

Como desenvolvedor, eu me preocupo muito com a durabilidade do investimento que faço para aprender alguma tecnologia nova. É ruim e contra-producente ter que reaprender ou adaptar as coisas que já funcionavam, a cada nova release de software.

Por isso, resolvi postar uma pergunta na lista mundial do web2py sobre esse assunto. Existe a preocupação com compatibilidade reversa no web2py? Ou seja, há alguma garantia de que o que eu desenvolvo hoje não vai parar de funcionar quando vier uma versão nova do framework?

A resposta não poderia ter vindo de uma fonte melhor: Massimo di Pierro, autor do produto.

Eis minha pergunta (traduzida):
Oi pessoal.
Essa mensagem é mais sobre política de funcionamento do que sobre tecnologia, ok?

Eu sou novo no web2py e ainda não desenvolvi nada com ele.
Só li alguma documentação e vi alguns slides e tutoriais em vídeo.

Como um novato em Django também, pude ver que algumas coisas mudaram de funcionamento antes da versão 1.0. E quem pode me garantir que não vai acontecer novamente? Ninguém. Eu não vejo muita preocupação com compatibilidade reversa no Django.

Qual é o compromisso do web2py com a compatibilidade reversa?

Se eu desenvolvo código, ele passa a ser "código legado" no mesmo momento que é jogado em produção, certo?

E uma das piores coisas ao trabalhar com clientes, é responder algo do tipo: "Tudo bem, eu vou mexer no que você me pediu. Mas terei que cobrar um extra por causa da 'atualização tecnológica'". Meu cliente não quer saber disso. E, na verdade, ele não precisa mesmo saber. Essa é a minha profissão, e não a dele, certo?

Consequentemente, como um profissional, eu me preocupo em como maximizar o investimento do meu próprio tempo em aprender e usar linguagens e frameworks.

Sendo um profissional de mainframe por 21 anos, eu consigo rodar, ainda hoje, meus programas que fiz quando estava começando, no sistema operacional MVS da IBM (isso foi em 1988!). Sem mudar nada neles. Esse tipo de ambiente é muito estável, mesmo com as inovações nas linguagens. Sim, as linguagens também mudam, lá. Mas sempre são compatíveis com as versões anteriores. Isso tem a ver com maximizar tempo e dinheiro.

Existe alguma coisa escrita sobre isso na documentação ou no site do web2py? Eu não encontrei ainda.

Minha opinião é que esse é um dos maiores problemas que algumas empresas enfrentam ao escolher uma tecnologia nova.

Eu não estou falando sobre compatiblidade entre as versões do Python. Eu sei que esse é um problema do Python, e não do web2py. Estou falando sobre a compatibilidade entre versões do web2py mesmo.

--
[ ]s
Vinicius Assef.

Eis a resposta (também traduzida):
Nós somos totalmente comprometidos com a compatibilidade reversa. Nós nunca a quebramos em 2 anos. E não aceitamos patches que quebrem-na. Essa é uma das razões pelas quais chamamos o web2py de um "framework corporativo".

E aí, o que você acha? Vale ou não vale a pena tentar usá-lo?

Para ver todas as respostas, aqui está o link para essa thread na lista oficial: What about backward compatibility?

Um comentário:

  1. Eu já estava um pouco curioso para testar o web2py. Agora com seus posts fico ainda mais com vontade.
    Espero em breve poder brincar com mais um framework em python!

    ResponderExcluir