Je fais à la fois l'interface utilisateur (bureau, pas Web) et les tripes internes.
Le montant que j'aime ou que je n'aime pas l'un ou l'autre dépend de ce que je peux faire avec quelque chose comme un langage de domaine (DSL).
Dans le domaine de l'interface utilisateur, ce que je présente aux utilisateurs et à la complexité des informations qu'ils me fournissent est telle que je deviendrais fou si je devais utiliser des outils classiques, tels que des concepteurs de formulaires, de nombreux gestionnaires d'événements, MVC. , tout ce "truc de pointe". Heureusement, il y a des décennies, j'ai découvert ce qui me semble être un meilleur moyen, à savoir faire une connexion DSL, et y travailler. Actuellement, j'appelle cela le dialogue dynamique, basé sur une structure de contrôle que j'appelle l' exécution différentielle . La bonne nouvelle est que, pour une fonctionnalité donnée, le code source est à peu près d'un ordre de grandeur inférieur, ce qui me permet d'ajouter beaucoup plus de fonctionnalités à l'interface utilisateur. La mauvaise nouvelle est que, même si j'ai essayé de l'enseigner, je n'ai pas eu beaucoup de chance de transférer la technologie.
Dans le domaine non-interface utilisateur, j'ai tiré des leçons d'un certain nombre de produits initialement conçus en tant que DSL utilisables à partir de la ligne de commande, sur lesquels une interface utilisateur a ensuite été greffée. Cela donne à l'utilisateur expert quelque chose où ils peuvent contourner l'interface utilisateur, tout en donnant à l'utilisateur occasionnel quelque chose qu'ils peuvent utiliser avec désinvolture. (Exemples: R, SPlus, Matlab, SAS, WinBugs.) Notre produit dispose donc d’un langage de ligne de commande pour les experts. J'aime développer de telles choses, avec un analyseur syntaxique, un générateur de code, un précompileur et un moteur de modélisation au moment de l'exécution. L'effort consacré à cette opération est au moins 10 fois inférieur à celui de l'interface utilisateur.
Une des raisons pour lesquelles l’assurance-chômage est si importante est qu’il reste encore beaucoup de "colle" qui ne peut pas être faite avec un DSL - la gestion des grilles de données, toutes sortes de façons de trier les données, tout ce qui tombe dans le "crack" béant. entre l'interface utilisateur pure et la langue sous-jacente.
Votre question était donc "Pourquoi certains programmeurs détestent-ils la partie interface de développement du développement?". Je ne le déteste que pour cette "colle" pour laquelle je n'ai pas de DSL.