Практически любое изложение истории компьютеров начинается с упоминания изобретенного в древнем Египте абака. В зависимости от детальности изложения далее перечисляются изобретения китайского варианта абака, различных видов счетов с костяшками, вычислителей на основе зубчатых колёс, изобретения и промышленного выпуска арифмометров Тома де Кальмару, изобретения разностной машины Чарльзом Бэббиджем и т.д. вплоть до появления современных компьютеров. От абака до iPad история компьютеров представляется как цепочка изобретений изделий из дерева, металла и других материалов.
Однако, первые компьютеры (computers) были людьми! И эта статья о том, как они из людей превратились в то, что мы имеем сейчас.
Компьютеры — это люди
О первых компьютерах-людях можно почитать в Википедии в разделе об этимологии английского слова «computer».
Согласно Оксфордскому Словарю Английского Языка, первое известное использование слова «computer» обнаружено в книге английского писателя Ричарда Брейтвейта, изданной в 1613 году. Это использование термина относится к человеку, который выполнял некие расчеты. Слово использовалось в английском языке в том же значение вплоть до середины 20-го века. С конца XIX века слово стало приобретать более знакомое нам значение — машина, которая выполняет вычисления [1].
Итак, первые компьютеры были людьми. Но что же они вычисляли?
В книге Gleick, James. «The information: a history, a theory, a flood» я нашел интересное упоминание о них.
Начиная с 1767 года и вплоть до своего расформирования Совет Англии по Определению Долготы (Commissioners for the Discovery of the Longitude at Sea) выпускал ежегодный Морской Альманах (Nautical Almanac), в котором были представлены таблицы для определения положения Солнца, Луны, звезд, планет и спутников Юпитера. Совет был заказчиком таблиц альманаха. Подрядчиком же была знаменитая Гринвичская лаборатория.
В течение следующего полувека эти таблицы подготавливала команда примерно из тридцати профессионалов. Их профессия называлась computer. Команда состояла в основном из мужчин, но некоторое время в ней работала и женщина — Mary Edwards of Ludlow, из Шропшир.
Мемориальная доска в честь первой «женщины-компьютер» |
Вычисление было «кустарным» (индивидуальным) производством. Для каждого расчёта был расписан пошаговый алгоритм. Больших математических познаний для работы не требовалось, однако требовалось высокая концентрация, внимательность и аккуратность. Способных к этому людей искали и отбирали по всей Англии.
В любом случае первые компьютеры, будучи людьми, делали ошибки, поэтому одно и то же задание обрабатывалась дважды и разными людьми.
Компьютеры-люди быстро сообразили, что можно сэкономить массу времени, если просто копировать (переписывать) результаты работы друг-друга. Когда виновники были пойманы за руку, руководство перешло (выражаясь современным языком) к распределённой архитектуре вычислений. Компьютеров стали специально набирать в удалённых друг от друга поселениях. Все члены команды стали работать исключительно на дому.
Для управления потоком информации в проекте существовал специальной сравниватель-корректор результатов (компаратор).
Связь между компьютерами и компаратором проходила по почте, или курьерами, передвигавшимися пешком или на лошадях. Пересылка одного сообщения занимала несколько дней.
Внедрение логарифмов в практику вычислений резко снизило трудоёмкость вычислений, однако потребность в них резко возросла.
Опыт «долготой команды» был использован позднее в больших коммерческих проектах по составлению и публикации самых разных таблиц. Компьютеры появились в штатах банков, страховых и торговых контор.
Вам это ничего не напоминает?
Кстати, в Америке первый компьютер был принят на работу относительно поздно, в 1892 году. Об этом свидетельствует (первое из подобных) объявление о приёме на работу в газете «Нью-Йорк таймс» от 2 мая 1892. Оно гласило: в ВМС США требуется компьютер (Computer wanted) со знанием алгебры, геометрии, тригонометрии и астрономии [2].
Механизация труда людей-компьютеров
Арифмометры значительно удешевили стоимость расчётов и, как это не странно, привели к появлению ещё большего числа людей-компьютеров во всех развитых странах.
В СССР учёт и контроль были краеугольными камнями плановой экономики. Профессия людей-компьютеров (расчётчиков или техников-расчётчиков) стала массовой. Людей этой профессии готовили в техникумах. Кроме того, эту специальность преподавали как дополнительную бухгалтерам, технологам и т.д.
Моя мать работала в районном Бюро Технической Инвентаризации в большом сибирском селе. В её задачу входило наряду с ведением бухгалтерии помогать техникам в вычислении стоимости строений и сооружений. Для проведения этих вычислений существовали объёмные справочники с разъяснениями, формулами и вспомогательными таблицами. Для ускорения вычислений использовался массовый советский арифмометр Феликс.
Арифмометр Феликс был назван так в честь легендарного основателя ЧК Феликса Дзержинского. Всего в СССР было выпущено несколько миллионов этого аппарата. Он стоил примерно десятую долю средней месячной зарплаты.
Постигнув арифметику, я много и с удовольствием помогал моей маме в проведении расчётов на «железном Феликсе», как его называли в народе. В этом смысли я и сам немного человек-компьютер, и даже во втором поколении (шутка).
На крупных производствах и при органах управления вплоть до появления ЭВМ (Электронных Вычислительных Машин) и персональных компьютеров существовали Машиносчётные Станции (МСС).
Машиносчетная станция ордена Ленина треста ЧМС: группа перфорации (машины перфораторы и контрольники) Январь 1965 Автор: В. Петров. Место съемки: г. Череповец и Череповецкий район. Источники: Череповецкое музейное объединение [3]
Такая станция существовала даже в нашем небольшом селе и производила в основном подсчёты трудовых успехов и расчёты зарплаты сотрудникам районных предприятий, колхозов и совхозов. Бухгалтера на этих предприятиях подготавливали первичные ведомости, которые сотрудницы МСС просчитывали на арифмометрах.
Как я узнал позже, вплоть до 70-х годов в СССР существовали и огромные Машиносчётные Центры, прототипы более поздних Вычислительных Центров, оснащённых уже ЭВМ.
В начале своей трудовой деятельности я познакомился с одним известным в узких кругах математиком. После окончания Московского Университета он был распределён на работу на одно очень закрытое предприятие на Урале (в народе такие предприятия тогда называли «ящиками»). Сотрудники огромного отделения, куда он попал, занимались расчётом «разных баллистических траекторий», как он выражался (не уточняя, каких). Алгоритмы расчёта были сложные, использовались итерационные методы. Задача моего знакомого состояла, выражаясь современным языком, в написании «программ» на языке, чем-то схожим с ассемблерным языком или байткодом.
Отдельные элементарные шаги алгоритма записывались в специальную таблицу в левую колонку. Результаты вычисления надо было записывать справа. Язык включал условия окончания вычислений и переходы на новое место алгоритма. Такой переход означал, как правило, что дальнейшие вычисления должны были проводиться другим специалистом, владеющим арифмометром другого типа или логарифмической линейкой.
В отделении работало несколько сотен сотрудников (в основном — женщин). Оснащение состояло из арифмометров различного вида и логарифмических линеек.
Потоки вычислений всегда дублировались, чтобы можно было сравнивать в случае необходимости результаты каждого шага.
Сотрудники отделения полный рабочий день, год от года передвигали штырьки арифмометров, крутили их ручки, передвигали полозки логарифмических линеек и записывали результаты вычислений в таблицы, практически ничего не зная об истинной цели своей работы. Так продолжалось до тех пор, пока им на смену не пришли первые ЭВМ.
Вместо эпилога
Укоренившаяся в умах широкой публики и даже специалистов история ИТ в кратком изложении выглядит так: Да, древние греки и китайцы изобрели и пользовались абаком. И после этого разные изобретатели типа Бэббиджа изобретали разные курьезные, но мало полезные машинки для механического счёта. И только после того, как в середине 20-го века на ровном месте были изобретены первые ЭВМ, началось подобное взрыву развитие и применение информационных технологий на основе программирования.
В реальности всё было по-другому. Первыми компьютерами были люди. Эта профессия становилась все более массовой. За счёт механизации вычислений производительность труда людей-компьютеров постоянно росла, расширялись и появлялись новые области применения их труда. Среди них происходила специализация. На определенном этапе среди людей-компьютеров появились люди, занимавшиеся тем, что стало потом называться программированием. Когда появились первые промышленные ЭВМ, рынок для их использования был уже сформирован. Замена людей-компьютеров (в СССР — расчётчиков) на ЭВМ и потом на персональные компьютеры растянулась на несколько десятилетий.
Ну и под конец — одно пожелание. Если Вы, дорогой читатель, в очередной раз разозлитесь почему-либо на свой компьютер, успокойтесь и перестаньте злится. Вспомните, что ещё совсем недавно компьютеры были людьми.
Заглавная иллюстрация: geralt
Комментарии (24)
decomeron
28.04.2018 14:55Если Вы, дорогой читатель, в очередной раз разозлитесь почему-либо на свой компьютер, успокойтесь и перестаньте злиться.
Компьютер живой и он тоже умеет злиться и если на него будешь ругаться, он может обидеться. Когда он на меня обижается я его хорошими словами прошу и он снова работает. ( шутка на 50%)
Спасибо Интересноvisirok Автор
28.04.2018 17:20Спасибо и Вам на добром слове.
Но в целом Ваш комментарий навёл меня на грустные мысли. Уходит из нашей профессии магия! Мало кто, как Вы, соблюдает традиции. То ли было в 70-80 годы! Компьютеров (тогда — Вычислительных Машин) становилось всё больше, а качество их оставляло желать много лучшего. И вот, чтобы компьютеры не ломались, пользователи и техники справляли сложные ритуалы и приносили жертвы железным богам, наличие которых предпологалось внутри жестянных шкафов и ящиков. Жертвы приносились в виде спирта, которым протирали контакты плат. Спирт на протирку контактов выделялся официально, что им не то что контакты, можно было пол помыть. Этот то спирт и помогал справить ритуал правильно, весело, в большой компании. Как правило, после рабочего дня.
decomeron
28.04.2018 18:29+1Раньше это был друг, товарищ и брат, с кем можно было и спиртом поделиться:—) а сейчас просто инструмент для работы и развлечений.
visirok Автор
28.04.2018 23:17Кто с кем делился спиртом — вопрос сложный. Всё же, согласно инструкции, весь спирт полагался компьютеру, на прочистку его контактов.
Признаться я не знал ни одного техника мужского пола, который бы действительно тратил бы выделяемый спирт на протирку контактов.khim
29.04.2018 00:02Тратили-тратили. Другое дело, что регулярно этого никто не делал. Вот как глюки начинались — перебирали и протирали.
Разумеется на это никогда весь спирт не уходил…
netch80
29.04.2018 10:40+2Надо бы ещё вспомнить, что и у профессиональных математиков основная часть работы в домашинные времена состояла из рутинных числовых операций.
visirok Автор
29.04.2018 10:50Это действительно интересная, но побочная для данной статьи тема. К тому же профессиональных математиков не так много.
Но трудолюбие и готовность больших и не самых больших математиков годами перебирать цифры и производить рутинные вычисления не может не поражать. Очень хорошо об этом написано в книге Джона Дербишира «Простая одержимость. Бернхард Риман и величайшая нерешенная проблема в математике».
true-grue
29.04.2018 14:21+1Здесь можно вспомнить о модели коллектива вычислителей, предложенной Э.В. Евреиновым. Эта модель формализовала действия совокупности людей-вычислителей, работающих над какой-либо общей сложной задачей. Руководитель подобного коллектива должен разбивать задачи на подзадачи, добиваться их распараллеливания и улучшения обменов данными. На основе модели коллектива вычислителей в СССР 50-60-х было создано направление однородных вычислительных систем (поздние примеры: массово-параллельные суперкомпьютеры, кластеры), структур (поздние примеры: систолические массивы, транспьютеры) и сред (поздний пример: ПЛИС).
visirok Автор
29.04.2018 19:40Я, к сожалению, мало знаю эти работы.
Мне кажется, было бы интересно попробовать оценить влияние такого рода идей на современное состояние отрасли. Что-то вроде метода обратной трассировки, отталкиваясь от нынешнего положения вещей. Понятно, что про вычислительные среды и подобные вещи есть статьи в Википедии. Но авторский взгляд может быть намного интереснее усреднённого мнения авторов Википедии.
Вы не хотите попробовать?true-grue
29.04.2018 20:31+1Да, я надеюсь написать об этом для Хабра в той или иной форме. Спасибо за Вашу заметку!
Особенно интересно анализировать опыт управления сложными проектами с участием «компараторов» и проч. При решении задач, требующих использования большого количества людей-вычислителей, на первый план выходят проблемы управления потоками информации, а также обеспечение корректности результатов. Для современных высокопроизводительных вычислительных систем тут имеются прямые аналогии с работой коммуникационных сетей и обеспечением отказоустойчивости.
Вообще, история осмысления, формализации интеллектуальной, творческой деятельности человека очень интересна. До Бэббиджа был Корсаков с его информационными машинами. В области алгоритмического творчества известна игра Musikalisches Wurfelspiel, приписываемая Моцарту. Вопросами формализации и моделирования творческих процессов в СССР много занимался Зарипов.visirok Автор
29.04.2018 22:23+1Вы перечислили целый ряд безумно интересных для компьютерных профессионалов тем, которые наверняка можно профессионально и в тоже время доходчиво подать, посмотрев на них с новой перспективы. Например — устройство аппаратов Корсакова. Я думаю, их действие можно было бы описать с помощью SQL — подобного языка.
Программистам это понятнее и интереснее, чем исторически выверенные даты, факты и фамилии.
Буду с интересом ждать Ваших публикаций!
Moriline
29.04.2018 22:37Было бы интересно прочитать про указанные Вами процессы и модели более подробно! М (Максут?) Зарипов который изобрёл «метод выявления обобщенных приемов ...»? И Корсаков? Сомневаюсь конечно, что его машины были перед Бэббиджем, но всё может быть… Это же очень интересное направление! Как пример — могут появиться интересные вещи (даже боюсь предположить какие) и, возможно, окажется, что часть того, что мы используем сейчас в ИТ, уже давно было реализовано.
true-grue
29.04.2018 22:50Я подразумевал Рудольфа Зарипова.
О нем можно прочесть здесь
Также см. книгу: www.ozon.ru/context/detail/id/140728981
О работах Корсакова кратко говорится тут: www.computer-museum.ru/precomp/korsakov.htm
Фраза «Никому точно не известно, когда впервые возникли идеи их проектов, каков был путь к созданию реально работающих устройств, и к тому же разница в несколько лет в исторической перспективе ничтожна», пожалуй, более уместна в данном случае.Moriline
29.04.2018 23:36Спасибо большое! Я подозреваю, что Зарипов с его алгоритмами генерации музыки на ЭВМ «Урал» внёс свой вклад в развитие и становление такого понятия как «Искусственный Интеллект» и даже можно так сказать сделал это практически.
Moriline
29.04.2018 18:04+1Спасибо автору за хорошую и полезную статью! «Феликс» я сам видел и держал в 2011-2012 годах и он произвёл на меня большое впечатление — он был полностью механический! Я раньше подозревал, что любой человек производящий не только вычисления, но и настройку каких-либо механизмов в древности являлся праобразом «программиста» или наладчика — как пример — настройка швейных станков для работы с другим узором, что тоже можно, с некоторой натяжкой, назвать «программированием» станка. А вот оказывается, что даже слова «компьютер» и «компаратор» имеют такую интересную историю и происхождение. Ведь некоторые «программисты» сейчас считают, что программирование — это некий процесс происходящий исключительно в их голове и материального носителя не имеет и нигде не хранится (и не понимают даже на чём они печатают и на что смотрят!).
visirok Автор
29.04.2018 19:52Спасибо и Вам на добром слове.
Я согласен с Вами в том смысле, что считаю первой программой не программу Ады Лавлейс для Аналитической Машины Бэббиджа, а первую программу неизвестного автора для ткацкого станка Жаккара.
Программы на императивных языках программирования управляют агрегатом, осуществляющим вычисления. А программы управления ткацкими или фрезерными станками управляют агрегатами, делающими другое дело.
Аналогия достаточно конструктивная.
akryukov
Если даже переход от ручных вычислений к автоматическим не привел к уменьшению количества вычислителей, то тезис "ИИ заменит программистов" выглядит весьма нереалистично.
visirok Автор
Мне куда более реалистичным представляется тезис «ИИ и роботы заменят на Земле человека как вид».
khim
История учит тому, что она ничему не учит. На протяжении столетий прогресс приводил ко всё возраставшему спросу на лошадей. Их использовали для откачки воды и для омнибусов, для нагнетания воздуха в домны и для в кучи разных других дел… а потом как-то раз, Форд Т — и лошади стали «терять работу».
То же самое и с программистами: мы не знаем (и никак не можем узнать) когда будет изобретён достаточно умный ИИ, который заменит программистов.
Знаем только, что это рано или поздно произойдёт…
visirok Автор
Не уверен, что аналогия верна. Некоторве профессии не исчезают уже тысячилетия.
khim
Я тоже не уверен. И никто не уверен.
В том-то и фишка, что заранее сказать — какие профессии проладут нельзя.
rst512
Отнюдь, большинство программистов сейчас работают просто как переводчики с естественного языка на язык программирования. Как только реализуют ПО способное худо-бедно определять смысл написанного на естественном языке текста, все прикладные программисты останутся не у дел.
А вот заменить системных программистов сможет только полноценный ИИ, но даже тогда наверное останутся люди способные конкурировать с ним на равных. Особенно в том случае если будет изобретен полноценный нейрокомпьютерный интерфейс.
visirok Автор
Я думаю, существует принципиальная разница в переводе текстов с одного человеческого языка на другой по сравнению с переводом с человеческого языка на язык программирования. Одно дело перевести фразу «Добавить в приложение возможность Undo/Redo“ с русского на китайский и совсем другое — реализовать такую функциональность. В неблагоприятном случае это предложение отобразится в тысячи строк кода, новые структуры данных и т.д.
Так что переход к автоматическому программированию только начнётся в тот момент, когда будет достигнуто приемлемое понимание смысла текста. ИМХО.
akryukov
Все равно останутся люди, которые смогут из бессвязного потока сознания заказчика составить текст, пригодный для обработки компьютером.