Los principios del programador

Hace unos días se ha publicado en Conocimiento Libre (o lo que está detrás del Software Libre) el artículo Los principios del programador, escrito en inglés por Daniel Read y traducido al castellano por Juan A. Romero.

En el artículo se comentan los siguientes principios de la programación:

  1. El principio del carácter personal que establece: escribir el código de forma que refleje, y saque a relucir, solo lo mejor del carácter personal del programador.
  2. El principio de la estética que establece: Esforzarse por conseguir la belleza y la elegancia en cada aspecto del trabajo.
  3. El principio de la claridad que establece: Darle el mismo valor a la claridad que a la corrección. Utilizar activamente técnicas que mejoran la claridad del código. La corrección vendrá casi por sí sola.
  4. El principio de la distribución que establece: Usar la distribución visual del código para comunicar la estructura del código a un lector humano.
  5. El principio de lo explícito que establece: Intentar siempre favorecer lo explícito sobre lo implícito.
  6. El principio de código auto-documentado que establece: La documentación más fiable para el software es el propio código. En muchos casos, el propio código es la única documentación. Por lo tanto, hay que esforzarse en hacer que el código sea auto-documentado, y allí donde no sea posible, añadir comentarios.
  7. El principio de los comentarios que establece: Comentar mediante frases completas para resumir y comunicar la intención.
  8. El principio de las suposiciones que establece: Dar los pasos que sean razonables para comprobar, documentar y prestar atención a las suposiciones hechas en cada módulo y rutina.
  9. El principio de la interfaz con el usuario que establece: No hacer nunca que el usuario se sienta estúpido.
  10. El principio de volver atrás que establece: El momento de escribir buen código es justamente el preciso momento en el que se está escribiendo.
  11. El principio de el tiempo y el dinero de otros que establece: Un verdadero profesional no gasta el tiempo ni el dinero de otras personas produciendo software que no esté razonablemente libre de fallos; que no esté mínimamente probado; que no cumpla con los requisitos establecidos; que esté falsamente adornado con características innecesarias; o que tenga un aspecto deplorable.

El artículo desarrolla los anteriores principios junto con consejos sobre la escritura de programas informáticos.

Más novedades de la Competición de IA de Google 2010

Como comenté en la entrada en la que anunciaba la Competición de IA de Google 2010, estaba previsto posibilitar la programación del juego en Haskell, Common Lip.

En la entrada anterior anuncié el soporte del juego en Haskell

En Common Lisp Starter Package se ha publicado el soporte del juego en Common Lisp.

Como la competición se celebrará del 10 de Septiembre al 27 de Noviembre, pienso que puede ser un reto que se le plantee a los alumnos de la asignatura de Inteligencia Artificial el primer día de clase. Incluso se puede fomentar la participación puntuando los resultados obtenidos en la competición.

Competición de IA de Google 2010

Se ha anunciado la Google AI Challenge del 2010. Este año el objetivo es crear un programa para el juego de la Guerra de los Planetas que juege tan inteligentemente como sea posible.

El juego de la guerra de los planetas es un juego de estrategia inspirado en el Galcon.

Se puede participar en la competición programando la estrategia del juego en distintos lenguajes de programación a los que en breve se añadirán Haskell y Common Lisp.

Esta competición puede utilizarse en distintas asignaturas que impartimos:

Competición de IA de Google

La Google AI Challenge de este año es sobre un juego con dos jugadores, el Tron, que es parecido al Snake.

Se puede participar en la competición programando la estrategia del juego en distintos lenguajes de programación, entre los que se encuentran Haskell y Common Lisp.

Esta competición puede utilizarse en distintas asignaturas que impartimos: