Como já devem ter percebido, não estou muito satisfeito com esta nova filosofia. E penso que existem argumentos fortes para justificar o meu ponto de vista. O facto de se andarem a elaborar ‘Domain Specific Languages’ (DSLs) em XML é o suficiente para deixar qualquer profissional de TIs no mais profundo desespero, senão vejamos.
Ando a investigar tecnologias para desenvolver ‘Rich Client Applications’, ou seja, interfaces gráficas que correm em programas instalados no computador do utilizador. E qual não é o meu espanto quando verifico que existem inúmeros projectos emergentes que possibilitam o desenvolvimento de interfaces através de ficheiros XML. O programador acaba por desenvolver uma parte considerável do código neste tipo de ficheiros, que mais tarde são interpretados por um motor gráfico. O curioso é que a maior parte das vezes o XML não chega, e acabamos por ter a lógica do programa espalhada por duas DSLs diferentes (i.e. Java e XML).
Mesmo que as tecnologias permitissem o desenvolvimento integral da aplicação numa DSL desenvolvida sobre XML, esta filosofia acabaria por empurrar o software para linguagens que são interpretadas em vez de compiladas. E este factor é mais que suficiente para causar problemas e deixar os intervenientes à procura de erros no código pela noite dentro. Basta ter em conta que:
- Muitas vezes estas DSLs não têm XML Schemas, deixando o programador à mercê da documentação e dos exemplos, quando existem
- O Schema, quando existe, não muito é fácil de interpretar por humanos
- Uma linguagem interpretada não detecta erros em tempo de compilação, simplesmente porque esta fase não existe. Alguns IDEs conseguirem encontrar incoerências no XML através do Schema, mas não é a mesma coisa
- Ainda não existem técnicas de ‘refactoring’ decentes para facilitar o desenvolvimento e a manutenção do projecto
- O XML foi desenvolvido com foco nos dados e não no código
Mas nem tudo são más noticias, pelo menos para as empresas que fornecem as tecnologias. Quando as coisas já se encontram estabilizadas e bem definidas no paradigma orientado aos Objectos, eis que surge uma nova filosofia e há sempre quem venha a ganhar balúrdios com migrações e formações adicionais. No papel que me toca, não vejo qualquer vantagem nesta “nova” filosofia, e antevejo muitas noites em branco no dia em que me vir obrigado a adoptá-la... para mal dos meus pecados, esse dia está cada vez mais perto.
Abraços,
Gama Franco
3 comentários:
És um velho do restelo!!!
Isto, se for realmente bom, irá obrigar ao desenvolvimento de IDE's ao nível... quem sabe, desenvolvidos por ti! :) Vai masé ver o laszlo! (http://www.openlaszlo.org/)
Abraços
Caxaria
Boas,
És capaz de ter razão, mas até lá temos muito que labutir. De qualquer forma acho que a coisa poderia evoluir noutro caminho, sem exigir que os profissionais mergulhem novamente em pilhas de documentação.
Já dei uma vista de olhos no Laszlo, aquilo é potente.
Já agora, consegues arranjar o link do programa open source que falámos? Aquele que gera um filme das operações que se fazem no computador.
Abraços,
Gama Franco
aqui está:
http://www.debugmode.com/wink/
o melhor é mesmo o captivate da macromedia :)
Aquele abraço
Caxaria
Enviar um comentário