QCon - Radical Simplification through Polyglot and Poly-paradigm Programming
A track de Effective design and Clean code foi encerrada com a palestra de Dean Wampler, da Object Mentor. Ele iniciou com uma breve discussão sobre linguagens e paradigmas de programação, observando que:
- Não existe um paradigma de programação que funcione bem para todos os tipos de aplicação
- Não existe uma linguagem ideal para todos os tipos de domínio
Segundo Dean o maior problema daquilo que definiu como monoculturas é que geralmente há mais código do que o necessário - o que ele definiu como the pervasive IT problem – e que a razão para isso é o uso de linguagens ou paradigmas não ideais para o problema sendo resolvido.
Ele então apontou quatro problemas considerados comuns em monoculturas, analisou seus principais sintomas e definiu estratégias para solucioná-los através de polyglot and poly-paradigm programming:
Problema 1: Necessidade de maior extensibilidade e agilidade
Sintomas:
- Novas funcionalidades levam muito tempo para ser implementadas
- Reação lenta a mudanças
Solução:
Aplicação = Componentes + Scripts
Componentes: escritos em linguagem estática (Java, C#, C++, C, etc) e compilados para ter melhor performance. Possuem produtividade mais baixa.
Scripts: escritos em linguagens dinâmicas (Ruby, Python, etc…) e interpretados para ter melhor extensibilidade e agilidade. Possuem produtividade mais alta.
Problema 2: Código obscuro e de difícil manutenção
Sintomas:
- Lógica de negócio não vem à tona ao ler o código
- Traduzir regras de negócio em código é algo propenso a erros
Solução:
Domain Specific Languages - modelar uma linguagem que faça com que o código seja lido como uma frase estruturada contendo regras do domínio de negócio
Problema 3: Há código duplicado por toda parte
Sintomas:
- Há lógica de persistência em todas as classes do domínio
- Tratamento de erros e logging é inconsistente
Solução:
Programação orientada a aspectos para lidar com Cross-cutting concerns
Problema 4: A aplicação é altamente concorrente e deve estar disponível 24×7
Sintomas:
- Dificuldade em escrever código realmente Thread-safe
- O sistema “trava” ao ser submetido a grande carga
Solução:
Programação funcional: torna a programação concorrente fácil por não haver necessidade de sincronização, e portanto não há preocupação com locks, semáforos, etc.
Por fim Dean observou que muitas coisas que eram consideradas velhas estão se tornando novas outra vez, como o caso de programação funcional e de algumas linguagens dinâmicas (como Ruby e Lisp).
4 de dezembro de 2008 às 10:30
[...] QCon - Radical Simplification through Polyglot and Poly-paradigm Programming [...]
4 de dezembro de 2008 às 11:41
[...] QCon - Radical Simplification through Polyglot and Poly-paradigm Programming [...]