И они прошли мимо всех посетителей, важных дядек с портфелями (все это конечно ерунда, так не бывает, ну да ладно, это ведь сказка) и направились в отдел программ. По дороге встретили Пола, Билл представил его президенту и дальше пошли вместе. В отделе программ весь пол был усеян дырочками от перфокарт и какие-то мужики ползали по раскатанной по полу 20-метровой распечатке аварийного дампа памяти с целью обнаружения ошибки в распределителе памяти ОС-360. К президенту подошел начальник отдела и сообщил, что есть надежда сделать это еще к обеду. Президент в свою очередь пожелал им удачи, представил Билла и Пола как авторов бейсика для ПК, предложил посмотреть программу и дать заключение. Затем удалился, сославшись на важные дела. Главный программист провел ребят в другую комнату и включил один из ПК. Минута ушла на загрузку и выскочило приглашение:
Microsoft Basic V1. 0 OK >_
Быстренько набросали небольшую программку, RUN, и вот уже по экрану забегали всякие палочки-крючочки. Главный программист заинтересовался, сел за компьютер и не слазил со стула целый час. Для тестирования он писал такие варианты программ, что ребята только диву давались. Буквы бегали по экрану во всех направле- ниях, прыгали и сортировались как хотели. Под конец они все попадали и сложились в кучу, которая потом растаяла. - ПШШШШШШШШШШШШШШ - вздохнул программист после этого и повернулся к молодым людям. Ну что, в принципе неплохо, хотя есть и ошибки. Ошибки эти лишили сна наших героев еще на пару недель и как известно, устранялись даже в кресле летящего самолета. Конечно, программа эта была еще несовершенной, продукт своего времени, но... недокументированные функции в ней уже были.
Конец эпохи.
=
Билл Гейтс. Молодые годы.
После истории с написанием бейсика и начала сотрудничества с крупнейшей компьютерной фирмой IBM началась новая эпоха в компьютерном деле - эпоха DOS и IBM PC. Как известно, вначале DOS была сляпана на коленке из CP/M при участии мистера Марка Збиковски. Его инициалы до сих пор красуются в начале каждого EXE файла. Потом занятия DOS видимо утомили IBM и она воспользовалась услугами молодой, но перспективной фирмы Микрософт под руководством нашего незабвенного героя. Это было горячее время для всех участников проекта: - #$%$#!!, - в запале восклицал кто-то из программистов. В ответ на это Гейтс выразительно указывал на банку из-под кофе: каждый, кто скажет нецензурное слово, должен бросить туда 25 центов. Собранных денег хватало не только на кофе и пиццу, но и на все остальное. Проекта как такового не было, был набор заданий и выделенная под них память. За каждый сэкономленный байт выплачивалось по 5 долл. Один из программистов сэкономил 10 Кбайт и устроил грандиозный банкет по этому поводу, в результате чего Гейтс нечаянно продал за бесценок несколько лицензий на ДОС конкурентам. Из-за этого и был придуман механизм недокументированных функций. Сначала описывались не все полезные функции, конкуренты их реализовывали по-своему, потом описывались скрытые доселе функции и структуры данных, а конкурентам приходилось лихорадочно все переделывать. (Вы скажете ай-яй-яй, а я думаю, что у ОС должен быть один хозяин, который вводит стандарты. Посмотрите, что стало с UNIX, десятки версий, далеко не совместимых между собой, а в рамках общего стандарта многое нельзя сделать). Ну ладно, меня понесло, теперь рассказ участника тех событий Вери Слоу: - Дык я спервоначалу на PDP-11 работал, на асемблере там, фортране... а потом сюда позвали, ну я и пошел. А шеф наш книжек умных начитался, выдумал какое-то струкатурное программирование, штоб, значит, файлы не больше 300 строк, ну я и засандалю, бывало, строчек тысяч пять и чик, чик... И функции эти, недокументированные у меня лучше всех получались. И скорость работы с диском я придумал повышать (если конечно, наша микросовецкая программа работает, хе-хе). А потом я предложил мультитаск и мультискрин забабахать, вон уже память на мегабайты мерять начали, а мы все в 640 К сидим, а шеф говорит, что там в верхней памяти окошки будут висеть. Потом мы и до окошек добрались. Тут у нас были проблемы со скоростью, все медленно работало, но кто-то заметил, что между скоростью работы программы и памятью есть обратная пропорциональность, а значит бесконечно большая программа будет работать бесконечно быстро. Ну так мы и начали писать, чтоб, значит, побольше...