Código fuente de Photoshop 1.0.1 y un par de curiosidades

box_and_disk1-542x253.jpg

En 1987 Thomas Knoll, estudiante de doctorado en visión por ordenador escribió un programa para mostrar y modificar imágenes digitales. Su hermano John Knoll, quién trabajaba en una empresa efectos visuales (Industrial Light & Magic), encontró que el programa escrito por Thomas le era muy útil. Lo que inicialmente era un pequeño proyecto personal de uso propio más tarde se convertiría en el programa de tratamiento gráfico más usado del planeta.

El programa que inicialmente se llamaba Display, fue poco a poco evolucionando y durante el verano de 1988, los hermanos Knoll pensaron que podrían convertirlo en un programa comercial. Éstos lo renombraron a Photoshop y buscaron una empresa para su distribución. A través de Barneyscan vendieron sobre 200 copias del que entonces era Photoshop 0.87.

El éxito de Photoshop vendría cuando Adobe decidió comprar una licencia para distribuir una versión mejorada. El acuerdo se cerró en abril de 1989 y la versión 1.0 vio la luz a principios de los 90s. En el transcurso de los siguientes 10 años, se vendieron más de 3 millones de copias.

La primera versión de Photoshop fue escrita para Apple Macintosh y fue escrito mayormente en Pascal, con parte del código escrito en ensamblador para el microprocesador 68000 de Motorola. Según Thomas, en la primera versión sólo trabajó un ingeniero (él mismo), mientras que para la segunda versión fueron 2 los ingenieros. Mientras que Thomas trabajaba en el programa base, su hermano John, creó varios plugins para el procesado de imágenes.

Adobe ha publicado el código fuente de la versión 1.0.1 lanzada en 1990, para uso no comercial. Puedes bajar el código fuente desde aquí (tienes que aceptar el acuerdo) o ir directamente a github.

Todo el código fuente de Photoshop 1.0.1 está en esas fuentes, a excepción de ciertas librerías que pertenecen a Apple. Hay un total de 179 ficheros. Son unas 128.000 líneas de código, de las cuales sobre el 75% es código en Pascal, alrededor del 15% es código ensamblador y el resto varios tipos de datos.

De acuerdo con Grady Booch, arquitecto de software en IBM Research Almaden, el código fuente de Photoshop 1.0.1 está muy bien diseñado, consistente, pero con muy  pocos comentarios. Una pieza histórica que se podría usar como material de enseñanza a nuevas generaciones de programadores.

Como nota curiosa, decir que el éxito de Photoshop, además hizo entrada en el Merriam-Webster Online dictionary, 2012:

pho·to·shop, transitive verb, often capitalized \ˈfō-(ˌ)tō-ˌshäp</cite>

  1. to alter (a digital image) with Photoshop software or other image-editing software especially in a way that distorts reality (as for deliberately deceptive purposes)
Fuente