4 puntos por GN⁺ 2024-05-16 | 1 comentarios | Compartir por WhatsApp

Código fuente de Adobe Photoshop

Joya del software: serie de código fuente histórico del Computer History Museum

  • Photoshop: modificar imágenes digitales con el software Photoshop u otro software de edición de imágenes, especialmente de una manera que distorsiona la realidad (fuente: diccionario en línea Merriam-Webster, 2012)

El nacimiento de Photoshop

  • A finales de la década de 1980, los hermanos Thomas Knoll y John Knoll comenzaron a diseñar y escribir un programa de edición de imágenes
  • Thomas Knoll, estudiante de doctorado en visión por computadora en la Universidad de Míchigan, escribió en 1987 un programa para mostrar y modificar imágenes digitales
  • John Knoll, que trabajaba en la empresa de efectos visuales para cine Industrial Light & Magic, encontró útil este programa para la edición fotográfica

La evolución de Photoshop

  • El programa fue evolucionando gradualmente y pasó a llamarse "Display"
  • En el verano de 1988, al darse cuenta de que el programa tenía potencial comercial, le cambiaron el nombre a "Photoshop"
  • El fabricante de escáneres de diapositivas Barneyscan incluyó en paquete unas 200 copias de la versión 0.87 bajo el nombre "Barneyscan XP"

Acuerdo con Adobe

  • Por recomendación de Russell Brown, director de arte de Adobe, Adobe decidió comprar la licencia de distribución de Photoshop
  • El contrato se firmó en abril de 1989 y la versión 1.0 se lanzó a comienzos de 1990
  • En los diez años siguientes se vendieron más de 3 millones de copias de Photoshop

Detalles técnicos del Photoshop inicial

  • Las primeras versiones de Photoshop estaban escritas principalmente en Pascal para Apple Macintosh, y en parte en lenguaje máquina para el microprocesador Motorola 68000
  • En la versión 1, Thomas trabajó solo como ingeniero, y en la versión 2 participaron dos ingenieros
  • Thomas trabajó en la aplicación base, mientras que John escribió muchos de los plugins de procesamiento de imágenes

Publicación del código fuente

  • Con permiso de Adobe Systems, el Computer History Museum publicó el código fuente de Photoshop versión 1.0.1 de 1990 para uso no comercial
  • El código fuente está compuesto por 179 archivos y consta de unas 128,000 líneas de código bien estructurado con muy pocos comentarios
  • Aproximadamente el 75% del código está escrito en Pascal y alrededor del 15% en ensamblador 68000

Comentarios sobre el código fuente

  • Opinión de Grady Booch, científico jefe de ingeniería de software en IBM Research Almaden y miembro del consejo del Computer History Museum:
    • Abrir el código fuente de Photoshop 1.0 fue como abrir la tumba de un artefacto antiguo
    • La separación coherente entre interfaces y abstracciones, así como las decisiones de diseño de abstracciones componentizadas, están muy bien logradas
    • La estructura básica se sigue manteniendo incluso en implementaciones modernas
    • Aunque casi no tiene comentarios, el código es muy fácil de leer

Capturas de pantalla del Photoshop inicial

  • Pantalla de inicio: muestra las herramientas disponibles
  • Se puede elegir el color, tamaño y textura del pincel
  • Ofrece varias herramientas de selección y filtros de imagen
  • La función de capas de imagen, añadida en la versión 3, no existe en las versiones iniciales
  • Página de preferencias que ofrece funciones de personalización
  • Se puede elegir entre fuentes, tamaños y estilos de fuente limitados

Lista de publicaciones de código fuente histórico

  • Código fuente de MacPaint y QuickDraw, 18 de julio de 2010
  • Código fuente del lenguaje de programación APL, 10 de octubre de 2012
  • Código fuente de Adobe Photoshop, 13 de febrero de 2013
  • Código fuente de Apple II DOS, 12 de noviembre de 2013
  • Código fuente inicial de Microsoft MS-DOS, 25 de marzo de 2014
  • Código fuente de Microsoft Word for Windows versión 1.1a, 25 de marzo de 2014
  • Código fuente inicial de Digital Research CP/M, 1 de octubre de 2014
  • Código fuente de Xerox Alto, 21 de octubre de 2014
  • Código fuente inicial de Electronic Arts DeluxePaint, 22 de julio de 2015

Sobre el autor

  • Len Shustek es presidente fundador emérito del consejo del Computer History Museum

Artículos relacionados

  • Blog de CHM: Una computadora para todos nosotros, 15 de diciembre de 2023
  • Blog de CHM: ¿Qué edad tiene tu Furby?, 13 de diciembre de 2023
  • Blog de CHM: Tortugas, bloques y recuerdos, 5 de diciembre de 2023

Opinión de GN⁺

  • Valor histórico de Photoshop: Photoshop provocó una revolución en la edición de imágenes digitales, y su código fuente permite entender el contexto histórico del desarrollo de software en sus inicios.
  • Valor educativo del código: Aunque casi no tiene comentarios, su código bien estructurado puede ser un recurso útil para la enseñanza de ingeniería de software.
  • Avance técnico: Comparar la estructura del Photoshop inicial con la de las versiones modernas ayuda a entender la evolución de la arquitectura de software.
  • Visión crítica: La publicación del código fuente inicial tiene valor histórico, pero su uso comercial está restringido, por lo que tiene limitaciones prácticas.
  • Proyectos relacionados: Software de edición de imágenes de código abierto como GIMP también ofrece funciones similares y puede considerarse una alternativa a Photoshop.

1 comentarios

 
GN⁺ 2024-05-16
Comentarios de Hacker News

Resumen de comentarios de Hacker News

  • Experiencia archivando código fuente de Adobe

    • Se compartió la experiencia de haber archivado el código fuente de Photoshop, Illustrator, PostScript y otros en Adobe.
    • Se usó un respaldo de los disquetes originales de Thomas Knoll para transferir archivos con una Mac Plus y un cable serial.
    • Había archivos en varios formatos de archivo comprimido muy antiguos, incluyendo archivos de la versión 0.54 con fecha del 6 de julio de 1988.
    • Todo el código se archivó en un servidor Perforce, pero los respaldos iniciales de Illustrator estaban en un disco externo dañado.
  • Experiencia intercambiando código fuente con Adobe

    • Se compartió la experiencia de haber visitado Adobe a mediados de los 90 para intercambiar código fuente.
    • Photoshop estaba basado en MacApp y tenía una capa que funcionaba en Windows.
    • Se tomó parte del código de Photoshop y de la parte de cálculos de espacio de color, pero la mayor parte se ignoró.
    • Quisiera saber si todavía quedan rastros de MacApp en el código fuente actual.
  • Consistencia del UX

    • Sorprende que el UX siga siendo en general el mismo.
    • Al inicio del lanzamiento de la MacBook Pro M1, la versión beta para Silicon de Adobe Photoshop fue la que funcionó más rápido.
    • Ahora volvió a volverse lenta.
  • Dificultad para entender la belleza del código fuente

    • Vio el código fuente, pero le cuesta entender su belleza.
    • Mientras aprendía Rust y pensaba en la estructura del código, se preguntó cómo se construiría una UI como la de Photoshop o 3D Studio Max.
    • Le gustaría conocer buenos recursos para aprender sobre estructura de código.
  • Artículo sobre Adobe Photoshop 1.x

    • Un artículo de 2013 sobre la versión 1.x de Adobe Photoshop de 1990.
  • Prevención de la generalización de la marca registrada

    • Adobe está esforzándose por evitar la generalización de su marca registrada.
    • Se dio como ejemplo de uso correcto algo como "imagen mejorada con Adobe® Photoshop® Elements software" en lugar de "photoshopped".
  • Elogios por publicar código fuente antiguo

    • Elogios para las empresas que publican el código fuente de software antiguo.
    • Es posible que mucho código fuente se haya perdido con el tiempo y tras múltiples adquisiciones.
    • Como el control de versiones se volvió algo común solo recientemente, es probable que mucho código fuente exista en respaldos en cintas aleatorias, disquetes o impreso en carpetas.
  • Experiencia con versiones tempranas de Photoshop

    • Se compartió la experiencia de haber visto Photoshop antes de Adobe en un hospital.
    • Es posible que en ese momento la versión de MacApp estuviera en beta.
    • Se usó el algoritmo de B-spline de Tom Knoll como base para un editor de curvas.
  • Carrera de John Knoll

    • John Knoll fue líder de FX en las precuelas de Star Wars y dirigió Rogue One.
    • El documental detrás de cámaras de las precuelas se ha conservado bien.