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).

Enviar por E-Mail

2 respostas to “QCon - Radical Simplification through Polyglot and Poly-paradigm Programming”

  1. Blog Oficial da Locaweb » Blog Archive » O que passou pelo blogs da Locaweb em Novembro Says:

    [...] QCon - Radical Simplification through Polyglot and Poly-paradigm Programming [...]

  2. Blog Oficial da Locaweb » Blog Archive » O que passou pelos blogs da Locaweb em Novembro Says:

    [...] QCon - Radical Simplification through Polyglot and Poly-paradigm Programming [...]

Deixe um comentário