Hace unos días consulté en las news de CodeGear qué opciones hay usando sus herramientas para crear la interfaz de usuario de un programa cuyo "back-end" ha sido escrito en C#. La experiencia ha sido sorprendente por varias razones. No sabía que CodeGear hubiese "congelado" su C#, no sólo como producto independiente, sino también dentro del RAD Studio, en el que no tiene acceso al diseño de formularios. Realmente tampoco esperaba, por eso es bueno preguntar :-) que hubiese buenas opciones para crear la interfaz con Delphi.NET. CodeGear ha desechado Winforms y se ha quedado con el otro toolkit, VCL.NET. La ventaja de éste es que tiene un diseñador de formularios bastante más usable que el de Visual Studio y que las interfaces creadas responden con más agilidad que las construidas con Winforms. En el lado negativo, parece que cualquier librería gráfica no apoyada directamente por Microsoft necesita privilegios especiales para ejecutarse.
Pero si hay algo que me ha sorprendido es la falta de opciones. Hace unos años Microsoft dominaba el mercado de herramientas de programación para escritorio con su Visual Basic "clásico" (quiero decir el que no era .NET) con bastante más usuarios que entornos como Delphi u otros lenguajes de su Visual Studio como el C++. Ahora han dejado de desarrollar ese producto y se vuelcan con .NET donde, sea con VB o con C#, no parece haber opción para crear interfaces de usuario con la misma riqueza que la anterior generación de herramientas. No tengo experiencia directa, corregidme si me equivoco, pero lo que me llega es que el diseñador de formularios es incómodo y los controles son pobres y responden con lentitud. La frase literal ha sido que "parece Java". ¿Es realmente tan malo? ¿Qué han hecho los programadores de VB? ¿Siguen con la versión 6?
Los partidarios de .NET parecen pensar que se arreglará en las próximas versiones, que WPF (que ahora mismo tampoco se encuentra en un estado verdaderamente usable) sustituirá finalmente a Winforms y que el entorno de desarrollo mejorará. Pero es difícil entender por qué se habría de meter Microsoft en semejante berenjenal con vistas al futuro, cuando ya tenía en el presente el dominio, cabreando además a sus programadores y perdiendo una ventaja sobre la competencia.
Si hay un terreno de importancia estratégica en las guerras del software, es el de la programación de interfaces gráficas de usuario. Hay pocas organizaciones que hayan sido capaces de crear un "ecosistema" suficientemente rico y fácil de usar. Los lenguajes emergentes como Ruby o Python suelen tirar más bien por la socorrida interfaz web, ya que para usar Qt o el API de Windows cómodamente es poco menos que imprescindible tener un IDE. A pesar de todos los pesares, Delphi sigue teniendo un algo que no tienen los demás :-)