Programadores matando un dragón
Programadores matando un dragón |
Traducción de http://www.amauta.inf.br/index.php?option=com_content&task=view&id=1048&Itemid=29
Reir sigue siendo el mejor remedio (y es gratis)
Java - Llega, encuentra al dragón, desarrolla un framework para aniquilación de tragones en múltiples capas, escribe varios artículos sobre el framework... pero no mata al dragón.
.NET - Llega, ve la idea del desarrollador de Java y la copia, intenta matar al dragón, pero el bicho se lo come
C - Llega, mira al dragón con mirada de desprecio, tira de 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)
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
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 VB - Monta un
arma de destrucción de dragones a partir de varios componentes, salta
encima del lomo del dragón, y en la hora H descubre que la espada sólo
funciona durante las noches de lluvia... 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. 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 en la que él
mismo aparece matando a un dragón... el dragón se lo come de puro
aburrimiento Smalltalk - Llega, analiza al dragón y a la princesa, se da la vuelta y se pira: ellos son muy inferiores shell - Crea un arma poderosa para matar dragones, pero en la hora H no recuerda como usarla
shell(2)-
El tío se acerca al dragón con un script de dos líneas que mata, corta,
destripa, empala, pica en pedacitos y empaca al bicho, pero a la hora
de ejecutarlo el script aumenta, engorda, enfurece y pone alcohol en el
fuego del dragón. Ensamblador - Cree que está
haciendo lo más correcto y eficiente... pero pone un A en lugar de un D
y mata a la princesa para terminar follándose al dragón 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 es rico 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. 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 el 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
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, follar a la princesa,
darse un baño, encender el coche, ponerle gasolina y volver para casa.
A la hora de ejecutar recibe un "Bound Error: Array Access" y el dragón se lo come con patatas That?s
all Folks? No, con el efecto Menéame y el efecto Barrapunto coaligados,
me han dejado nuevos lenguajes en diferentes foros. Paso a relataros
los que más me han gustado
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 se ha dejado algún paréntesis
(bender the offender, barrapunto)
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, ... (aquelquesiente)
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 dragon, a los campesinos, a la bruja, al hechicero y al propio programador.
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 carge 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 tunel para entrar a la guarida del dragón desde el castillo y ejecutar un programa que matará al dragón desde una distacia segura y prudencial. El dragón descubre el tunel, 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. (aquelquesiente)
Basic. Crean un arma capaz de matar a dragones de papel, pero mucho que la perfeccionan descubren que no sirve para matar a ningún dragón más grande que una cría de caniche. (aquelquesiente)
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. (aquelquesiente, barrapunto)
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 y Hillary Clinton le monta un escándalo (rogerdv, en barrapunto).
Perl
- El caballero decide matar al dragón con una expresión regular, pero
se equivoca en los carácteres de comodín y acaba incluyendo en el
patrón de mortalidad a Dragones, Iguanas, lagartos, perros, gatos,
osos, princesas y ratones. (emezeta.com)
HyperCard:
crea en 5 minutos una pila con un catálogo de armas, con fotos,
gráficas y vídeos sobre su utilización y los distintos tipos de
dragones que puede matar, y que además fabrica el arma elegida
utilizando las herramientas de dibujo, con una interfaz impecable y
fantásticos efectos visuales, lo guarda como ejecutable, le pone un
bonito icono, pero cuando va a fabricar la espada no funciona porque se
dejó un XCMD en casa (Home) (Zydeco, faq-mac)
Macromedia Director:
crea una mágnifica interfaz destellante mata dragones, con una espada
deslumbrante, fabricada a bases de Xtras de terceros fabricantes, al
primer intento de matar al dragon "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 (Victor_js,
faq-mac.com)
Algunos comentarios de la página:
http://rebotacion.blogspot.com/2006/03/programadores-matando-un-dragn.html
El programador de PERL:
Se bajo el kit de matadragones de CPAN, lo ejecutó, el dragon murió aunque tardó un poquillo y generó algo de basura por pantalla. Al rato, se bajo el kit de noche de amor de CPAN y la princesa paso una nochecita de cuidado ;)
En realidad, el kit matadragones del CPAN tenía un bug en una regexp, y el programador, antes de matar al dragón, tuvo que parchearlo (y envió un mail al desarrollador indicándole el problema y su solución).
PHP.
Hace una búsqueda en google con las palabras "matar dragon fornicar princesa" y encuentra cientos de espadas y condones.
Mata al dragón de un simple sablazo GNU/GPL, y once meses más tarde, la princesa tiene trillizos debido a que los condones se quedaron obsoletos en los dos primeros meses.
Programa un misil de los EEUU para acabar con el dragón... pero se olvida de manejar un exception y se carga al dragón, a la princesa, al castillo, al pueblo debajo del castillo y todo el terreno en un radio de 15 km.
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
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.
Así que se va a aprender Pascal que le han dicho que es como Módula pero que funciona con espadas de verdad. El resultado ya lo habéis visto ;)
El programador, luego de analizar detenidamente el problema llega a la conclusión de que lo mejor es que el dragón sea muerto a manos de la princesa, por tal motivo decide darle la espada a la princesa cuando termine de fallársela lo cual ocurrirá luego de liberar al dragón.
(quirón)
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 se cargan al caballero por el solo hecho de insinuar el matar a su mascota preferida.
El caballero viene saltando, contento con su fiel espada Gtk# diseñada con Glade2 y encomendandose 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 matadragones del objeto espada no estan implementadas todavía, y tampoco hay documentación al respecto. Sus últimas palabras fueron "To: lista@mono Subject: ¿Alguien sabe como..."
El programador se curra una función recursiva terminal que mata a dragones de tamaño "n" con alta eficiencia y aún encima se puede modificar en pleno asesinato y terminar follándose a la princesa sin llenar la pila.
En el momento de utilizarla se dá cuenta de que la función acepta un tipo 'a como tipo de entrada y mata a la princesa y lo sodomiza.
El programador introduce la cinta para cargar el compilador en el sistema y escribe LOAD "". Esta tan concentrado esuchando los piip piip de la cinta que no se da cuenta que la princesa, cansada de esperar, le coge 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 dragon ya se ha ido a otro pais y ya ha encontrado otra princesa a la que comerse.
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 con la entrevista con el dragon y desarrolla la especificación y la espada y decide volver. Cuando vuelve, el Dragon le dice que esto no era lo que quería y se come al ingeniero por no satisfacer sus requerimientos.
Resuelve que la matanza del dragón es un problema NP-Completo y que no tiene solución con la computación existente en la actualidad. Así que decide que mientras no se popularice la computación cuántica, no ira a matar al dragón.
Decide crear una red neuronal que mediante casos de asesinatos de dragones pueda converger a una acción que permite realizar la matanza con el mínimo de error posible.
Cuando la red estaba lista, el programador en C ya había matado el dragon, y la princesa esta sola esperando que la follaran, pero el experto era virgen y tuvo que hacer otra red neuronal que le enseñara a tener sexo.
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 para cenar
El programador se preparó una macro que enviaría al dragón a otra dimensión (divert), se le olvidaron unas comillas y acababaron apareciendo 4 réplicas iguales del mismo dragón.
Este programador se acojonó y salió corriendo. Aprendió a usar XSLT y volvió con una plantilla para transformar a los dragones en lagartijas y aplastarlos a todos.
Cuando la princesa vio al programador se horrorizó de ver lo feo que era. Éste se sintó herido emocionalmente y decidió hacerse un arreglo estético, lamentablemente el estándar XSL-FO nunca será una realidad.
El programador Stehen prepara un while con sockets apuntando al dragon suelta los tiros con un intervalo de 1 ms pero recibe un Connection closed: Too many connections from your host y el dragon cheka en sus /var/log/httpd localiza al programador vuela a su pequeño antro y lo hace mierda y se da cuenta de que el programador no estaba ahi sino que con AJAX puso su web para un intervalo X controlado desde su PALM, entre tanto a la salida del dragon la princesa logra escapar con su programador(Stehen) y ejecuta otro proceso con AJAX para usar la api de google en busca de hoteles baratos con condones de regalo.
El caballero paso horas mirando al dragon pero en elinstante de ejecutar el ataque noencontró su espada. Le dijeron que estaba en el castillo asi que fué a buscarla a la habitacion de la princesa, a la que pudo sobar pero fue achicharrado por el dragon ya que su espada realmente estaba donde se quedó a observar al dragon. Dias despues la princesa mira porla ventana y ve 18 princesas, 40 dragones y 4 principes. Quedandose sola esperando el porvenir.
Crea el programa matadragones en 2 minutos con todos los detalles, planos 3d, sprites, y demas , pero cuando lo va a correr se da cuenta de que el dragon es joven y DIV 2 no lo soporta... Entonces es devorado por el dragon...
Tras crear el caballero un contenedor y un supercontenedor 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.
Lee peldoc perlrun y decide utilizar un one liner. Justo al acabar se da cuenta que sed bastaba para la tarea.
Desarrolla una forma de matar al dragon utilizando XML, tonos pastel y letras grandes, y permite que todos los guerreros del mundo opinen sobre la mejor forma de matar al dragon con un sistema de tags y puntuaciones.
En medio de la discusión, una horda de trolls revienta la convencion y mueren todos.
Oculta al dragon con un display: none; pero lo unico que ha conseguido es hacerlo invisible y ponerselo más jodido al proximo programador que venga.
Si en el transcurso del proyecto se produjera la extincion de los dragones o de las princesas, ya fuera por la desaparicion de su entorno natural por deforestacion o sepultamiento bajo informes documentados o por el advenimiento de la revolucion francesa, entonces habria que redirigir el proyecto-ciudadela a los canales publicos de reconversion industrial de urgencia social, para lo cual seria conveniente un comite de expertos internos y externos que se reunieran con periodicidad bimensual para establecer las politicas de reconversion y los ajustes necesarios a la luz de los informes de progreso.
Como solo hay UNA forma obvia de matar al dragon:
>>> from muertesObvias import hacerBrocheta
>>> dragon
dragon malo que dice agggh y tira fuego at 0x3007c370>
>>> hacerBrocheta(dragon)
>>> dragon
>>> brocheta de dragon traigan vino asi empedamos a la princesa at 0x3007c370>
hacer brocheta tambien manda un mail de invitacion a que hagan reportaje de los canales de cable locales, publica una entrada diciendo que el caballero mato al dragon en su blog, da de baja todos los dominios que tenia registrados el dragon a su nombre y se conecta con un servidor jabber para avisar a los familiares del dragon que lo mataron a tito. (el nombre del dragon)
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. :-P
Programador de GAMBAS:
Define la clase dragon, la clase princesa, la clase espada y la clase principe sin saber ni siquiera que es una clase, y sus profesores se rien de el y le dicen que aprenda C.
A la hora de compilar el programa en su iBook, le sale un error de violacion de segmento porque Gambas no corre sobre LinuxPPC por problemas de endian y termina aprendiendo C+x (C con prisas y extres) y OpenGL para matar al dragon dentro de un juego de plataformas 3D, que es mucho mas seguro que enfrentarse al bicho... La princesa piensa que la protagonista del juego se parece mucho a ella :-P
El programador ejecuta un programa trasgo ( mov 0,1) contra el dragón, que termina convertido en otro un trasgo forzando un empate.
Después de varias ejecuciones, el dragón consigue acabar con el programa trasgo, desempata, y se queda con la princesa.
Al programador le quedan varios ciclos de CPU para salir por patas y evitar ser merendado.
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 pelis (porno) y jugando al Quake; así que está bastante ceporro y al bicharraco no le atrae.
Al menos, en el momento en que depositan a la princesa y al programador en la parrilla, éste aprovecha y "se la pasa por la piedra" (algo es algo).
El principe trata de descubrir la mejor manera de aniquilar el dragon con un cultivo de 10.000 cadenas de ADN. En el tiempo en que se desarrolla el algoritmo, el dragon es matado por el bisnieto de la princesa, que al ver que nadie la hacia ni caso se apunto a una secta satanica. Cuando el programa termina, resulta ser el elixir de la eterna juventud, haciendo que el dragon resucite con 10 años menos.
Antes de de escribir una función que mate al dragón, el programador de Lisp escribe una función que mate al dragón.
Prepara una Interface para mentenerse alejado del Dragon 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 recibia inmediatamente lo que necesitaba, super armas, cambio de armaduras, invisibilidad, etc etc. Pero el dragón pendejo con unos escupitazos de fuegos crea una Firewall que hace lento al caballero Ajax. y de aburrido se lo come y lo caga al lado de Web 2.0