Como programador con mediana experiencia me gustaría expresar en primer lugar que arquitectura sigo en la actualidad para que alguien me pueda ayudar a mejorar.
La idea que tengo asentada en mi cabeza es la de separar INTERFAZ y DATOS esto es con la herramientas existentes en la actualidad imposible. Creo que en el futuro un programador no se deberá preocupar del diseño de las aplicaciones. Deberían ser Diseñadores/Ergonomistas los que realizaran esta labor. Esto lo constate a raiz de programar para la WEB. En este sentido empece a darme cuenta de el tiempo que perdía diseñando interfaces que luego al final resultaban feas y/o pobres de cara al usuario.
En mi opinión uno arquitecto debe sentarse primeramente a saber que datos necesita un manejar y diseñar la base de datos lo más normalizada posible. Después pensar en la interfaz que uno desea en detalle sobre un papel. Después en base a esa interfaz diseñar los métodos de programación necesarios para alimentar dicha interfaz. El gran problema estriba en como se comunican ambas capas además de que las herramientas actuales no están ni mucho menos pensadas para trabajar asi.. Creo que lo ideal sería que hubiera lenguajes de interfaz orientados al S.O. y tipo de dispositivo (lo más parecido hoy día son HTML,AJAX,FLASH,ASP,ASP.NET,PHP .... )y lenguajes orientados a datos parecidos al Transact SQL/PSQL de hoy día pero mucho más ricos en librerías. Deberían comunicarse con protocolos muy sencillos y estandar, el XML sería la vía. Pero manejar XML es muy laborioso por tanto debiera haber tambien un estandar de canalización de dichos XML entre aplicaciones asi como convenciones más especificas de creación de dichos XML algo a nivel de S.O. pero a la vez preparado para ser multiplataforma.
Ahí queda planteado esto para que alguien pueda opinar.