Realizo IU (escritorio, no web) y tripas internas.
La cantidad que me gusta o no me gusta de cualquiera depende de cuánto puedo hacer usando algo como un lenguaje específico del dominio (DSL).
En el dominio de la interfaz de usuario, lo que les presento a los usuarios y la complejidad de la información que obtengo de ellos es tal que me volvería loco si tuviera que usar herramientas típicas, como diseñadores de formularios, muchos eventos. manejadores, MVC, todas esas cosas de "estado del arte". Afortunadamente, hace décadas descubrí lo que creo que es una mejor manera, que es hacer un DSL para eso, y trabajar en eso. Actualmente lo llamo Dynamic Dialogs, y se basa en una estructura de control que llamo Ejecución diferencial . La buena noticia es que, para una funcionalidad dada, el código fuente es aproximadamente un orden de magnitud menor, lo que me permite poner mucha más funcionalidad en la interfaz de usuario. La mala noticia es que, por mucho que haya intentado enseñarlo, no he tenido mucha suerte al transferir la tecnología.
En el dominio sin interfaz de usuario, tomé una lección de una serie de productos que comenzaron como DSL utilizables desde la línea de comandos, en la que posteriormente se injertó una interfaz de usuario. Eso le da al usuario experto algo donde puede pasar por alto la interfaz de usuario, mientras que le da al usuario casual algo que puede usar de manera casual. (Ejemplos: R, SPlus, Matlab, SAS, WinBugs). Así que nuestro producto tiene un lenguaje de línea de comandos para expertos Me encanta desarrollar este tipo de cosas, con un analizador, un generador de código, un precompilador y un motor de modelado en tiempo de ejecución. El esfuerzo invertido en eso es al menos una potencia de 10 menos que el esfuerzo invertido en la interfaz de usuario.
Una de las razones por las que el esfuerzo de UI es tanto es que todavía hay mucho "pegamento" que no se puede hacer con un DSL: administrar las cuadrículas de datos, todo tipo de formas de clasificación de datos, todo lo que cae en el bostezo. "crack" entre la interfaz de usuario pura y el lenguaje subyacente.
Entonces tu pregunta fue "¿Por qué algunos programadores odian la parte de desarrollo de IU?". Solo lo odio por ese "pegamento" para el que no tengo un DSL.