Ontem me deparei com um ótimo post do LLBLGen Man, Frans Bouma, discutindo as Dynamic Languages (DL) e a redução de linhas de código (LoC).
Ele contra-argumenta que a simples redução de LoC trazida pelas DL não é sinal de melhoria.
Mas o melhor argumento dá uma paulada (talvez sem querer) nas DL. Ele diz que as DL, trazendo códigos parecidos com linguagem natural, não resolvem o principal problema que é o entendimento ou intenção macro. Por exemplo: entender o que um método faz não quer dizer que você vai entender a intenção da existência daquela classe ali, daquele jeito.
Como dizia um antigo professor meu de matemática, "basta extrapolar para ver se quebra". Extrapolando o exemplo acima, pegue um projeto grande, com suas 300 e poucas classes. Devo eu, mero desenvolvedor, ler linha a linha para entender a intenção de cada método e montar um modelo na minha cabeça da intenção daquelas classes? Sejam essas classes desenvolvidas em C#, com 500 mil LoC ou Ruby, com 100 mil LoC, é inviável e "quebra".
O post é quase um manifesto anti-dynamic-languages... ou pelo menos ajuda no anti-hype/buzz das DLs. Ao ler os comentários pode-se ouvir em alto brado o grito de angustia e indignação dos que já programaram em ASP e VB3, antigas "DL" ou até já tem experiências nas novas DL.
As DLs não resolvem os problemas que temos hoje no desenvolvimento de software. E, pior: podem trazer problemas que já tivemos. Como não uso DL, sou suspeito. Mas como já deixei o "run-time" fazer muita coisa por mim (e fez errado), também sei que não quero ir por esse caminho tão cedo.
Frans' Blog:
http://weblogs.asp.net/fbouma/archive/2007/12/24/codebase-size-isn-t-the-enemy.aspx
Ah! Pra finalizar, um contra-contra-argumento:
http://ayende.com/Blog/archive/2007/12/25/Code-base-size-complexity-and-language-choice.aspx ...
... e a frase matadoura "Separation of concerns is the only way to create maintainable software".
Dynamic Languages e LoC /ou: Quero ver quebrar...
Assinar:
Postar comentários (Atom)
Li e recomendo...
Labels
- acadêmico
- agile
- arquitetura
- asperger
- case
- cloud computing
- collaborative
- Contract Programing
- data mining
- desenvolvimento
- desperdício
- diagram.net
- free
- gerenciamento
- individual
- javascript
- livro
- mente
- microsoft
- mono
- node
- NPL
- offtopic
- open source
- REST
- ruby
- search
- social network
- statistics
- system of systems
- telecom
- vector space model
- web 2.0
- windows
0 comentários:
Postar um comentário