quinta-feira, 4 de junho de 2009

Extreme Programming ou XP o que é ?

Atualmente o foco de desenvolvimento parece ter mudado para a criação de grandes bibliotecas que cercam, muitas vezes de maneira inferior, as limitações de algumas linguagens.
Outro foco é a criação de metodologias que empregam melhor as linguagens já existentes, como exemplo dessa tendência pode-se citar: Extreme Programming e UML (Unified Modeling Language) que são técnicas que se encaixam em praticamente qualquer tipo de linguagem de programação, mas não alteram fundamentalmente as mesmas.

UML é uma linguagem de modelagem não proprietária de terceira geração, não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos. Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML.
Programação extrema (do inglês eXtreme Programming), ou simplesmente XP, é uma metodologia ágil para equipes pequenas e médias e que irão desenvolver software com requisitos vagos e em constante mudança. Para isso, adota a estratégia de constante acompanhamento e realização de vários pequenos ajustes durante o desenvolvimento de software.
Os quatro valores fundamentais da metodologia XP são: comunicação, simplicidade, feedback e coragem. A partir desses valores, possui como princípios básicos: feedback rápido, presumir simplicidade, mudanças incrementais, abraçar mudanças e trabalho de qualidade.

Dentre as variáveis de controle em projetos (custo, tempo, qualidade e escopo), há um foco explícito em escopo. Para isso, recomenda-se a priorização de funcionalidades que representem maior valor possível para o negócio. Desta forma, caso seja necessário a diminuição de escopo, as funcionalidades menos valiosas serão adiadas ou canceladas.

A XP incentiva o controle da qualidade como variável do projeto, pois o pequeno ganho de curto prazo na produtividade, ao diminuir qualidade, não é compensado por perdas (ou até impedimentos) a médio e longo prazo.

Todd Proebsting, um pesquisador da Microsoft, argumenta que o problema mais importante na criação de uma linguagem de programação moderna é como melhorar a produtividade do programador já que o hardware hoje é suficientemente poderoso e não requer que compiladores otimizem massivamente o código e os dados de um programa para obter uma boa performance.

Proebsting diz que algoritmos e modelagem apropriada são suficientes para o desenvolvimento de programas eficientes em compiladores modernos e que criadores de linguagens deveriam se preocupar com meios de ajudar programadores a desenvolverem bons programas rapidamente, corretamente e facilmente. Segundo ele, linguagens de programação são o local certo para resolver o problema já que elas estão na raiz do processo, em oposição à engenharia de software e análise.

Nesta mesma linha de pensamento, Paul Graham, em um artigo baseado em uma palestra que ele deu na PyCon, tenta imaginar como as linguagens de programação serão daqui a cem anos. Ele argumenta que as linguagens do futuro provavelmente serão baseadas em um núcleo limpo e conciso contendo todos os axiomas a partir dos quais as outras características da linguagem poderão ser derivadas. Ele escreve:

“No mínimo, um exercício que pode ser útil é analisar cuidadosamente o núcleo de uma linguagem para verificar se há axiomas que podem ser eliminados. Em minha longa carreira como um chato eu descobri que lixo sempre gera mais lixo, e eu já vi isso acontecer tanto em software como embaixo de camas e em cantos de quartos. Ocorre-me que os galhos principais da árvore evolutiva (da programação) passam por linguagens que tem menores e mais limpos núcleos. Quanto mais da linguagem você pode escrever nela mesma, melhor.”

A pergunta é: quais serão as novas e grandes mudanças das linguagens de programação?

LINKS RELACIONADOS:
http://logbr.reflectivesurface.com/2003/03/26/evolucao-das-linguagens-de-programacao/
http://logbr.reflectivesurface.com/2003/05/14/mais-sobre-a-evolucao-de-linguagens-de-programacao/
http://pt.wikipedia.org/wiki/UML
http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema
http://pt.wikibooks.org/wiki/Introdu%C3%A7%C3%A3o_%C3%A0_programa%C3%A7%C3%A3o/Linguagens_de_programa%C3%A7%C3%A3o

2 comentários:

  1. Adorei seu Blog, bem sua cara, muita imformação e conhecimento. Parabéns! É por isso que adoro vc.....beijos...

    ResponderExcluir
  2. Oi linda!
    Ameeeeeei o blog!
    Sempre evoluindo, né?
    Já estou seguindo, claro!
    http://doceescopiao.blogspot.com

    Beijooo!

    ResponderExcluir