En el mundo de la programación hay básicamente dos tipos de software, el propietario y el software libre. El primero es el que hacen empresas como Microsoft, Oracle o Apple, por mencionar un par de ellas, y que no entregan el código fuente y que sólo lo venden en formato binario para ser usado en las computadoras. Esto lo hacen así porque el software es un negocio pues se compra y se vende. Por otra parte, tenemos el código abierto, en donde el o los programadores comparten abiertamente su código fuente, es decir, cómo es que un programa hace las cosas, y permite así que otros lo modifiquen si así lo desean.

Debian Linux, el SO libre y colaborativo, cumple 25 años

Cada enfoque tiene sus pros y sus contras. El código propietario muchas veces, cuando ocurre un «bug», un error, hay que esperar a que la empresa que lo hace escriba las correcciones correspondientes. Por otra parte, su control de calidad es mucho más alto en ocasiones, porque tienen que justificar de alguna manera el dinero que les pagan por dicho software. En cambio, cuando hablamos de software libre y abierto, si ocurre un problema, puede ser que ya de inmediato, en foros específicos, se haya reportado y la solución podría estar muy rápidamente, porque no faltará quien le meta mano al código, encuentre el bug y componga la dificultad.

Pero además, la versión abierta permite que otros vean cómo los programadores hacen las cosas. Y esto es finalmente la enseñanza que debemos tomar. Cuando podemos ver cómo los que saben hacen las cosas, podemos aprender al respecto. Y esto es lo que ocurrió con el programa Karateka, que salió originalmente para Apple II y que se convirtió rápidamente en un clásico. Karateka trata de un personaje que tienen que salvar a la princesa de un ser malvado. Para ello, tiene que pasar por diversos cuartos y luchar con su única arma, el karate, contra otros personajes que son también buenos en este arte marcial.

Karateka fue escrito por Jordan Mechner y probablemente fue el primer programa que usó algo así como captura de movimientos para que los personajes se viesen realistas. Sin embargo, Karateka era para un solo jugador y probablemente más de una persona habría querido estar del lado de los malvados y luchar contra el bueno de la película.

Mechner escribió de hecho un libro «The making of Karateka» y puso el código fuente en ensamblador del 6502. 30 años después, Charles Mangin (Retroconnector), en su blog, nos platica de su experiencia con el programa y del cómo, conociendo el lenguaje ensamblador del 6502, parchó el código original de Karateka para que pudiesen luchar dos personas. El parche es de solamente 42 bytes y logró, sorprendentemente, un juego para dos personas. El juego puede jugarse en línea aquí.