Примеры классического кода, ставшего Open Source
В прошлом году NASA опубликовала список программного обеспечения, код которого они разрабатывали в течении долгих лет. NASA уже давно стала знаменита тем, что делится с общественностью своим кодом. Другие же разработчики не всегда готовы пойти на такое. По крайней мере не сразу. Давайте ознакомимся с некоторыми примерами классического кода, который теперь можно и посмотреть, и пощупать.
Бортовой управляющий компьютер КА Аполлон (AGC)
Миссия Apollo на Луну по праву считается колоссальным достижением человечества. Для ее осуществления был проделан не менее колоссальный труд. Это относится и к программному обеспечению, которое разрабатывалось MIT Instrumentation Lab. AGC было установлено и на бортовой, и на лунный модули для обеспечения наведения, навигации и управления. В честь 40 летия миссии Apollo 11 в 2009 году оригинальный код AGC был расшифрован и отсканирован со старых записей и предоставлен в открытом доступе.
Желающие ознакомится с кодом AGC или даже поковыряться в нем могут скачать его (также можно скачать виртуальный симулятор AGC) с сайта Google Code: code.google.com/p/virtualagc
IBMs APLð
APL — язык программирования, который стал наследником системы математических нотаций для манипулирования массивами. Она была разработана профессором Гарвардского университета Кеннетом Айверсоном, который в дальнейшем повлиял на развитие таких языков программирования как J, Matlab и Mathematica. В 1962-м году, работая на IBM, господин Айверсон сформулировал и опубликовал свою работу в книге под названием A Programming Language (APL). Первой реализацией APL было APLð для компьютеров IBM System/360 в 1966-м году. А в 2012-м IBM совместно с Музеем компьютерной истории выпустили в свет исходный код APLð, содержащий 37500 строк и состоящий из 360 языков ассемблера.
Исходный код APLð доступен для скачивания на сайте Музея компьютерной истории: www.computerhistory.org/atchm/apl360-software-license-agreement
Xerox Alto OS
Alto — персональный компьютер, разработанный в Исследовательском Центре Пало Альто (PARC) корпорацией Xerox в 1973-м году. Он стал революционным изобретением, поскольку обладал графическим дисплеем (черно-белый монитор 606×808), а также клавиатурой и мышью. Еще более выдающимся отличием была память 128 KB и дисковое пространство 2.5 MB, что считалось довольно много в то время. Был и концепт рабочего стола и графического пользовательского интерфейса. Однако Alto никогда не продавали, все 1500 экземпляров использовались исключительно в пределах компании Xerox.
На сайте Музея компьютерной истории Вы можете скачать не только ОС, но и множество программного обеспечения и утилит, разработанных для Alto: PUP (PARC Universal Packet) набор мжежсетевых протоколов, Bravo — первый редактор WYSIWYG и 4 языка программирования (BCPL, Mesa, Smalltalk и Lisp): xeroxalto.computerhistory.org/xerox_alto_file_system_archive.html
CP/M OS
В 1979-м году Гэри Килдалл, работающий консультантом в компании Intel, начал разработку программного обеспечения для управления флоппи-дисководом (тогда еще новинки). Вскоре эта разработка переросла в новую ОС для компьютеров на основе микропроцессора 8080 от Intel, которую он назвал CP/M (Control Program/Monitor, и в дальнейшем Control Program for Microcomputers). В отличии от других операционных систем того времени CP/M была написана не на стандартном языке программирования, а на созданном самим Килдаллом. CP/M также стала прародителем для вполне обычных в наше время вещей, таких как 8-буквенные имена и 3-буквенные расширения файлов. Килдалл основал компанию Digital Research, Inc. и запатентовал свою операционную систему, которая стала доминирующей среди персональных компьютеров вплоть до появлени в 80-ых DOS.
Исходный код первых 4 версий CP/M можно скачать на сайте Музея компьютерной истории: www.computerhistory.org/atchm/early-digital-research-cpm-source-code
Microsoft BASIC для 6502
В 1975-м году MOS Technology создала 6502 микропроцессор, желая сделать его дешевой альтернативой других микропроцессоров того времени. Microsoft для работы 6502 использовала язык программирования BASIC, который был основан на языке Altair BASIC. Последний был написан Биллом Гейтсом и Полом Алленом в номере отеля в Альбукерке (Нью-Мехико) для микрокомпьютера MITS Altair 8800. Микропроцессор 6502 в дальнейшем использовался во многих популярных компьютерах, таких как Apple I и Apple II, Commodore VIC-20 и на игровой консоли Atari 2600. Microsoft лицензировала BASIC для 6502 и использовала его для реализации других систем (Commodore BASIC и Applesoft BASIC). В этой версии BASIC содержится знаменитая пасхалка WAIT 6502 от Билла Гейтса.
Скачать BASIC для 6502 можно с Pagetable: www.pagetable.com/? p=774
Adventure
Квест (Adventure) — жанр видео-игр, в основном однопользовательских, с интерактивным сюжетом и решением различных пазлов и задач. Одним из праотцов этого жанра была Colossal Cave Adventure (или просто Adventure), в честь которого и был собственно назван жанр. Игра была создана в 1976-м году Уильямом Кровером (Will Crowther). В тот период он работал инженером в компании Bolt, Beranek & Newman. Также является одним из создателей ARPANET. Кровер создал игру, в которой герой перемещался по различным помещениям пещеры с сокровищами и магией, для своих двух дочерей. Оригинальная версия состояла из 700 строк кода на языке Fortran и запускалась на компьютере BB&N«s PDP-10. Спустя годы выпускник Стэнфорда Дон Вудс нашел копию Adventure и с позволения Кровера расширил игру до 3000 строк программного кода, добавив новые локации и пазлы.
Оригинальную версию кода можно скачать тут: www.icynic.com/~don/jerz
А версию, дополненную Вудсом тут: rickadams.org/adventure/e_downloads.html
Apple DOS 3.1
Apple II, выпущенный в 1977-м году, использовал аудио кассеты, а не диски, для загрузки дополнительных программ и хранения данных. Вскоре после выпуска этого компьютера Стив Возняк разработал контроллер для дисков и Apple передал разработку программного обеспечения на аутсорсинг компании Shepardson Microsystems. Разработчик Пол Лугтон (Paul Laughton) создал DOS примерно за 35 дней, записывая код на перфокартах. Apple DOS 3.1 вышла в свет в июне 1978-го года.
Исходный код DOS 3.1 можно скачать на сайте Музея компьютерной истории: www.computerhistory.org/atchm/apple-ii-dos-source-code
MS-DOS 1.1 и 2.0
Знаменитая на весь мир операционная система впервые была создана для персональных компьютеров IBM«s x86. Эта ОС не была написана с чистого листа, а основывалась на предыдущих версиях, 86-DOS (была написана Тимом Патерсоном из Seattle Computer Products, после приобретена Microsoft). Первая версия, MS-DOS 1.1 (названная в честь 86-DOS 1.1), была выпущена в 1981-м году. Исходный код этой ОС также содержит множество шуточных слов и фраз.
http://www.slideshare.net/DmytroKikot/code-fun
А поковыряться в самом коде можно скачав его тут: www.computerhistory.org/atchm/microsoft-research-license-agreement-msdos-v1–1-v2–0
E.T. the Extra Terrestrial
E.T. («Инопланетянин») стал самым популярным фильмом 1980-х годов и основой для одной из самых худших игр всех времен. Желая заработать на популярности киноленты, компания Atari поручила Говарду Уоршоу создать игру для популярной в то время консоли 2600. Проблема в том, что из-за жадности и желания продать как можно больше копий игры именно в период Рождественских праздников, Atari выделила на проект всего 5 недель. В результате неразумных сроков пострадало качество игры, и ее продажи едва перевалили за 1,5 миллиона копий, 3,5 миллиона копий остались нереализованными. В 2006 году Денис Дебро переработал игру, исправив многочисленные баги и добавив в нее свои новые компоненты.
Оригинальную версию исходного кода можно скачать с Pastebin: pastebin.com/AaSYZTHt
А версию, измененную Дебро тут: www.neocomputer.org/projects/et
Wolfenstein 3D
Джон Д. Кармак и Джон Ромеро из id Software в 1992 году создали поистине культовую видео-игру, ставшую прародителем множества FPS, — Wolfenstein 3D. Изначально игра была разработана для компьютеров на базе MS-DOS, однако она дошла и до наших современных устройств, была портирована даже на iOS. Также Wolfenstein 3D дала толчок для появления Doom, Duke Nukem и Quake. Исходный код Wolfenstein 3D на ряду с проектом-сиквелом Spear of Destiny был опубликован еще в 1995 году.
Скачать его можно тут: github.com/id-Software/wolf3d
MacPaint 1.3
MacPaint — знаменитое программное обеспечение для работы с растровыми изображениями. MacPaint был одним из 2 приложений, доступных на первых компьютерах Macintosh в январе 1984 года (второе — текстовое приложение MacWrite). Редактор изображений был разработан Вилли Аткинсоном, одним из первых творцов Macintosh, и основывался на его же более ранней разработке LisaSketch для компьютеров Apple Lisa. MacPaint предоставлял пользователям много тех функций, которые мы уже считаем обычным делом (инструмент заливки, захват изображения лассо). В 2010, с разрешения Стива Джобса, Музей компьютерной истории выпустил исходный код MacPaint 1.3, который содержит 5800 строк.
Заинтересовавшиеся, вот ссылка для скачивания этого кода: s3data.computerhistory.org/102658076_macpaint_acc.zip
Внимание! При переходе по данной ссылке, скачивание начнется автоматически.
QuickDraw
QuickDraw — библиотека и API для рисования растровой графики в различных приложениях, в том числе и в MacPaint. Он также был на Macintosh с самого начала, с 1984 -го года. Устаревшим QuickDraw стал только с появлением OS X 10.4 (Tiger). А полностью ушел в отставку после выхода OS X 10.8 (Mountain Lion). Также, как и MacPaint, был разработан Биллом Аткинсоном. В 2010-м году исходный код из 17000 строк стал доступен общественности.
Ссылка для скачивания: s3data.computerhistory.org/102658076_quickdraw_acc.zip
Внимание! При переходе по данной ссылке, скачивание начнется автоматически.
SimCity
Градостроительный симулятор без конца, без побед и поражений — SimCity стал первым в своем роде. Хоть он и был разработан еще в 1985-м году Уиллом Райтом, релиз состоялся только в 1989-м. Так как издательство боялось, что концепция бесконечной и бессюжетной игры не придется по вкусу покупателям. Однако, все мы знаем что они очень сильно ошибались. SimCity стала прародителем жанра и вдохновителем множества других игровых проектов, и была названа одной из 10 самых значимых игр в истории. Дон Хопкинс в 2008-м году выложил на своем сайте исходный код SimCity, но под названием Micropolis, поскольку игровой издатель EA владеет правами на торговую марку SimCity.
Ссылка для скачивания исходного кода SimCity: www.donhopkins.com/home/micropolis/micropolis-activity-source.tgz
Внимание! При переходе по данной ссылке, скачивание начнется автоматически.
Atari 7800 ProSystem OS + игры
Atari 7800 ProSystem (январь 1986-го) стала первой широко распространенной игровой консолью. Позиционировалась как домашняя консоль, потому обладала возможностью подключения клавиатуры и других периферийных устройств. В итоге, было разработано менее 100 игр под эту консоль. Потом порт для подключения периферийных устройств был убран в 1992-м году. В 2009-м году Музею Atari удалось спасти исходный код операционной системы и несколько игр, с выброшенных после закрытия компании в 1996-м году, дискет.
А вот скачать данный код можно тут: www.atarimuseum.com/videogames/consoles/7800/games
Word for Windows 1.1a
Когда большинство людей думают о текстовом редакторе, они вспоминают Microsoft Word. Изначально это программное обеспечение было разработано для системы DOS в 1983-м под руководством Чарльза Симони, который также создал первый текстовый WYSIWYG обработчик Bravo для компании Xerox в 1974-м году. Изначально Microsoft Word уступил дорогу WordPerfect, но уже в 1989-м году в Windows появился именно этот текстовый редактор, ставший в последствии монополистом на Windows ОС.
Исходный код Word for Windows 1.1a доступен для скачивания на сайте Музея компьютерной истории: www.computerhistory.org/atchm/microsoft-research-license-agreement-msword-v-1–1a
Prince of Persia
Prince of Persia — фентезийная видео-игра, созданная под Apple II Джорданом Мекнером и изданная в октябре 1989-го года компанией Brøderbund Software. Свою невероятную популярность и похвальный отзывы как критиков так и самих игроков игра заполучила за счет своей невероятной анимации. Мекнером просматривал записи того, как его брат прыгает и бегает по парковке, после переносил все эти движения в саму игру. Prince of Persia стал локомотивом множества игр данной серии и даже полнометражного кинофильма. К сожалению оригинальный исходный код был давно утрачен, но Метнер нашел пачку старых дискет, которые когда-то решил сохранить. С них он и смог восстановить код и выпустить его в свет в 2012 году.
На сайте GitHub Вы можете скачать данный исходный код: github.com/jmechner/Prince-of-Persia-Apple-II
Adobe Photoshop 1.0.1
Photoshop был разработан двумя братьями Томасом и Джоном Нолл в конце 1980-х. Изначально программа называлась просто Display, потом Image Pro. После того, как создатели осознали весь потенциал своего детища, они лицензировали проект под название Photoshop to Adobe. Версия 1.0 была выпущена в 1990 году (изначально только для компьютеров Mac). Продажи составили 3 миллиона копий за первые 10 лет. Изначальная версия исходного кода для версии 1.0.1 из 128000 строк (по большей части на языке Pascal) стала доступна для всех желающих в 2012 году.
Ссылка для скачивания исходного кода Adobe Photoshop 1.0.1: www.computerhistory.org/atchm/photoshop-software-license-agreement
Microsoft C# и Visual Basic
Visual Basic и Microsoft C# были разработаны Microsoft в 1991-м и 2000-х годах соответственно, как составляющие .NET Framework. Желая поделиться историей своих продуктов Microsoft предоставила исходный код платформы .NET compiler под названием Roslyn, который состоял из компиляторов для C# и Visual Basic.
Скачать исходный код можно с сайта Roslyn: roslyn.codeplex.com/SourceControl/latest
Надеюсь, что данный список был полезен, ведь историю (не только цивилизаций, но и программирования) забывать не стоит. Она может научить нас многому. Понаблюдать, как создавался тот или иной культовый программный продукт и поковыряться в его «составе» — крайне интересно.
И напоследок:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Мартин Голдинг)