4 points par GN⁺ 2024-05-16 | 1 commentaires | Partager sur WhatsApp

Code source d’Adobe Photoshop

Joyau logiciel : la série de codes sources historiques du Computer History Museum

  • Photoshop : action de modifier une image numérique avec le logiciel Photoshop ou un autre logiciel d’édition d’images, en particulier d’une manière qui déforme la réalité (source : Merriam-Webster Online Dictionary, 2012)

La naissance de Photoshop

  • À la fin des années 1980, les frères Thomas Knoll et John Knoll ont commencé à concevoir et écrire un programme d’édition d’images
  • Thomas Knoll, doctorant en vision par ordinateur à l’université du Michigan, a écrit en 1987 un programme permettant d’afficher et de modifier des images numériques
  • John Knoll travaillait chez Industrial Light & Magic, une société d’effets visuels pour le cinéma, et a trouvé ce programme très utile pour la retouche photo

L’évolution de Photoshop

  • Le programme a progressivement évolué et a été appelé "Display"
  • Durant l’été 1988, réalisant son potentiel commercial, ils l’ont rebaptisé "Photoshop"
  • Le fabricant de scanners pour diapositives Barneyscan a distribué environ 200 exemplaires de la version 0.87, fournis en bundle sous le nom de "Barneyscan XP"

L’accord avec Adobe

  • Sur la recommandation de Russell Brown, directeur artistique chez Adobe, Adobe a décidé d’acheter la licence de distribution de Photoshop
  • Le contrat a été signé en avril 1989, et la version 1.0 est sortie au début de 1990
  • Plus de 3 millions d’exemplaires de Photoshop ont ensuite été vendus en dix ans

Détails techniques des débuts de Photoshop

  • Les premières versions de Photoshop ont été écrites principalement en Pascal pour l’Apple Macintosh, avec certaines parties en langage machine pour le microprocesseur Motorola 68000
  • Sur la version 1, Thomas était l’unique ingénieur ; sur la version 2, deux ingénieurs supplémentaires ont participé
  • Thomas s’occupait du programme d’application de base, tandis que John a écrit de nombreux plugins de traitement d’image

Publication du code source

  • Avec l’autorisation d’Adobe Systems, le Computer History Museum a publié le code source de Photoshop version 1.0.1 de 1990 pour un usage non commercial
  • Le code source se compose de 179 fichiers, soit environ 128 000 lignes de code bien structurées avec très peu de commentaires
  • Environ 75 % du code est écrit en Pascal, et environ 15 % en assembleur 68000

Commentaire sur le code source

  • Avis de Grady Booch, Chief Scientist en software engineering chez IBM Research Almaden et administrateur du Computer History Museum :
    • Ouvrir le code source de Photoshop 1.0 revenait à ouvrir la tombe d’un artefact antique
    • La séparation cohérente des interfaces et des abstractions, ainsi que les choix de conception autour d’abstractions composées, sont remarquablement réussis
    • La structure de base est encore conservée dans les implémentations modernes
    • Bien qu’il y ait très peu de commentaires, le code reste très lisible

Captures d’écran des premières versions de Photoshop

  • Écran d’accueil : affiche les outils disponibles
  • Possibilité de choisir la couleur, la taille et la texture du pinceau
  • Divers outils de sélection et filtres d’image sont proposés
  • La fonction de calques d’image, ajoutée dans la version 3, n’existe pas dans les premières versions
  • Une page de préférences permet certaines personnalisations
  • Choix limité de polices, tailles de police et styles

Liste des publications de codes sources historiques

  • Code source de MacPaint et QuickDraw, 18 juillet 2010
  • Code source du langage de programmation APL, 10 octobre 2012
  • Code source d’Adobe Photoshop, 13 février 2013
  • Code source d’Apple II DOS, 12 novembre 2013
  • Code source initial de Microsoft MS-DOS, 25 mars 2014
  • Code source de Microsoft Word for Windows version 1.1a, 25 mars 2014
  • Code source initial de Digital Research CP/M, 1er octobre 2014
  • Code source de Xerox Alto, 21 octobre 2014
  • Code source initial d’Electronic Arts DeluxePaint, 22 juillet 2015

À propos de l’auteur

  • Len Shustek est président fondateur émérite du conseil d’administration du Computer History Museum

Articles associés

  • Blog CHM : Des ordinateurs pour nous tous, 15 décembre 2023
  • Blog CHM : Quel âge a votre Furby ?, 13 décembre 2023
  • Blog CHM : Tortues, blocs et souvenirs, 5 décembre 2023

L’avis de GN⁺

  • La valeur historique de Photoshop : Photoshop a révolutionné l’édition d’images numériques, et son code source aide à comprendre le contexte historique du développement logiciel à ses débuts.
  • La valeur pédagogique du code : malgré le très faible nombre de commentaires, ce code bien structuré peut constituer une ressource utile pour l’enseignement du software engineering.
  • Progrès technique : comparer l’architecture des premières versions de Photoshop à celle des versions modernes permet de mieux comprendre l’évolution de l’architecture logicielle.
  • Regard critique : la publication de ce code source a une valeur historique réelle, mais les restrictions sur l’usage commercial limitent son exploitation concrète.
  • Projets liés : des logiciels open source d’édition d’images comme GIMP offrent aussi des fonctions similaires et peuvent être envisagés comme alternatives à Photoshop.

1 commentaires

 
GN⁺ 2024-05-16
Avis Hacker News

Résumé d'une sélection de commentaires Hacker News

  • Expérience d’archivage du code source d’Adobe

    • Partage d’une expérience d’archivage du code source de Photoshop, Illustrator, PostScript, etc. chez Adobe.
    • Utilisation de la sauvegarde des disquettes Mac d’origine de Thomas Knoll pour transférer les fichiers avec un Mac Plus et un câble série.
    • Présence de fichiers dans divers formats d’archives compressées très anciens, dont des fichiers datés de la version 0.54 du 6 juillet 1988.
    • Tout le code a été archivé sur un serveur Perforce, mais les premières sauvegardes d’Illustrator se trouvaient sur un disque externe corrompu.
  • Expérience d’échange de code source avec Adobe

    • Récit d’une visite chez Adobe au milieu des années 90 pour échanger du code source.
    • PhotoShop reposait sur MacApp et comportait une couche fonctionnant sous Windows.
    • Une partie du code de PhotoShop et de la logique de calcul des espaces colorimétriques a été récupérée, mais la majeure partie a été ignorée.
    • Envie de vérifier s’il reste encore aujourd’hui des traces de MacApp dans le code source.
  • Cohérence de l’UX

    • Étonnement de voir que l’UX reste globalement la même.
    • Au début de la sortie du MacBook Pro M1, la version bêta Silicon d’Adobe Photoshop était celle qui fonctionnait le plus vite.
    • Aujourd’hui, elle est redevenue lente.
  • Difficulté à comprendre la beauté du code source

    • Quelqu’un a regardé le code source sans parvenir à en saisir la beauté.
    • En apprenant Rust et en réfléchissant à la structure du code, il s’est demandé comment construire une UI comme celle de Photoshop ou de 3D Studio Max.
    • Il aimerait connaître de bonnes ressources pour apprendre la structuration du code.
  • Article sur Adobe Photoshop 1.x

    • Article de 2013 consacré à Adobe Photoshop 1.x de 1990.
  • Prévention de la banalisation de la marque

    • Adobe s’efforce d’empêcher la banalisation de sa marque.
    • Exemple d’usage correct donné à la place de « photoshopped » : « image améliorée avec le logiciel Adobe® Photoshop® Elements ».
  • Éloges pour la publication d’ancien code source

    • Éloges adressés aux entreprises qui publient le code source de vieux logiciels.
    • Il est probable qu’une grande quantité de code source ait disparu avec le temps et les multiples acquisitions.
    • Comme la gestion de versions généralisée est un phénomène relativement récent, beaucoup de code source ont sans doute existé sous forme de sauvegardes sur bandes aléatoires, de disquettes ou d’impressions dans des classeurs.
  • Souvenirs des premières versions de Photoshop

    • Souvenir d’avoir vu Photoshop avant Adobe dans un hôpital.
    • Il est possible que la version MacApp ait alors été en bêta.
    • L’algorithme de B-spline de Tom Knoll a été utilisé comme base de l’éditeur de courbes.
  • Carrière de John Knoll

    • John Knoll a été responsable des effets spéciaux sur la prélogie Star Wars et a réalisé Rogue One.
    • Le documentaire making-of de la prélogie a bien été conservé.