He hecho una recopilación (desde varios sitios) de formas que tiene un programador para matar a un dragón, utilizando diferentes herramientas o lenguajes de programación.
C: Llega, mira al dragón con mirada de desprecio, tira la espada, degolla al dragón, encuentra a la princesa y la ignora para ver los últimos checkins del cvs del kernel de linux.

C++: Crea un pincho básico y va juntando funcionalidades hasta tener una espada compleja que apenas consigue entender. Mata al dragón pero se atasca en medio del puente por culpa de pérdidas de memoria (memory leaks).

Ensamblador: Cree que está haciendo lo más correcto y eficiente, pero pone una A en lugar de una D y mata a la princesa para terminar comiéndose al dragón.

Java: Llega, encuentra al dragón, desarrolla un framework para aniquilación de dragones en múltiples capas, escribe varios artículos sobre el framework, pero no mata al dragón.

Smalltalk: Llega, analiza al dragón y a la princesa, se da la vuelta y se va. Y luego dice: “Ellos son muy inferiores”.

.NET: Llega, ve la idea del desarrollador de Java y la copia, intenta matar al dragón, pero el bicho se lo come.

Delphi: Crea una aplicación rápidamente, mata al dragón, enamora a la princesa pero cuando va a donde su padre (el Rey) este le niega el matrimonio porque le dijeron que los caballeros de verdad conocen C.

ADA: Programa un misil de los EEUU para acabar con el dragón, pero se olvida de manejar un excepción y mata al dragón, a la princesa, al castillo, al pueblo debajo del castillo y todo el terreno en un radio de 15 km.

Fortran: Llega y desarrolla una solución con 45 mil líneas de código, mata al dragón, va al encuentro de la princesa, pero ella le llama tirillas y se va corriendo detrás del programador de java que era elegante y además rico.

COBOL: Llega, ve al dragón y piensa que es demasiado viejo para conseguir matar un bicho de ese tamaño y quedarse con la princesa, y entonces se va.

Clipper: Monta una rutina que carga un array de codeblocks para insultar al dragón, cantarle a la princesa, cargar la espada a memoria, moler al dragón, limpiar la suciedad, preparar un vaso de leche condensada con moras para la princesa, darse un baño, encender el auto, ponerle gasolina y volver a casa. A la hora de ejecutar recibe un “Bound Error: Array Access” y el dragón se lo come con patatas.

Lisp: Donde el famoso caballero andante, tras hablar con numerosos expertos en matar dragones y modelar el conocimiento que ellos poseen programa el sistema y se da cuenta de que ha dejado algún paréntesis.

Haskell: Define una lista infinita de espadas y una lista infinita de métodos para enfrentarse al ataque del dragón y matarlo. Hace un map entre los métodos y las espadas y va a enfrentarse el dragón. El dragón lo ve, no le suena de nada, lo ignora y se va. El caballero se queda para siempre combinando espadas y métodos de matar dragones.

Prolog: Piensa que para matar al dragón necesita un arma. Busca en un catálogo 182014 armas. Para cuando la princesa muere de vieja ya ha logrado descubrir como fabricar todas las armas que empiezan por la A: Armas atómicas, Alabardas, Alfanges, Asesinos contratados, Armas blancas, Antiaéreos, Arcos, …

Pascal: Se prepara durante 10 años para crear un sistema de aniquilación de dragones. Cuando llega el momento descubre que el programa sólo acepta lagartijas como entrada.

Python: Lo mata en dos o tres líneas después de instalar un módulo para matar dragones.

Perl: El caballero decide matar al dragón con una expresión regular, pero se equivoca en los caracteres de comodín y acaba incluyendo en el patrón de mortalidad a dragones, iguanas, lagartos, perros, gatos, osos, princesas y ratones.

Ruby: Llega con muchísima fama, diciendo que es el mejor en hacer cualquier cosa y cuando va a enfrentarse al dragón muestra una peliculita de el matando a un dragón. El dragón se lo come de puro aburrimiento.

PL/SQL: Recoge datos de otros matadores de dragones, crea tablas con n relaciones de complejidad ternaria, datos en tres dimensiones, OLAP, tarda quince años para procesar la información y para entonces la princesa se volvió lesbiana.

SQL-Server: El caballero abre una transacción para que mientras él mata al dragón nadie se coma a la princesa. La transacción no solo bloquea al dragón y a la princesa, si no que bloquea a todos los animales y mujeres del reino. El caballero intenta cerrar la transacción pero no puede mas que reiniciar todo el reino. El rey le corta la cabeza después de que resuelve el bloqueo, tras 50 años de castidad y comida vegetariana.

Shell: Crea un arma poderosa para matar dragones, pero en la hora H no recuerda como usarla.

Shell (2): El tipo se acerca al dragón con un script de dos líneas que mata, corta, destripa, pica en pedacitos y empaca al bicho, pero a la hora de ejecutar el script aumenta, engorda, enfurece y pone alcohol en el fuego del dragón.

Basic: Crean un arma capaz de matar a dragones de papel, pero por mucho que la perfeccionan descubren que no sirve para matar a ningún dragón más grande que una cría de caniche.

Modula 2: Implementa un método académicamente impecable para matar al dragón, pero no encuentra ninguna espada de verdad con la que usar dicho método.

Sinclair Basic: El programador introduce la cinta para cargar el compilador en el sistema y escribe LOAD “”. Esta tan concentrado escuchando los piip piip de la cinta que no se da cuenta que la princesa, cansada de esperar, le toma la espada y se la clava a si misma para evitar morir de aburrimiento. Cuando el programador termina de picar, guardar y cargar el programa el dragón ya se ha ido a otro país y ya ha encontrado otra princesa a la que comerse.

Fox Pro: Desarrolla un sistema para matar al dragón. Por fuera es precioso y funciona, pero por dentro está todo parcheado y cuando va a ejecutar el aniquilador de dragones recuerda que olvidó indexar los DBF.

HTML: Monta una web sobre espadas famosas usadas para matar dragones, pero se pasa los estándares W3C por el forro. Cuando se encara con el dragón descubre que el código no es compatible con su navegador, por lo que se queda compuesto y sin espada. El dragón se lo merienda como aperitivo.

PHP: Crea una página web que al ejecutarla eliminará al $dragón tirando de una base de datos de armas en mysql y sobre un servidor apache. Sin embargo, se olvidó el Where en la query de delete y mata a la princesa, al dragón, a los campesinos, a la bruja, al hechicero y al propio programador.

ASP (el primo de .Net): Como no fue invitado a matar el dragón demanda a esta Web por $2.000.000 por discriminación, se reparte el dinero con el dragón y se van a vivir juntos a Florida.

JavaScript: El programador intenta matar al gran dragón verde que lanza fuego por la boca. Crean un script que borrará al dragón cuando cargue una página web, para unos segundos después crear unas damiselas que lancen flores y hagan soniditos de aplausos. Por desgracia no tuvo en cuenta la estructura DOM del lagarto, también conocido como Mozilla, y lo único que consigue es rellenar su consola de errores y que el libro de Mozilla narre como acabó devorado.

ActiveX: Los programadores crean un túnel para entrar a la guarida del dragón desde el castillo y ejecutar un programa que matará al dragón desde una distancia segura y prudencial. El dragón descubre el túnel, se come a los trabajadores que cavaban, a los matadores de dragones y esclaviza a todos los siervos del castillo que pasan a ser sus esclavos. El castillo pasa a ser un lugar de cría de dragones lleno crías que manda en pop-ups a otros castillos. Los restos poco apetitosos de los caballeros los mete en latas de Spam y manda también a otros castillos como advertencia.

CSS: Tras crear el caballero un contenedor y un super-contenedor para mantenerse centrado y estable a pesar de las envestidas del dragón, olvida definir un DOCTYPE correcto y el dragón se lo merienda cual pincho de calamares.

Action Script: El programador utiliza un servicio web para consultar las armas de las que dispone para matar al dragón, pero entre que tarda dos eternidades en inicializarse y completar la transferencia y que la variable poema de amor se escribe sobre la variable escudo (a pesar de ser de tipos distintos) el dragón y la princesa acaban cenando caballero a la brasa .

Matlab: Crean un bucle que calcula las trayectorias para lanzar una flecha gigante contra el dragón. El programa funciona perfectamente. Sólo faltan los voluntarios capaces de lanzar la flecha con la fuerza y puntería necesaria.

Mathematica: Se crea y modela el objeto lógico dragón. Se modela y crea igualmente la princesa, la espada, al príncipe. Se modela el caso especial de la articulación mano-espada, y la discontinuidad piel de dragon-espada. Cuando todo esta hecho, se le pide a Mathematica que lo resuelva, y el resultado es: “Hay que matar al dragón con la espada, y quedarse con la princesa”.

Mono: El caballero viene saltando, contento con su fiel espada Gtk# diseñada con Glade2 y encomendándose a San Miguel de Icaza. Esquiva las llamaradas del dragón con un par de objetos, lanza una excepción contra las garras del bicho que le salva por un pelo, y cuando se presta a dar la estocada mortal, resulta que las estocadas mata-dragones del objeto espada no están implementadas todavía, y tampoco hay documentación al respecto. Sus últimas palabras fueron “To: lista@mono Subject: ¿Alguien sabe como…”.

DIV 2: Crea el programa mata-dragones en 2 minutos con todos los detalles, planos 3d, sprites, etc., pero cuando lo va a correr se da cuenta de que el dragón es joven y DIV 2 no lo soporta. Entonces es devorado por el dragón.

VisualBasic: El apuesto caballero ejecuta su flamante VisualBasic6, que incluye nuevos iconos a todo color. Crea una espada alucinante, una catapulta que lanza piedras volcánicas, también le da tiempo de fabricar un sistema operativo completo, lo llama M$ Ventanas Xp!, y a todo le pone la opción de “_Click”.

Se presenta delante del dragón con todos esos botones, cuadros de texto, y efectos lujosos, (casi no podía ni andar de tanta cosa que llevaba). Se espera un poco delante del dragón y le vacila un rato, y de repente sin que el dragón se de cuenta se pone a ejecutarlo, 2 Clicks y ….error!!!! puff bum!!! pantallazo azul de windows, pidiendo más memoria virtual.

El dragón se lo come de un bocado, y la princesa sale rapidísima y toma el programa del príncipe que no funcionó, y se lo guarda para sacar un ServicePack3.

Visual C++: El programador hace un sistema que mata dragones, explora cavernas, saquea castillos y viola princesas, todo modular, acoplable, ampliable y con números de versiones, testeado frente a simulaciones draconianas en el entorno de desarrollo.

Al intentar matar el dragón, descubre que olvido copiar una dll en la caverna del dragón, aunque escapa por suerte del primer mordisco.

Repasa el sistema, recupera todas las dlls, y vuelve a la cueva. Desgraciadamente, descubre que le faltaba otra dll y un archivo .ini, y esta vez el dragón lo quema de una llamarada de fuego sin contemplaciones.

Visual .Net: El programador repasa las especificaciones y requisitos del sistema, estudia las grietas de seguridad, y crea un sistema capaz de resistir mordiscos y llamaradas, manejar la espada masacra-dragones con eficiencia, recuperar y comerse a la princesa. A 5 días del enfrentamiento con el dragón, el rey cambia todos los requisitos y le dice al programador que no es un dragón, sino un troll con garrote, no le dotará de espada sino de arco y flechas, que ha leído en alguna parte que están más de moda, y no hay princesa sino un tesoro oculto que tendrá que apañarselas para encontrar, y que la fecha de la confrontación no es prorrogable.

FrontPage: Creas una pagina preciosísima, con multitud de parafernalias. A la hora de enfrentarte al dragón, este navega con Firefox, todas las parafernalias solo funcionan con IE, tu pagina se descoloca y no eres capaz de hacer funcionar ninguna función JavaScript de las que creaste. Serás comida para dragones.

LOGO: Programa a su “tortuga” para que dibuje una cuerda alrededor del cuello del dragón, y así ahogarle. Pero como la tortuga trabaja sólo en 2 dimensiones, el plan fracasa. Además, la tortuga y el dragón se hacen amigos, luego amantes; y de su amor nace un bicharraco inmundo, un dragón con caparazón de tortuga, que es mucho más fuerte que su papi-dragón.

Deciden hacer un asado con la princesa y el programador, ya que:

1.- El dragón ya tiene a la tortuga para desfogar sus más bajos instintos.

2.- El hijo bicharraco les sale homosexual, y aunque podría pensar en el programador para soltar todo su “amor”, lo cierto es que el programador no hace ninguna clase de ejercicio, y se pasa los fines de semana metido en su casa viendo películas y jugando al Quake; así que está bastante torpe y al bicharraco no le atrae.

WEB 2.0: Desarrolla una forma de matar al dragón utilizando XML, tonos pastel y letras grandes, y permite que todos los guerreros del mundo opinen sobre la mejor forma de matar al dragón con un sistema de tags y puntuaciones. En medio de la discusión, una horda de trolls revienta la convención y mueren todos.

Macromedia Director: Crea una magnifica interfaz destellante mata dragones, con una espada deslumbrante, fabricada a bases de Xtras de terceros fabricantes, al primer intento de matar al dragón “Script Error”, entonces a duras penas se esquiva el mordisco, y se procede al segundo intento, pero el ejecutable va tan lento que se los come a todos.

El ingeniero de Software: Se le ocurre hacer una especificación de requerimientos para desarrollar la espada que matará al dragón. Para lograrlo, debe realizar entrevista los stakeholders involucrados, por lo tanto va donde el dragón para saber las características de este para construir la espada.

Realiza la entrevista con el dragón y desarrolla la especificación y la espada, y decide volver.

Cuando vuelve, el dragón le dice que esto no era lo que quería y se come al ingeniero por no satisfacer sus requerimientos.

Analista funcional: Define todos las posibles ataques del dragón, llamaradas, posibles puntos débiles y fuertes, su árbol genealógico, etc. Para cuando tiene listo un primer prototipo, los tataranietos de la princesa matan al caballero por el solo hecho de insinuar el matar a su mascota preferida.

Analista de Procesos: Se acerca al dragón con dos toneladas de documentación desarrollada sobre el proceso de matar un dragón genérico, desarrolla un DFD para liberar a la princesa y casarse con ella, convence al dragón de que es lo mejor para él y que no va a doler.

Al ejecutar el proceso estima el esfuerzo y el tamaño del daño que causará con la firma del Papa, de Buda y de Joan Manuel Serrat para el plano, y entonces compra dos bombas nucleares, 45 cañones, un portaaviones y contrata a 300 hombres armados hasta los dientes, cuando en realidad tan sólo necesitaría la espada que tenía en la mano desde el principio.

Consultor externo: Aconseja una estrategia planificada con un incremento progresivo de medios y personal empleado, dosificado a partir de un comité de expertos internos y externos que se reunirán con periodicidad bimensual para analizar los informes de progreso.

Una actitud proactiva debe ser impulsada en general en la selección de personal, así como un buen ambiente interno. De hecho su propia empresa tiene expertos especializados en la selección de personal de programación y en la dinamización de ambientes laborales.

Una ciudadela de programación es lo mas adecuado para dar estabilidad y solidez a la empresa. Conviene que se asuma desde el principio que el gasto de formación de personal no debe ser mezquino, si queremos que la cosa avance, así como que el sistema de pruebas debe de estar estandarizado y documentado para cada programa, para evitar sorpresas indeseables de ultima hora.

Si en el transcurso del proyecto se produjera la extinción de los dragones o de las princesas, ya fuera por la desaparición de su entorno natural por deforestación o sepultamiento bajo informes documentados o por el advenimiento de la revolución francesa, entonces habría que redirigir el proyecto-ciudadela a los canales públicos de reconversión industrial de urgencia social, para lo cual seria conveniente un comité de expertos internos y externos que se reunieran con periodicidad bimensual para establecer las políticas de reconversión y los ajustes necesarios a la luz de los informes de progreso.

Programador corporativo: El analista ve al programador reconcentrado en la pantalla y lo saca de ensimismamiento:

-¿Y… cómo va el Módulo Aniquilador de Dragones?
-Bien, bien… tenemos un problema con el puntero del recordset del xhtml en la espada pero ya le vamos a encontrar una solución…

-Ah, bueno, cuando tengas algo para ver avisame. Mirá que esto es muy urgente.

El programador cierra las múltiples ventanas del navegador (estaba comparando los precios de packs de dvd vírgenes en ebay) y trata de recordar qué era eso del módulo de los dragones.

Recuerda unas reuniones donde había gente sentada en una mesa que decía:

“blablablablablablabla la princesa y blablablablabla la espada tiene que ser performante blablablablablabla”.

Luego de un par de días arma un abm de espadas, otro de dragones y otro de princesas. Pasan 8 meses sin que el analista vuelva a preguntar por el sistema.

Un día aparece el dragón y le pregunta:

-¿Y… cómo va el sistema para esclavizamiento de humanos?
-Bien, bien, tenemos un problemita con la clase del DOM porque la base de datos consume mucho ancho de banda…
-Ah, bueno, cuando tengas algo para ver avisame. Mirá que esto es muy urgente.

El programador de Ajax: Prepara una Interface para mantenerse alejado del dragón y atacar.

Arma la espada de DIV’s y viste a su caballero de hermosos CSS’s y lo manda a combatir.

Cada vez que su caballero necesitaba algo, lo solicitaba y recibía inmediatamente lo que necesitaba, super armas, cambio de armaduras, invisibilidad, etc etc. Pero el dragón con unos escupitazos de fuegos crea una Firewall que hace lento al caballero Ajax, y de aburrido se lo come.

Programador de NQC: Crea un robot con el Lego Mindstorms para manejar la espada para aprovechar el tiempo y llevarse a la princesa. A la hora de desarrollar el codigo, el limite de 32 variables globales le fastidia sus aspiraciones de grandeza y tiene que reflashear el RCX con BrickOS y programarlo en C. Como no tiene ni idea de C, termina matando al dragon dandole con el robot en la cabeza. La princesa termina no haciendole caso porque tiene miedo de los robots, y como el programador no se atreve a decirle que la quiere termina en su casa viendo paginas de Teens.

Programador de Borland C++: El programador crea una plantilla para crear objetos que maten dragones, luego crea objetos espadas que debe utilizar los objetos mata dragones para matar al dragon.

Luego se dan cuenta que necesitaban del objeto OLE y cargar un Active X que permitiera el acceso a los archivos, para terminar con un puntero perdido en la direccion h0000097 y depurando las transacciones del procesador.

El dragón y la princesa se aburren y se van a tener sexo en una Java Virtual Machinne.

Programador de videojuegos: Se pasa dos años programando una espada state of the art, con shaders y todo. A la hora de matar al dragón se encuentra con que la mitad de los caballeros no tienen fuerza para mover la espada. Luego alguien programa un parche que revela las escenas de sexo con la princesa.

Algoritmos genéticos: El principe trata de descubrir la mejor manera de aniquilar el dragón con un cultivo de 10.000 cadenas de ADN. En el tiempo en que se desarrolla el algoritmo, el dragón es matado por el bisnieto de la princesa, que al ver que nadie la hacía ni caso se apuntó a una secta satánica. Cuando el programa termina, resulta ser el elixir de la eterna juventud, haciendo que el dragon resucite con 10 años menos.

Software Libre: Si el Dragón adopta la GPL, está todo bien: bravo dragón, princesa mala, la próxima versión de Hurd se llamará Draco, etc. Si no, dragón malvado, propietario, no ético, dragón malo y perverso, todos nuestros post en todos los PostNukes del planeta irán contra tí. Y el dragón sigue vivo…