С уважением,
Марина Мещерякова
Умалять достоинства Next (как машины, так и системы), конечно, глупо - это была веха, факт. В те годы
NeXT явился чуть ли не полной противоположностью обрыдлой повседневности. Он отличался от
писючьего мира буквально всем, чем только можно. Яркий и, пожалуй, нагловатый выпад против
повседневной серости - другой цвет, другая форма, другой процессор (процессоры - если я правильно
помню, графический сопроцессор в Next Cube был стандартным), другая ОС, да еще и на базе опального
Юникса, магнитооптика в стандартной поставке (воспринималось, как почти что хамство:-), возможность
подсоединить несколько мониторов, etc etc... Заявка на успех была впечатляющей и поражала
воображение.
Однако. Если взглянуть на вещи чуть более трезво, то у меня к нему есть ровно одна претензия:
NextSetp - это красивая, удобная, прогрессивная и вообще всячески клевая... надстройка над Юниксом.
То есть примерно как win 3.1 и win 95 для доса.
Так что не "Объектно-ориентированная структура снизу доверху", а сверху и вниз, до половины. И баба
яга - против. Это было чертовски круто тогда, но сегодня это не только не опережает весь мир на два
года, но, как минимум, на пару лет отстает идеологически. Я ценю целостность в подходе, а ее в ОО
системе на базе Юникса не может быть по определению. Чтобы Юникс стал ОО, его нужно выкинуть в
помойку и сделать все заново - это при всей моей искренней любви к Юниксу и степу. Собственно, это и
сделал Sun при разработке Spring - весьма целостной ОО системы, в которой авторы решились, таки,
отойти от традиций и построить ОС "от пола". Получилось здорово, но, увы, коммерческую ОС из этого так
и не слепили.
У BeOS - аналогичные заявки, и она хороша тем же самым. Целостностью. У нее практически нет plain old
APIs - классы, и все тут. Правда, вот еще справедливый пинок в ее адрес:
From:
Dima Maloff
Subject:
BeOS vs NextStep
Привет!
Ты пишешь "В точном согласии с моими словами Apple занялся маркетингом,
ориентированным на опытного покупателя. Эх, вот их подход к развитию ОС
я не одобряю - BeOS, думается, все же посовременнее, чем древний NeXT
Step."
"Сделано позже" не значит "сделано лучше". Авторы BeOS со всей дури влетели
во все прелести статической объектности C++ (если двумя словами -- я не могу
добавить в класс переменную или метод, не потеряв бинарной совместимости со
всеми программами, которые этот класс использовали напрямую или через
subclassing).
Нет, у них там, конечно, предусмотрены work-arounds, но как-то это...криво все
:(...
Дима
Ну, однако, не ошибается тот, кто ничего не делает. BeOS хорош своей логической завершенностью.
Всякое следование канонам ограничивает выбор, и вынуждает работать в некотором стиле. У этого есть
свои минусы (нельзя залезть в эклектику) и свои плюсы (нельзя залезть в эклектику:-). Ну не люблю я
корявое.
Кроме того, чтобы понять, как обойти ту или иную проблему, часто бывает необходимо повстречаться с
ней поближе. :-) BeOS предоставляет нам такую возможность. :-)
Как и обещал, возвращаюсь к теме Макинтошевских и близлежащих операционных систем.
Чуток истории. Next сздавался в интересную пору. Во-первых, всем трезвомыслящим людям было
ясно, что Mac OS требует принципиальной переработки. Однозадачная до глубины души, она уступала
в этом качестве даже Windows 3.1 - далеко не лидеру в плане многозадачности.
Остальные стороны Mac OS, в общем, не вызывали принципиальных нареканий, однако упорядочение
и им не мешало, да и объектно-ориентированное программирование переходило из стадии
малоизвестного прикола в стадию овладения широких масс новым инструментом. Поскольку
событийно-центрированная модель, применяемая в Mac OS (а так же в X Windows, Windows, OS/2
Presentation manager, etc etc) была, по сути, первым "промышленным" проявлением объектной
ориентированности, разумному человеку было понятно, что драться с этой парадигмой уже не только
глупо, но и физически невозможно. Вопрос был только в том, насколько глубоко нырять в ОО на
практике, и где прагматика начнет перевешивать стремление к красивому.
Лирически отступая от и без того лирического текста, отмечу, что использование ОО в виде системы
событий современных графических подсистем было вынужденным, а не осознанным. Это - аргумент
против широко разошедшегося заблуждения, что, мол, ОО - новая игрушка от программеров
теоретиков, и практикующему программисту все это знать не принципиально - наиграются, мол, и
бросят. Увы, мир впервые широко прибег к ОО из соображений исключительно прагматических.
Оказалось, что делать пользовательские интерфейсы на основе событий - гораздо проще, чем
пользуясь старыми "простыми", казалось бы, лобовыми методами. Конец Л.О.
Другим фактором, повлиявшим на создание наследника Mac OS, была яростная попытка Юниксового
мира побороться с постоянным растолстением сей почтенной ОС. Год от года ядро системы,
обрастаюшее новыми финтифлюшками, подсистемами и интерфейсами, становилось все больше и
больше, необозримее и эклектичнее, что никак не вязалось с заветами отцов-основателей - держать в
ядре только самое необходимое, остальное же - выгнать. Ибо нефиг.
В качестве выхода из странной ситуации была предложена концепция микроядра. Идея была как раз в
том же самом - собственно ядро (ныне - микроядро) наградить только теми функциями, что ну никак
нельзя выкинуть: управлением памятью, многозадачностью и связью между процессами. Остальное
(файловые системы, сеть, секьюрити, ввод-вывод, графику) выгнать в отдельные процессы, и пусть оно
там мучается, как хочет.
Это было разумно придумано, но неожиданно хреновенько реализовано. Это я о проекте Mach.
Во-первых, понятие "микро" к новому ядру липло с напрягом, во-вторых, вместо того, чтобы изъятые из
микроядра функции аккуратно реализовать в виде сервисов, поверх микроядра Mach просто налепили
ядро от обычного BSD Unix. Результат, увы, не сильно впечатлял - конечно, это было лучше обычного
BSD, если учесть новые возможности микроядра, но не очень понятно было, чем это отличается от
Юникса, если бы просто добавить в него эти новые возможности. Успокаивали себя тем, что это, знаете
ли, первый блин, дальше будет лучше, и вообще - великая (без шуток) идея стоит некоторых мучений.
Совершенно, категорически и по самые уши согласен с идеей микроядерных ОС. Но... мало хорошо
придумать новый молоток. Надо раз - хорошо сделать, два - научиться не бить им по пальцам.
Однако, Бог с ним. Два источника, две составные части NeXT Step нам уже известны. Третьей стал
Джобс, и его доля богатства Apple. Совершенно справедливо решив, что нечего стоять на месте, он
основал новую компанию, спроектировал новый компьютер и написал новую ОС. В качестве нижнего
уровня выступил Mach + BSD Unix, поверх которых на Objective C была написана верхняя часть
айсберга - графика, интерфейсы, взаимодействие процессов на "высшем" уровне, etc etc.
Получилось чертовски хорошо. Для первого-то блина? Замечательно! Понравилось всем, кто
удосужился поинтересоваться. Фанаты Юникса, глядя на запрятаный в середину пирога BSD, говорили
- "Да это ж юникс!", и радовались. Фанаты мака глядя на интерфейс пользователя, говорили - "Да это ж
мак!", и радовались. Фанаты ДОСа и Виндов глядели как-то безрадостно и бурчали - "Черный какой-то...
брр. Мерзкая машина."
Их никто не слышал...
Новая платформа набирала обороты. Первым ударом среди ясного неба стало понимание, что "black
hardware", своя собственная аппаратная платформа NeXT, не тянет. Писюки и маки обходят ее по
производительности и поджимают по цене, а разрабатывать новые модели при имевшемся уровне
спроса - не выгодно. Было принято решение перенести NeXT Step на другие машины, а линию черных
сундучков NeXT закрыть. Система, однако, продолжала развиваться, пока вдруг не выяснилось, что
писать под винды - это чертовски прибыльное дело... а писать свою ОС - совсем не очень. Джобс
сдался. Компания Next дала приоритет разработкам, не привязаным к Next Step, и стало ясно, что один
из наиболее ярких экспериментов в области ОСостроения потерпел окончательную неудачу. "Тонет
муха в сладости".
И тут - под руку подворачивается полуживой Apple. Которому нужна новая ОС. И у которого есть
Билловы деньги.
В противовес информации о Пилотах публикую письмо, автор которого выбрал машину с WinCE, и
рассказывает, почему.
From:
Juri Tsibrovski
Subject:
DVD, WinCE, Novell etc
<...>
Я как бы сознательный владелец WinCE игрушки (Compaq C140), не купивший
себе Pilot, невзирая ни на отвращение к M$, ни на меньшие габариты, ни на pen
input, и тому подобные штучки. Попробую обосновать со своей колокольни,
почему WinCE:
1.Cost-effective. За $280 я получил 40MHz SH-3 машинку с 6Mb памяти и
14400 fax/modem'ом (это, правда, не совсем обычная цена) PalmPilot
Professional стоит $370 без модема (еще $120), и имеет до обидного мало
памяти :( У меня вот там болтается Pocket Streets c подробной картой
SanFrancisco - уже 800K. А надо бы еще местную, тоже порядка того.
Хотя вообще bloatware туда пока не дотянулось.
2.Клавиатура есть. Хотя у Psion 5 она явно получше, но лучше уж
какая-нибудь, чем никакой. Да и набить пару строчек в Tasks или
Appointments вполне хватает и такой. Ни одна распознавалка рукописного
текста (включая пилотовскую) меня не устроила - либо тормозит, либо не
понимает, либо раздражает необходимостью подстраиваться под нее.
3.PalmPilot - это вообще слегка из другой оперы. Мне лично нужен либо
ноутбук меньше стандартного (что-то типа Toshiba Libretto или Mitshubishi
Amity), и желательно не Win95 only, либо продвинутый органайзер,
синхронизирующийся с десктопом (желательно размерами меньше
Pilot'а). Кстати, такой есть - Rolodex Rex от Starfish Software, и он мне уже
нравится, вот пока в продаже не попадался. А WinCE почти попадает в
категорию маленьких ноутбуков, особенно более новые модели, типа
Philips Velo-500, c 16-24Mb RAM.
Габариты меня вполне устраивают, так как я все равно таскаю за собой
сумку со всяким барахлом/книжками, куда спокойно входит, помимо
предмета разговора, и PCMCIA модем, и блок питания, но точно не
войдет нормальный ноутбук. А доступ к Internet и офисной сети мне
нужен часто и везде. Хотя Pocket Internet Explorer от MS - дрянь
порядочная, не понимает фреймов и (самое гнусное) имеет какие-то
проблемы с некоторыми формами (обычно IIS'овскими). Приходится
пользовать безотказный прием - telnet + lynx :)
4.PCMCIA карты понимает, хотя и не все. WinCE 2.0 должен понимать
ethernet.
5.Синхронизируется с Outlook без проблем, есть урезанный Word и Excel -
можно смотреть документы из офиса. Но нет читалки pdf :(
6.Ну это вообще курьез. Не глючит совсем. Не знаю, правда, как
PalmPilot, но это пока единственный M$ продукт, бывший в моих руках, и
ни разу не свалившийся. Хотя это пока только первый месяц.
Вот что мне у Pilot нравится - так это больший выбор Free/ShareWare. Хотя все,
что я хотел себе я нашел/купил, благо не так уж и много надо было. И что еще у
WinCE плохо (хотя может и хорошо), похоже, MS не планирует делать ставку на
рынок HPC, а собирается продвигать WinCE в стиральные машины и кофеварки