Частый вопрос — под какую версию Mac OS X нужно писать программу? Новые версии OS X уж очень соблазнительны для разработчиков, потому что включают кучу новых API и упрощают многие аспекты разработки. Стоит ли бросать поддержку старых систем или все еще тратить на них драгоценное время программистов?

Обычная практика — писать под текущую + предыдущую версию: когда вышла 10.5, можно было бросить 10.3 и писать под 10.4 и 10.5. Но так как 10.5 был гигантским прыжком в плане девелоперских вещей, многие даже не стали поддерживать 10.4.

В конце августа вышел Snow Leopard. Нужно ли еще писать под Leopard или можно сразу под 10.6?

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

Давайте посмотрим на статистику. В приложения Omni Group встроена хитрая система обновлений, которая отправляет на их сервер информацию о системе. Они делают полезное дело — выкладывают эту статистику на свой сайт:

Статистика Omni Group

Как видно, меньше чем за месяц с выпуска, 10.6 уже занимает 23.5% (и, как видим по графику, отнимает большую долю у Leopard, но не очень большую у Tiger).

Джон Грубер вчера опубликовал статистику посещений Daring Fireball:

daringfireball-stats.png

У него Snow Leopard уже обогнал Leopard (Intel). Его статистика, конечно, нерепрезентативна и не включает PPC, но все же — с релиза прошло меньше месяца.

Мои цифры скромнее, чем их, но своих клиентов надо знать. Посещения сайта Coding Robots по версиям Mac OS X:

codingrobots-stats.png

(Круговые диаграммы — отстой. Никогда не используйте их!)

Итак, по статистике видно, что внедрение Snow Leopard идет полным ходом.

Intel

Так как Snow Leopard не работает на PowerPC, мы можем избавиться от целой архитектуры (или двух — ppc и ppc64)! Теперь не надо иметь два макинтоша — PPC и Intel — для тестирования приложений. Это большой плюс для разработчиков.

Кстати, PowerPC, по статистике Omni (см. Hardware > CPU Type), осталось не так уж и много:

  • Intel — 89.9%
  • PowerPC — 10.1%

Последние маки на PPC были проданы в первой половине 2006 года — больше трех лет назад. Я считаю, что теперь, когда Apple сама прекратила разработку OS для PowerPC, нет смысла писать новые приложения для этой архитектуры, тем более, что эти 10% рынка скоро исчезнут совсем.

Snow Leopard

В 10.6 много улучшений и новых API. Смотрите, например, AppKit Release Notes. Кроме того, в Snow Leopard пофиксили много багов, но для совместимости многие из этих исправлений включаются только при сборке под 10.6.

Про Grand Central Dispatch и блоки в C/Objective-C уже много написано, поэтому не буду повторяться.

В Snow Leopard стал лучше Xcode (конечно, его можно использовать и для разработки хоть под 10.4).

А еще… а еще… в 10.6 появился «pane splitter» для NSSplitterView!

pane-splitter.png

В общем, мое мнение такое: новые приложения нужно писать под 10.6. Во-первых, очень много нового в API нельзя игнорировать. Во-вторых, можно скинуть целую архитектуру. В-третьих, пока вы допишете программу, Snow Leopard уже будет занимать огромную часть рынка.

А еще есть известная фраза (о правдивости судить не буду): те, кто не обновляется до свежей операционной системы, не покупает софт. (Можно тоже самое сказать и про hardware, наверное).

Примеры программ, работающих только на 10.6, уже есть — Acorn 2.