Беглый взгляд на Macintosh.

Те, кто верит в то, что Макинтош -- это что-то большое, доброе и светлое, наверняка его не видели. Ну или другой вариант -- не видели ничего кроме Мака. Очень часто до сих пор слышу мнения, что Мак -- белый компьютер для избранных белых людей, правильный во всех отношениях и практически идеальный для любых задач. Нет, он совсем не плох, но идеализировать его я бы не стал. Теперь по порядку. Начнем с hardware.

Аспект дизайна в устройстве таких железяк, как системный блок и клавиатура совершенно очевидно превосходит PC хотя бы в том, что на них приятнее смотреть. Обтекаемые углы, полупрозрачный материал, логотип на боках. Насчет мыши можно поспорить, потому что она, бедняга, у Мака однокнопочная. То, что в большинстве интерфейсов, практикующихся на PC, делается посредством нажатия правой кнопки здесь производится с помощью Ctrl-click. Корпус тоже открывается интересно, -- сбоку, как сервант: стенка откидывается вместе с прикрепленной к стенке материнкой. Очень удобная фича. Мышь растет прямо из клавиатуры, вернее -- вставляется в один из USB-разъемов, на ней расположенных. Таковых два, с обеих сторон, для правшей и левшей соответственно. Среди неудобств -- короткий шнур клавиатура-системный блок, из-за которого нельзя разместить компьютер под столом.Есть еще много разных красот, таких как, скажем, пульсирующая кнопка power на корпусе, когда компьютер включен. Видимо, цена позволяет производителю потратиться на красивый дизайн железки. Мак -- не самая дешевая штука, подержанный Power Mac G2 без монитора стоил нам в Канаде около $800. А у моделей поновее внешний дизайн совершенно сногсшибательный. Впрочем, как и цена.

По части пользования графическим интерфейсом Mac OS X, то панель запуска программ и таскбар немного запутаны. Например, когда приложение запущено, рядом с ним появляется стрелочка. Зато открытые приложениями окна сворачиваются в таскбар. Мне было бы удобнее видеть все запущенные приложения в таскбаре, а не в перемешанном с shortcuts list виде. Но это, конечно, вопрос подхода и привычки. Но если они что-то не сделают с приложением finder и диалогами ввода пути к файлу или каталогу, то основную часть пользователей в ближайшем времени будут составлять окончательно и безнадежно окосевшие люди. Потому что когда кликаешь на каталоге, его содержимое показывается справа, и при этом все содержимое контрола плавно (sic!) смещается вправо.

Софт

До появления Mac OS X рынок софта под Макинтош выглядел очень грустно. Все, включая последнюю утилиту, нужно было покупать отдельно. Да и до сих пор приходится таскать какие-то trial versions. Архиватор, ftp клиент.. Конечно, под ту же Винду, дела так же обстоят, хотя freeware там иногда тоже пробегает. Как и в Windows, в поставку Mac OS включен браузер. Что забавно, тот же MS Internet Explorer.

Собственно, почему я сказал "до появления Mac OS X". Дело в том, что последняя версия операционки основана на стандарте BSD, и даже на исходниках какой-то из реализаций системы. Следовательно, появляется возможность использовать огромное количество свободного софта. Благо, на отдельном диске идет весь комплект GNU, включая компиляторы, make, auto-tools, и так далее. Не обходится в пользовании этой GNU части и без проблем. Так, например, была реальная ситуация -- нужно было заархивировать каталог с исходниками программы. Казалось бы, ну чего здесь сложного? Так как графический родной архиватор в поставку не входит, я решил воспользоваться zip-ом из командной строки. Завернул, послал. На той стороне все есть, но не читаются ресурсы -- у них нулевая длина. Локально запаковал-распаковал -- то же самое. Что за черт? Прозрение прошло через несколько минут, когда я решил взглянуть на файлы там же, в командной строке, с помощью других программ, собранных под Darwin. Согласно выводу ls, длина этих файлов была нулевой. Редактором же ресурсов они открывались нормально, да и Finder показывал какой-то размер. По этой же причине полноценно пользоваться cvs из командной строки нельзя. Здесь я был вынужден найти и поставить надстройку над этой системой контроля версий, которая на лету делала какую-то конвертацию. Ну а архивы тоже пришлось сворачивать с помощью триального StuffIt (архиватор под Мак), потому как реальную длину ресурс-файлов видят пока что только три приложения: Finder, MacCVS и StuffIt. Почему так, не очень понимаю до сих пор. Может, кто-нибудь объяснит?

Разработка

Насколько мне известно, под Macintosh существуют две среды разработки. Это Project Builder от Apple и CodeWarrior от MetroWerks. Обе довольно своеобразны, но не очень сложны для понимания. Наша контора препочитает второй, поэтому с ним и воюем. Самая страшная часть -- это Project Settings, она забрала у меня больше всего времени на понимание. Делая большой шаг от Mac OS 9 к Mac OS X, основанной на BSD, ребята позаботитилсь и о совместимости на уровне кода. То есть, вполне реально заставить программу работать на обеих версиях системы. Делается это с помощью линковки со специальной библиотекой, называемой CarbonLib. Сам процесс такого портирования называется, соответственно, карбонизацией :) Иногда кроме линковки нужно применять и такую-то мать, потому что вызовы не везде совместимы, и в некоторых местах код библиотеки ведет себя по-разному на разных версиях операционки.

Необходимость прицепить help к программе под Мак тоже оказалась интересным приключением. Мне почему-то казалось, что для этого достаточно включить в поставку нечто, а потом на это нечто натравить какую-нибудь аппликацию. С мой стороны было очень наивно так считать. Потому что на самом деле, чтобы прицепить помощь к готовой программе, нужно обязательно собрать ее как application package. Package -- это уже не простой бинарник, а целый фолдер, в который можно влючать произвольные файлы, включая help. Описание местонахождения помощи описывается с помощью файла с properties list, который описывает свойства программы. Там нужно написать, что каталог "Вася" содержит help. Затем еще один шаг -- прописывание File Specifications, которые должны указывать на то, что .html и .plist должны включаться в package. Ну и, собственно, только после этого можно расчитывать на появление в меню стандартного пункта "(имя приложения) help", который сам все открывает. Конечно, это продиктовано особым подходом к архитектуре приложений, но выглядит довольно запутанно.

Ну а в самом процесее обнаружилась еще одна интересная штука. Как только я переключил тип приложения на package, при линковке стала выскакивать ошибка "The classis application chosen is not inside the package folder tree". После этого программа работала без проблем, но ошибка линковки делала невозможными такие вещи как, например, отладка. Думал, что в настройках проекта дело. Долго чесал репу, пока не обнаружилось, что проблема решается сама собой после установки пары апдейтов к CodeWarrior.

Для того, чтобы понять как пишутся графические приложения под Мак, будет достаточно почитать немного документации по библиотеке PowerPlant, и просмотреть несколько примеров. По сравнению с MFC писать руками придется немного больше. Тем не менее, с точки зрения программирования, GUI не сложнее, чем в Windows.

Версии

Проверка работоспособности программы под разными версиями Mac OS требовала наличия двух систем на моем Маке. Тогда же я познакомился и с Mac OS 9. Надо ометить очень грамотный механизм, позволяющий сосуществовать нескольким версиям системы на одном разделе. Но ощущение, которое испытываешь от перезагрузки из Mac OS 9 в Mac OS X, в первую очередь, от интерфейса, можно описать так. Представьте себе, что вы только что переспали с толстой хромой теткой, практически без бюста, с прыщами на лице. Зачем вы это сделали -- спросите свою совесть, но что было, то было. И вот, в этот же момент приходит девушка со внешностью из вашей мечты, и говорит, что с этого момента она заменяет вам тетку. Точно так же после рубленого и морально устаревшего интерфейса девятки радуют глаз полупрозрачные окошки, округлые кнопки, и прочая красота. Кстати, на том же железе графическая оболочка в Mac OS X шевелится быстрее.

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

 

Hosted by uCoz