bash.im ithappens.me zadolba.li
4611

Сорцы давно минувших дней

...Обратите внимание: несмотря на низкую человекопонятность, недостаточную структурированность, а также на появление в последующие годы более совершенных языков и стилей разработки, этот код считался образцом правильно спроектированных систем ещё 0x40 лет. Каждый из вас даже при поверхностном анализе сможет выявить в нём не менее 0x800 уязвимостей. Дайте-ка, посчитаю с нуля... У меня получилось 0x81c, но это с минимальной глубиной анализа. Ну так вот: несмотря на огромное количество уязвимостей, эта система считалась образцом надёжности и защищённости. Репутацию спасало лишь слабое развитие аппаратных средств: если бы самый мощный пракомпьютер конца эпохи UNIX начал анализ, который я только что произвела, в момент выхода первой версии ядра, мы с вами не дожили бы до обнаружения им первой из только что найденных мною уязвимостей.

На этом я предлагаю закончить обзор зала кода процедурного стиля и перейти к рассмотрению раннего объектно-ориентированного программирования. Его зарёй почему-то принято считать вторую половину того же 0x14 века, хотя существовавшие тогда технологии нельзя считать программированием в современном смысле этого слова. Достаточно упомянуть о том, что код создавался людьми или примитивными кодогенераторами опять же по заказу человека, а такие аспекты, как универсальность, структурированность и надёжность, не являлись неотъемлемыми его свойствами и целиком зависели от программиста. Тем не менее, историки считают этот этап шагом вперёд, поскольку он позволил добиться немного более полного выражения предметных областей в терминах языков — разумеется, не на том уровне, на котором это делается сейчас.

В качестве примеров языков зари ООП можно привести C++ или Java, хотя считать их языками программирования в современном понимании опять-таки нельзя. В качестве примеров могу предложить вам исходные коды линейки операционных систем Windows, нескольких систем комплексного управления оборудованием, а также нескольких сред, реализующих тот язык, на котором они написаны. Как вы видите, эти программы по-прежнему рассчитаны на работу с человеком. Несмотря на огромное количество проблем с безопасностью и стабильностью, этот код использовался даже в критических местах! Не надо смеяться: я говорю серьёзно. Поскольку весь этот код был написан людьми, никаких имён здесь назвать, как вы понимаете, нельзя; однако уже в следующем зале мы с вами сможем увидеть наконец код, имеющий авторов. Началом объектно-ориентированного программирования можно считать...

Проснулся я в холодном поту. Так вот на какие экскурсии будут ходить будущие хозяева планеты!