Back to Basic (Visual Basic)

26 май, 2008 - 11:45Александр Пацай

Когда Microsoft почти года назад объявила о том, что в новой версии Microsoft Office для Мака - MS Office 2008 - не будет поддержки Visual Basic, какие только версии не выдвигали аналитики, блоггеры и просто комментаторы в интернете. (Visual Basic - это язык скриптов, с помощью которого можно создавать различные макросы в документах MS Office, для автоматизации действий с документами и данными в них).

Одной из самых популярных версий был вариант о том, что Microsoft, испугавшись потенциального перехода корпоративных пользователей с Microsoft Windows на Mac OS X, решила устроить “козни” Apple, урезав функциональность версии Office для Маков. Ведь известно, что пользуются макросами в основном именно бизнес-пользователи, поэтому если они не смогут использовать Microsoft Office, который является де-факто стандартом в корпоративном мире, у Apple нет никаких шансов (в том случае, если их этот рынок действительно интересует). Но все оказалось значительно проще.

На прошлой неделе Microsoft выпустила первое большое обновление для MS Office под Мак - Service Pack 1 (SP 1), и пролила немного света на будущее Office для платформы Мак. В частности, разработчики сообщили, что поддержка Visual Basic вернется в одну из следующих версий программы (не уточняя, правда, в которую из), и рассказали, что поддержка Visual Basic стала жертвой нехватки времени при переносе Office на Mac OS X для Intel-платформы.
MS Office и так был последним приложением (ок, если быть точным — набором приложений) из широко используемых, которые не были портированы на x86 платформу для Mac OS. Нет, в ней программы из набора Office кое-как работали — благодаря технологии Rosetta, которая позволяла запускать PowerPC приложения на Intel Маках, но все это происходило с потерями производительности, которые только раздражали пользователей. Поэтому Microsoft Office 2004 for Mac сделал для популяризации альтернативных офисных решений (OpenOffice, iWork, NeoOffice, и др.) больше, чем все остальные вместе взятые.

Так что же на самом деле произошло? Дело в том, что Microsoft разрабатывала MS Office for Mac довольно давно, поэтому для разработки использовался ныне уже несуществующий пакет Metrowerks CodeWarrior, который позволял разрабатывать приложения еще для «классической» Mac OS, то есть до версии Mac OS X. С его помощью можно было портировать приложение с «классики» на OS X. Но когда Apple объявила о переходе на Intel-платформу, Microsoft об этом узнала если не со всеми вместе на конференции WWDC в июне 2005 года, то в лучшем случае — за несколько дней до этого. Компанию такой поворот Apple определенно застал врасплох. Ситуацию осложнял тот факт, что Metrowerks Codewarrior не выдержал конкуренции с Apple Xcode и фактически прекратил существование. Оказалось, что любую разработку для одновременной поддержки архитектур PowerPC и x86 надо вести в инструментах Apple (Xcode), а перенести туда проект (особенно такой огромный и старый, как Office) — это отдельная сложность.

А затем было портирование PowerPC приложения на Intel-архитектуру. И не стоит верить Джобсу, когда он рассказывает, что это очень просто. Для новых приложений, написанных исключительно для Mac OS X, используя фреймворки Cocoa — да, иногда достаточно небольших доработок напильником и перекомпилирования. А вот для Carbon-приложений вроде Adobe Photoshop или Microsoft Office это куда сложнее. Так что ничего удивительного, что процесс занимает много времени и сил — мне пришлось выпускать несколько Carbon-приложений для Mac OS X, так что я говорю не понаслышке.

Очевидно, что процесс занимал больше времени, чем Мак-подразделение Microsoft могло себе позволить. И поэтому они начали «отрезать» возможности приложения, которые не являлись обязательными — очевидно, одной из таких возможностей стала работа с Visual Basic. Портировать именно эту часть функциональности и при этом выпустить приложение в разумные сроки не представлялось возможным, и поэтому было решено от нее отказаться. Дальше вы, в принципе, знаете — различные теории заговора о «всемирном зле Microsoft» и недавний анонс Microsoft о том, что VB вернется в будущих версиях программы. Правда, не сообщается, когда именно это будет — так что тем, кому важна поддержка VB, по прежнему прийдется пользоваться версией 2004.

С одной стороны, ошибка компании заключается в плохой коммуникации — Microsoft могла бы более правильно донести информацию о «временном отказе» от VisualBasic в 2006 году — сразу сказать, что это не отказ навсегда, а функциональность вернется в будущем (хотя не факт, что они так действительно думали тогда). С другой стороны, «Real artists ship», говорил Стив Джобс («Настоящие художники выдают на-гора (произведения)»), и лучше выпустить хотя бы часть продукта в обозримые сроки, чем вечно его доделывать.

Тем более, что VisualBasic вряд ли является такой уж must-have функциональностью для большинства пользователей, и, скорей всего, Microsoft провела исследование на эту тему, поэтому решение было принято осознанно. Я довольно часто сталкивался с желанием выпустить «идеальный» продукт, что в итоге приводило к очень серьезным задержкам в выпуске, и все равно что-то было не так. Конечно, нельзя и альфа-версию выпускать в продажу, так как огромное количество проблем оттолкнет пользователей. Куда более важно уметь находить правильный баланс между фанатизмом перфекционизмом и датой выпуска, иначе твой идеальный продукт в итоге может оказаться никому не нужным.

Эта запись размещена  в блоге alexmak.net