Опубликован исходный код Photoshop 1.0



    В открытом доступе опубликован исходный код Photoshop 1.0.1.

    Код опубликован Музеем компьютерной истории с разрешения компании Adobe и свободно доступен для некоммерческого использования. Архив содержит 179 файлов, в общей сложности около 128 000 строк кода почти без комментариев. Около 75% написано на языке программирования Паскаль, ещё 15% на ассемблере для Motorola 68000.


    Братья Томас Нолл (слева) и Джон Нолл (справа)

    Когда студент факультета компьютерного зрения Томас Нолл в 1987 году написал программу Display для редактирования цифровых изображений на Macintosh, он и представить не мог, что её можно продавать. Томас делал программу для собственных нужд. Однако, в 1988 году они с братом решили слегка заработать: программу переименовали в Photoshop, а 200 копий версии Photoshop 0.87 разошлось со слайд-сканером Barneyscan XP.

    Перспективную программу заметили сотрудники компании Adobe — и им удалось договориться с братьями о лицензировании и праве на распространение версии Photoshop 1.0, которая была готова в апреле 1989 года и поступила в продажу в начале 1990 года.



    Первую версию Томас Нолл писал в одиночку, потом ему дали помощника, Photoshop 2.0 они писали вдвоём с коллегой. Брат Джон сделал многие плагины.

    User Guide образца 1990 года
    Tutorial образца 1990 года
    Зеркало с исходными кодами на Github

    Скриншоты первых версий Photoshop














    Для сравнения, интерфейс стандартного графического редактора MacPaint, который поставлялся вместе с компьютером Macintosh.

    Поделиться публикацией

    Похожие публикации

    Комментарии 98
      +8
      Около 75% написано на языке программирования Паскаль, ещё 15% на ассемблере для Motorola 68000.
      а остальные 10? Или это опечатка?
        +19
        «and the rest is data of various sorts»

        Магия, короче.
          –16
          Вот у кого нужно учиться разработчикам Оперы!
            +4
            При чем здесь опера?
              +15
              Думаю автор сообщения намекал на то, что ее разработчики не собираются открывать движок Presto, даже после прекращения поддержки.
                +14
                Ну почему сразу не собираются? Лет через 24 глядишь и соберутся ;)
                  +2
                  Если Опера Софтваре или владельцы ее интелектуальной собственности еще будут к этому моменту существовать.
                0
                Ну мне тоже кажется что открыть исходники Оперы 3,0 или более ранних не проблематично.
                +11
                Вот у кого нужно учиться разработчикам Оперы!

                Лучше не надо, а то ждать нам 20 лет
                  +1
                  Ну, тогда пусть у ID Software учатся :)
                  0
                  Надеюсь все-таки что они ТАКОМУ учиться не будут. А то через десяток лет откроют исходники Opera 1.0
                  • НЛО прилетело и опубликовало эту надпись здесь
                      –1
                      На ассемблере.
                      • НЛО прилетело и опубликовало эту надпись здесь
                +2
                Остальные 10% видимо и есть комментарии.
                  +4
                  ладно, хоть не 146% в сумме.
                    –21
                    Судя по сегодняшнему фотошопу, с тех пор они искали только еще более языки, дающие на выходе еще более объемный и медленный код, желательно особенно любящий свободную память. Судя по этой заметке (75% Паскаля), начало процессу было положено уже тогда )
                      +7
                      Вы шутите? Photoshop быстрый, функциональный, а CS6 ещё и красивый и комфортный для работы.

                      Посмотрите, например, на утилиту Puppet Wrap в «Фотошопе» или её аналог Puppet Tool в After Effects. Это же настоящее произведение искусства.
                        +8
                        Не то чтобы я как-то не понимал ваши доводы, тем более доводы безмолвно минусующих, но…

                        Знаете, есть старая байка, что, если до предела заломить человеку руку (т.е. сделать ему плохо) — он вас будет ругать. А если заломить до предела, подержать так, а потом чуть-чуть отпустить — он вас будет хвалить, что вы ему сделали, заметьте, не хуже, а лучше.

                        Так и с фотошопом… ничего, что его версии пухли раз от раза? Вспомните — 3.0, 4.0, 5.0, затем просто хит 5.5, с которой так не хотелось слезать на более толстые (в которых Паскаль убрали, не иначе) и менее поворотливые… сейчас, да, взялись за ум, но лет десять где этот ум был?! Скажете, заботились о людях? Фига там!

                        CS6 очень хороша. Одна из немногих, которую приятно скачать и поставить. Но если выкинуть из ряда версий ее и еще пару «удачных», то мое замечание будет более чем справедливо.

                        Другое дело, что вы в Фотошопе ищете и находите? Он уже сегодня умеет раз в 10 больше того, что нужно почти любому. И при этом не умеет 32 бита обрабатывать, чтобы любым инструментом, т.е. какие-то из них умеют, какие-то нет, надо смотреть. Поддержка 3d и векторов в битмапной программе — отличная штука, только мы все еще о битмапном редакторе говорим, или о распухшем комбайне?

                        Для примера поставьте себе ту же 5.5 версию, и сравните. Кроме content-aware, очень многое было уже и в нем, а по прожорливости никакого сравнения. Заметьте, он был быстр во времена, когда 64 Мб памяти были нормой, а сейчас то и дело слышу «конечно будет тормозить, у тебя же всего 4 Гб»…
                          0
                          С видеокарточкой nVidia Photoshop у меня работал шустро. В отличие от старого. Не знаю, что там насчет ATi. Но наложение фильтров и тем более превью просто идеальные.

                          И да, я с Ps знаком слабо. Надо было немного поработать, поставил, снес, поставил, снес.

                          По жизни графику не делаю.
                            0
                            Вы путаете «толщину» исходного кода всех версий PS, и аппаратное ускорение (Вы же о нем?) расчетов на вашей видеокарте.

                            Еще раз повторюсь, CS6 — отличная версия (впечатление, что переписана почти с нуля). Не самая худая, но на фоне предыдущих — довольно шустра, и поддерживает разные полезные современные веяния (те же GPU), чего в каком-нибудь PS версии 4 (4.0, а не cs4) Вы не найдете, конечно. Но почему столько версий до нее PS не был таким быстрым, как CS6 — это вопрос.

                            У меня знакомый есть, возится человек с вебом понемногу, и держит под рукой одну из старых версий, что-то вроде 5.5. Доволен, как слон: памяти ей, старой, на фоне современных обычных ее объемов, «почти» не нужно, а веб-задачи решает отлично.

                            Как раз об этом я и говорю: даже на относительно старой по сегодняшним меркам машинке 5.5 заработает отлично, а CS6 еле-еле запустится — это факт. И уже одно это позволяет говорить, что версия за версией PS пухнет, хотя, согласен, раз во сколько-то лет его переписывают, и эта свежая кровь, конечно, улучшает его восприятие.
                        +4
                        Мне вот интересно, вы его запускали вообще, сегодняшний Photoshop? Может назовете программу с аналогичным функционалом, работающую быстрее?
                          +1
                          Как неиспользуемый функционал может грузить программу? Тормозит GUI-шный фреймворк, который не довели до ума.
                          Сравните, например Xara и Illustrator даже на простейших примерах. Зара летает, а Люстра, как тормозила при перерисовке, так, спустя много версий совершенствования, и тормозит.
                          –4
                          +10500!
                          Также подумал про 75% Паскаля. Это именно тот случай про ложку, дерьмо, мёд и бочку.

                          Для остальных, кто знаком с «функционалом» рекомендую для наиболее распространенных операций по правке фотографий DigiKam, Gwenview и консольную утилиту которая по маске сильно и практически без потери качества оптимизирующая размер (в 3-4 раза) и очень шустренько jpegoptim.
                        +1
                        Не пойму, а зачем на первом скрине ползунки RGB?
                          +2
                          Цветные принтеры?
                            +14
                            Скрин был с черно-белого монитора :)
                              0
                              Блин, теперь сижу и пытаюсь выяснить какого цвета изображение на скриншоте с черно белого монитора…
                                +3
                                Выяснил опытным путем, изображение скриншота сделанного на монохромном мониторе таки будет монохромным (да, да, даже при просмотре на цветном мониторе)! Теория подтвердилась ))
                                  0
                                  Не совсем так, а точнее совсем не так.
                                  Если видеорежим монохромый, то скриншот будет монохромный, если же видеорежим цветной (и лишь монитор у вас монохром) — скриншот будет тоже цветным, т.к. снимается программно.
                                    0
                                    Не думаю что удастся выставить цветной видеорежим в связке с монохромным монитором — монитор погаснет (про себя подумав «я так не могу»), это, конечно, справедливо только для мониторов с EGA и более новых.
                                      0
                                      Лично работал за 486 с VGA картой и монохромным монитором.
                                      Хотя мониторы тоже разные бывают…
                              +7
                              Читал в книге Дэна Маргулиса о профессии «оператор сканера» — сканирование происходило очень долго и нужны были специальные люди, которые могут настроить сканер правильно ещё до начала сканирования. Так вот, эти люди умели видеть цвета в цифрах, практически как операторы из Матрицы. Так что, всё возможно.

                              Прежде, на заре цифровой эпохи, электронные файлы получались в результате сложного процесса сканирования пленок, который проводили высококвалифицированные операторы — они то и выставляли черную и белую точки¹.

                              ¹ Photoshop LAB Color: загадка каньона и другие приключения в самом мощном цветовом пространстве / Пер. с англ. — М.: Интелбук, 2006. — 480 с: илл.
                            • НЛО прилетело и опубликовало эту надпись здесь
                                +8
                                Жестко или нет, но в 1996 у меня был популярный в то время монохромный 14" монитор с плоским элюминофором :)

                                И да, на нём я делал весьма не плохие картинки в ФШ 3.0, в уме представляя RGB, потом смотрел на цветных мониторах у знакомых или в шараге :)
                                  +2
                                  А есть, что показать? Интересно :)
                                  (Ну вдруг сохранилось)
                                    +1
                                    Теоретически может даже на какой-то болванке и есть :D как-то не задумывался про изыскание таких раритетов… 17 лет прошло :)
                                      +30
                                      АААА!!! Одну нашёл!!! Это была обоина на рабочий стол :D За контент строго не судите, было мне 16 лет :D

                                      image
                                        –22
                                        Прикольно :))
                                        (Я б повысила, но кармы нихт)
                                          –1
                                          Теперь мы все знаем, что вас волновало в 16 лет
                                        –4
                                        неплохие
                                          0
                                          О_о я могу сказать только одно — это реально сурово!
                                          0
                                          Маргулиса книжечку почитайте. Там вся коррекция по цифрам.
                                          +1
                                          работал в 2.1 =)
                                          отличная штука!
                                            +10
                                            забавно что иконки практически не поменялись за столько лет
                                              0
                                              Набор фильтров практически тоже не изменился, только опций и пресетов больше стало.
                                              +106
                                              И уже тогда его интерфейс был лучше теперешнего гимпа.
                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                  +4
                                                  «основное ядро разработчиков gimp переключилось на разработку форка Photoshop. В интервью нашему журналу многие из них признались, что более 15 лет ждали этой возможности»
                                                  –18
                                                  Мне одному интерфейс Гимпа нравится больше интерфейса Фотошопа?
                                                    +6
                                                    Пользовался Гимпом в убунте — круто, удобно. Скачал версию под win — одно большое недоразумение. В чем дело…
                                                    +24
                                                    Ой, только не нужно это. Как человек, проработавший много лет в ФШ где-то с 2,5 до 9 версии, скажу, что интерфейс фотошопа не очень таки и удобный.

                                                    Просто привычный до ужаса. Просто привычный.
                                                      –6
                                                      Если не знать клавиатурных сокращений — то не совсем и удобный :).
                                                      gimp ясень день круче, во всём :)
                                                      +13
                                                      Однооконный режим гимпа радует, кстати.
                                                        +2
                                                        Гимп — это от безисходности :)
                                                        +15
                                                        ну, теперь заживём!
                                                          +1
                                                          Не pascal, а object pascal, тащемто.
                                                            0
                                                            Ну нет. Паскаль все-таки. Наличие объектов в нём не прибавляет к нему приставки
                                                          +3
                                                          Ну и ништяк. Поставлю на свой Mac 68k )
                                                            +8
                                                            Теперь осталось подождать ещё 23 года, чтобы посмотреть исходный код Photoshop 6.0 :).
                                                              0
                                                              А под какой лицензией опубликовали? Код можно включить в GPLный или MIT проект?
                                                                0
                                                                github.com/mqudsi/photoshop/blob/master/LICENSE

                                                                1. Grant of License. Conditioned upon your compliance with the terms and conditions of this Agreement, the Museum grants you a non-exclusive and non-transferable license for a single user, solely for your individual, personal and non-commercial purposes, (a) to load and install the Software; (b) to compile, modify and create modifications or enhancements of the Software or any of its components (“Derivative Works”); and © to run the Software or Derivative Works on simulators or hardware. The Museum and its licensors reserve all rights in the Software not expressly granted to you in this Agreement.
                                                                  0
                                                                  Его вообще нельзя никому передавать (transfer). :( Только скачать к себе и некоммерчески и частно править.

                                                                  Особенно упомянуто, что нельзя публиковать в сети для массового ознакомления.
                                                                    +1
                                                                    А зеркало на гитхабе кто сделал?
                                                                  +10
                                                                  В файле UAbout.p есть процедура TSerialText.Validate и ComputeChecksum, кейген ждет своего автора!
                                                                    0
                                                                    def photoshop_keygen
                                                                    	first_part_serial = ""
                                                                    	12.times do |val|
                                                                    		first_part_serial << rand(0x41..0x5A).chr
                                                                    	end	
                                                                    	checksum = 0
                                                                    	dummy_array = [594, 629, 431, 954, 228,
                                                                    				 741, 413, 846, 548, 945,
                                                                    				 187, 375, 599]
                                                                    	first_part_serial.size.times do |val|
                                                                    		checksum += first_part_serial[val].ord * dummy_array[val]
                                                                    	end
                                                                    	
                                                                    	checksum %= 1000
                                                                    	checksum += 284 if checksum < 100
                                                                    	serial = first_part_serial + checksum.to_s
                                                                    end
                                                                    

                                                                    Кто-то протестирует?
                                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                                      +9
                                                                      Хм, очень оперативно, а пожелайте, чего-нибудь посерьёзнее)
                                                                        +3
                                                                        И посвежее.
                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                            +1
                                                                            а вам зачем, если не секрет? ;)
                                                                              +3
                                                                              слава Болген ОС покоя не даёт, видимо
                                                                                +1
                                                                                еще не факт, что исходники помогут ;)
                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                            +3
                                                                            Да ладно, это вполне распространённая практика. Даже Майкрософт купил в своё время 86-DOS и переименовал её в MS DOS. Таким образом выигрывают все, и разработчики получившие финансирование и ресурсы для развития своего продукта, и компания зарабатывающая деньги, и пользователи получающие качественную программу.
                                                                              +2
                                                                              И?
                                                                                0
                                                                                Первая версия, конечно, важна, но последующие привнесли невероятное количество нового =)
                                                                                +8
                                                                                Не мог не вспомнить i.imgur.com/GYQBvAI.jpg
                                                                                  –2
                                                                                  Тонкий юмор, не сразу дошло :)
                                                                                  –1
                                                                                  Что ж бы делало человечество без фотошопа…
                                                                                    +1
                                                                                    Corel мечтательно потирают руки — и готовятcя разжечь пламя из искры Corel Photo Paint.
                                                                                      0
                                                                                      Наверное использовало бы какой-нибудь пакет от Ulead, Macromedia, Micrografx, Corel или там Aldus.

                                                                                      Свято место пусто не бывает, по мере возникновения спроса, возник бы и флагман.
                                                                                      0
                                                                                      Кстате интересный факт — от тех времен седых досих прога сохраняет BigEndian нотацию при записи в файл, помойму это плохо учитывая марш по х86 фотошопа.
                                                                                        +1
                                                                                        А че там учитывать? BSWAP появилась еще во времена первых 486, и на интеле занимала один тик. Да и до этого проблем не было, ибо можно в два прохода XCHG. В любом случае, можно конвертить bigendian littleendian в реалтайме, без потери скорости в реалтайме на x86
                                                                                          –1
                                                                                          Я не об этом том (теми или инимы велосипедами народ решает все эти вопросы) — я о том что надобы убрать это нафиг как рудимент и пересмотреть файловый стандарт.
                                                                                          0
                                                                                          В шрифтах TTF тоже остался big-endian порядок байт, хотя на x86 они поддерживаются начиная с Windows 3.1, а это уже больше двадцати лет. И ничего.
                                                                                          +2
                                                                                          Кто-нибудь должен был это сделать: github.com/mqudsi/photoshop/pulls
                                                                                            +2
                                                                                            Ну ё-маё, какие «Братья Томас Кнолл (слева) и Джон Кнолл (справа)»!?

                                                                                            НОЛЛ!

                                                                                            Алсо воз кноун… {facepalm}
                                                                                              0
                                                                                              В альтернативной реальности программисты апгрейдятся с Паскаля на Аду. Ведь Ада — это Паскаль плюс дополнительные фичи. Чья–то конторка изобрела Оберон-2 и расхоже утверждает, что Оберон–2 — это правильно сделанная Ада. Часто повторяемая ложь становится правдой. Программисты на Дилане жалуются, что Оберон–2 перехватывает программистов на полпути от Ады к Дилану. У другой конторки что–то не заладилось с лицензией на Оберон–2, поэтому они выпустили Модулу–3, почти как Оберон–2, но Модула–3. Тем временем в ещё одну контору возвращается гений–основатель. План спасения включает в себя использование наработок на очень малоизвестном ещё языке Delphi.
                                                                                                +2
                                                                                                Мне интересно, может я чего-то не понимаю, но как люди с монохромными интерфейсами и мониторами обрабатывали цветную графику? Поясните, те времена не застал.
                                                                                                  +3
                                                                                                  image

                                                                                                  Примерно так, думается
                                                                                                    0
                                                                                                    Такое прокатит, например, с 8 или 16 цветами. А как же фото обрабатывали?
                                                                                                      +1
                                                                                                      Не было тогда фотографий на компьютерах, кроме каких-то специальных профессиональных станций. В конце 90х даже появился термин — мультимедиа компьютер. Т.е. подразумевалось, что его мощности должно хватить смотреть фотки и играть музыку. Фильмы все равно тормозили при этом.
                                                                                                        0
                                                                                                        Да-да, уже погуглил. Были IRIX, на них и графику редактировали, и видео монтировали. Короче мощно и дорого, из-за чего эти системы и загнулись
                                                                                                  –2
                                                                                                  Мне одному кажется, что на фотографиях один и тот же человек?
                                                                                                  Над правой таки поработали фотошопом. Ай да Томас Кнолл, ай да фотошоп-мастер.

                                                                                                  image
                                                                                                    +1
                                                                                                    Ну все, теперь я могу бесплатно фотошопом пользоваться.

                                                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                    Самое читаемое