programar es divertido, hacer programas es difícil

Este era hasta hace poco el Nick de Messenger de un buen amigo mio. ¡ Que gran verdad !

Hacer pínitos con un lenguaje de programación es divertido. Abres tu editor de código o el IDE del entorno de programación, haces tres dibujitos, picas cuatro lineas, compilas y tienes un bonito formulario con tres etiquetas, 3 cajas de edición, un radio butón y dos botones. Hala, ya has hecho un programa. Fantástico. ¡ Qué fácil es esto de programar !

Las narices.

Hacer programas es difícil y más con entornos de desarrollo inestables. Se acaba de liberar una nueva versión de xHarbour – la 0.81 – que ya trae los CDX casi terminados. Fantástico. El Pcode ahora vale 5 …. a recompilar todas las librerías. Clases de FWH que antes funcionaban ahora no funcionan. Una clase TGet de FWH que iba después de todo el retoque que hicieron en el Get de [x]Harbour ahora no funciona bien. Cosas que funcionaban bien de momento no van. ¿?

Yo no tengo ni idea de programar componentes, pero es que no la quiero tener. Yo quiero tener un entorno de desarrollo estable de una santa vez. No digo que sea culpa de nadie, lo único que digo es que mi negocio no es hacer componentes. Ni se hacerlos, ni puedo hacerlos, ni quiero hacerlos. ¿ Alguien se imagina a un albañil construyendose sus ladrillos ? Por favor… lo importante es mantener lo importante como lo importante. Y dejarse de enredos.

Quiero recompilar mi código y que siga chutando lo que chutaba con la versión anterior del compilador y del GUI. Sólo eso. Ni más ni menos.

Llevo dos meses con Colossus en fase beta. ¡¡¡ Dos meses !!! Entre que no soy Donald Knuth, que tengo poco tiempo para programar y que el suelo se mueve bajo mis pies, así no hay quien libere una versión completa de nada. Es para ponerse a llorar.

En fin, voy a pasar por taquilla y me voy a actualizar al build de 1 de julio de FWH a ver si la cosa mejora, que estoy de los nervios.

el cliente puede tener derecho al código fuente

El pasado 19 de Junio, justo hace una semana, se publicó en el suplemento Ciberpais del diario El Pais una noticia con el mismo título de este post. Llevo toda la semana esperando a ver si leia algo del tema por otro sitio, pero visto que no ha tenido repercusión he decidido escanear la noticia y colgarla aqui.

Creo que estamos ante una sentencia que puede llegar a cambiar la forma de trabajar de muchas empresas. Por lo que dice el artículo el Tribunal Supremo ha dado la razón a una gestoría que demandó a una empresa de informática por no facilitarle los fuentes de un desarrollo contratado a medida. Esto da un vuelco total a las relaciones desarrolladores – clientes. Teniendo en cuenta que la mayoría de profesionales del desarrollo se dedica a hacer software a medida, esta sentencia puede tener una gran repercusión en dicho mercado y en la industria en general. No digo más, dejo la noticia para que cada uno saque sus conclusiones.

una explicación de la Programación Extrema

Este fue el título de la Ponencia de Manuel Calero Solis en el pasado congreso de la asociación de programadores xbase Olivares2000. Entre tanta ponencia técnica, la de Manuel nos acercó una metodología que se engloba dentro de las llamadas metodologías ágiles y que está causando un gran revuelo dentro de la disciplina de la Ingeniería del Software. La ponencia es un estupendo repaso por esta metodología y por eso le he pedido a Manuel que la publique aquí. La ponencia se puede descargar en formato de OpenOffice, Microsoft Word y el archivo de la presentación en Powerpoint file.

Harbour.NET

Los mas viejos del lugar sabíamos que Antonio Linares no se iba a estar de brazos caidos ante los últimos movimientos en el mundillo Xbase. Tanto xIDE como Xailer y C3 son una gran amenaza a la hegemonía que ha mantenido hasta ahora AL con Fivewin, que dicho sea de paso es lo único que hay operativo a día de hoy. El pasado 21 de Junio, Antonio puso el siguiente post en las News de OZS:

Actualmente estoy estudiando CLR y MSIL de .NET para encontrar la forma de portar Harbour a .NET incluyendo a Mono (Ximian) y dotGNU.

Afortunadamente he podido conversar por teléfono con Miguel de Icaza y me ha
proporcionado algunas ideas.

Si tambien estás interesado y quieres intercambiar ideas acerca de dicho
proyecto, eres bienvenido.

Antonio Linares
www.fivetechsoft.com

A esto le llamo yo doble pirueta con salto mortal. Cuando parece que todo el mundo anda mirando a Delphi como paradigma de entorno de desarrollo, AL se descuelga con .NET. Se que a más de uno le ha gustado la idea.

¿ Alguién da más ?

V congreso Olivares2000

El pasado fin de semana se celebró el V Congreso de la Asociación de Programadores xBase Olivares2000 bajo el título de «Presente y futuro de la programación xBase». Yo no se si José Alfonso tiene una bola de cristal, pero no ha podido acertar más.

En el congreso se presentaron herramientas que están a la vuelta de la esquina y que van a constituir el camino a seguir por los programadores xBase en los próximos años. Todos estábamos expectantes ante la evolución de Harbour y xHarbour, pero lo menos que puedo decir es que C3 irrumpió como un elefante en una cacharrería. Bruno Cantero nos dejó a todos pasmados con su trabajo y sus conocimientos. El sólito ha hecho su propio compilador compatible con Clipper y tiene a punto de terminar su propio enlazador. C3 es capaz de generar código de 16 y 32 bits y además no va a necesitar herramientas externas. Bruno ha marcado la última semana de Agosto como la fecha en que tendrá terminado C3 al 100{480d580d36768405d93963bdd82c570c8132a231e8d2b870ef0b18322d1f72b2}, RDD CDX nativo incluido. Tremendo. Pero es que además Bruno ha comenzado su propio GUI para C3 y mostró una versión preliminar de lo que será su IDE. Atentos a C3 que la cosa promete.

El otro protagonista estelar del congreso fue Xailer, que es un nuevo GUI que pretende soportar cualquier compilador xbase de 32 bits y convertirse en la herramienta de desarrollo lider de este entorno. Conozco Xailer porque formo parte del equipo de desarrollo y lo único que puedo decir es que tiene una pinta estupenda. El GUI está muy bien hecho, y digo esto desde mis limitados conocimientos ya que el nivel del grupo principal de desarrollo – José Gimenez, Ignacio Ortiz y José Lalín – tienen un nivel que parecen de otro planeta. Xailer apuesta muy fuerte por el desarrollo con herramientas visuales y ya hay desarrollado un editor de código que incorpora gestión de proyectos y que se integrará en el IDE. Algo realmente bueno.

El resto de conferencias fueron realmente buenas y el nivel de los ponentes muy alto. Me gustó especialmente la de Manuel Calero sobre Programación Extrema, que es una metodología que considero que aporta una visión distinta y válida a la Ingeniería de Software tradicional. Pude compartir dos estupendos dias con colegas que ya son amigos y tuve la oportunidad de conocer por fin a René Flores.

Sin embargo el congreso me dejó un regusto amargo. Hay dos herramientas poderosas a la vuelta de la esquina, que son C3 y Xailer, pero si los dos equipos de desarrollo llegaran a un acuerdo para acercar sus posturas y los dos GUI confluyeran en uno, estoy convencido de que tendriamos una herramienta a la altura de las mejores. Creo que el sentir de todos los asistentes ha sido el mismo: el futuro es bueno, pero si José, Ignacio y Bruno se sentasen a hablar y decidiesen unir fuerzas estoy seguro de que el futuro de los programadores xbase sería mucho mejor.

el marketing del enfoque

Via el foro de debate de JoelonSoftware, auténtica mina de oro para los desarrolladores de software, y despúes de dos piruetas en Google:

La fórmula vieja de hacer cosas diferentes, servir a muchos segmentos de mercado -o no tenerlos bien definidos- y tener un enfoque abierto, ya dejó de funcionar. El futuro será para los que hacen una sola cosa diferente al resto, sirven a pocos segmentos de mercado y tienen un enfoque definido.

El marketing del enfoque

el editor de código ideal

Desde hace bastante tiempo uso MED como editor de código. Es un editor ligero, potente y configurable. Antes de dar el salto a Windows usaba Multiedit con Evolve y tengo que decir que este duo era una auténtica maravilla. La verdad es que deje de usar MultiEdit por una tontería, no me gustaba nada su look para Windows y no conseguí una demo de Evolve, además de que era bastante más caro que otras herramientas.

Mirando herramientas para Delphi a raiz de un enlace a un editor de recursos en un foro de FWH he visto una suite de componentes para el IDE llamada castalia que hace Structural Highlighting, que es algo como esto:

¡ Que pasada !

volcado de enlaces

La semana que viene estaré en Burgos por cosas de trabajo y veo difícil publicar desde allí, así que os dejo unos cuantos enlaces a documentos interesantes para que os entretengais un poquito.

Sobre gestión de proyectos:

  • Gestionar proyectos IT con éxito – PDF 34 páginas.

Sobre programación extrema y metodologías ágiles:

  • La teoría del caos y la XP – PDF 9 páginas.
  • Ventajas económicas en la limitación horaria en el desarrollo de software – PDF 8 páginas
  • Aprendiendo del desarrollo de software ágil, parte 1 – PDF 12 páginas.
  • Aprendiendo del desarrollo de software ágil, parte 2 – PDF 11 páginas.

Y por último recomendaros uno de mis weblogs preferidos: hiperespacio. No sólo de software vive el programador.

¿ dónde ponemos los botones ?

dónde adv. interrog. ¿ en qué lugar ? Diccionario del español actual

Dedicado a Jaime Irurzun Graña

Uno de los principales objetos de un interfaz gráfico de usuario son los botones de comando. Suelen tener forma rectangular con una etiqueta descriptiva y al pulsarlos el programa ejecutará una acción determinada. Pero… ¿ dónde los ponemos ?

La ubicación de los botones en una ventana secundaria es algo fundamental, pues normalmente son los elementos más importantes de la misma. Pensemos en cualquier dialogo de un mantenimiento: el botón Aceptar nos permite almacenar la información introducida y el botón Cancelar nos permite descartar la información introducida en el diálogo y salir de allí sin grabar nada.

Uno de los principios del diseño de interfaces dice que una ventana debe leerse como se lee un libro, en las lenguas occidentales esto supone leer la ventana de izquierda a derecha y de arriba abajo. Pensemos lo que debe hacer un usuario en un diálogo de mantenimiento: deberá recorrer el diálogo introduciendo sus datos y una vez finalizada la introducción de datos deberá guardar esta información. Los botones de comandos finalizan el dialogo por lo que parece claro que su ubicación es en la parte baja del diálogo. Además, si nos fijamos en cualquier diálogo de Windows, veremos que cuando los botones aparecen abajo se ajustan a la derecha.

Debemos fijarnos en los detalles. El botón Aceptar siempre va a la izquierda del botón Cancelar, y si hay más botones normalmente se situarán a la derecha del botón Cancelar.

Pero… ¿ qué pasa si necesitamos más botones ? Lo que no debemos hacer nunca es poner dos filas de botones. La solución pasa por ponerlos en vertical a la derecha del diálogo. Algo como esto:

Aquí estamos siguiendo el principio de leer el diálogo de izquierda a derecha y de arriba abajo. Primero elegiremos la materia que deseemos y luego pulsaremos el botón de comando. Si la materia que deseamos está disponible haremos click en Aceptar, y si no la daremos de alta pulsando el botón Nuevo o haremos cualquier otra acción.

Una cosa que no me parece apropiada es situar botones de comando a la derecha de un diálogo o ventana. Entonces ¿ el siguiente formulario está bien diseñado o está mal ?

Pues… mitad y mitad, me explico. La secuencia correcta debería ser interactuar primero con la rejilla de datos y luego con los botones de acción, por lo que estos deberian estar a la derecha. Sin embargo en ventanas que ocupan toda la pantalla – como el Explorador de Windows – estamos acostumbrados a tener las rejillas de datos a la derecha. El caso del Explorador es diferente de una ventana de un mantenimiento pues lo que tiene el Explorador a la izquierda es un árbol que va desplegando el contenido de las ramas a la derecha, y ahí si se respeta la lectura de izquiera a derecha. En el caso que nos ocupa, muchos programas de gestión – creo que el primero de todos fue Microsoft Money – usan interfaces de este tipo, con lo que constituyen un estandar de facto y los usuarios de este tipo de software esperan encontrar el menú de acciones a la izquierda.

Yo unicamente uso botones a la izquierda cuando los agrupo en una barra de botones. Si tengo que poner botones sueltos, como en el diálogo de selección anterior, siempre los pongo a la derecha.

Conclusión:

  • Aceptar y Cancelar abajo a la derecha y en este orden.
  • Si los botones de un diálogo no te caben abajo, ponlos a la derecha, nunca pongas dos filas de botones.
  • Si vas a agrupar los botones en una barra, ponlos a la izquierda.

De Vannevar Bush a la WWW

De Vannevar Bush a la WWW
Núria Almiron
Edicions 3i4
ISBN 84-7502-630-3
Idioma: Catalán

En este libro Núria Almiron hace un recorrido por la historia de las interfaces hombre-máquina desde la primera concepción del las conexiones no lineales de información hasta la WWW. De esta manera va narrando los origenes de todos los hitos y logros importantes de la humanización de los interfaces, acercándonos a sus autores y remarcando la importancia de cada uno de ellos.

Personajes como Vannevar Bush, Douglas Engelbart, Ivan Sutherland, Ted Nelson, Alan Kay o Jef Raskin. Máquinas como el Alto, Star, Lisa, Mackintosh, Atari ST y Commodore Amiga. Todos ellos han contribuido de manera sobresaliente a la humanización de nuestra relación con los ordenadores y son auténticos desconocidos para la inmensa mayoría de usuarios y profesionales de las Tecnologías de la Información.

Este libro es una auténtica joya. Está escrito en catalán, lo que limita ciertamente su difusión, pero espero pronto verlo editado en castellano pues realmente estamos ante un libro fundamental para entender un poco mejor la evolución de una de las materias fundamentales de las Tecnologias de la Información: la HCI o interacción hombre-ordenador.