none
Refatoração e linguagens dinâmicas RRS feed

  • Pergunta

  • Olá colegas,

     

    Gostaria da opinião de vocês em relação a dúvida de um colega de trabalho em qual arquitetura desenvolver. Ver abaixo:

     

    "

    Oi, pessoal.

     

    Estamos prestes a iniciar o desenvolvimento de uma grande (estou falando de tamanho mesmo) aplicação empresarial (usando a nomenclatura do Fowler: Enterprise Application). Tomando por base a versão atual dessa aplicação, algo em torno de dois milhões de linhas de código - fora os códigos de testes. Para o back-end , estamos na dúvida entre C# e Ruby. Estamos analisando diversos critérios, tanto do ponto de vista do usuário-cliente quanto do nosso próprio ponto de vista, os desenvolvedores: performance, portabilidade, custo, maturidade, produtividade, longevidade, perspectiva, mercado-alvo, atratividade de profissionais, disponibilidade de profissionais, extensibilidade, suportabilidade, etc.

     

    De maneira geral, minha escolha está praticamente definida por Ruby, apesar de não estar tão seguro. Minha insegurança é fruto de apenas um subcritério   do critério de produtividade: refatoração.

     

    Trabalhamos fortemente com design incremental (YAGNI e KISS ) em ciclos semanais. Se refatoração já é (ou pelo menos deveria ser) uma disciplina ubíqua, imagine então num cenário de design incremental com iterações muito curtas. Pois bem: a questão é que, por razões óbvias, ferramentas de refatoração são muito melhores em linguagens estáticas que em dinâmicas.

     

    Portanto, a pergunta que gostaria de fazer aos colegas é a seguinte: num cenário forte de design incremental, com iterações curtas, vale a pena adotar uma linguagem dinâmica, dada a desvantagem em relação à refatoração. Parafraseando: ainda que haja alguma desvantagem em relação à refatoração, as demais vantagens de uma linguagem dinâmica compensam, levando em consideração um cenário de design incremental e iterações curtas?

     

    Um abraço.

     

    "

    quarta-feira, 20 de janeiro de 2010 18:48