Edward Z. Yang, graduado pelo MIT e aluno de PhD em Stanford, publicou em seu blog o artigo "Programação Extremista", em que sugere a técnica como estratégia eficiente para se aprender um conceito. (A técnica não tem ligação com XP). O autor define a PE como o "ato de elevar um princípio acima de todas as coisas e colocá-lo em prática o máximo possível".
Após um experimento, normalmente olhamos para o extremismo e pensamos: "Foi interessante, mas usar X em Y certamente não foi adequado. É preciso usar a ferramenta correta para cada trabalho".
Mas, segundo o autor, às vezes é preciso usar a ferramenta "errada" para realizar um trabalho, pois pode ser que seja a ferramenta correta e não se saiba disso ainda.
Se você não tentar usar funções em toda parte, pode não perceber a utilidade das funções que aceitam outras funções como argumento. Se não usar objetos em toda parte, pode não perceber que inteiros e até mesmo a classe de um determinado objeto são também objetos
O autor dá duas recomendações:
- Quando estiver aprendendo um novo princípio, tente aplicá-lo o máximo possível. Dessa maneira, poderá aprender mais rapidamente onde o princípio funciona bem ou não, mesmo se as primeiras intuições a respeito estiverem erradas. Por outro lado, ao utilizar a ferramenta correta desde o início, algumas oportunidades poderão ser perdidas;
- Ao tentar articular a essência de algum princípio, uma linguagem extremista é mais clara. Se quiser descobrir como é programar com avaliação tardia, é preciso usar Haskell; não uma linguagem que oferece opcionalmente esse recurso. Mesmo que uma linguagem extremista seja menos prática, ela ajuda a chegar ao núcleo da questão muito mais rápido.
Mas o extremismo tem limites e não é apropriado na maioria das situações, destaca Yang. Ele sugere aplicar a técnica apenas em projetos pequenos, em pesquisas ou em projetos não críticos. Nesses cenários, a programação extremista pode ser uma estratégia eficiente para se aprender novos conceitos e expandir os conhecimentos sobre programação.