doldonius: Seriously irritated (fumes)
[personal profile] doldonius
Начитавшись других вредных стариканов, озадачился.

То, что современная вычислительная техника — сверхспециализированная и явно тупиковая ветвь развития, как бы ясно. Интуитивно. Нутром. Как и то, что до поры до времени дела шли сравнительно правильно. Где ж приключился критический облом?

Пробежим по истории. Абак (практически он же конторские счеты)? Хорошо, годно. Арифмометры, табуляторы и прочая механика? Тоже хорошо. Релейные, ламповые и транзисторные вычислительные машины? Отличная штука.

Но где-то здесь и начали возникать проблемы.

Во-первых, за немногими исключениями, электронные вычислительные системы работали в двоичной системе счисления. Дело техники, покуда мы имеем дело с целыми числами, но великий облом, когда с дробями. Десятка не принадлежит к целочисленным степеням двойки, а потому пересчет дробных частей туда-обратно вынужденно приблизителен. Астрономам, легко пренебрегающим мелочами в пределах порядка-другого, сгодится, но для математиков, полагаю, оскорбительно.

Во-вторых, хранимая программа. В механических ВС алгоритмами, как правило, заведовал либо оператор, либо механическая же настройка. Медленно, сложно, предъявляло много требований к оператору или настройщику, но при этом вынуждало разработчиков железа оставлять вычислительное ядро системы человекопонятным. Здесь программу начали упихивать в ту же (или, как минимум, такую же) память, что и данные. С одной стороны, это повысило скорость работы, с другой — открыло путь к сползанию в бейсики.

Стало быть, система счисления была принята нечеловеческая (для удобства конструирования железа человеками, но тем не менее), управление вычислениями сделалось тоже, и по тем же соображениям, еще более нечеловеческим, чем когда-либо раньше. Появление многочисленных прокладок между оператором/настройщиком и вычислительным ядром стало, таким образом, почти неизбежным. Ассемблеры, фортран и C можно было предсказать уже тогда. Но бейсики, OOP и GUI еще можно было объехать.

С этого момента дальнейшее развитие стало определяться не только (а далее и не столько) эволюцией вычислительного железа. Мощнейшим фактором развития, ныне плавно перешедшего в маразм, стали языки программирования.

Опять-таки, первые шаги (ассемблер-фортран-C) были во многом вынужденными и закономерными. Большого вреда они сами по себе не нанесли. Пока интерфейсы всех устройств, включая процессоры, оставались, во многом по инерции, качественно описаны, держать в голове цельную картину взаимодействия текста программы, компилятора и железа человек, как правило, мог.

С другой стороны, архитектурно независимые фортран и C открыли коробок с тараканами. Стремительное падение разнообразия архитектур и далее "интеллектуальная собственность" на интерфейсы железа — прямое следствие этой независимости.

Что же произошло?

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

Вот эта-та утрата прозрачности, как по мне, и стала поворотным моментом. Если ты принципиально не можешь понять, что процессор делает, получив инструкцию (из настолько дерьмового набора команд, что может на лету оптимизировать их выполнение), можно дальше и не заморачиваться. Микрокод в процессоре, драйвер-блоб для устройства... Что тут терять? Можно и на объектно-ориентированных интерпретаторах кодить, понимания реально происходящих в системе процессов меньше уже не станет.

Могло ли дело обернуться иначе? Могли ли процессоры, переболев в младенчестве двоичностью, вернуться к десятичной системе счисления людей и их механических вычислительных устройств? Могли ли вычислительные ядра сделать еще какие-то шаги навстречу человекам? Теоретически, да. Практически, это неизбежно. Рано или поздно вычислительные системы и человеков придется снова помирить на каком-то более высоком уровне обоюдной понятности. А миллионы строк кода™, брезгливо написанных подневольными кодерами для дебилов, рано или поздно все равно окажутся на свалке.

По-моему, так, а не иначе.