6.12.05

Evoluir para pior

Nos dias que correm assistimos à migração da lógica para ficheiros de XML. São cada vez mais as tecnologias que acabam por convergir para esta nova filosofia, incluindo a ‘Avalon’, a nova camada de apresentação da Microsoft. Justiça seja feita, pode-se enumerar uma excepção a esta regra; EJB 3.0. Agora que o Java descobriu as anotações, o mundo dos EJBs acabou por suprimir a necessidade de se criarem três (sim três) ficheiros XML por cada ‘Bean’.
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:

Anónimo disse...

É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

Tiago Franco disse...

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

Anónimo disse...

aqui está:

http://www.debugmode.com/wink/

o melhor é mesmo o captivate da macromedia :)

Aquele abraço
Caxaria