Корни современного ПО, проходя через многие уровни абстракций, ведут к довольно примитивным истокам
Джон Уделл — ведущий аналитик InfoWorld Test Cen?ter. С ним можно связаться по электронной почте по адресу: Jon_Udell@ infoworld.com

Недавно я загрузил из Internet и запустил версию VisiCalc 1981 года. Размер файла VC.COM составил 28 Кбайт. Сегодня это меньше среднего графического файла в формате GIF или JPEG, как справедливо отметил один из разработчиков этой, можно сказать, эпохальной программы Дэн Бриклин.

Рассказывая о создании первой электронной таблицы, Бриклин обратил наше внимание и на другие неоспоримые факты. Сама природа электронных таблиц, как справедливо заметил он, практически не изменилась почти за четверть века, прошедшие с момента создания VisiCalc в 1979 году до выпуска Microsoft Excel 2003 в прошлом году.

Возможно, не менее важно и то, что VisiCalc по-прежнему может работать на современных компьютерах, даже, к примеру, на серверах под управлением Windows Server 2003.

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

По сравнению с персональным компьютером 1981 года выпуска современный средний компьютер в 500 раз быстрее и способен хранить в 8000 раз больше данных. Очень сложно убедительно доказать, что Excel 2003 настолько же превосходит VisiCalc. Но несмотря на это, мало кто захочет вернуться к старым программным продуктам. Программное обеспечение совершенствуется по-иному, не так как аппаратные системы.

И меня не столько волнует, с какой скоростью идет это развитие, сколько каким образом.

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

Файловая система скрывает драйверы устройств; виртуальные машины Java и .Net — центральные процессоры. Это просто великолепно: мы фокусируем свое внимание на абстракциях высшего порядка и делаем вид, что примитивных абстракций не существует. Но на самом-то деле они есть. И когда то, что скрыто за абстракциями высшего порядка, проявляется и дает о себе знать, это может оказываться весьма неприятно.

Недавно, работая с последними версиями Windows Server, Exchan?ge, Office, SharePoint Services и Li??ve Com?munication Server, я столкнулся с классической «проблемой проявления». Как это часто бывало и раньше, проблема оказалась связана с Internet Information Server и правами доступа. Еще в 90-е годы я не раз сталкивался с путаницей между низкоуровневыми привилегиями, используемыми в файловой системе NTFS, и привилегиями более высокого уровня, которые определены в метабазе IIS и служат для управления доступом к виртуальным Web-сайтам. Новое столетие породило новый уровень абстракции: .Net.

Проверив все обычные подозрения, я вспомнил, что служба, с которой возникла проблема, SharePoint, базируется на ASP.Net. В этом случае существует новый уровень привилегий доступа, которые изолируют набор узлов .Net в доверительных зонах. Эти привилегии доступа указаны в файле под названием machine.config, и именно там я обнаружил ошибку, которую и исправил.

Конечно, такое явление возникает не только в Windows. Корни Linux, проходя через дебри абстракций, ведут к довольно примитивным истокам. Занявшись раскопками в Mac OS X, «археологи» отыщут не только реликты истории «своего племени», но и «параллельное» наследие NextStep пятнадцатилетней давности. Каждый разработчик программного обеспечения стремится получить шанс реорганизовать, или, как они часто любят говорить, «реформировать» свои системы, найдя более простую и мощную основу для создания новых иерархий абстракций.

Но лишь очень немногие компании-производители располагают ресурсами, чтобы поддерживать и развивать работающую систему, в то же время готовя ее к роли фундамента для последующего варианта. К таким редким «счастливчикам» относится Microsoft. Через пару лет мы увидим, насколько им удалось реализовать свои стратегические замыслы в Longhorn.