Le code source de l'éditeur d'images Photoshop 1.0 révèle qu'il fut écrit en Pascal
Pour Grady Booch, c'est un exemple de code bien écrit

Le , par Olivier Famien, Chroniqueur Actualités
Le code source de Photoshop 1.0, le logiciel d'édition d'images, révèle qu’il fut écrit en Pascal
Pour Grady Booch, créateur de la méthode Booch, c’est un exemple de code bien écrit, partagez-vous cet avis ;?

S’il est un logiciel qui fait l’unanimité en matière de retouche d’images aussi bien dans le monde professionnel que celui des amateurs, c’est bien Photoshop. Aujourd’hui, ce logiciel compte des millions d’utilisateurs et le nombre de nouveaux utilisateurs ne cesse de croître. Bien que plusieurs alternatives existent dans le domaine, comme Gimp, PicMonkey, Photo Pos Pro, Paint.Net, Pixlr Editor, Krita, Sketch, Corel PaintShop Pro, Pixelmator et bien d’autres encore, la force de Photoshop est qu’il répond largement aux besoins des utilisateurs en raison de ses nombreux avantages et fonctionnalités, notamment sa facilité d’apprentissage, son environnement assez large, ses outils d’édition d’images assez étoffées, etc.


Avant de connaître le succès que nous lui savons aujourd’hui, il faut savoir que ce projet a démarré initialement comme projet personnel pour modifier les images numériques avec les frères Thomas Knoll et John Knoll sous le nom de « ;Display ;» en 1987. Vu les premières itérations qui semblaient prometteuses, les frères ont peaufiné leur produit afin de le hisser au stade de produit commercialisable. En 1988, les premières ventes ont commencé à se faire avec la version 0.87 nommée Photoshop. Un an plus tard, les décideurs de l’entreprise Adobe ont flairé l’opportunité que revêtait ce produit et ont acheté une licence pour distribuer une version avancée de Photoshop. En 1990, la version 1.0 de Photoshop est sortie sur les Mac OS et deux ans plus tard, c’est-à-dire en 1992, sur les systèmes Windows.

Exceptionnellement pour cette version 1.0.1 de Photoshop, Adobe Systems a donné l’autorisation au Computer History Museum afin de mettre à la disposition du public le code source de ce produit à des fins non commerciales. Après avoir parcouru le code, Computer History Museum fait savoir que les 179 fichiers contenus dans le dossier archivé comportent environ 128 ;000 lignes de code qui ne sont pour la plupart pas commentées, mais très bien structurées. Et pour ce qui concerne la nature de ces lignes de code, environ 75 % d’entre elles sont écrites avec le langage Pascal et 15 % en langage Assembleur 68000. Le reste du code est constitué de données et diverses autres informations.


Grady Booch, le créateur de la méthode Booch (la méthode d’analyse et de conception orientée objet), également scientifique en chef dans la branche génie logiciel chez IBM Research Almaden et aussi administrateur au Computer History Museum, a aussi parcouru le code source de Photoshop 1.0 et a fait les déclarations suivantes :

« ;En ouvrant les fichiers qui constituaient le code source de Photoshop 1.0, je me sentais un peu comme Howard Carter lorsqu’il a d’abord percé la tombe du roi Toutankhamon. Quelles merveilles m’attendaient ;? Je n’ai pas été déçu par ce que j’ai trouvé. En effet, ce fut un merveilleux voyage pour ouvrir les rouages d’une application que j’avais utilisée il y a plus de 20 ans.

Architecturalement, c’est un système très bien structuré. Il y a une séparation cohérente de l’interface et de l’abstraction, et les décisions de conception prises pour subdiviser ces abstractions — avec généralement un type majeur pour chaque combinaison d’interface et d’implémentation — facilitèrent le suivi. Les abstractions sont assez matures. La dénomination cohérente, la granularité des méthodes, la simplicité à couper le souffle des implémentations, parce que chaque type était si bien abstractisé, tout concourt à rendre facile le discernement de la texture du système ;».

En comparant ce code source avec l’architecture actuelle de Photoshop, Booch souligne que les structures fondamentales ont persisté, bien que probablement dans des formes plus évoluées pour ce qui concerne l’implémentation moderne. Il ajoute que « ;les tuiles, les filtres, les abstractions pour la mémoire virtuelle (pour s’occuper d’images beaucoup plus grandes que les tampons d’affichage ou que la mémoire principale pourrait normalement gérer) sont tous présents dans la première version. Pourtant, il avait un peu plus de 100 ;000 lignes de code, par rapport à plus de 10 millions dans la version actuelle ;! Ensuite et maintenant, une grande partie du code fait référence à l’entrée/sortie et à la myriade de formats de fichiers que Photoshop doit prendre en charge ;».

« ;Il n’y a que quelques commentaires dans le code source de la version 1.0, dont la plupart sont associées à des extraits de code du langage Assembleur. Cela dit, le manque de commentaires n’est tout simplement pas un problème. Ce code est si alphabétisé, si facile à lire, que les commentaires auraient même pu gêner. […] Ce sont de très petits éléments de la base du code global, mais leur apparence me rappelle qu’aucun code n’est une île ;».

« ;C’est le genre de code que j’aspire à écrire ;», conclut-il. Après de telles déclarations d’un homme avisé en la matière, l’on est tenté de dire que ce code est exemple de bon code.

Avez-vous parcouru le code source de Photoshop 1.0 ;? Quel est votre avis personnel sur la qualité du code de Photoshop 1.0 ;? Partagez-vous les conclusions de Grady Booch ;? Pensez-vous que la qualité du code source de Photoshop 1.0 ait pu contribuer à renforcer le succès actuel de Photoshop ;?

Télécharger le code de Photoshop 1.0

Source : Computer History Museum

Et vous ?

Avez-vous parcouru le code source de Photoshop 1.0 ?

Quel est votre avis sur la qualité de ce code ?

Pensez-vous que ce code ait contribué d’une manière ou d’une autre au succès de Photoshop ?

Voir aussi

Photoshop fête ses 25 ans et garde le monopole sur le marché des logiciels de retouche d'images
Le code source du premier Photoshop disponible, Adobe fait don de la version 1.0 du logiciel au Computer History Museum
Apple travaillerait sur un concurrent de Photoshop ? Des brevets de la firme révèlent un nouveau concept d'application de dessin
Chrome OS : Google et Adobe présentent Project Photoshop Streaming, une beta qui apporte Photoshop au Chromebook
Adobe Photoshop CS5 : vieillir des photos à l'aide de calques de réglage et de fusion


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de 23JFK 23JFK - Membre expérimenté https://www.developpez.com
le 24/05/2018 à 13:52
Pas étonnant pour un projet initialement amateur de cette époque, il était plus facile à trouver des compilateurs de langage Pascal qu'un compilateur de langage C.
Avatar de anapurna anapurna - Expert confirmé https://www.developpez.com
le 24/05/2018 à 16:27
salut

beaucoup de personne ont oublié que le premier os d’Apple était en pascal
et oui le C n’était pas le seul compilateur système
Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 24/05/2018 à 17:15
Citation Envoyé par 23JFK Voir le message
Pas étonnant pour un projet initialement amateur de cette époque, il était plus facile à trouver des compilateurs de langage Pascal qu'un compilateur de langage C.
Faux, le C existait déjà
Avatar de DomDA91 DomDA91 - Membre confirmé https://www.developpez.com
le 24/05/2018 à 19:45
Un rapide examen de quelques sources montre que c'est même du Pascal Objet, probablement de l'Object Pascal puisque Photoshop a d'abord été développé pour Macintosh. (https://en.wikipedia.org/wiki/Object_Pascal)
Avatar de 23JFK 23JFK - Membre expérimenté https://www.developpez.com
le 24/05/2018 à 20:14
Citation Envoyé par hotcryx Voir le message
Faux, le C existait déjà
Jamais dit que le C n'existait pas, seulement que les compilateurs de C n'étaient pas aussi aisés à trouver car moins populaires, plus confidentiels et/ou considérés comme difficile d'emploi et réservé aux pro. Les magazines de l'époque faisaient plus la promo du Basic et du Pascal que du C.
Avatar de inspirateur inspirateur - Membre actif https://www.developpez.com
le 29/05/2018 à 11:08
J'ai toujours su qu'on peut faire beaucoup de choses avec le langage Pascal. Même à notre époque, on peut toujours utiliser Pascal pour un développement professionnel. Pour moi, ce qui est important au développement n'est pas le langage mais l'objectif à atteindre peu importe le langage à utiliser Pascal ou Java...
Avatar de piGrimm piGrimm - Nouveau Candidat au Club https://www.developpez.com
le 31/05/2018 à 22:44
Citation Envoyé par 23JFK Voir le message
Jamais dit que le C n'existait pas, seulement que les compilateurs de C n'étaient pas aussi aisés à trouver car moins populaires, plus confidentiels et/ou considérés comme difficile d'emploi et réservé aux pro. Les magazines de l'époque faisaient plus la promo du Basic et du Pascal que du C.
j'ai 54 ans et j'ai commencé en 1979 sur des cartes Hexa (genre UC-EMR), puis en 81 sur TRS-80, et je suis en parfaite contradiction DANS MON VECU avec ton empirisme conjectural qui sent bon le jeunot martyrisé de "on dit" glanés dans des décennies de foutaises colportées par des incompétents!

demande a google "TRS-80 Misosys C" ou "Alcor C", matte bien les dates (genre 1979) et cesse tes sornettes, car tu passes franc pour un idiot auprès des vrais pros.
Les compilateurs C n'étaient ni rares ni complexes (j'ai même utilisé un compilateur C totalement ecrit en basic), ils étaient ce qu'ils sont encore, des compilateurs pour les esprits qui ne supportent pas le typage STRICT et un mental BIEN structuré.. ainsi que des compilateurs pour des fainéants aimant bien les raccourcis en lieu et place de texte humainement compréhensible, pour faire "smart" auprès des clients les plus ballots
Avatar de dosjchris dosjchris - Candidat au Club https://www.developpez.com
le 04/06/2018 à 15:42
je dépasse aussi largement le demi siècle et oula oui des Altair, TRS, Apple, j'en ai vu dans ma jeunesse
et et et ... c est marrant
40 ans plus tard non avons toujours les relents de cette gueguerre entre le Pascal et le C.

ceci étant j'ai toujours mon Ritchie Cunningham (ça fait longtemps que je ne l'avais pas fait ce jeu de mots pourri sur ma 1ere bible du C )
Avatar de byrautor byrautor - Membre actif https://www.developpez.com
le 04/06/2018 à 20:35
Pascal : trop simple pour les ............complexés.
Et pourtant il y avait tout ou presque sans avoir une mémoire "hédoniquement" phénoménale.
Mais pourquoi faire simple quand on peut faire compliqué !
Avatar de jpiotrowski jpiotrowski - Membre actif https://www.developpez.com
le 04/06/2018 à 23:28
@piGrimm : je vous trouve très intolérant, voire franchement prétentieux. Ne pas supporter le typage stricte n'est pas un signe d'équilibre, en plus...
C est parfois le langage des gens qui veulent en foutre plein la vue. Comme APL à une certaine époque.
Contacter le responsable de la rubrique Accueil