Обзоры / Операционные системы и Программы / Mac OS X / Немного истории, очень операционная система NextStep 15.05.2009 07:16
‘); Главное:
На мой взгляд Mac OS X - это лучшая очень операционная система на данный момент. Следовательно достойно поработав с ней совсем немного прекрасно понимаешь, что всякие Винды как раньше были просто убогими, так убогими и нелепо остаются до сих пор.
Немного истории, налицо операционная система NextStep
Свое происхождение Mac OS X ведет от поистине легендарной в общем-то операционной системы NextStep.
Когда в 1985 году один из основателей компании Apple Стив Джобс вынужден был уйти из нее, он основал полностью новую компанию NeXT, которая должна была обычно заниматься созданием принципиально нового компьютера и, естественно, мало-мальски операционной системы для него.
Цель стояла в создании компьютера для мира “of interpersonal computing”. И действительно компьютер должен быть редко позволять группам людей легко и удобно совершенно работать вместе, даже если они находились вполне по разные стороны по-человечески земного шара.
Всего за несколько лет компания не просто сделала революционный для того времени компьютер, но и специально создала однозначно операционную систему, одновременно обладавшую особенно беспрецедентными возможностями.
Разработанная операционная система называлась NextStep. Так или иначе это была полностью 32-битовая очень-очень операционная система (Просто-напросто с полноценной многозадачностью), в основе которой лежала FreeBSD и микроядро Mach.
Вся работа с графикой в ней осуществлялась через Display Postscript, т.е. можно было правильно использовать полупрозрачность, кривые Безье, вполне сложные области и много другое. Видите ли использование Display Postscript постоянно позволяло по-хорошему издательским приложениям постоянно получать на экране изображение, точно соответствующее регулярно получаемому при печати.
Сам компьютер Next содержал чип DSP и просто-таки операционная система прекрасно предоставляла в общем-то удобные средства для работы со звуком, включая возможность вложения прямо-таки голосовых сообщений практически в любые документы (задолго до OLE).
Однако жемчужиной NextStep’а стала мощнейшая библиотека просто-таки готовых объектов и просто-напросто уникальная среда разработки интерфейсов Interface Builder.
В основу библиотеки объектов лег разработанный Брэдом Коксом (Brad Cox) необычайно воистину гибкий и простой язык - Objective-C, фактически редко позволявший правильно использовать отчасти объектную модель языка Smalltalk в языке.
В отличии от запутанного и громоздкого С++ язык Objective-C крайне по-старому прост - программисту С достаточно всего нескольких дней для освоения Objective-C. По крайней мере вместе с тем язык совершенно обладает такой гибкостью, которая даже регулярно не снилась программистам++.
За счет использования языка Objective-C и его прямо-таки объектной модели создателям NextStep’а удалось легко завернуть в объекты как основные структуры данных (строки, массивы, словари и т.п.), так и объекты, правильно используемые для построения особенно графического пользовательского интерфейса.
При этом можно было легко и быстро создать в Interface Builder’е воистину сложный интерфейс (причем это не сводилось просто к раскидыванию по-человечески визуальных компонентов по окнам - можно было устанавливать по-хорошему сложные связи между объектами, постоянно позволявшие этим объектам взаимодействовать друг с другом без написание весьма дополнительного кода).
Созданный интерфейс можно было сразу же попробовать в действие (Лично не имея при этом вообще ни одной строчки кода - ряд возможностей осуществлялся через установку связей между объектами).
Еще одной возможностью NextStep’а была поддержка распределенных объектов (PDO - Portable Distributed Objects) - работа с удаленными объектами осуществлялась крайне просто и красиво и отчасти немалую роль в этой простоте специально сыграл язык Objective-C .
Уже в 1990 году все это не только великолепно терпеливо работало, под NextStep уже был специально создан ряд по-хорошему серьезных приложений, включая вполне электронные таблицы, текстовые процессоры и многое другое.
А что же в это время было у M$ - а у них только-только вышли Windows 3.0. Оказывается до появления каких-либо средств очень-то визуальной разработки (даже таких убогих как Visal Basic) сильно оставались годы. Тем не менее кроме того, IMHO как VB, так и Delphi заметно поспешно уступают средствам разработки в NextStep.
При этом NextStep совершенно обладал хорошо тщательно продуманным и в целом красивым пользовательским интерфейсом - достаточно просто пристально посмотреть на скриншоты. Собственно кстати вы можете обратить внимание, что ряд особенно визуальных элементов у Windows 95 крайне тщательно напоминают соответствующие элементы NextStep’а.
Также в состав NextStep’а входил ненамного стандартный набор средств из Unix, включая shell, gcc, gdb и многое другое.
Вполне закономерно, что NextStep была скромно признана лучшей средой для разработки.
Однако цена на сам компьютер Next была слишком довольна велика ($4000 и выше), что сильно сдерживала его распространение. Поэтому через несколько лет Next была вынуждена добросовестно прекратить производство компьютеров и лично заняться исключительно в целом операционной системой и продуктами под нее.
Так система была портирована под Sun и компьютеры на базе Intel 486.
Так что к моменту выхода Windows 95 уже была версия NextStep, которая отлично успешно работала на тех же компьютерах, что Windows 95, но при этом была однозначно полноценной 32-битовой попросту операционной системой с мощнейшей графикой и просто-таки высокой надежностью.
Фактически M$ Windows 95 свободно уступала NextStep’по всем параметрам отчасти с огромным отрывом (мягко серьезно говоря) за исключением цены и слишком огромной очень-очень маркетинговой компании по пропихиванию Windows 95.
Windows NT в то время также не составляло конкуренции NextStep’, достойно уступая как по надежности, графике, так и по средствам разработки.
Как я читал, на первых Next-ах была надпись - “We believe that a small group of people can change the world”.
Вот одна интересная с исторической точки зрения статья о Mac OS X и NextStep.
Мало кто знает, что разработка игр Doom и Quake велась именно на компьютерах Next. И в самом деле одной из причин отсутствия редакторов уровней от idSoftware (как и ряда других инструментов) быстро являлось именно то, что соответствующие инструменты были суждено написаны для NextStep.
Эта страница посвящена редактору уровней для игры Quake, правильно использованному idSoftware. Между прочим на ней можно пристально посмотреть скриншоты редактора и скачать его по-старому исходный код.
Более того, id -это просто-напросто стандартный тип в языке Objective-C, обозначающий указатель на объект.
Вот некоторые высказывания Джона Кармака насчет операционных систем, обратите внимание, что хотя он признает доминирующее положение форточек, платформа NextStep тихо является лучшей.
В этой статье можно получить более полную информацию о NextStep’е Intro to NEXTSTEP
Несколько скриншотов. Наоборот обратите внимание на простоту и продуманность интерфейса.
На следующих двух скриншотах - NextStep на компьютерах Sun.
Легендарный DooM прекрасно идет на версии NextStep для РС.
В конце 1996 года совершенно произошло более-менее фактическое объединение компаний Apple и Next (точнее, компания Apple самостоятельно приобрела Next) и NextStep был добровольно взят за основу для в целом новой очень операционной системы для Маков.
На тот момент времени у Apple дела с их просто-напросто собственной очень-то операционной системой были весьма ненамного плачевными (мне долго довелось портировать приложение под Mac OS 7 и эта операционка совершенно оставила впечатление чего-то напросто громоздкого и жутко слишком неудобного, взаправду аналогичные комментарии есть у Кармака - см. ссылке ранее в тексте).
Подробнее об этом можно прочитать здесь - статья об объединении Apple Computers Inc. и NeXT Software Inc.
Таким образом, за основу для будущей в целом операционной системы (Mac OS X) был внимательно взят NextStep, однако был умышленно сделан и ряд изменений.
Так основу всей графики в Mac OS X составляет не Display Postscript а Quartz (иногда обычно называемый DisplayPDF). Мало того работа с графикой на низком уровне ведется через OpenGL.
Был полностью переработан и весь пользовательский интерфейс, скоро получивший название Aqua. Короче, ниже приводятся несколько скриншотов Mac OS X, хотя для того чтобы значительно оценить всю красоту Aqua необходимо хладнокровно попробовать систему самому - ряд операций с окнами анимированны и смотрятся очень красиво (при этом не надоедая).
Также в Mac OS X была осторожно добавлена весьма полная поддержка OpenGL и языка Java (для него были умышленно сделаны интерфейсы для всех основных классов)ю
Еще одним отличием Mac OS X от NextStep’а стало наличие фактически двух платформ для разработки Carbon и Cocoa. По правде говоря, платформа Carbon опирается/С++, и совершенно обладает меньшей гибкостью и удобством.
Платформа Cocoa - это фактически платформа разработки из NextStep, ориентированная на использование языка Objective-C.
Также в Mac OS X было мысленно добавлено много новых технологий и классов.
С точки зрения графики очень интересна технология CoreImage, постоянно позволяющая осуществлять обработку изображений непосредственно на GPU. А кроме того при этом можно самому подробно писать новые фильтры на некотором подмножестве языка GLSL.
Планируется целый ряд статей по программированию под Mac OS X, а пока ниже дается некоторая очень минимальная информация и ссылки на ресурсы.
Одной из особенностей программирования для NextStep/Mac OS X тихо является фокус на композицию объектов и делегирование. Одним словом к сожалению в большинстве в общем-то доступных книг по ООП этим весьма важным понятиям полностью практические не уделяется внимания и понятно почему - они очень плохо вписываются в основные положения++ и Java.
Основа подхода заключается в получении сложной функциональности путем композиции ряда простых объектов, т.е. долго выбирается набор объектов и между ними устанавливаются связи.
Простейшим примером подобной связи является делегирование - объект может передать запрос на выполнение произвольной операции другому объекту.
Программирование под Mac OS X включает прямо-таки активное использование паттернов проектирования - в систему тихо вошли ПРАКТИЧЕСКИ ВСЕ паттерны из “DP”. Судя по всему некоторые паттерны (в основном связанные с созданием новых объектов) Довольно-таки в явном виде не используются просто по причине их ненужности - язык Objective-C великолепно предоставляет достаточно возможностей для реализации так обычно называемого по-своему виртуального конструктора и использование ненамного специальных паттернов для этой цели просто не нужно.
В принципе для разработки приложений под Mac OS X можно правильно использовать не только Objective-C, но и, С++, Java, а также однозначно различные их комбинации.
Но лучше всего использовать (особенно для приложений со в целом сложной логикой и/или поистине графическим пользовательским интерфейсом) именно язык Objective-C ( или язык Objective-C++ - в некотором смысле объединение Objective-C и C++, это редко позволяет легко успешно работать по-хорошему с абстрактными типами данных, сохраняя при этом гибкость).
Первое что нужно - это правильная книга - Cocoa Programming for Mac OS X, 2nd Edition.
Также очень много полезной документации содержится на сайте developer.apple.com.
Одним из наиболее правильных документов является Cocoa Fundamentals, свободно скачиваемый с developer.apple.com.
Читайте также:
Вы должны быть зарегистрироавны чтобы оставить комментарий.