vaduz wrote:Более того, существуют миллиарды разных компьютерных программ, но ни одной from scratch.
Интересно, а от какой программы произошли все остальные?
От телефонной станции. Барышня соединяла штекерами абонентов. Такие же стекеры были в табуляторе Холлерита. Соединяя их различными способами, можно было складывать числа в разных колонках перфокарты. В конце получалась таблица.
Это было нечто вроде очень примитивного Экселя, который умел только одну функцию SUM.
А потом научились еще и отнимать. Но программировали все равно проводами. Типа FPGA такого древнего.
Прорыв произожел, когда Цузе придумал писать программу тоже на картах. Поляризованные реле залипали в нужном состоянии, запоминая то, что было на картах. А затем в другой считыватель подавали колоду с данными. Которые, в зависимости от того какие реле были замкнуты первой колодой с программой, поворачивали разные барабаны на разные углы.
Ну а дальше фон Нейман придумал, что зачем нам две колоды и два считывателя -- появилась фон-неймановская архитектура, которая дожила и до сейчас (а ту, первую, назвали Гарвардской, потому что Цузе работал в нацистской Германии и назвать его именем что-либо считалось западло)
А первые программы писали именно from scratch прямо в машиных кодах, меняя положение переключателей на передней панели. Например, я еще застал, как на Электронике-100 начальный загрузчик набирался вручную в кодах. Некоторые помнили его весь (128 слов) наизусть.
.