Photoshop 1 : le code source est disponible

Florian Innocente |


Le code source de Photoshop 1.0.1 est en libre téléchargement. Il reste soumis à quelques règles d'utilisation, comme celle de ne pas en faire un usage commercial. Si vous souhaitiez tenter l'aventure… mais il est bel et bien disponible. Le Computer Museum de Mountain View en Californie le propose depuis son site avec l'accord de son éditeur [manuel en pdf].



Ce code, qui renvoie à l'année 1990, totalise 128 000 lignes contre plus de 10 millions aujourd'hui, raconte un chercheur d'IBM. Il s'est penché sur la structure de ce petit trésor, avec parfois des accents admiratifs sur sa clarté. Grâce à quoi le faible nombre de commentaires ne pose guère de problème pour sa compréhension. Il y a trouvé également des approches que l'on retrouve dans la version actuelle de Photoshop.



Le Computer Museum rappelle l'histoire de la naissance de Photoshop, né "Display" et des efforts des deux frères Knoll, Thomas et John. Le premier était étudiant, le second employé chez Industrial Light & Magic de Georges Lucas. Thomas avait écrit ce programme en 1987 pour manipuler des images, sans objectif d'en faire un produit commercial, simplement un outil pour les deux frères.

Ce potentiel se révéla l'année suivante au fil de l'évolution du logiciel, qui devint alors "Photoshop". La première société à s'y intéresser fut Barneyscan, fabricant de scanners, qui prit 200 copies du logiciel - rebaptisé pour l'occasion Barneyscan XP - afin de les inclure avec ses périphériques.

Adobe en acheta une licence en avril 1989 et le commercialisa l'année suivante sous son nom définitif. 3 millions de copies furent vendues en 10 ans. Le logiciel était écrit en Pascal pour le Mac, avec quelques portions en assembleur pour le processeur 68000 lorsque de bonnes performances s'avéraient nécessaires dans l'exécution de tâches. La version 1 fut l'oeuvre d'une seule personne et ce nombre doubla pour la version 2…
avatar beenouze | 
Souvenirs, souvenirs... 23 ans après, une armée de développeurs indiens se charge de faire vivre l'outil, c'est beau !
avatar Benz Hine | 
J'ose esperer qu'il n'y a plus de pascal dans le code actuel...
avatar noxious | 
Sur quel OS peut on le faire fonctionner ?
avatar amigafred91 | 
Je ne vois pas en quoi le pascal est rédhibitoire... C'est un très bon langage, du moins sous windows, Delphi reste un très bon outils... Cf : http://www.fayette.k12.il.us/99/paint/paint.htm ca ressemble énormément ... ou la : http://www.lopr.net/articles.php?n=8 Alors m$, on se serait inspiré de Photoshop 1 pour faire paint ???
avatar liocec | 
@Benz Hine : [troll on] tu préfères du bon vieux C ancestral, que l'on code avec les pieds ? [troll off] C'est bien le pascal. Avant que Microsoft ne gagne la guerre contre Borland, c'était un des meilleurs langages. Ah, et pour mon aversion du C, c'est normal j'en fait tous les jours et comme en parallèle je code en pascal (Delphi), je peux chaque instant me rendre compte que le lobbying est un bien mauvais truc...
avatar amigafred91 | 
Entre le C, et le Pascal (Delphi) je prefere aussi largement le Pascal. C'est plus lisible, plus naturel, enfin, ce n'est que mon avis personnel. J'ai commencé avec le basic du CPC, le basic de mes casio fx, ensuite j'ai fais du Turbo Pascal 7 et ensuite Delphi. L'avantage du C,C++ c'est qu'il est multiplateforme, mais je n'accroche pas :/ Des que je fait un peut de code, je prefere Delphi :p Et entre Deplhi et l'infame Visual Studio de Redmond.... Comment dire, beurk.
avatar LaurentR | 
Quelqu'un connait le projet Lazarus en ce qui concerne le Pascal ? C'est pour savoir ce qu'il vaut.
avatar Mathias10 | 
@beenouze : Et alors? Les indiens doivent vivre eux aussi! Tu ne rale pas quand ce sont les ingés français qui construisent les ponts/immeubles/routes etc... à l'étranger.
avatar Pascal 77 | 
@ mathias 10 : Tu as déjà vu un ingé français construire quoi que ce soit, toi ? Ça se saurait, s'ils le faisaient :rolleyes: Nan, ils font juste des plans*, et ce sont des centaines ou milliers de petites mains du pays qui se tapent le sale boulot ! Un ingé manier la pelle ou la bétonneuse ! Tu n'as aucun sens des réalités, mon pauvre ami ! (*) et encore, en réalité, ils font faire les plans par des ingés indiens, et eux se contentent de les signer, en général !
avatar Philactere | 
@Pascal 77 : Je crois qu'en parlant de "construire" il parlait en effet des entreprises de BTP et bureaux d'ingénieurs et non du ferrailleur sur place. Quant à la sous-traitance des dessins, certains le font mais la pratique n'est pas généralisée, les résultats n'étant pas toujours très bons. Non pas qu'un indien ou un vietnamien ne sait pas dessiner mais parce que c'est une phase qui demande beaucoup de collaboration entre les ingénieurs et le dessin. La sous-traitance a l'autre bout du monde rend cette collaboration difficile.
avatar Philactere | 
C'est une excellente chose de publier le code source du Photoshop 1. Comme sujet d'étude ou de curiosité ça doit probablement en intéresser plus d'un. En terme de savoir faire il y a peut-être des choses a en retirer, j'imagine qu'il y a 20 ans l'optimisation du code était souvent plus poussée que maintenant.
avatar albinoz | 
@Philactere Exactement, et ca s'en ressent… Plus nos machines sont puissantes plus le code peu être écrit a l'arrache. Voila pourquoi tous les anciens logiciels en dehors de leurs complexité tourne plus vites que les nouveaux. Essayez Word 1 par exemple :D
avatar BeePotato | 
@ amigafred91 : « Alors m$, on se serait inspiré de Photoshop 1 pour faire paint ??? » Non. Plutôt de MacPaint.
avatar BeePotato | 
@ Philactere : « En terme de savoir faire il y a peut-être des choses a en retirer » J'imagine qu'une des choses à en retirer (entre autres) serait : ne polluez pas votre code à essayer d'en faire une version multi-plateformes où vous ne développerez la partie interface utilisateur qu'une seule fois. Sur les 10 millions de lignes de code de la version actuelle, il est bien probable qu'une bonne partie ne soit pas due à des fonctionnalités supplémentaires mais plutôt à leur couche d'abstraction Mac/Windows.
avatar amigafred91 | 
@BeePotato : en effet, ca se ressemble beaucoup. Les 2 ont peut etre pompé sur Photoshop 1 :) C'est vrai que maintenant, l'optimisation des logiciels, c'est comment dire ... OSEF. Le logiciel rame, ben change de processeur ou d'ordinateur. EN ce moment je virtualise des ancienne versions de windows sur ma config i7 3930K, et qu'est-ce que ca va vite... Bref, Sympa ce code source, pour ceux qui s'y interesseront.
avatar Francis Kuntz | 
[troll on] tu préfères du bon vieux C ancestral, que l'on code avec les pieds ? [troll off] Ceux qui codent avec les pieds c'est les devs, pas le language...
avatar edd72 | 
Ah les bonnes vieilles guerres de clocher sur les langages. Certains codent en Pascal (Delphi) car ils ne maitrisent que ce lange (souvent utilisé à but éductaif par le passé). D'autres prétendent coder en C alors qu'ils ne font dans leur cadre professionnel que rajouter 3 lignes dans du code pour appeler des fonctions qu'ils n'ont pas codé... Sérieusement, oui, le Pascal correspond bien à cette époque et c'est bien daté (déjà en 2000, le Delphi ne faisait plus partie des formations sérieuses -idem pour le VB-) mais c'était très bien et très pratique en 80-90. Ensuite, il n'y avait plus que les ados autodidactes qui bricolaient avec des versions crackées de Delphi parceque les anciens leurs avaient dit que le Delphi c'était bien... plutôt que de partir sur les fondamentaux. Vous n'allez pas comparer le Pascal avec le C... Faut arrêter le délire, le C est la base de la plupart des noyaus et applications critiques... Maintenant, je constate qu'il y a plein de développeurs "micro" Windows de la vieille époque dans ce fil, c'est amusant :D Euh, on va pas parler du Basic 1.1 du CPC (à la limite on pourrait discuter de l'assembleur Z80 de la même machine, ce serait plus intéressant)...
avatar Almux | 
A mes débuts, c'était déjà une version aux alentours de 2.1! ;)>
avatar sopcaja | 
@noxious Il faut émuler sur Mac OS Classic, hélas ..
avatar alexandre1999 | 
Ils vont pouvoir s'en servir pour améliorer GIMP ! Toutes mes excuses, c'est du vécu…
avatar amigafred91 | 
edd72 : Tu m'as démasqué :) J'ai aussi eu le Borland C++ Builder. Je n'ai jamais fait d'assembleur sur CPC :/
avatar _Tido_ | 
@edd72 @Kuntz +1 le C, c'est LE code pour les applis critiques (aéro, auto, ferroviaire, médical). Le peuple a beau rêver de langage de plus en plus haut, pour être de moins en moins rigoureux, prendre de plus en plus de RAM et de de proc. Le seul langage plus propre que le C, c'est le b, ça n'a jamais pris car il n'y avait pas assez de coder intelligents. quand les cons ont découvert la programmation, ils ont crée l'orienté objet
avatar jb07 | 
@_Tido_ Je fais de l'aéro, du spatial et un peu de ferro depuis à peu près 20 ans, j'ai surtout vu de l'Ada (basé sur la syntaxe de ... Pascal). Le C est le langage avec lequel j'ai vu le plus "d'horreurs".
avatar benjaminhparis12 | 
Je comprends pas ces histoires de codes sources Inaccessibles ?! Il est impossible de les voir sur le Photoshop actuel ?
avatar Seccotine | 
@ _Tido_ Je suppose que tu sais que l'OO est aussi vieux que le C, si pas plus ?
avatar oomu | 
"C'est vrai que maintenant, l'optimisation des logiciels, c'est comment dire ... OSEF." vous êtes jeune, okay. Mais ce propos a toujours existé. Dans les années 80 et avant. Cela fait partie des mythes du "tout va mal, avant c'était mieux, maintenant je vais mourir bouhouhouhou" qui fait partie de la nature humaine. Non, en réalité, AVANT c'était TARTE ! Les logiciels peu sophistiqués, les environnements de développements médiocres, les débugguers cauchemardesque et des surcouches délirantes tels les IDE Delphi. Et les systèmes plantaient tout le temps (boum le mac os, ho gourou méditation, ha écran bleu, PAF kernel panic ! ) maintenant c'est MIEUX. On optimise directement dans les puces elle même. On a des compilateurs nettement + intelligents pour prendre la bonne décision que tout un bataillon d'ingénieur de grande école. Vous ne réalisez PAS les prodiges que font les machines maintenant. Le CPC 464 était une horreur ! J'ai vécu avec ces machines. Seul la nostalgie de mes gouters à 8 ans me fait croire que c'était mieux que maintenant. - Le blabla sur les langages que vous faites est insipide. L'avantage du C est de représenter un bon compromis entre le fonctionnement de la machine et un peu d'abstraction. La programmation objet est ancienne, oui, avec par exemple Smalltalk. C'est un très bon paradigme pour découper un projet complexe en sous-programmes bien séparés et réutilisables. Cocoa (ex-openstep) découle beaucoup des travaux de Smalltalk. Mais plus important, Cocoa impose la conception "MVC" (Modèle Vue Contrôleur), ce qui donne un bon cadre pour faire un logiciel complexe sans s'y perdre. Alors c'est sur que ça prend + de place que le misérable os "sed" de l'oric mais quel progrès pour faire des logiciels utiles. Bref, Avant le 16 février 2013, 16h, l'informatique c'était NAZE ! sans aucun doute. - Ha, et si on peut regretter qu'Adobe profite de sa situation et force un paiement sans fin de ses logiciels, photoshop CS6 est infiniment mieux.
avatar jackWhite92 | 
L'objet pour les cons ? C'est curieux comme raisonnement. Je pense que même 5% des développeurs bossent pour une application critique. L'objet (java EE par exemple) permet de sortir un projet métier rapidement (notamment par la richesse des api disponibles).
avatar béber1 | 
"amigafred91 Les 2 ont peut etre pompé sur Photoshop 1 :)" http://www.lowendmac.com/macdan/010119mm.html MacPaint Primer "...Its tools display have been the inspiration for tool palettes for just about all other current drawing, painting, and rendering programs, including Photoshop and Illustrator. MacPaint 2.0 is still "the powerful, free form graphics tool for anyone who sketches, designs, illustrates, or paints"
avatar Nihondjin | 
Le code de CS6 sera à dispo en 2050 :)
avatar amigafred91 | 
@oomu : Delphi et c++ builder etaient tres bien. Que tu n'aies pas aimé est ton droit. Dire qu'avant l'informatique etait mieux, est faux, je ne l'ai pas dit. Ce que je pense, c'est qu'avec le temps, les versions des softs grossissent, leurs options aussi, et avec tout cela, les softs sont toujours plus gourmand en ressources qu'avant. Avant, lorsqu'on faisait un petit soft (j'ai jamais ete pro) ben on cherchait un peu a optimiser, maintenant sur un i7, qui se soucie de l'optimisation ? Les ordinausaures d'avant, dont les cpc et les amiga, comme les ancien mac, avaient des ressources en ROM. Et ca, c'etait le pied. Ca allait vite. Ca plantait aussi plus souvent. Aussi. Avec mes OS NT 4 et win2000, je voyait rarement les ecrans bleu, pourtant je m'en servait de ces oldies... J'en ai plus aucun depuis osx 10.4 et win7. Le 464 etait une horreur, surtout a cause de son lecteur de k7 :-/ Bref, c'est vrai que le C a le vent en poupe, que c'est le langage de predilection. Apres, si c'est pour dire que les outils de dev de borland etaient aussi lourd que ceux de M$, ca ne sert a rien de debattre. un code pascal/delphi sera toujours moins performant dans 95% des cas qu'un code similaire en c++, c'est ainsi. Mais si je concoit ce petit code, optimisé, bien plus rapidement, ca me va tout autant. Ca s'appelle la relativité :) /me reve qu'un jour, un OS moderne sorte en version ROM, comme une cartouche PCI, avec 80% de l'OS a l'interieur.
avatar os-app92 | 
@Pascal 77: Tu es ingénieur pour juger ? Alors ferme ta gueule.
avatar BeePotato | 
@ amigafred91 : « Les 2 ont peut etre pompé sur Photoshop 1 :) » C'est sûr : Bill Atkinson, pour sortir MacPaint en 1984, a dû s'inspirer fortement de l'interface de Photoshop 1 sorti en 1990. :)
avatar BeePotato | 
@ Seccotine : « Je suppose que tu sais que l'OO est aussi vieux que le C, si pas plus ? » Plus vieux, en effet. Non, il ne doit pas le savoir — ou alors il plaisante.
avatar SelPoivre | 
@amigafred91 : Infâme visual Studio ??? Il est largement plus maniable que Xcode ! Je code sous Mac et Windows depuis plus de 15 ans, je suis largement applephile, mais là je suis obligé d'être honnête ! :)
avatar CKJBeOS | 
@oomu : Le problème est l'abstraction, plus elle est importante plus elle dépend du compilons ou runtime Et la on est encore dans des générations assez moyennes Genre l'horrible Natstar avec lequel j'ai du bosser Je suis adepte plutôt de l'idée de contrôler un Max (l'ASM étant très bien pour ça et comprendre que la moindre connerie est fatale) La rigueur est un élément clé de la programmation, plus on s'en écarte (Garrage collector & Co) plus on "code" mal du moins plus on a des lacunes sur le fonctionnement de base d'un ordinateur ;( J'ai vu le résultat d'étudiants élevés au biberon java passer à du C/C++ je pense qui'il ont fait un concours de "core dump" Et ces mêmes étudiants étaient complètement largués lors des cours de C (gestion mémoire etc...) Après ça resté une observation et mon avis c'est certain
avatar CKJBeOS | 
@ckjbeos : Arg correcteur "garbage collector" et non Garrage LoL
avatar lennoyl | 
Attention. Seuls ceux qui ont la licence du logiciel peuvent télécharger.... non ? c'est bon, cette fois ?! :) ça me rappelle une programmeuse qui compilait le C... :)
avatar en ballade | 
@Pascal 77 : La réalité c est maintenant du côté des chinois de l inge a l'ouvrier
avatar en ballade | 
Quelqu'un peut me dire pourquoi a configuration identique Photoshop est plus puissant sous windows?
avatar beenouze | 
@Matias10 C'est quoi ton problème, tu t'es levé du mauvais pied ? En quoi mon commentaire sur les dev indiens te laisse supposer que je "râle" ? Je faisais simplement le parallèle entre la sortie du soft et l'évolution 23 ans après... Il ne s'agissait en rien d'une critique envers mes amis indiens.. Ils auraient pu êtres péruviens, malgaches ou français, mon propos aurait était le même donc, dans ton cas, il faut lire et relire, toujours essayer de comprendre avant de la ramener pour commettre un com débile.
avatar pocketalex | 
@ oomu : "Ha, et si on peut regretter qu'Adobe profite de sa situation et force un paiement sans fin de ses logiciels, photoshop CS6 est infiniment mieux." Je n'irait pas à contre sens de ton affirmation, oui, CS6 est mieux, en revanche, qu'est-ce qu'il est buggué. Mais buggué à mort. Et je ne parle pas de ma petite (grosse) utilisation dans mon coin, non, je parle des multiples réactions dans les forums et des réponses bredouillonnantes de chez Adobe. Le nouvel éditeur de texte est bien plus complet et évolué que le précédent, mais il est catastrophique. Bien souvent, il ne reconnait plus certaines touches du clavier (les flèches, SUPPR, etc) et la solution est ... de switcher vers une autre application puis de revenir dans Photoshop, et miracle ça remarche ... bravo Adobe Autre souci bien plus gênant, la gestion des typos devient parfois foireuse et Photoshop se bloque pendant de longues minutes avec la roulette colorée qui tournicote à fond. Le souci est aisément identifiable : lancez le Moniteur d'activité et vous verrez le process fonts qui occupe tranquillement toutes les ressources processeur. Une fois encore ce bug est clairement identifié chez Adobe mais aucune solution fiable n'existe, et les rares mises à jour n'ont toujours pas corrigé cette infamie. Quand on est en speed pour travailler sur une maquette, c'est un véritable plaisir de regarder la petite roue colorée ... On peut vider le cache typos de Photoshop, celui d'OS X, mais ces solutions ne sont pas définitives, bref, c'est toujours la panade. Mais sinon oui, CS6 est incontestablement la meilleur version de Photoshop, dommage que ces bugs gâchent la fête.

CONNEXION UTILISATEUR