В ту самую минуту, когда я пишу эти строки, на бескрайних просторах России кто-то распаковывает новенький Мак. То же самое происходит и в ту минуту, когда эти строки читаете вы. Все больше Маков приобретается здесь.
Это еще не все. Не скажу как, и когда - но рано или поздно, доступ к начинке iPhone и iPod touch будет открыт. (В момент написания статьи Стив Джобс еще не опубликовал свое открытое письмо, в котором объявил о том, что реальный SDK для iPhone и iPod touch выйдет в феврале). Это вариант Mac OS X, скорее всего, "Леопард". Вы уверены, что все еще никто не хочет узнать, как устроена эта операционная система, и научиться писать для нее программы?
Времена изменились, и продолжают меняться.
Все больше "безнадежных писистов" проявляет к этой платформе неожиданный интерес. Чего стоили попытки тысяч и тысяч владельцев "дешевых писишных клонов" установить Mac OS X на свои компьютеры. Я восхищен упорством и искусством тех, кто взламывает эти самые "айфоны". Деятельность их не одобряю, но восхищен искусством. Период гламура и тупости проходит.
Люди изменились.
Не изменились только те, кто издает околокомпьютерную литературу. Они по прежнему считают выпуск книг на Маковские темы безнадежным и убыточным занятием. Продолжая тратить деньги на перевод и выпуск откровенно слабеньких (= подешевле) книжечек по вроде бы популярным направлениям, они упускают что-то важное...
Купив (на мой взгляд, недорого) книжицу по одному из таких направлений, я был неприятно поражен исключительно низким качеством изложения. Не очень яркий оригинал был, видимо, еще и старательно препарирован редакторами, уничтожившими последние признаки жизни...
В итоге, покупатели Маков лишены сведений о важных и полезных возможностях их приобретения. Лишены они этих сведений по причине того, что никто эти возможности не использует. Замкнутый круг какой-то...
1. Случаи из истории
В конце 60-х прошлого века, сотрудниками AT&T Labs был разработан язык программирования. Еще один язык (в те времена языки рождались и умирали тысячами в год), исключительно для собственных нужд, названный авторами BCPL.
Когда из BCPL, как скульптура из цельного куска гранита, был высечен Cи, авторы поняли, что им удалось сотворить Нечто Великое. Всевозможных языков программирования в те времена было неисчислимое множество, и практически все они канули в лету (хотя, вполне возможно, среди них были и не менее талантливые и великие языки, чем Си). Но двое из разработчиков Си, Брайен Керниган и Деннис Ричи, опубликовали яркое и захватывающее повествование о своем детище.
Си++, Objective-C, Java, Python и другие популярные сегодня языки программирования - либо родные, либо "двоюродные" наследники великого Си, который и сам до сих пор в строю. Книга Брайена и Ричи несколько раз переиздавалась, и до сих пор упоминается едва ли не во всех списках литературы, рекомендуемой изучающим Си.
Традиция "язык - талантливый рассказ о нем - популярность" пришлась по вкусу разработчикам языков-наследников. Если бы не литературный дар Бьярна Строустропа, Си++ не стал бы самым используемым языком программирования конца 20-го и начала 21-го веков. Java, популярность которой в последние годы заметно угасла, в конце прошлого века была звездой первой величины... почти исключительно благодаря таланту компьютерных писателей.
Inside PC Питера Нортона сделала IBM PC понятными и интересными сотням тысяч читателей. Неизвестно, как сложилась бы судьба персоналки от Big Blue (прозвище IBM), если бы не эта книга, написанная живо и доходчиво.
Не все яркие и талантливые описания принесли предмету своего интереса бешенный успех. Особенности текущего момента и потенциальная востребованность описываемых технологий не менее важны для успеха. Но то, что описывается серо и скучно, часто остается невостребованным и забытым.
2. Ярко и захватывающе
Перечитайте технологические евангелия прошлых лет, превратившие предмет своего изложения в нечто большее, чем просто компьютерная технология, и обратите внимание на их общие черты.
Они увлекательны - но без дешевого заигрывания с читателем. В них просто и понятно описываются сложные аспекты технологий, они логичны и последовательны... Одна из причин массового преклонения перед Маками и их операционной системы - документация программиста Inside Macintosh. Первое ее издание. Первые три тома, вышедшие в середине 80-х.
Классическая операционная система первых Маков описана в них подробно и захватывающе. По мере развития операционной системы и добавления в нее новых технологий, выпускались дополнительные тома - они тоже были написаны ярко и красиво, но за редким исключением изложенное в них было всего лишь продолжением, предполагающим знакомство читателя с первыми томами комплекса документации.
Этот недостаток исправили - новый Inside Macintosh, в количестве десятков томов крупного формата, был менее захватывающим (увы, авторам уже не надо было никого ни в чем переубеждать), но написан был ясным и понятным языком.
Переход на новую неклассическую Mac OS был настолько трудоемок и стремителен, а сам предмет настолько сложен, многопланов и разнообразен, что вплоть до сегодняшнего дня техническая документация остается... одной из проблем Mac OS X. За последние 3-4 года в этом направлении компанией проделана большая работа, и ситуация исправляется, но...
Отдел технической документации Apple пишет в основном для тех, кто уже знает Mac OS X и умеет в ней ориентироваться. Наибольшее внимание уделяется новым технологиям и изменениям в старых. С некоторых пор, пишется докуменатция ярко и талантливо, но новичку разобраться во всем этом, увы, довольно непросто.
Слишком обширен материал, и его становится все больше. Система быстро развивается и совершенствуется. Приходится уважать приоритеты. Самое важное - конкурентоспособность тех, кто на самом острие. Кто пишет и улучшает программные продукты, имеющие судьбоносное значение для платформы.
На Западе все не так безнадежно. Новичкам (и "продвинутым любителям") адрессована целая библиотека книг по программированию в Mac OS X, в основном в Cocoa. Среди них много ярких и увлекательных. Российским пользователям Маков повезло меньше. На пути россиян к Cocoa - цена западных книг (они значительно дороже) и язык.
Кроме того, россияне почти ничего не знают ни о книгах, издаваемых по этому вопросу на Западе, ни о самом Cocoa, ни о том, насколько просто сделать в нем первые шаги, приручить его, и заставить работать на себя. Серьезно: Мак можно сделать полезнее едва ли не на порядок, если знать как.
Нужен проводник...
3. Три важных отличия
Почему разработка программного обеспечения для Mac OS X достойна стать хобби самых широких кругов маковских пользователей? Более того, я считаю, что если бы многие из тех, кто все еще не готов приобретать Мак, изменили бы свое решение, узнай они получше о содержимом поставляемого комплекта.
Чем этот комплект отличается от джентельменского набора, поставляемого с каждым компьютером "от приличного производителя"?
Во-первых, с каждым новым Маком покупатель получает, помимо прочего, DVD-диск, который чаще всего откладывается в сторону и игнорируется - а напрасно. Это Developer Tools. Его сжатое компрессорами содержимое "тянет" примерно на Гигабайт. Инструментарий, за ту же самую "предельно круглую" сумму, в любой момент можно сгрузить и с сайта Apple (чтобы обновить). Был бы скоростной доступ к сети.
Инструментарий разработчика класса Xcode (еще одно название Developer Tools) обычно стоит сотни, а то и тысячи, долларов. Xcode, в соотвествии с неплохой традицией Apple, несет в себе с десяток немедленно готовых к использованию сред разработки - вместо того, чтобы искать все это в сети, тратить время на правильную установку и конфигурирование многочисленных "запасных частей", пользователь тратит 15 минут на установку и настройку всего сразу. Ruby, Python, Perl, Lex, Yacc, Bison, sqLite и многое-многое еще. Естественно, C, C++, Objective-C, Objective-C++, Java...
Во-вторых, Developer Tools, будучи установлены на ваш компьютер, добавляют в операционную систему огромное число всевозможных полезных программок, библиотек и утилит командной строки. Самыми технически оснащенными пользователями всегда были пользователи разных "юниксов". Mac OS X - тоже "юникс". Внутри, но зато самый настоящий.
"Леопард" входит в очень узкий и элитный круг сверхпрофессиональных операционных систем, официально сертифицированных как полностью соотвествующие самой последней версии спецификаций "настоящего Юникса". Этот "Юникс" всегда "под капотом" - но чтобы получить к нему полный доступ, необходимо установить Developer Tools.
Рецепты простого решения сложных проблем, которых много в сети, часто содержат обращения к командной строке и к этим самым утилитам.
В-третьих... Настоящее программирование - это всегда экстрим. Заоблачный и опасный. Как настоящий, профессиональный альпинизм, профессиональное программирование не терпит дилетантов, и жестоко мстит за ошибки, и забирает почти всю жизнь. Но прогулка по горным тропам, с которых открываются невероятные дали и прекрасные виды - совсем другое.
Xcode предоставляет любителю замечательную (беспрецедентную) инфраструктуру для таких "прогулок". Был бы проводник. Первые шаги в познании любого сложного предмета всегда нелегки. Зато потом, когда они уже позади, редкий путник не поразится красоте и элегантности открывшегося мира. Ощутив собственную мощь, так трудно остаться равнодушным.
По затягивающей силе Cocoa (одна из сред разработки в составе Xcode) иногда сравнивают с платформой Макинтош. Те, кто "просек фишку" в этой среде, заболевают ею... Ни слова больше. Кроме одного небольшого замечания: первые шаги в Cocoa, сделанные в компании хорошего проводника - это удовольствие, которое нужно пережить.
4. Зачем?
Очень многие виды прикладного программного обеспечения для Mac OS X распространяются... бесплатно. Тысячи и тысячи любителей выкладывают плоды своего вдохновенного труда в сети. Небольшая часть этих плодов оказывается очень интересной самым широким кругам владельцев Маков. Эти бесплатные программы умеют делать что-то безусловно нужное и полезное, и делают это что-то красиво и хорошо.
Пользователи Windows обычно вынуждены платить за подобные инструменты, либо нарушать закон.
Самые интересные широким кругам пользователей программы совершенствуются и развиваются, пока в один прекрасный момент их очередная (волнующе интересная) версия не меняет свой статус и не становится коммерческой. Успех в этом случае почти гарантирован - без всякой рекламы. За последние годы, сотни любителей прошли путь от новичка до успешного независимого программиста. Талант - это один процент способностей + девяносто девять процентов труда.
Откуда взялись сотни тысяч программистов-любителей в наш тупой и ленивый век?
Как выяснилось, не такой уж век тупой и ленивый. Просто программировать в Windows скучно, а освоиться с каким-нибудь "юниксом" для простого человека сложновато. Mac OS X - совсем другое дело. Но я отвлекся.
На Западе, широкий интерес к Cocoa возник вскоре после выхода в свет первых коммерческих версий Mac OS X. Вскоре появились и книги "для новичков". Несмотря на то, что стоимость книг на Западе в разы выше, чем в России (тамошние авторы получают за свой труд суммы, которые можно назвать гонорарами), и несмотря на то, что "на литературе о средствах разработки ничего не заработаешь", некоторые из этих книг имели успех, и даже переиздавались.
Переиздавались с дополнениями и главами о самых новых технологиях, применение которых вызывает трудности даже у профессионалов.
Косвенный показатель популярности этих изданий - они становятся все дороже, и их все больше.
Вот только в России тех, кто попробовал свои силы в самой увлекательной компьютерной игре всех времен и народов - единицы. Потому что найти в ближайшем книжном "проводника в мягкой обложке", и пройти с ним безопасными тропками в сказочную страну фантастических возможностей... у нас пока нельзя.
5. Что делать?
Издатели! Давайте попробуем?