¿Son peligrosos los programadores de la vieja escuela?

Recientemente, Eugene Kaspersky escribió en su blog un post sobre la resurrección de los creadores de virus de la vieja escuela. Soy lo suficientemente mayor para recordar a aquellos chicos

Recientemente, Eugene Kaspersky escribió en su blog un post sobre la resurrección de los creadores de virus de la vieja escuela. Soy lo suficientemente mayor para recordar a aquellos chicos y al excelente trabajo que hacían. No me refiero solamente a los desarrolladores de malware, sino a los programadores, desarrolladores de códigos y expertos en lenguaje ensamblador. Son como los Jedi de la Guerra de las Galaxias, héroes súper poderosos con sus espadas láser (no estoy bromeando, preguntad a Yoda). En realidad, sólo quedan tres personas que hayan sido testigos del poder de este grupo (Bill Gates, Kaspersky y yo). En serio, es difícil comprender de lo que es capaz un hacker de la vieja escuela y, por este motivo, quiero enseñaros de lo que estaba hablado Eugene Kaspersky, para que decidáis, por vosotros mismos, lo escalofriante de esta noticia.

Entrenamiento extremo para calculadoras estúpidas

En 1992, los ordenadores eran, básicamente, calculadoras inteligentes con grandes pantallas (esto no es broma, chicos). Pero, existían grupos de entusiastas felices de afrontar nuevos retos de software: algunos programadores fueron capaces de crear códigos que usaban cada byte de memoria, todas las funciones del procesador, todos los comandos del sistema operativo y, lo más importante, el 100% del hardware. Debo deciros que para conseguir esto, uno debe ser realmente creativo, beber mucho café (o fumar mucha hierba) y tener un coeficiente intelectual increíble. Este movimiento empezó alrededor de 1998, junto con la primera versión de MS-DOS. Aunque no tenía un nombre que lo denominase, según las leyes de la evolución, antes o después tendría que competir entre ellos. Así es como nació en 1992  “Assembly”.

assembly_SPA

Regreso del futuro de Future Crew

En 1992, un grupo de programadores  escandinavos, llamados Future Crew, junto con sus amigos programadores de  “Complex” y “Amiga” organizaron un evento llamado “The Assembly” para compartir los resultados obtenidos de su trabajo en lenguaje ensamblador y competir por el título del “Mejor programador del año”. Habían diferentes disciplinas, pero las dos más interesantes eran las demos de plataformas (PC, Amiga, C64) y PC 64k. La primera tenía como objetivo mostrar su habilidad y  las mejores soluciones de hardware con un código minimalista inmejorable. La segunda disciplina encerraba un truco: los programadores tenían un límite de 64kb y sus programas no podían superarlo.

“Una code demo es, básicamente, un serie de eventos programados para demonstrar las capacidades del hardware y/o soluciones de software para una tarea en particular, como cálculos complejos de física”.

Así, en 1992, el grupo Future Crew ganó la competición con su demo “Unreal”. Este nombre se debía a que nadie (¡!) había hecho algo parecido hasta la fecha.

Fueron los primeros en mostrar un modelo de trabajo en un entorno 3D, con capas de gráficos, cálculos complejos, etc. Todo el compilador era aproximadamente de 1 megabyte (incluyendo música y dejadme deciros que todavía no existía la compresión en mp3). La única forma para conseguir esto era dominar el lenguaje ensamblador, el más complejo de todos. Para que os hagáis una idea de lo que es ensamblador, esto es lo que me dijeron los chicos de Future Crew hace unos años:

Las  demos conllevan muchos años de aprendizaje. Una buena forma de comenzar es tener un buen nivel en lenguajes como Pascal o C, para, después, empezar a experimentar con ensamblador. Se necesita mucho tiempo y pruebas para mejorar. Lo más importantes es intentar entender lo que haces, intentar cambiar el programa para ver qué se consigue y seguir aprendiendo. Aprender a programar requiere un montón de paciencia, entusiasmo y tiempo. No es nada fácil.

Básicamente, aquellos que participaron en la competición resultaron ser la última fuente de inspiración para todos los desarrolladores de software. No estoy diciendo que alguien robase sus ideas… en absoluto… simplemente se adoptó su visión creativa. La mayoría de los productos actuales –todos los juegos, gráficos de Adobe, GPS, Google Earth…- y todos esos productos, que valen miles de millones, están inspirados, hasta cierto punto, en  Assemby (a propósito, está prohibido sacar fotos o grabar en vídeo dentro del recinto).

1993, el año de “Second Reality” y Eclipse

El concurso Assembly se convirtió en todo un éxito y, al año siguiente, el número de asistentes y demos se duplicó (esta moda fue constante y desde 1999 el evento Assembly tiene lugar en el estadio de fútbol más grande de Helsinki con capacidad para 5.000 personas).

En el año 1993, el grupo Future Crew presentó algo… realmente fantástico, algo que elevó el listón para los siguientes concursos y cambió el mundo de la programación para siempre: la demo “Second Reality”.

Es necesario entender que esta demo fue creada antes de que Intel presentara su procesador Pentium (Intel lo anunció el 22 de marzo y su primer ordenador Pentium se lanzó en 1994 y Assembly suele celebrarse en julio o agosto. Esto supone que Future Crew mostró su demo al menos seis meses antes del lanzamiento de Pentium). Esto significa que todos esos gráficos fantásticos y sonidos estaban disponibles en x486 CPUs con sound blasters y sin tarjetas gráficas. Esta demo deslumbró a la comunidad de programadores y demostró que se podía conseguir resultados con un enfoque minimalista y gran conocimiento en ensamblador (el compilador de Second Reality era aproximadamente de 1,5 megabytes). Ese año Future Crewse se hizo famoso en todo el mundo.

Éste es el vídeo de Future Crew, cuando estaban trabajando en Second Realy:

Otro ganador del año 1993 fue la demo “Eclipse” de EMF. Ésta fue el número 1 en la categoría 64kb:

En 1994, la demo “Verses” (del grupo EMC) ganó el primer premio

Básicamente, mostraron al mundo que se podían hacer cálculos de física acuática y que cualquier animación de objetos 3D dentro de los límites de velocidad de Pentium era pan comido:

El ganador 64kb – “Airframe” del grupo Prime es la madre de todos los simuladores 3D de aviación modernos.

Para que os hagáis una idea de lo rápido que ha evolucionado el mundo de la programación, aquí está lista de los ganadores desde 1995 a 2012.

Ganador de Assembly 1995: “Stars” del grupo NoooN

Ganador de Assembly 1996: “Machines of Madness” del grupo Dubius

Ganador de Assembly 1997: “Boost” del grupo Doomsday

Ganador de Assembly 1998: “Gateways” del grupo Trauma

A propósito, éste es el ancestro de World of Warcraft, cuando se crearon las artes gráficas 3D MMORPG.

En 1999 la tecnología 3DFX cambió, para siempre, los gráficos. La demo del grupo MatureFunk, llamada “Virhe”sorprendió a todo el mundo:

Revisión de Assembly

En el año 2000, cambiaron un poco las reglas de la competición: en vez de 3 categorías (Amiga, PC y C64) se empezó a competir en las categorías “Combined Demo”, “OldSchool Demo” y “64kb limit intro”. La competición 64kb se convirtió en algo obsoleto en el año 2010. Pero, al final de este post, veréis algunos ejemplos magníficos de lo que puede hacer un programador en ensamblador con 64 kilobytes.

Aquí os dejo la lista de los ganadores de la categoría “Combined Demo”, las mejores en términos de ensamblador:

El primer premio, en el año 2000, fue para “Spot” del grupo Exceed

Observad los efectos de iluminación… son espectaculares. No olvidéis que esta tecnología tiene 13 años.

Ganador de Assembly 2001: “Lapsuus” del grupo Maturefurk

Ganador de Assembly 2002: “Liquid… Wen?” del grupo Haujobb

Tenemos que resaltar que todos los gráficos, incluyendo rostros y caracteres de todas las demos de Assembly, se dibujaron usando sólo programación, no hay archivos de imagen en la demo.

Ganador de Assembly 2003: “Legomania” de Doomsday. Dad la bienvenida a los juego de consola 3D 🙂 Estoy seguro de que fue la época en que nació el concepto Nintendo Wii:

En el año 2004  el primer premio fue para “Obsoleet” de Unreal Voodoo

En el año 2005  el primer premio fue para “Lconoclast” del grupo ASD:

En el año 2006, la demo “Starstuck” del grupo de programadores The Black Lotus volvió a asombrar a la comunidad con su nivel de sofisticación de programación de gráficos. Yo diría que pusieron el listón muy alto:

En el 2007, el ganador fue “LifeForce” de ASD.  Una vez más, fue una obra maestra en ensamblador.

El 2008 fue el año de “Within Epsilon” de Pyrotech:

El ganador del 2009 es uno de mis favoritos – “Frameranger” de los grupos Fairlight, CNCD & Orange:

En 2010 el ganador fue “Happiness is right around the bend” de ASD

El ganador de 2011: “Spin” de ASD:

El ganador de 2012: “Spacecut” de Carillon & Cyberiad CNCD

Los mejores ejemplos de 64 kilobytes

Para que os hagáis una idea de lo que un programador profesional puede hacer con 64 kilobytes: “Che Guevara” de Fairlight

De nuevo… 64 kilobytes, ni un mísero kilobyte de más.

3 años después, en el 2008, el mismo grupo mostró una evolución tecnológica increíble y se las arregló para realizar esta demo con 64kb: “Panic room”, por supuesto, ganó el primer premio de la categoría.

La mejor demo 64k jamás presentada fue  “X marks the spot” en 2010, primer premio de la categoría.

Todas estas demos, especialmente aquellas de 64kb, muestran el talento de los programadores de la vieja escuela y los resultados que pueden llegar a obtener. Pero, lo más importante, cuando eres un maestro en ensamblador (algo no muy común hoy en día), la mayoría de los productos están creados en lenguajes de programación de “alto nivel”, como Visual C y Object C.

Imaginad por un segundo que un programador como estos, o un grupo como Future Crew, decide dejar a un lado su trabajo creativo y se centra en un único objetivo: crear un pequeño código que robe datos financieros o ayude a recalibrar un reactor nuclear. ¿Creéis que tendrán éxito?  ¿Encontrarían un modo de romper los sistemas de seguridad integrados de Windows o Apple? ¿Tiene apoyo financiero para realizar eventos gratis de 5.000 participantes durante 20 años?

No os voy a dar la respuesta. Tenéis que decidir por vosotros mismos. Pero cuando oigo a alguien decir “Mi PC no necesita protección”, no puedo evitar acordarme de “Second Reality” y empezar a rezar.

Menos mal que los chicos de Future Crew están muy ocupados, si eres el mejor en programar demos ¿por qué no hacer de esto tu negocio? La próxima vez que hagas un test 3DMark en tu PC, piensa en Unreal, Second Reality y Future Crew. Después de Scream Tracker 3 (diciembre de 1994), Future Crew no lanzó nada más. Aunque no se hiciera oficial la disolución del grupo, a partir de la mitad de la década de los 90, los miembros se separaron. Compañías como Futuremark (3DMark), Remedy (Death Rally, Max Payne, Alan Wake), Bugbear Entertainment (FlatOut, Glimmerati, Rally Trophy), Bitboys (compañía de hardware de gráficos) y Recoil Games (Rochard) empezaron con miembros de Future Crew.

Les quiero agradecer a todos ellos que hayan cambiado el mundo y nos hayan enseñado que todo es posible si así lo deseas, inclusive Kaspersky Internet Security.

Gracias por vuestra inspiración, chicos. Y, realmente, espero que ni un solo programador, que haya formado parte de Assembly, use sus habilidades para fines maliciosos.

 

Consejos