4 Punkte von GN⁺ 2024-05-16 | 1 Kommentare | Auf WhatsApp teilen

Adobe-Photoshop-Quellcode

Ein Softwarejuwel: die Reihe historischer Quellcodes des Computer History Museum

  • Photoshop: das Verändern digitaler Bilder mit der Software Photoshop oder anderer Bildbearbeitungssoftware, insbesondere auf eine Weise, die die Realität verzerrt (Quelle: Merriam-Webster Online Dictionary, 2012)

Die Entstehung von Photoshop

  • Ende der 1980er begannen die Brüder Thomas Knoll und John Knoll, ein Bildbearbeitungsprogramm zu entwerfen und zu schreiben
  • Thomas Knoll war Doktorand für Computer Vision an der University of Michigan und schrieb 1987 ein Programm zum Anzeigen und Bearbeiten digitaler Bilder
  • John Knoll arbeitete bei der Film-VFX-Firma Industrial Light & Magic und nutzte dieses Programm sinnvoll für die Fotobearbeitung

Die Weiterentwicklung von Photoshop

  • Das Programm entwickelte sich schrittweise weiter und wurde unter dem Namen "Display" bekannt
  • Im Sommer 1988 wurde erkannt, dass das Programm kommerzielles Potenzial hatte, und der Name wurde in "Photoshop" geändert
  • Der Diascanner-Hersteller Barneyscan bündelte rund 200 Exemplare der Version 0.87 unter dem Namen "Barneyscan XP"

Der Vertrag mit Adobe

  • Auf Anregung von Russel Brown, Art Director bei Adobe, entschied sich Adobe zum Kauf einer Vertriebslizenz für Photoshop
  • Der Vertrag wurde im April 1989 abgeschlossen, und Anfang 1990 erschien Version 1.0
  • In den folgenden zehn Jahren wurden mehr als 3 Millionen Exemplare von Photoshop verkauft

Technische Details zu frühem Photoshop

  • Frühes Photoshop wurde hauptsächlich in Pascal für den Apple Macintosh geschrieben, teilweise auch in Maschinensprache für den Motorola-68000-Mikroprozessor
  • An Version 1 arbeitete Thomas allein als Ingenieur, an Version 2 waren zwei Ingenieure beteiligt
  • Thomas entwickelte die Kernanwendung, während John viele Bildverarbeitungs-Plug-ins schrieb

Veröffentlichung des Quellcodes

  • Mit Genehmigung von Adobe Systems veröffentlichte das Computer History Museum den Quellcode von Photoshop Version 1.0.1 aus dem Jahr 1990 zur nichtkommerziellen Nutzung
  • Der Quellcode besteht aus 179 Dateien und umfasst rund 128.000 Zeilen gut strukturierten Codes mit kaum Kommentaren
  • Etwa 75 % des Codes wurden in Pascal, etwa 15 % in 68000-Assemblersprache geschrieben

Kommentar zum Quellcode

  • Einschätzung von Grady Booch, Chief Scientist für Software Engineering bei IBM Research Almaden und Fellow des Computer History Museum:
    • Den Quellcode von Photoshop 1.0 zu öffnen, war wie das Öffnen eines Grabes mit antiken Artefakten
    • Die konsequente Trennung von Interfaces und Abstraktionen sowie die Designentscheidungen rund um komponentisierte Abstraktionen sind hervorragend umgesetzt
    • Die grundlegende Struktur bleibt auch in modernen Implementierungen erhalten
    • Obwohl es kaum Kommentare gibt, ist der Code sehr gut lesbar

Screenshots von frühem Photoshop

  • Startbildschirm: zeigt die verfügbaren Werkzeuge
  • Pinsel-Farbe, -Größe und -Textur sind wählbar
  • Verschiedene Auswahlwerkzeuge und Bildfilter werden angeboten
  • Die in Version 3 hinzugefügte Bild-Ebenen-Funktion fehlt in den frühen Versionen
  • Eine Einstellungsseite bietet Anpassungsmöglichkeiten
  • Es gibt nur eine begrenzte Auswahl an Schriftarten, Schriftgrößen und Stilen

Liste veröffentlichter historischer Quellcodes

  • MacPaint- und QuickDraw-Quellcode, 18. Juli 2010
  • APL-Programmiersprachen-Quellcode, 10. Oktober 2012
  • Adobe-Photoshop-Quellcode, 13. Februar 2013
  • Apple-II-DOS-Quellcode, 12. November 2013
  • Früher Quellcode von Microsoft MS-DOS, 25. März 2014
  • Quellcode von Microsoft Word for Windows Version 1.1a, 25. März 2014
  • Früher Quellcode von Digital Research CP/M, 1. Oktober 2014
  • Xerox-Alto-Quellcode, 21. Oktober 2014
  • Früher Quellcode von Electronic Arts DeluxePaint, 22. Juli 2015

Über den Autor

  • Len Shustek ist emeritierter Vorsitzender des Gründungsdirektoriums des Computer History Museum

Verwandte Artikel

  • CHM Blog: Computer für uns alle, 15. Dezember 2023
  • CHM Blog: Wie alt ist dein Furby?, 13. Dezember 2023
  • CHM Blog: Schildkröten, Blöcke und Erinnerungen, 5. Dezember 2023

Meinung von GN⁺

  • Der historische Wert von Photoshop: Photoshop leitete eine Revolution in der digitalen Bildbearbeitung ein, und über seinen Quellcode lässt sich der historische Kontext früher Softwareentwicklung verstehen.
  • Der pädagogische Wert des Codes: Der kaum kommentierte, aber gut strukturierte Code kann ein nützliches Material für die Ausbildung im Software Engineering sein.
  • Technologischer Fortschritt: Durch den Vergleich der Struktur von frühem Photoshop mit der Struktur moderner Versionen lässt sich die Entwicklung der Softwarearchitektur nachvollziehen.
  • Kritische Perspektive: Die Veröffentlichung des frühen Quellcodes hat historischen Wert, doch da die kommerzielle Nutzung eingeschränkt ist, sind praktische Einsatzmöglichkeiten begrenzt.
  • Verwandte Projekte: Open-Source-Bildbearbeitungssoftware wie GIMP bietet ähnliche Funktionen und kann als Alternative zu Photoshop in Betracht gezogen werden.

1 Kommentare

 
GN⁺ 2024-05-16
Hacker-News-Diskussion

Zusammenfassung ausgewählter Hacker-News-Kommentare

  • Erfahrung mit der Archivierung von Adobe-Quellcode

    • Es wurde die Erfahrung geteilt, bei Adobe den Quellcode von Photoshop, Illustrator, PostScript und anderen Projekten archiviert zu haben.
    • Mithilfe der Sicherung von Thomas Knolls ursprünglichen Mac-Disketten wurden Dateien über einen Mac Plus und ein serielles Kabel übertragen.
    • Darunter waren Dateien in verschiedenen uralten komprimierten Archivformaten, einschließlich Dateien der Version 0.54 vom 6. Juli 1988.
    • Der gesamte Code wurde auf einem Perforce-Server archiviert, aber frühe Illustrator-Backups befanden sich auf einer beschädigten externen Festplatte.
  • Erfahrung mit dem Austausch von Quellcode mit Adobe

    • Es wurde von einem Besuch bei Adobe Mitte der 90er Jahre berichtet, bei dem Quellcode ausgetauscht wurde.
    • PhotoShop basierte auf MacApp und hatte eine Schicht, die unter Windows funktionierte.
    • Ein Teil des PhotoShop-Codes sowie Bereiche für Farbraumberechnungen wurden übernommen, der Großteil jedoch ignoriert.
    • Es besteht Neugier, ob sich heute noch Spuren von MacApp im aktuellen Quellcode finden.
  • Konsistenz der UX

    • Es wurde Verwunderung darüber geäußert, dass die UX im Allgemeinen immer noch weitgehend gleich ist.
    • In der frühen Phase nach dem Erscheinen des MacBook Pro M1 lief die Silicon-Beta von Adobe Photoshop am schnellsten.
    • Inzwischen ist sie wieder langsamer geworden.
  • Schwierigkeit, die Schönheit des Quellcodes zu verstehen

    • Jemand hatte den Quellcode gesehen, fand es aber schwierig, seine Schönheit zu erkennen.
    • Während des Lernens von Rust und der Überlegung zur Code-Struktur kam die Frage auf, wie man UIs wie in Photoshop oder 3D Studio Max aufbaut.
    • Es wurde nach guten Ressourcen gefragt, um etwas über Code-Struktur zu lernen.
  • Artikel über Adobe Photoshop 1.x

    • Gemeint ist ein Artikel aus dem Jahr 2013 über Adobe Photoshop 1.x aus dem Jahr 1990.
  • Verhinderung der Verwässerung von Marken

    • Adobe bemüht sich, eine Verwässerung der Marke zu verhindern.
    • Als korrektes Verwendungsbeispiel wurde etwa genannt: „Bild verbessert mit Adobe® Photoshop® Elements Software“ statt „photoshopped“.
  • Lob für die Veröffentlichung alten Quellcodes

    • Es wurde gelobt, wenn Unternehmen den Quellcode alter Software veröffentlichen.
    • Viel Quellcode dürfte im Lauf der Zeit und durch zahlreiche Übernahmen verloren gegangen sein.
    • Da Versionsverwaltung erst relativ spät allgegenwärtig wurde, könnte viel Quellcode nur noch auf zufälligen Tape-Backups, Disketten oder ausgedruckt in Ordnern existieren.
  • Erfahrungen mit frühen Versionen von Photoshop

    • Es wurde berichtet, Photoshop vor der Adobe-Übernahme in einem Krankenhaus gesehen zu haben.
    • Die damalige MacApp-Version könnte sich noch im Beta-Stadium befunden haben.
    • Tom Knolls B-Spline-Algorithmus wurde als Grundlage für einen Kurveneditor verwendet.
  • John Knolls Karriere

    • John Knoll war FX-Leiter bei den Star-Wars-Prequels und führte bei Rogue One Regie.
    • Die Behind-the-Scenes-Dokumentationen der Prequels seien gut erhalten.