Изучая что либо, полезно пользоваться такими мемами как стек технологий, 'онтогенез повторяет филогенез' и т.п. Если смотреть шире, то появляются диалектика и понятия.
Например, цифровая вычислительная машина. При разработке видимо основу имела наука как производительная сила (лампы, реле, транзисторы, тактуемые устройства, булева алгебра, языки программирования), далее индустрия, как производительная сила. При разработке и использовании машины появляются новые научные знания, новые разработки железа, которые позволяют создавать новые научные знания, но остается неизменным то, что конвеер, выраженный абстрактным языком науки никуда не исчез — логические элементы, блоки логических элементов, наборы инструкций, языки программирования, операционные системы, прикладной софт — все это имеет черты вполне конкретных коммерческих разработок.
Примеры - формат a.out появился в PDP-7, которая вначале была без Unix, нуль-терминированные строки появились в PDP-11, который тоже еще не был изначально Unix-машиной.
Таким образом, понятие исполняемого бинарного файла появилось в PDP-7, нуль-терминированной строки - в PDP-11. А вот понятие языка высокого уровня С появилось в OC Unix. К чему это?
Все мы знаем, что GUI появились в Xerox Star. А вот какова была его архитектура? Интернет что-то пишет про лисп-машины, smalltalk, но ничего не известно про уровень языков программирования.