PC Magazine/RE logo
©СК Пресс 3S/96

Игра и жизнь

Рубен Герр


"В конце 60-х г.г. пристальное внимание прессы привлек тот факт, что вычислительные машины могут делать ошибки, которые способны влиять на нашу жизнь" *).

*) Майерс Г. Надежность программного обсеспечения/ Пер. с англ. Ю. Ю. Галимова; Под ред. В. Ш. Кауфмана. - М.: Мир, 1980.

Если бы какой-нибудь программист заснул летаргическим сном полтора-два десятилетия тому назад, а теперь проснулся бы и, для вхождения в курс дела, принялся бы читать компьютерную периодику и тексты, распространяемые через Internet, у него вполне могло бы сложиться впечатление, что ситуация в нашей отрасли просто катастрофическая. В самом деле, где еще заведомо дефектные изделия расходятся миллионными сериями, а выпускающие их фирмы процветают? Где руководители фирм-бракоделов учат все остальное человечество жить и встречаются "на равных" с главами великих держав?

В подавляющем большинстве случаев критические стрелы нацелены на Microsoft и Intel. Если и порицают кого-то еще, то лишь за недостаточно активное противостояние этим двум гигантам. Ругать Microsoft теперь можно дл заполнения пауз в светской беседе, так же, как представители других профессий обмениваются "мнениями" насчет ухудшения климата и загрязнения окружающей среды. Впрочем, так ли уж велика разница? Не "средой" ли мы называем все то, что предоставляет в наше распоряжение операционная система?

За последние годы мир серьезно переменился , и центральную роль в изменениях играют компьютеры. Дл многих стали другими и стиль работы и образ жизни. Но пока психологи и философы спорят о том, какую роль в развитии нашей цивилизации сыграет то, что они именуют "виртуальной реальностью", мы, профессионалы, в этой самой реальности уже живем и работаем. И поругиваем свою среду обитания так же, как климат и погоду. Действительно, если бы дать волю мне, я бы устроил природу в том месте, где живу и работаю, совсем по-другому: скажем, "перетащил" бы Москву километров на пятьсот южнее, "провел" в нее теплое море... Увы (а может быть "ура!"?), природа от меня не зависит, точно так же как я совершенно не властен над операционными системами и компиляторами. Кое-что можно "подправить" - построить дом для защиты от зноя и холода или отредактировать системные файлы, чтобы работать было удобнее, но это уже не главное. Постепенно, понемногу у программиста отняли один из атрибутов его профессии, который составлял важнейший стимул для занятия этим делом: власть.

Прежде, когда компьютер вмещал одну-единственную программу, эта программа делала решительно все так, как ей повелел ее Создатель - программист. Теперь же ему отводится куда более скромная роль строителя шалашей и землянок (настоящими домами программы, которые делают программисты-одиночки, я назвать не решаюсь), которые он "встраивает" в мир, созданный другими. Вопрос "почему" в отношении законов природы смысла не имеет ("Почему отрицательные заряды притягиваются к положительным?"), но компьютерную среду обитани формируют разумные (даже весьма) люди, которые ничего не делают без достаточно веских оснований. Как же получилось, что компьютерный мир не то чтобы не идеален, а содержит явно различимые недочеты?

Персональный компьютер куда более "терпим" к ошибкам в программах, нежели машина прошлого. Если что-то работает не так, как предполагал пользователь, он (наученный опытом) сначала начинает искать свою ошибку. Когда же оказывается, что ошибка не у него, а у системы, обнаруживается, что претензии предъявить некому: в соответствии со стандартным лицензионным соглашением фирма - создатель программы практически ни за что не отвечает. Такое положение вещей просто стимулирует выпуск в продажу "недоделанных" программ: зачем тратить время на исчерпывающее тестирование, устранение всех замеченных ошибок и пр., давая "фору" менее добросовестному конкуренту, который может захватить рынок со своей поделкой и сделать бессмысленными все затраты времени и денег. Microsoft работает так, как работает, не по злому умыслу: такова сложившаяся коньюнктура.

Мало-помалу из жизни исчезли рассуждения о надежности программного обеспечения, которые были так популярны во времена, когда ученые доказывали, что программировать следует структурно. Перестали системные программисты заботиться и об оптимизации расхода вычислительных ресурсов. Если система плохо и медленно работает, то виноват компьютер - покупайте более мощный! Когда-то термины hard и soft ("твердый" и "мягкий") ввели специально для того, чтобы обозначить принципиальное различие между незыблемыми аппаратными компонентами и изменяемыми и гибкими программными. Куда там! Теперь уже никого не удивляет формула "Windows-совместимый компьютер".

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

Так и хочется сказать, что теперь искусство программирования для систем с ограниченными ресурсами утрачено, а людей, которые владеют этим искусством, уже скоро совсем не останется. К счастью, это не так. И свои надежды я возлагаю совсем не на тех последних могикан, которые экспериментально доказывают, что практически любую современную операционную систему можно переписать так, что она сумеет с сохранением всех функций успешно работать на компьютерах предыдущих поколений (в смысле перехода от процессора 386 к 486 и т. д.) и с не столь высокими тактовыми частотами. Сделать это, конечно, можно, но экономически нецелесообразно - продать такую систему все равно не удастся, а следовательно, невозможно будет и содержать программистов. Совсем другое дело игровые программы. Их создатели до сих пор выпускают программы для DOS, ибо, во-первых, именно в этой среде все еще можно полностью или почти полностью завладеть всеми ресурсами компьютера, а, во-вторых, средства совместимости с DOS пока еще встраиваются во все более мощные операционные системы, и, значит, программа будет совместима с любым компьютером (а не наоборот).

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