Java v Microsoft Эти заметки начаты в мае 1997 года. Поскольку они получились довольно полемичными и сумбурными, сформулирую сначала несколько положений, на которые мне хотелось бы обратить особое внимание.

1) Мы были свидетелями катастрофической и внезапной гибели целого процветающего направления развития вычислительной техники (IBM 360/370, VAX и т.п.) из-за ошибочно выбранного направления и неверной оценки потребностей рынка.

2) Некоторые тенденции сегодняшнего развития ВТ во многом напоминают события десяти- пятнадцатилетней давности и могут являться признаком очередного приближающегося кризиса, который затронет не только разработчиков, но и потребителей.

3) Поэтому мне кажется небесполезным, в том числе и опираясь на аналогии пятнадцатилетней давности, промоделировать побольше альтернативных сценариев будущего, чтобы не оказаться застигнутыми врасплох. В настоящих заметках предложен один из таких сценариев.

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

Появление PC и DOS - это появление млекопитающих в мире динозавров, т.е. истинный, КАЧЕСТВЕННЫЙ, прогресс. Прогресс этот для человека, работающего за компьютером, выражался прежде всего сладким словом "свобода". Для меня естественная свобода заключается в том, чтобы я мог распоряжаться ресурсами собственного компьютера по собственному усмотрению, иногда выжимая из него существенно больше, чем то, на что, он рассчитан. Свобода эта гарантируется в компьютерном мире в первую очередь наличием свободной информацией о том, "чего у него внутри". На заре эры PC это были интерфейс BIOS, DOS и полное описание назначения ВСЕХ файлов DOS. Без такой информации я могу положиться на компьютер разве только при подготовке бумажных документов. Но даже при наличии всей информации такого рода для того, чтобы можно было всерьез доверять многозадачной системе, нужен хотя бы годик работы с ней в собственной (именно в собстенной) базовой конфигурации, и средства быстро и безболезненно восстановить эту самую базовую конфигурацию при неудачных модернизациях. Меня совершенно не интересовало бы, насколько хорошо современная PC под современной операционной системой выполняет программы для DOS, если бы я четко представлял или мог бы где-нибудь прочесть, что же все-таки еще эта современная система вытворяет помимо выполнеия той программы, которую я запустил. Или хотя бы был уверен, что она больше ничего не вытворяет.

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

"Есть два способа создания программы. Можно сделать ее настолько простой, что в ней совершенно очевидно нет ошибок. А можно сделать настолько сложной, что в нет совершенно очевидных ошибок." (C.A.R.Hoare. Цитируется по книге П.Нотона "Java.Справочное руководство" перевод цитаты (в книге она на английском), простите, мой).

Рискну назвать два основных недостатка Windows. Это, во-первых, графический интерфейс, во-вторых, многозадачность (псевдо- или реальная - не важно). Недостатками они являются не сами по себе, а потому, что их нельзя использовать по отдельности, и потому что без них нельзя обойтись, даже если что-то из них не нужно или мешает. Вероятно, Microsoft без особых издержек мог бы разделить эти компоненты, но не делает этого из страха, что кто-то на их основе наваяет нечто лучшее. Чем же это мне может помешать та же многозадачность? Небольшой пример из собственного опыта. Однажды я наблюдал, как молодой человек несколько дней (и ночей!) бился со своей программой для Windows 3.1. Программа не делала ничего сверхестественного ("сверх" естественного для Windows): брала данные из последовательного порта (с прибора), обсчитывала и выводила на экран. На собственном компьютере разработчика она прекрасно работала, а на чужом вешала систему через несколько минут (!) нормальной работы. После долгих мучений выяснилось, что система висла в момент самопроизвольного запуска Screen Saver'a, который на компьютере разработчика не был установлен. Да, возможно, молодой человек допустил какие-то некорректоности в программе, но, простите, а кто и как это сумеет определить, если программа делает все, что нужно, выдает свои результаты на экран, а в это время какая то другая программа решает, что на этот экран никто не смотрит, поскольку никто не дергает за мышку и не давит на клавиши. Да и скорее всего некорректным был все же Saver. И если бы он включался не через 3 минуты, а через 15, последствия могли бы быть еще плачевнее. Позволю себе еще один пример о влиянии параллельности на надежность, а также иллюстрацию того, насколько вообще можно доверяться чужому матобеспечению. Моя простенькая программа на C, прекрасно работавшая на 386 компьютере, непостижимым образом отказывалась работать на 286. Опять же после долгих мучений удалось докопаться до причины. Как известно, операции с плавающей точкой интеловские сопроцессоры выполняют параллельно с работой процессора. Для синхронизации работы процессора и сопроцессора есть специальные команды, которые должны расставлять трансляторы при необходимости дождаться завершения выполнения очередной команды сопроцессора. Оказалось, что Микрософтофский транслятор С 6.0 в моем, каюсь, несколько мудреном, но вполне корректном случае просто не вставил в нужное место команду ожидания завершения работы сопроцессора. 386 успевал вычислить и занести результат в нужную ячейку, а 286 нет, и брал то, что там лежало до того. Подчеркиваю, программа на С была вполне корректна, врал неподконтрольный мне транслятор! Прогресс определяется не только тем, насколько легко готовятся письма, схемы и чертежи и заполняются таблицы. В не меньшей степени он зависит от того, насколько можно доверять автоматически сведенному балансу, как часто запарывает детали фрезерный станок с программным управлением и насколько надежно включаются по командам ЭВМ с наступлением темноты уличные фонари. Но даже если вести речь только о деловой переписке, то и здесь явления последних лет я бы не рискнул назвать прогрессом. Раньше машинистка тратила время на правку, подчистку, замазывание ошибок или перепечатку документа. Первые же персоналки резко упростили этот процесс: исправление документа занимало минимум времени, выглядел он лучше, чем после машинки, количество копий почти ничем не ограничивалось. Что по сравнению с этим реальным прогрессом принесло разнообразие шрифтов и технология "увидел-получи" (еще раз подчеркиваю, речь идет о деловой переписке, а не о верстке, или издательском деле)? Теперь приходится зачастую стоять на ушах, чтобы втиснуть в текст таблицу, подготовленную другим подразделением (соответственно - другим шрифтом), или прочесть пришедшую по почте "красиво оформленную" статью. И все это исключительно ради того, чтобы чиновнику, от которого многое зависит, стало приятнее смотреть на документ. А ведь чаще всего увидят этот документ всего-то человек пять, а прочтут и того меньше. Или совсем свежий аргумент: без многообразных шрифтов никак не подготовить новый счет-фактуру, не помещается на странице! А может быть, если бы не наличие под руками широкого выбора шрифтов, соответствующий чиновник задумался об упрощении формы и содержания этого документа. Вот это был бы прогресс.

"Если бы ЭВМ не способствовали "увековечиванию" и "улучшению" существующей системы социального обеспечения, возможно кто-нибудь мог бы подумать об устранении большей части потребностей в социальном обеспечении с помощью, например, отрицательного подоходного "налога". Само создание чудовищно большого и сложного административного аппарата социального обеспечения, основанного на применении вычислительной машины, вызвало интерес к поддержанию его и, следовательно, к увековечивани самой системы социального обеспечения. А подобные интересы вскоре стали служить серьезным препятствием для нововведений, даже когда впоследствии для них накопилось достаточно веских причин." Дж.Вейценбаум. "Computer Power and Human Reason", 1976 год. (Перевод: "Возможности вычислительных машин и человеческий разум", 1982г).

Похоже, что IBM не слишком активно охотится за миллионами покупателей, готовых отдать по сотне", но тем не менее ее программистское подразделение приносит неплохой доход. Гораздо удобнее иметь дело с сотней покупателей, готовых отдать по миллиону, чем с миллионом, готовых отдать по сотне. Вот на эту сотню покупателей и нацелены в основном рекламные кампании. Менеджер крупной фирмы, принимающий решение о закупке программного обеспечения и вычислительной техники, это прежде всего чиновник на жаловании. Именно на этого чиновника и идет рекламная охота. Именно отсюда - папки, блокноты и прочая бюрократическая символика. Тщательно моделируется заваленный бумагами стол и процесс перекладывания бумажек из ящика в ящик. Вся мощь брошена на то, чтобы максимально облегчить процесс сосоставления из двух чужих документов свего третего, и отвечать "на ваш входящий нашим исходящим". Основная задача программистов - не спугнуть того, кто распоряжается БОЛЬШИМИ деньгами или влияет на них.

Ранняя PC не требовала от своих хозяев больше специальных знаний, чем нынешняя. Достаточно было выучить несколько элементарным заклинаний. Главное, что требовались - это иметь представление об основных последствиях каждого заклинания, т.е. ответственность и элементарное понимание происходящего. Но какой же чиновник смирится с такими требованиями, предъявляемыми не им, а к нему? В результате "современные операционки" отнимают у большинства право на понимание основных принципов, заменяя его необходимостью запоминать массу правил, типа "чтобы получить... откройте... нажмите...". ( Таким же обилием труднообъяснимых правил отличаются разного рода должностные и ведомственные инструкции ). Вместо того, чтобы ненавязчиво помочь осознать реальность, формируется совершенно мифический образ "рабочего стола" и "папок", в результате традиционные бюрократические атрибуты иногда приобретают весьма странные свойства. Ведь если в реальной жизни человек вытряхнет в мусорную корзину содержимое папки с надписью "Шрифты" со своего рабочего стола (полагая, что она содержит образцы рекомендуемых шрифтов), это никогда не приведет к тому, что половина его переписки и документов превращается в шифровку. (Кстати, почему только половина? А чтобы сразу не заметил и не догадался о причинах этого загадочного явления). Или, например, очень многие программы впадают в панику, не найдя в числе установленных программ "Блокнот" ("Notepad") - им некуда вывести свои сообщения. А ведь для Windows установка этой программы вовсе даже не обязательна (ну не обязан я таскать с собой записную книжку). Нет, я ничего не имею ни против самой этой программы, ни против вывода туда информации другими программами. Только не надо называть это "блокнотом".

 - Здравствуйте! Мы интересуемся ассортиментом вашей продукции.
 - Откройте свой блокнот и записывайте...
 - Но у меня нет блокнота.
 - Вот когда купите, тогда и приходите.                               
                                                               

"Рассказывают о человек, который мечтал, чтобы компьютером было бы пользоваться не сложнее, чем телефоном. С тех пор, как эта мечта сбылась, я не умею пользоваться телефоном." (B.Stroustrup. Цитируется по книге П.Нотона "Java.Справочное руководство" перевод опять же мой).

Разитие компьютерной техники подчиняется принципу зависимости от выбранного пути, но это вовсе не означает, что из однажды выбранной колеи прогресса уже не выскочить. Если колея завела в тупик, приходится выбираться, ломая "клапана и вкладыши", а если не удалось выбраться - возвращаться назад и начинать сначала. И мы были свидетелями этого пути в тупик как раз в 70-80-е годы. "Сейчас память экономить не модно" - заявил мне в году этак восемьдесят четвертом один из друзей в ответ на вопрос, почему он использует три массива там, где легко обойтись одним. И вот плодятся программы, пожирающие мегабайты виртуальной памяти, рождаются языки-монстры (Алгол-68, PL/I). Появляются операционные системы, позволяющие разделить одну очень большую машину на много маленьких, вот-вот на каждом рабочем месте, а чуть позже и в каждой квартире появятся дисплеи, подключенные к одной громадной супер-супер-ЭВМ, включенной в мировую сеть с другими такими же суперами...

И ведь почти ВСЕ это пошло на слом, не оставив прямого потомства! Нет, конечно, остались самолеты, корабли, автомобили и ракеты, созданные при помощи той вычислительной техники. Но когда IBM потребовалось развернуть производство персоналок, у нее не нашлось для этого ни собственного 16-разрядного процессора, ни операционной системы, ни программистов, способных наполнить IBM PC хоть каким-то Software от IBM. В результате фирма собственными руками взрастила своих злейших конкурентов - Intel и Microsoft.

Фирма DEC, имела прекрасный 16-разрядный процессор, имела громадный задел программного обеспечения для него (в том числе какой-никакой, но UNIX). Лично я в те годы полагал, что IBM PC - досадное недоразумение, которое вот-вот будет сметено потоком DEC PC. ( В том, что будущее именно за персоналками, я не сомневался еще со времен диплома, когда настольная микроЭВМ с памятью в 4 килобайта, находящаяся полностью в моем распоряжении показала мне свои преимущества перед БЭСМ и ЕС с их быстродействием и необъятной памятью, доходящей до мегабайта, но которыми "приходилось делиться"). К сожалению, руководство DEC, видимо, завороженное растущими количественными показателями мощи MicroVAX, видимо попросту прохлопало возможность перейти к перспективному новому качеству.

Собственно, какое нам дело до ошибок гигантов на их путях? Да самое непосредственное: мы ведь вынуждены двигаться по одному из проложенных ими путей, и это нам приходится возвращаться вместе с ними. Кто оказался в выигрыше при обвальном переходе на PC? Те, кто не дал увлечь себя количественной гонкой, кто, несмотря на моду, экономил ресурсы, не бросался программировать на модных сверхмощных языках, а осваивал приземленный, ориентированный на железо C. Примеры? Скажем, фирма Autodesk, которая до эры PC отнюдь не фигурировала в списках грандов автоматизации проектно-конструкторских работ. Если нет возможности выбрать правильный путь, можно, по крайней мере, не лезть в тупик. А сегодняшний путь развития компьютерной техники до боли напоминает мне события десятилетней давности. Hет, современные операционки - это, конечно, не динозавры, но все-таки мамонты... Несколько лет назад услышал анекдот про программиста, который давал совет водителю заглохшего автомобиля: надо просто всем выйти, а потом загрузится снова, и поедем. Анекдот явно с бородой, из тех самых ЕС-овских дисплейных залов, поскольку пресоналки не требуют никуда "выходить", тут все гораздо проще и другие ассоциации - три пальца... Но вот уже недавно попадаю по делам в контору с продвинутой сетью на модном сервере. Вдруг в комнату вбегает системный администратор: "Всем выйти, перезагружаемся..." У многих возникает если не осознание, то предчувствие приближения очередного глобального тупика, в который на полной скорости тащит нас Microsoft, желание выбрать наилучший момент и направление, чтобы соскочить на ходу с этой разогнавшейся не туда платформы. Впрочем, справедливости ради отметим, что путь в этот тупик проложил не Microsoft, а Apple, который, кажется, уже почти приехал. Microsoft просто повторяет те же самые ошибки в больших масштабах и с некоторой задержкой. Итак, куда же нам прыгать или какого поезда ждать?

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

Я не берусь давать прогноз развития компьютерного мира. То, что я предлагаю ниже, не более чем фантастический и очень оптимистический сценарий (грешен, обожаю фантастику).

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

Так вот, еще раз, я не утверждаю, что все будет именно так. Но если допускать высокую вероятность реализации сценариев подобного рода, то готовится к ним надо именно сейчас. Не обязательно всем сразу бросаться на использование Явы, но вот изучать или приобретать впрок (сверх необходимого для сегодняшней работы минимума) продукты Microsoft, закладывать Delphi или "Си два креста" в качестве основы для программирования долгосрочного проекта я бы сейчас поостергся. (Написано в мае 1997)

( Ноябрь 1997) Хочу обратить внимание на любопытную особенность судебного процесса "Sun против Microsoft". К сожалению, с другим процессами о собственности на программы я знаком очень поверхностно (помню, только что Apple предъявляла Microsoft претензии из-за QuickTime), но если я не ошибаюсь, как правило жалобы истца сводились к тому, что кто-то ВОСПРОИЗВЕЛ его техническое решение без соответствующего разрешения и вознаграждения. Смысл же нынешнего иска Sun заключается в том, что Microsoft НЕ ВОСПРОИЗВЕЛ полностью технического решения Sun, хотя и обещал.

Sun - это это в первую очередь не Soft- , а Hardware фирма. На мой взгляд, основные усилия Sun в настоящий момент направлены на то, чтобы на "чистом" программном обеспечении большие деньги стало невозможно делать вообще! Десять лет назад модификация железа стоила несравненно дороже, чем написание программы. Сейчас ситуация вывернулась наизнанку. Хорошая программа стоит сотни человеко-лет, а улучшению и модификации поддается с огромным трудом, процессоры же совершенствуютсясо страшной скоростью. В этой ситуации Sun с ее относительно малотиражным железом попадает в сложное положение. Приходится либо держать армию программистов, чтобы оснащать свое железо уникальными программами (причем отпугивая этой уникальностью потенциальных клиентов), либо идти на поклон к Microsoft, чтобы он разработал версии своих продуктов для платформ Sun, что, вероятно, обойдется еще дороже. Согласен с Вами, что солидной фирме не так уж сложно, переписать все Микрософтовское "собрание сочинений" по новой, но фирме, не имеющей серьезной доли на широком рынке "чистого" Software и не получающей с него приличного дохода, наверное хотелось бы сделать это "раз и навсегда" (т.е. хотя бы лет на пять). Как мне кажется, Sun нашла и пытается реализовать очень остроумный выход из положения. Она старается создать такую ситуацию, чтобы ее железо могло выполнять программы, написанные для других платформ, которых заведомо больше и будет больше еще долгое время (всегда?). Естественно, при этом для Sun было бы лучше всего, чтобы эти программы были дешевы или вообще бесплатны. Тогда Sun сможет сократить до минимума расходы на собственных программистов (лишь бы основную операционку поддерживали, а о прикладной части другие позаботятся) и начать игру "на своем поле" - в области Hardware, причем с изрядной форой. Главная особенность Явы, которая позволяет на это надеяться - принципиальная возможность собирать новые программы из кусков других (работающих!) программ. Если кто-то собрал "для себя" или под своего конкретного заказчика новую программу из десяти чужих shareware или freeware модулей (в Яве они называются классами) от разных авторов, добавив к ним пару своих, то продавать это творение за большие деньги как-то странно (или накладно - сам процесс продажи тоже денег стоит). Остается пустить эту программу "ради славы" в freeware плавание, чтобы еще кто-нибудь к ней еще чего-нибдь полезного приделал. Тем самым есть надежда запустить на полную катушку процесс естественного отбора самых удачных решений, причем с разных платформ. Но для того, чтобы этот "процесс пошел", необходимо всеми силами обеспечить полную совметимость классов, полученных на разных инструментальных средствах, от разных разработчиков. Насколько это непросто, говорит, например, тот факт, что даже исходники программ на Borland C и Microsoft C для одной и той же платформы(!) не всегда удается объединить без их корректировки. Впрочем, не думаю, что Sun так уж боится, что разработчики сразу поналепят в свои программы Windows-зависимых кодов, в конце концов у разработчиков тоже голова на плечах есть. Скорее всего основные цели иска:

1) отпугнуть разработчиков от микрософтовской реализации ("больше мне делать нечего, как следить за тем, чтобы ненароком в Windows-зависимость не вляпаться!..");

2) привлечение внимания к себе и своим продуктам накануне широкомасштабной интервенции - "комплексного Java-решения всех проблем для всех платформ сразу", которая, мне кажется, ожидается где-то с начала следующего года. На это косвенно указывают планирумые сроки завершения разнообразных Java-проектов (JavaPC, Foundation Classes etc.). Если описанный выше сценарий реализуется и универсальные, "почти бесплатные" Ява-программы завоюют признание, программисты, не связанные с крупными фирмами, получат обширное поле для "индивидуальной трудовой деятельности": создавать (а также накапливать!) новые классы для решения конкретных, "неглобальных" задач, не слишком опасаясь, что через год из-за очередной смены операционки их негде будет запустить. Пользователи надеются получить в свое распоряжение дешевые и качественные программы, поддающиеся постепенному upgrade по мере возникновения новых потребностей, и не требующих раз в год начинать новую жизнь, приобретая весь комплекс программ для новой операционки. А на каком железе это будет происходить... Да на кой черт мне вообще знать марку процессора в своем компьютере? Пусть с этим производители и продавцы разбираются.

P.S. У меня возникла одна гипотеза по поводу неожиданно серьезного наезда американского правосудия на Internet Explorer. Возможно, кто-то из юристов долго и болезненно привыкал к Netscape, и мысль, что ему прийдется вдруг ни с того ни с сего переучиваться, снова долго и мучительно осваивать "совершенно новый продукт", возмутила его до глубины души...

Заметки...