- PVSM.RU - https://www.pvsm.ru -

Программисты, давайте изучать исходники классических программ

Современные программисты — счастливчики: мы живём в мире, в котором исторические и оказавшие существенное влияние программы имеют открытый код, доступный для изучения. Однако, многие программисты только учатся, и изучают те программы, над которыми работают сами. У нас редко находится время для изучения исторических работ, и курсы программирования редко тратят время на такие вещи.

Мы полагаем, что разработчикам следует изучать исходники программ, оказавших большое влияние, подобно тому, как архитекторы изучают здания, оказавшие влияние на архитектуру (и критикуют их). Чем повторять те же ошибки снова и снова, мы должны изучить большую работу, проделанную до нас, и вынести из неё уроки.

В идеале, нам следует изучать исходные коды великих программ с комментариями и критикой, которая даёт нам информацию о контексте проекта, его сильных и слабых сторонах. Такие комментарии редки, но вот вам несколько отправных точек:

  • Doom 3, игра, которую часто хвалят за исключительный дизайн кода

Исходник [1]
Doom 3 — обзор исходника [2]
Исключительная красота исходного кода Doom 3 [3]

  • Apollo 11 Guidance Computer

Исходник [4]
The Virtual AGC Project [5] — исходники различных миссий Аполло, документация и симуляторы.
Virtual AGC [6] — исодники
The Apollo Guidance Computer: доброе и мягкое введение [7]
AGC — библиотека документов [8]
Apollo Guidance Computer: архитектура и принцип действия [9]
Ваш умный тостер недостоин держать свечку компьютеру Аполлона [10]

  • DOOM (оригинальный)

Исходник [13]
Чёрная книга игрового движка: DOOM [14]
Размышления о разработке DOOM’а [15]

  • Wolfenstein 3D

Исходник [16]
Чёрная книга игрового движка: Wolfenstein 3D [17]

Также можно найти исходники программ, которые вы использовали в прошлом. Важно начинать с программ, которые вам хорошо знакомы, и вы можете связать их функции с исходным кодом. Вот ресурсы, которые вы можете использовать для того, чтобы найти и изучить исторические исходники:

Организация «The Historical Source»: репозиторий [18]GitHub в настоящее время содержит архив из 143 программ. Мнгие из них являются некогда популярными играми, в которые вы, возможно, играли.
Сайт "Чёрная книга игрового движка [19]" содержит подробный разбор движков Doom и Wolfenstein 3D, с исходниками.
Каталог ПО NASA [20] содержит свыше 1000 программных проектов, доступных для публики.
Коллекция Музея Компьютерной Истории содержит исходники исторических программ. Вот выборка из их коллекции исторических исходных кодов:
Adobe Photoshop [21]
Microsoft Word for Windows version 1.1a [22]
Xerox Alto OS и сопутствующие утилиты [23]
Ранняя версия Digital Research CP/M OS [24]
Исходник ранней версии Microsoft MS-DOS [25]
Apple II DOS [26]
Многие люди играли с игрушкой Furby, её исходники доступны:
PDF [27]
Исходники Furby [28]
Исходники [29] оригинального SimCity (также известного, как Micropolis) доступны для скачивания

Автор: Владимир

Источник [30]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/347000

Ссылки в тексте:

[1] Исходник: https://github.com/historicalsource/doom3

[2] Doom 3 — обзор исходника: http://fabiensanglard.net/doom3/

[3] Исключительная красота исходного кода Doom 3: https://kotaku.com/the-exceptional-beauty-of-doom-3s-source-code-5975610

[4] Исходник: https://github.com/chrislgarry/Apollo-11

[5] The Virtual AGC Project: http://www.ibiblio.org/apollo/index.html

[6] Virtual AGC: https://github.com/virtualagc/virtualagc

[7] The Apollo Guidance Computer: доброе и мягкое введение: http://www.ibiblio.org/apollo/ForDummies.html

[8] AGC — библиотека документов: http://www.ibiblio.org/apollo/links.html

[9] Apollo Guidance Computer: архитектура и принцип действия: https://www.amazon.com/gp/product/1441908765

[10] Ваш умный тостер недостоин держать свечку компьютеру Аполлона: https://www.theatlantic.com/science/archive/2019/07/underappreciated-power-apollo-computer/594121/

[11] Архитектура приложений с открытым исходным кодом: https://embeddedartistry.com/blog/2017/10/09/recommended-reading-the-architecture-of-open-source-applications/

[12] Microsoft BASIC для 6502: https://www.pagetable.com/?p=774

[13] Исходник: https://github.com/fabiensanglard/gebbdoom

[14] Чёрная книга игрового движка: DOOM: http://fabiensanglard.net/gebbdoom_v1.1.pdf

[15] Размышления о разработке DOOM’а: https://rome.ro/news/2018/12/10/reflections-on-dooms-development

[16] Исходник: https://github.com/fabiensanglard/gebbwolf3

[17] Чёрная книга игрового движка: Wolfenstein 3D: http://fabiensanglard.net/gebbwolf3d_v2.1.pdf

[18] репозиторий : https://github.com/historicalsource

[19] Чёрная книга игрового движка: http://fabiensanglard.net/gebb/index.html

[20] Каталог ПО NASA: https://software.nasa.gov/

[21] Adobe Photoshop: https://computerhistory.org/blog/adobe-photoshop-source-code/?key=adobe-photoshop-source-code

[22] Microsoft Word for Windows version 1.1a: https://computerhistory.org/blog/microsoft-word-for-windows-1-1a-source-code/?key=microsoft-word-for-windows-1-1a-source-code

[23] Xerox Alto OS и сопутствующие утилиты: https://computerhistory.org/blog/xerox-alto-source-code/?key=xerox-alto-source-code

[24] Ранняя версия Digital Research CP/M OS: https://computerhistory.org/blog/early-digital-research-cpm-source-code/?key=early-digital-research-cpm-source-code

[25] Исходник ранней версии Microsoft MS-DOS: https://computerhistory.org/blog/microsoft-ms-dos-early-source-code/?key=microsoft-ms-dos-early-source-code

[26] Apple II DOS: https://computerhistory.org/blog/apple-ii-dos-source-code/?key=apple-ii-dos-source-code

[27] PDF: http://www.seanriddle.com/furbysource.pdf

[28] Исходники Furby: https://github.com/gnomon-/furby-source

[29] Исходники: https://embeddedartistry.com/blog/2019/05/06/programmers-lets-study-source-code-classics/www.donhopkins.com/home/micropolis/micropolis-activity-source.tgz

[30] Источник: https://habr.com/ru/post/488808/?utm_source=habrahabr&utm_medium=rss&utm_campaign=488808