programación

Mis tropiezos con Google App Engine

¿Es Google App Engine una plataforma suficiente para desarrollar aplicaciones “serias”? ¿O son sus limitaciones demasiado restrictivas en algunos casos?

Logo 'roto' de Google App EngineHace bastante tiempo que tengo en mente una idea para desarrollar una aplicación web y, cuando me decidí por fin a implementarla, elegí Google App Engine, a pesar de que no conocía Python, el único lenguaje que soporta ahora mismo (aunque ha sido una buena excusa para aprender) y a pesar de algunas limitaciones propias de un servicio gratuito y en pruebas.

Al fin y al cabo, esos inconvenientes parecían quedar ampliamente superados por las ventajas de usar la misma infraestructura que usa Google para sus propias aplicaciones: robustez, existencia de un entorno de desarrollo, APIs de gestión de usuarios, de almacenamiento de datos, etc.

(more…)

METAeuFORiAS: Dijkstra, las metáforas y sus límites

Como ya se explica en la página descriptiva del blog, las metáforas y analogías son una potente herramienta para entender algunas ideas y descubrir otras nuevas. Sin embargo, siempre es necesario tener en cuenta que toda metáfora tiene sus limitaciones,…

Como ya se explica en la página descriptiva del blog, las metáforas y analogías son una potente herramienta para entender algunas ideas y descubrir otras nuevas. Sin embargo, siempre es necesario tener en cuenta que toda metáfora tiene sus limitaciones, así que hay que saber cuándo no llevarla más lejos, o cuándo, simplemente, es necesario abandonarla.

Edsger W. Dijkstra, una de las figuras contemporáneas de referencia en la informática y, más concretamente, en la programación, escribió hace ya 20 años el artículo “Sobre la crueldad de verdaderamente enseñar ciencias de la computación” en el que expone uno de esos casos en los que, en su opinión, es necesario abandonar una metáfora que afecta a las computadoras actuales y su programación.

[…] seguir leyendo en METAeuFORiAS (1.513 palabras)

METAeuFORiAS: Desarrollar software es como realizar una película

Tal como se explica en algunos artículos disponibles en la red (como este, este, o este) existen diversas similitudes entre los procesos de desarrollar un determinado software, y la realización de una película desde su concepción inicial. En esta entrada…

Tal como se explica en algunos artículos disponibles en la red (como este, este, o este) existen diversas similitudes entre los procesos de desarrollar un determinado software, y la realización de una película desde su concepción inicial. En esta entrada vamos a reunir esas analogías, así como descubrir algunas nuevas.

Rodaje grabando a un programador

 

[…] seguir leyendo en METAeuFORiAS (1421 palabras)

Programar y escribir para la web: no tan diferentes

Leo un artículo en el blog de Ricardo Galli titulado Tratar al código fuente como un ensayo que me ha vuelto a crear una conexión entre dos temas que en principio parecen poco relacionados pero de los que se puede…

Leo un artículo en el blog de Ricardo Galli titulado Tratar al código fuente como un ensayo que me ha vuelto a crear una conexión entre dos temas que en principio parecen poco relacionados pero de los que se puede extraer alguna enseñanza común; en este caso, la programación y la redacción de textos para la web.

Código fuenteRicardo habla de un libro (Beautiful Code) y, más concretamente, de un capítulo titulado como su artículo: Treating Code As an Essay. En él se señala la similitud entre el código fuente de un programa y un ensayo, en el sentido de que, si bien en ambos casos su propósito es lo fundamental (“¿de qué se trata?”; “¿qué hace?”), no debe descuidarse el estilo en que están escritos, ya que no sirven de nada si no pueden ser interpretados por seres humanos.

A continuación rescata algunas reglas generales para escribir código de calidad:

  • Brevedad: La brevedad es una virtud, definitivamente hay un coste de lectura para el ojo humano, el código debe eliminar la información redundante
  • Familiaridad: Las personas son más conservadoras de lo que pensamos. Las curvas de apredizaje elevadas creean estrés y reducen productividad. Un lenguaje no debe obligar a los progamadores a trabajar con conceptos nuevos y complejos. No ser demasiado innovador es también una ayuda para el “código bello”.
  • Simplicidad: Si un programa es complicado de entender no puede tener belleza.
  • Separar bloques: Separar los bloques lógicos en cada función, así se facilita la lectura más rápida y en “diagonal”.
  • etc.

Inmediatamente me han venido a la memoria las reglas que da Jakob Nielsen para escribir para la web; de hecho, algunos de los puntos son prácticamente idénticos: simplicidad, brevedad, lenguaje familiar, etc. Y es que, pensándolo un poco, las situaciones no son tan diferentes:

(more…)