{"id":5194,"date":"2013-02-16T11:35:24","date_gmt":"2013-02-16T10:35:24","guid":{"rendered":"http:\/\/www.gamelab.ch\/?p=5194"},"modified":"2013-02-16T11:35:24","modified_gmt":"2013-02-16T10:35:24","slug":"photoshop-1-0-ein-blick-in-den-source-code-nun-moglich","status":"publish","type":"post","link":"https:\/\/www.gamelab.ch\/?p=5194","title":{"rendered":"Photoshop 1.0 &#8211; ein Blick in den Source-Code nun m\u00f6glich"},"content":{"rendered":"<p><a href=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/Bildschirmfoto-2013-02-16-um-11.03.39.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-5193\" style=\"border: 0px;\" title=\"Bildschirmfoto 2013-02-16 um 11.03.39\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/Bildschirmfoto-2013-02-16-um-11.03.39.png\" alt=\"\" width=\"425\" height=\"304\" \/><\/a>Seit langem ist diese Software in fast jedem Portfolio eines Gamedesigners: Photoshop. Davor waren es Tools wie <a href=\"http:\/\/www.atarimagazines.com\/v5n9\/DegasElite.html\" target=\"_blank\">DegasElite<\/a> (Atari ST), <a href=\"http:\/\/en.wikipedia.org\/wiki\/NEOchrome\" target=\"_blank\">Neochrome<\/a> (Atari ST), <a href=\"http:\/\/www.asterius.com\/atari\/spectrum.htm\" target=\"_blank\">Spectrum512<\/a> (Atari ST),\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Deluxe_Paint\" target=\"_blank\">DeluxePaint<\/a> (Amiga).<br \/>\n\u00dcber das Innenleben von Software erf\u00e4hrt man naturgem\u00e4ss wenig. Statt dem C-Code wie in den Anf\u00e4ngen von Unix wird heute alles compiliert verteilt.<br \/>\nUnd so ist es denn von Zeit zu Zeit gut, auch mal hinter den Vorhang \u00a0von (alter) Software wie eben Photoshop (Erschien auf Macintosh) sehen zu k\u00f6nnen.<!--more--><br \/>\nDas ComputerHistory hat den Source-Code von Photoshop 1 hier online gestellt: <a href=\"http:\/\/www.computerhistory.org\/adobe-ps-source\/   \" target=\"_blank\">http:\/\/www.computerhistory.org\/adobe-ps-source\/ <\/a><br \/>\n(Der Link zum Sourcecode (Zip-File) ist in der Mitte des Artikels zu finden.)<br \/>\n<a href=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/Bildschirmfoto-2013-02-16-um-11.34.36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5199\" title=\"Bildschirmfoto 2013-02-16 um 11.34.36\" src=\"http:\/\/www.gamelab.ch\/wp-content\/uploads\/Bildschirmfoto-2013-02-16-um-11.34.36.png\" alt=\"\" width=\"505\" height=\"272\" \/><\/a><br \/>\nDas Ganze ist mehrheitlich in Pascal \u00a0(einer an der ETH von <a href=\"http:\/\/de.wikipedia.org\/wiki\/Niklaus_Wirth\" target=\"_blank\">Niklaus Wirth<\/a> (geb. in Winterthur) entwickelt Sprache) geschrieben (eine in dieser Zeit weit verbreitete und einfach zu erlernende Sprache). Zudem scheint Apple &#8211; so zumindest Wikipedia &#8211; auf Pascal als Entwicklungssprache f\u00fcr den Finder (-MacOS 7.5) gesetzt zu haben. Es scheint auch schon eine entsprechende objektorientierte Version speziell f\u00fcr Apple gegeben zu haben (Ein Gespr\u00e4ch mit <a href=\"http:\/\/de.wikipedia.org\/wiki\/Niklaus_Wirth\" target=\"_blank\">Wirth<\/a> w\u00e4re hier sicher auch noch interessant &#8211; sofern m\u00f6glich).<br \/>\n<a href=\"http:\/\/de.wikipedia.org\/wiki\/Pascal_(Programmiersprache)\" target=\"_blank\">Mehr zu Pascal &gt;<\/a><br \/>\nDer Sourcecode-kommt ganz ohne Kommentare aus, ist aber prinzipiell gut gegliedert und die Logik wird anhand der verschiedenen &#8222;Klassen&#8220;-Files schnell klar.<br \/>\nAb so klar strukturiertem Code wird mancher und manche fast schon neidisch werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seit langem ist diese Software in fast jedem Portfolio eines Gamedesigners: Photoshop. Davor waren es Tools wie DegasElite (Atari ST), Neochrome (Atari ST), Spectrum512 (Atari ST),\u00a0DeluxePaint (Amiga). \u00dcber das Innenleben von Software erf\u00e4hrt man naturgem\u00e4ss wenig. Statt dem C-Code wie &hellip; <a href=\"https:\/\/www.gamelab.ch\/?p=5194\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,5,8,1],"tags":[],"class_list":["post-5194","post","type-post","status-publish","format-standard","hentry","category-code","category-game","category-gamedesign","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/5194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5194"}],"version-history":[{"count":0,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/5194\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}