23 ans après son lancement, le code source de Photoshop 1.0 est libéré

23 ans après son lancement, le code source de Photoshop 1.0 est libéré

Envie de retourner dans les années 90 ?

Avatar de l'auteur
Sébastien Gavois

Publié dans

Logiciel

15/02/2013 2 minutes
61

23 ans après son lancement, le code source de Photoshop 1.0 est libéré

Computer History Museum, une organisation pour la promotion et la préservation de l'histoire de l'informatique, vient d'annoncer que le code source de la première mouture de Photoshop était disponible en téléchargement. Bien évidemment, cette opération a obtenu l'approbation de la société Adobe Systems Inc.

adobe photoshop

 

Il y a un peu moins d'un an, Jordan Mechner avait pu ressusciter le code source de Prince of Persia et l'avait publié sur Github. Cette fois-ci, ce n'est pas d'un jeu, mais d'une application qu'il est question : Photoshop 1.0. Cette version avait été réalisée par Thomas et John Knoll et commercialisée pour la première fois en 1990, soit il a plus de 20 ans, et le Computer History Museum propose depuis peu son code source en téléchargement. Bien évidemment, Abobe Systems Inc a donné son accord.

 

Sachez qu'il comprend pas moins de 179 fichiers pour un total de 128 000 lignes de codes. À titre de comparaison, la dernière mouture disponible, Photoshop CS6, en comporte pas moins de... 10 millions. Le Computer History Museum nous dévoile également quelques détails supplémentaires : environ 75 % du programme a été écrit en Pascal et 15 % en langage assembleur.

 

adobe photoshop adobe photoshop

 

Notez enfin que Grady Booch, un expert dans le domaine de la programmation, s'est livré à une rapide analyse du code source de Photoshop 1.0 et n'a visiblement pas été déçu de ce qu'il a trouvé et va même jusqu'à annoncer que « c'est le genre de code que j'aimerais écrire ». Il précise qu'il est très bien structuré et que les structures fondamentales de l'application ne seraient pas sans rappeler celles des dernières versions.

 

Quoi qu'il en soit, le code source de Photoshop 1.0 est donc librement téléchargeable en cliquant sur ce lien, mais il ne doit évidemment pas être utilisé pour un usage commercial. Le guide de l'utilisateur est également disponible ici, tandis qu'un tutoriel se trouve par là.

Écrit par Sébastien Gavois

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Fermer

Commentaires (61)


Je n’ai pas télécharger les sources, mais 15% de langage assembleur, c’est quand même un boulot de fou.

Je me souviens de la difficulté et de la prise de tête de coder en assembleur…


Oh l Le coup de vieux dans les dents ! <img data-src=" />



Je savais pas encore ce qu’était Photoshop, mais je commençais de pondre mes premiers programmes …








Kanchelsis a écrit :



Je n’ai pas télécharger les sources, mais 15% de langage assembleur, c’est quand même un boulot de fou.

Je me souviens de la difficulté et de la prise de tête de coder en assembleur…







C’est un peu normal quand tu dois écrire des filtres basiques mais performant genre un blur



Sinon pas étonnant de trouver un code propre en pascal :p









Kanchelsis a écrit :



Je n’ai pas télécharger les sources, mais 15% de langage assembleur, c’est quand même un boulot de fou.

Je me souviens de la difficulté et de la prise de tête de coder en assembleur…







Mouais, j’y comprends toujours rien à l’assembleur, ptet qu’un jour il a fallu que j’écoute mon prof le temps d’un partiel.



Comme quoi on pouvait faire l’impasse <img data-src=" />









Kanchelsis a écrit :



Je n’ai pas télécharger les sources, mais 15% de langage assembleur, c’est quand même un boulot de fou.

Je me souviens de la difficulté et de la prise de tête de coder en assembleur…







C’est de l’assembleur 68000 qui est très facile à écrire (en comparaison du x86), à l’époque la médiocrité des compilateurs (C ou Pascal) rendait quasiment obligatoire l’assembleur si on voulait obtenir un minimum de performance.









Kanchelsis a écrit :



Je n’ai pas télécharger les sources, mais 15% de langage assembleur, c’est quand même un boulot de fou.

Je me souviens de la difficulté et de la prise de tête de coder en assembleur…





C’est quel assembleur que tu as appris aussi? Si c’est le x86, il n’est pas fait pour être utiliser par des humains, tout est pensé pour l’optimisation par des compilateurs.



Un exemple d’un assembleur très utilisé jusque vers le milieu des années 80 :http://skilldrick.github.com/easy6502/



Les proc Apple de l’époque restait aussi plutôt “simple” à coder avec de l’assembleur.



Ça reste de l’assembleur, et je salue la performance. C’est juste que faire la même chose aujourd’hui serait encore pire.



c’est pas pour critiquer, mais quel est le but de cette opération?








Khalev a écrit :



C’est quel assembleur que tu as appris aussi? Si c’est le x86, il n’est pas fait pour être utiliser par des humains, tout est pensé pour l’optimisation par des compilateurs.



Un exemple d’un assembleur très utilisé jusque vers le milieu des années 80 :http://skilldrick.github.com/easy6502/



Les proc Apple de l’époque restait aussi plutôt “simple” à coder avec de l’assembleur.



Ça reste de l’assembleur, et je salue la performance. C’est juste que faire la même chose aujourd’hui serait encore pire.







J’ai appris a coder en assembleur sur du 6800, ça m’a vraiment pas motiver d’aller voir ailleurs après.









gokudomatic a écrit :



c’est pas pour critiquer, mais quel est le but de cette opération?







C’est pour que les mecs de Gimp puissent enfin améliorer leur logiciel <img data-src=" />





<img data-src=" />









gokudomatic a écrit :



c’est pas pour critiquer, mais quel est le but de cette opération?





Comme dit dans la news c’est une initiative du “Computer History Museum, une organisation pour la promotion et la préservation de l’histoire de l’informatique”. Le code source de ce logiciel est donc une pièce de musée. <img data-src=" />









Plokta a écrit :



C’est de l’assembleur 68000 qui est très facile à écrire (en comparaison du x86), à l’époque la médiocrité des compilateurs (C ou Pascal) rendait quasiment obligatoire l’assembleur si on voulait obtenir un minimum de performance.







ah les bon vieux cours de 68000 pendant le BTS en info, que du bonheur ^^









gokudomatic a écrit :



c’est pas pour critiquer, mais quel est le but de cette opération?







Ça ne t’éclaire pas ?

« Computer History Museum, une organisation pour la promotion et la préservation de l’histoire de l’informatique »



Édit : grillé <img data-src=" />









Seth-Erminatores a écrit :



ah les bon vieux cours de 68000 pendant le BTS en info, que du bonheur ^^







La minute du geek : le microprocesseur Motorola 68000



<img data-src=" />

Faut lire les commentaires “anciens combattants” aussi. ;)



J’avais commencé à apprendre l’assembleur.. Mais j’ai vite arrêté quand mon MO5 a fait pouf <img data-src=" />








John Shaft a écrit :



C’est pour que les mecs de Gimp puissent enfin améliorer leur logiciel <img data-src=" />





<img data-src=" />





Ben sans rire… la 1.0.7 de photoshop supportait déjà de travailler sur des images avec plus de 8 bit par canaux…



Sous Blender, c’est disponible depuis…

…ah ben non c’est pas encore dispo dans la version stable…<img data-src=" />









Crysalide a écrit :



La minute du geek : le microprocesseur Motorola 68000



<img data-src=" />

Faut lire les commentaires “anciens combattants” aussi. ;)





<img data-src=" />

finalement c’est blindé de “vieux” ici <img data-src=" />









ragoutoutou a écrit :



…ah ben non c’est pas encore dispo dans la version stable…<img data-src=" />





Estime-toi déjà heureux qu’il existe une version stable. <img data-src=" />



<img data-src=" /> excellent



y’a moyen de compiler ça ? mais doit falloir émuler un Mac OS Classic en fait <img data-src=" />








Jeru a écrit :



finalement c’est blindé de “vieux” ici <img data-src=" />







Non, c’est plein d’expérience à échanger ;-)









Kanchelsis a écrit :



Je n’ai pas télécharger les sources, mais 15% de langage assembleur, c’est quand même un boulot de fou.

Je me souviens de la difficulté et de la prise de tête de coder en assembleur…







Sur 128000 lignes, pas tellement. De nombreux programmes étaient écrits à 90% assembleur voir 100% , notamment des jeux vidéos qui ont des contraintes de temps d’exécution autrement plus couillues qu’un logiciel de dessin. Enfin perso, j’suis pas impressionné.



Par contre, le commentaire comme quoi c’est du beau code a de quoi surprendre, vu comment photoshop est devenu une usine à gaz mal foutue jusqu’au CS3 qui a (il était temps) fait du nettoyage et optimisé le bouzin.



Ca va bien faire avancer le monde la v1 de photoshop <img data-src=" />


On avait appris un peu d’assembleur à la fin des années 90, à l’école, mais vite fait, juste pour savoir ce que c’est, pour illustrer un peu les cours d’architecture micro, et voir à quel point c’était casse-cs par rapport au C.



Autant dire qu’aujourd’hui, j’ai tout oublié de l’assembleur.


Ça peut- aussi être de l’assembleur généré par un compilateur C (cc -a) et optimisé ensuite à la main.

C’est bien plus facile comme ça.








John Shaft a écrit :



C’est pour que les mecs de Gimp puissent enfin améliorer leur logiciel <img data-src=" />





<img data-src=" />





Bizarre, je me suis dit la même chose en voyant le titre de la news.<img data-src=" />



Tiens personne ne fait de remarque sur les noms des créateurs de Photoshop?



John Knoll est juste une pointure des effets visuels ayant travaillé sur de nombreuses sagas et de nombreux films en tant qu’employé d’ILM la boite à VFX de tonton Lucas Mickey.


<img data-src=" />








Crysalide a écrit :



La minute du geek : le microprocesseur Motorola 68000



<img data-src=" />

Faut lire les commentaires “anciens combattants” aussi. ;)





je m’étais fait un porte clé avec un vieux 68000 <img data-src=" /><img data-src=" />





environ 75 % du programme a été écrit en Pascal et 15 % en langage assembleur.





Et les 10% qui reste? En Logo? <img data-src=" />


En fait, le titre de l’article est trompeur : le code du logiciel n’est en rien “libre” car diffusé avec l’accord d’Adobe sous une licence pour le moins restrictive (ang).

Extrait :





  1. Restrictions. Except as expressly specified in this Agreement, you may not: (a) transfer, sublicense, lease, lend, rent or otherwise distribute the Software or Derivative Works to any third party; or (b) make the functionality of the Software or Derivative Works available to multiple users through any means, including, but not limited to, (…)



    Je renvoie aussi à l’article de numerama.








Mavelic a écrit :



En fait, le titre de l’article est trompeur : le code du logiciel n’est en rien “libre” car diffusé avec l’accord d’Adobe sous une licence pour le moins restrictive (ang).

Extrait :



Je renvoie aussi à l’article de numerama.







libéré &lt;&gt; libre ;)



@ nlucle : En nombre de lignes, environ 75 % du code est en Pascal, 15 % est en langage assembleur 68000, et le reste est des données de diverse sortes”. <img data-src=" />








nucle a écrit :



Et les 10% qui reste? En Logo? <img data-src=" />





<img data-src=" />

en GOTO++











…ou pas<img data-src=" />









Khalev a écrit :



C’est quel assembleur que tu as appris aussi? Si c’est le x86, il n’est pas fait pour être utiliser par des humains, tout est pensé pour l’optimisation par des compilateurs..







Même pas sur que ça ait été fait des humains.



J’ai toujours detesté le x86, un assembleur bâtard avec des restrictions stupides, alors qu’en 68000 on a fait plein de trucs sympa pendant mes études (et un peu en dehors, sur Mac et Amiga), et c’était pas difficile, Le jeu d’instruction 68x00 est vraiment bien construit.



Mais bon c’est de l’histoire très ancienne que les moins de 20 000 ans (enfin plutôt 30 ans) ne peuvent pas connaitre… ;)









iksarfighter a écrit :



Ça peut- aussi être de l’assembleur généré par un compilateur C (cc -a) et optimisé ensuite à la main.

C’est bien plus facile comme ça.







Me semble que les gars d’Adobe ont toujours utilisé les instructions vectorielles dès qu’elles sont apparues (pas sur 68000 évidemment, mais l’Altivec des PowerPC et plus tard, MMX, SSE des Intel. Aujourd’hui, GPU à donf).










gokudomatic a écrit :



c’est pas pour critiquer, mais quel est le but de cette opération?





Je dirais que rien que si le code est bien fait, bien structuré, ça peut servir à des fins d’enseignement.



Montrer des morceaux de code en assembleur fonctionnels et concrets également!



Et pis c’est l’histoire :)





mais il ne doit évidemment pas être utilisé pour un usage commercial





Donc c’est pas libre !








Crysalide a écrit :



La minute du geek : le microprocesseur Motorola 68000



<img data-src=" />

Faut lire les commentaires “anciens combattants” aussi. ;)







<img data-src=" />



Un de mes profs d’infos était un dico du 68000, il connaissait le moindre recoin de ce processeur, on avait une salle complète de ces bêtes là.



Haha, j’ai commencé sur Photoshop en v 2.0 (alors qu’il y avait déjà la 3 ou 4 à cette époque).

Rien que voir le tableau de la news me rappelle que j’étais potentiellement pas loin de la bombe <img data-src=" /> à partir d’un certain moment passé dessus <img data-src=" />








megadub a écrit :



libéré &lt;&gt; libre ;)





On peut le comprendre comme ça, mais libérer = rendre libre (dans le sens général, pas celui des 4 libertés). Le problème c’est que quand on n’a pas le détail, on peut se tromper sur le sens exact du mot (pour la même raison que le terme “libre” est souvent utilisé en anglais plutôt que “free” à cause du sens “gratuit” de ce dernier).



Personnellement, j’aurais utilisé “rendu public” ou “est ouvert”.









Seth-Erminatores a écrit :



<img data-src=" />



Un de mes profs d’infos était un dico du 68000, il connaissait le moindre recoin de ce processeur, on avait une salle complète de ces bêtes là.







Et maintenant il sert à quoi le dico ?



Ils l’ont collé dans un placard ?









BreizFenrir a écrit :



On peut le comprendre comme ça, mais libérer = rendre libre (dans le sens général, pas celui des 4 libertés). Le problème c’est que quand on n’a pas le détail, on peut se tromper sur le sens exact du mot (pour la même raison que le terme “libre” est souvent utilisé en anglais plutôt que “free” à cause du sens “gratuit” de ce dernier).



Personnellement, j’aurais utilisé “rendu public” ou “est ouvert”.





je pense que la conclusion est assez clair pour ça





Quoi qu’il en soit, le code source de Photoshop 1.0 est donc librement téléchargeable en cliquant sur ce lien, mais il ne doit évidemment pas être utilisé pour un usage commercial



C’est les seuls à faire des backups dans les années 90 <img data-src=" />








Kanchelsis a écrit :



J’ai appris a coder en assembleur sur du 6800, ça m’a vraiment pas motiver d’aller voir ailleurs après.







Quand on a gouté a ce qui est bon on se transforme vite en chat.







Bourriks a écrit :



On avait appris un peu d’assembleur à la fin des années 90, à l’école, mais vite fait, juste pour savoir ce que c’est, pour illustrer un peu les cours d’architecture micro, et voir à quel point c’était casse-cs par rapport au C.



Autant dire qu’aujourd’hui, j’ai tout oublié de l’assembleur.







Le C a d’autres cotés casse-bonbon bien plus pénalisant que l’assembleur (même X86). Si tu trouvais le 68K naze, n’aborde pas le sujet X86. En 68k tu peux écrire des programmes plein de routines élégantes. Une fragrance binaire si j’ose dire.







Melaure a écrit :



Même pas sur que ça ait été fait des humains.



J’ai toujours detesté le x86, un assembleur bâtard avec des restrictions stupides, alors qu’en 68000 on a fait plein de trucs sympa pendant mes études (et un peu en dehors, sur Mac et Amiga), et c’était pas difficile, Le jeu d’instruction 68x00 est vraiment bien construit.



Mais bon c’est de l’histoire très ancienne que les moins de 20 000 ans (enfin plutôt 30 ans) ne peuvent pas connaitre… ;)







C’est la que le bas blesse. La domination commerciale des mastodontes (pachydermes d’ailleurs) de l’époque a fait régresser le secteur d’au moins 10 ans. Il faudrait (ré)-enseigner ça au jeunes avant que cela ne se perde a jamais. Aujourd’hui ils apprennent a faire des jeux en LUA. Et souvent on entend :“LOL, il faut plus de RAM (ou un processeur plus rapide).



Donc ne 4E71ez pas. Diffusez la parole du bien binaire. C’est comme ce qui est bon. On y revient toujours et parfois on le ré-invente…







Sinon qui veut du Photoshop pro a 900€ ?



<img data-src=" /> et c’est ainsi que naquis la légende








luxian a écrit :



Et maintenant il sert à quoi le dico ?



Ils l’ont collé dans un placard ?





Il y a dix ans le 68000 était toujours très utilisé (machines à laver, etc) et enseigné, et je ne serais pas surpris que ce soit encore le cas.









Seth-Erminatores a écrit :



<img data-src=" />



Un de mes profs d’infos était un dico du 68000, il connaissait le moindre recoin de ce processeur, on avait une salle complète de ces bêtes là.







C’est un proc ultra simple. Il n’y avait pas grand chose à mémoriser. En ce qui concerne son utilisation, je n’en ai jamais vu dans du matériel grand public, sauf chez Apple au tout début, toujours des dérivés comme la série des 68x00 (le fameux 68705!).

Je continue à programmer en assembleur sur microcontrôleurs, le code est plus lisible et surtout plus compact.









rafununu a écrit :



C’est un proc ultra simple. Il n’y avait pas grand chose à mémoriser. En ce qui concerne son utilisation, je n’en ai jamais vu dans du matériel grand public, sauf chez Apple au tout début, toujours des dérivés comme la série des 68x00 (le fameux 68705!).

Je continue à programmer en assembleur sur microcontrôleurs, le code est plus lisible et surtout plus compact.







Ordinateurs personnels : les premières générations de Mac, l’Amiga, l’Atari ST.



Consoles de jeux : Megadrive et Neo Geo









John Shaft a écrit :



C’est pour que les mecs de Gimp puissent enfin améliorer leur logiciel <img data-src=" />





<img data-src=" />







je n’y avais pas pensé <img data-src=" /> (pour améliorer leurs routines)



Lda, Jsr, etc (oui, je sors) <img data-src=" />








le podoclaste a écrit :



Ordinateurs personnels : les premières générations de Mac, l’Amiga, l’Atari ST.



Consoles de jeux : Megadrive et Neo Geo





Ti92 <img data-src=" /><img data-src=" /><img data-src=" />



xor ax,ax


Il n existe pas une version 1.0?








RisingForce a écrit :



<img data-src=" />

en GOTO++











…ou pas<img data-src=" />





En BrainFck !!!!! <img data-src=" />



Le preuve :



++++++++++[&gt;+&gt;+++&gt;+++++++&gt;++++++++++&gt;&gt;++++++++++. ——–. +++++++. +++++. —–. ++++. ———–. +++++++. +.









rafununu a écrit :



C’est un proc ultra simple. Il n’y avait pas grand chose à mémoriser. En ce qui concerne son utilisation, je n’en ai jamais vu dans du matériel grand public, sauf chez Apple au tout début, toujours des dérivés comme la série des 68x00 (le fameux 68705!).

Je continue à programmer en assembleur sur microcontrôleurs, le code est plus lisible et surtout plus compact.







Il y a eu beaucoup de 68000 dans les imprimantes.









raoudoudou a écrit :



Il y a eu beaucoup de 68000 dans les imprimantes.







Les devices Palm OS ancienne génération étaient basés sur des SOC incorporant un dérivé de 68020 ..



Sinon un des usages encore fait à l’heure actuelle pour les motorola 68000, c’est dans les micro-contrôleurs des mines antipersonnelles …



68000 vs. 8086, il n’y a pas photo à l’arrivée. Le 68000 diffusé à partir de 1979 est infiniment plus simple à assimiler. Dommage qu’IBM ne l’ai pas choisi pour son PC il y a + de 30 ans, la face du monde informatique en eu été changée.


C’est réellement un beau geste de la part d’adobe.



Même si le logiciel est vieux, c’est réellement appréciable. Ne fut ce que pour les étudiants et les passionnés de retro computing qui préservent l’histoire de l’informatique.



On aimerait tant que cela devienne plus courant.











jmc_plus a écrit :



68000 vs. 8086, il n’y a pas photo à l’arrivée. Le 68000 diffusé à partir de 1979 est infiniment plus simple à assimiler. Dommage qu’IBM ne l’ai pas choisi pour son PC il y a + de 30 ans, la face du monde informatique en eu été changée.







Ca n’avait clairement rien à voir.



Le x86 de l’époque était une merde sans nom à côté des 68k.



Comme quoi, c’est pas toujours les meilleurs produits qui s’imposent..



Mais on peut dire que le 68k a perdu la bataille à cause de Windows 3.1 et surtout de la suite office qui était clairement une tuerie pour l’époque.









Ler van keeg a écrit :



En BrainFck !!!!! <img data-src=" />



Le preuve :



++++++++++[&gt;+&gt;+++&gt;+++++++&gt;++++++++++&gt;&gt;++++++++++. ——–. +++++++. +++++. —–. ++++. ———–. +++++++. +.







Le mieux, c’est en Malbolge …<img data-src=" />



http://fr.wikipedia.org/wiki/Malbolge



La particularité de Malbolge est qu’il a été conçu pour être le pire (le plus difficile et exotique) langage de programmation possible.



Hello world en Malbolge



(=&lt;`:9876Z4321UT.-Q+*)M’&%$H”!~}|Bzy?=|{z]KwZY44Eq0/{mlk


hKs_dG5[m_BA{?-Y;;Vb’rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O&lt;





<img data-src=" />









divinechild a écrit :



Le mieux, c’est en Malbolge …<img data-src=" />



http://fr.wikipedia.org/wiki/Malbolge



La particularité de Malbolge est qu’il a été conçu pour être le pire (le plus difficile et exotique) langage de programmation possible.







OMGXDBBQ ! Un langage pire que le Brainfck et OOK! réunis ? Ca exite ?

<img data-src=" />

Il faut de ce pas programmer un système capable de convertir automatiquement le Malbolge en HTML afin de créer des sites web avec ce langage ! Ce doit être bien fendard ! <img data-src=" />









sr17 a écrit :



Ca n’avait clairement rien à voir.



Le x86 de l’époque était une merde sans nom à côté des 68k.



Comme quoi, c’est pas toujours les meilleurs produits qui s’imposent..



Mais on peut dire que le 68k a perdu la bataille à cause de Windows 3.1 et surtout de la suite office qui était clairement une tuerie pour l’époque.







Intel qui bat Motorola déjà là <img data-src=" />