| « Adobe Flex and AIR Pre-Release Tour | С Новым Годом! » |
Проприетарность это зло?
В мире программного обеспечения всегда ведутся дискуссии (или даже священные войны) между сторонниками проприетарных решений и решений, которыми владеют все (или никто), то есть владельца не имеющими. На самом деле тут все довольно сложно с точки зрения того, что является проприетарным, а что нет. И что влечёт за собой проприетарность.
Начнём с того, что любой программный проект или продукт или спецификация или стандарт имеют своих владельцев. И несмотря на то, что пользователи могут тем или иным способом принимать участие в создании продукта, в большинстве случаев они не имеют возможности принимать решения. Либо они вносят модификацию, становясь тем самым владельцем нового продукта.
Так или иначе, но чаще всего проприетарными продуктами (в общераспространённом смысле) можно считать те продукты, которыми владеют отдельные корпорации (компании, фирмы, частные лица). Которые, в общем случае, при создании программного продукта руководствуются желанием на нем заработать. Если речь идёт о спецификации или стандарте от такой корпорации, то её (спецификации) публикация так или иначе преследует какие-то коммерческие цели.
Проприетарный продукт вполне может быть бесплатным (примеры: Adobe Flash Player, Acrobat Reader). Проприетарный продукт может иметь открытые исходники (пример: Adobe Flex).
Так чего же боятся противники проприетарных решений и почему выступают за непроприетарные решения?
Ну, во-первых, владелец решения может в зависимости от своих текущих коммерческих интересов, политики и прочего изменить лицензию пусть даже бесплатного или опенсорсного продукта. И не все готовы делать ставки на такие решения (пусть даже из соображений эстетских, а не с точки зрения здравого смысла).
Во-вторых, обладатель проприетарного продукта может манипулировать пользователями в угоду своим интересам, ущемляя их права. Например, производитель какого-нибудь проприетарного браузера может решить запретить использование в нем всех других плагинов, кроме его родного. Производитель RIA-рантайма (или виртуальной машины) может решить ограничить используемые интернет-протоколы так, чтобы можно было взаимодействовать только с их проприетарным сервером. И пользователь никак напрямую не сможет повлиять на такое решение.
Также проприетарность приводит к появлению различных несовместимых продуктов, делающих одно и то же. Например, Adobe Flash и Microsoft Silverlight. И мы не сможем использовать в нашем Silverlight-приложении готовый модуль, уже написанный на базе Flash-платформы. Нам нужно будет писать этот же модуль под Silverlight. Если бы создание RIA-рантайма не преследовало целью коммерческие интересы корпорации, то при создании единого рантайма можно было бы удовлетворить интересы всех. И получить один мощный и хороший во всех отношениях рантайм. Реально?
Большим злом является также приоритет одной группы пользователей перед другой. Например, технология может предоставлять больше возможностей дизайнерам, а не разработчикам. Или вендора могут интересовать лишь корпоративные клиенты, а не независимые разработчики или маленькие студии. И регулятором этой ситуации могут быть лишь продажи (бабло). Именно в этой области зачастую расставляются приоритеты, все решают (порой ошибочно) маркетологи. Противникам проприетарных решений кажется, что лично они могут повлиять на направление развития интересующего их открытого продукта. Но на практике это чаще всего тоже иллюзия, просто более приятная для восприятия.
Итак, противники проприетарных решений считают, что идеальным средством создания насыщенных интернет-приложений (RIA) является AJAX, заслуживший тем самым свою популярность. Действительно, подавляющее большинство популярных AJAX-фрэймворков открыты. Да и довольно глупо делать их закрытми: JavaScript не компилируется, и мы всегда можем посмотреть исходный код любого фрэймворка. Так что даже проприетарность AJAX-фрэймворка от Adobe (Spry) не такое уж большое зло.
Основой RIA-приложений на базе AJAX является HTML и CSS - открытые стандарты, которые, ввиду их открытости, реализованы довольно большим числом браузеров. Стандарт открытый (будем иногда использовать слово “открытый” как антоним слова “проприетарный” хотя это не совсем точно), единый для, тем не менее, ряда продуктов, выполняющих одну и ту же роль: браузеров. Которые представляют собой рантайм для HTML/CSS/JavaScript. И вот тут мы получаем ужасающую картину: идеалистическая идея, заключающаяся в том, что открытость влечёт удовлетворение интересов всех и, тем самым, к отсутствию аналогичных продуктов от разных вендоров, имеющих несовместимости, эта идея проваливается. Потому что каждый начинает мнить себя лучше других по части воплощения стандартов. А некоторые даже пытаются за это брать иногда деньги.
И, как следствие, свое понимание стандартов, введение новых стандартов, которые становятся стандартами де факто и вынуждают конкурентов воплощать их тоже. Но поскольку эти стандарты доморощенные, то и воплощение еще более несовместимо.
В итоге разработчикам приходится совмещать несовместимое, а пользователям иногда страдать от того, что они получают не совсем то, что сосед. И ему совсем непонятно, почему он должен менять браузер, к которому привык, на другой, который, вроде, лучше соответствует каким-то мифическим стандартам, до которых пользователю, по большому счету, дела нет никакого.
Теперь сравним RIA-платформу (условно) AJAX с Adobe Flex. В качестве рантайма мы имеем Flash Player, который гарантированно только один (от Adobe; Gnash мы во внимание принимать не будем: у него другие цели, да и никто ничего не обещал там). Он гарантированно совместим. Разработчик гарантированно получает возможность адекватного запуска своего приложения на других машинах других пользователей (почти всегда). Но плеер совсем не открыт (вернее открыт, но не совсем: вспомним Adobe Tamarin). А дальше имеем Flex-фрэймворк и Flex SDK. Которые с версии 3 будут полностью открыты.
То есть мы, как и в AJAX, сможем создавать свои фрэймворки (а оно нам надо?). Другое дело, что ожидаемое появление альтернативных фрэймворков и SDK - та же палка о двух концах. Но если вы желаете ветра свободы, то корпорация делает такой подарок (зачем? Забота о пользователе, конкурентное преимущество, конкуренция).
Теперь вернёмся к открытым стандартам. Все мы знаем, что нас будет ждать JavaScript 2, который базируется на стандарте ECMA-262, и для реализации которого в браузерах Mozilla Adobe передали в опенсорс виртуальную машину ActionScript, тоже базирующегося на этом стандарте (проект Tamarin). Представим тот сладкий миг выхода нового браузера Firefox с поддержкой JavaScript 2. Вместо прототипов - нормальные классы. Рай для написания приложений. Но сколько времени придётся ждать того момента, когда мы сможем от экспериментов перейти к коммерческим приложениям? Долго. Нужно дождаться как минимум реализации JavaScript 2 у других браузеров. С их несовместимостями.
Выход же новой версии Flash-плеера значительно ускоряет процесс перехода. Тем более, что вендор (Adobe) добился от своего проприетарного рантайма механизма безболезненного обновления.
Есть еще другой момент почему открытые решения замедляют прогресс. Это момент согласования. Ввиду того, что коммерческого интереса часто не преследуются, то пытаются учесть интересы всех заинтересованных лиц. Часто эти заинтересованные лица представляют собой конкурентов, имеющих противоположные интересы. Из-за этого долгий процесс обсуждения и реализации и, в большинстве случаев, монструозный результат.
Именно этого я боюсь ожидать от JavaFX. Что это будет долго, медленно (все с точки зрения разработки финальной версии самого JavaFX) и не вполне нацелено на решение конкретной задачи.
Но это, естественно, не правило, но нередко встречаемая закономерность.
Вдобавок, с точки зрения инноваций, корпорации зачастую могут позволить вложить больше средств и получить более интересный результат. Да и конкуренция - прекрасный стимул для инноваций. В настоящее время существует достаточное количество стандартов, которые изначально были сугубо проприетарными и стали стандартами де факто благодаря конкурентной борьбе.
В общем, это, конечно, интересная тема для дискуссии. Которая, думаю, продолжится (в комментах и других блогах). Но, как вывод, хочу сказать, что считать проприетарные решения абсолютным злом, мне кажется, безосновательно. Также безосновательно считать открытые решения абсолютным добром. Идеалы нечасто совпадают с реальностью, деление которой на черное и белое может однажды привести к разочарованиям. Мир сложнее. И нельзя придумать один ответ на все вопросы (даже если это указательный палец в небо).
Нам придётся в каждой конкретной ситуации решать, что же нам надо, чего мы ждём. И выбирать то решение, что лучше подходит в конкретном случае. А оно будет либо проприетарным, либо открытым. А, может, оно будет комбинированным.
Не надо программировать себя. Будем мудрыми.
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
11 comments, 2 trackbacks
По мере этого конкурентного давления монополисту приходится на него реагировать и предпринимать ответные меры, иногда успешно, иногда безуспешно. С моей личной точки зрения Adobe всегда был достаточно корректным и грамотным монополистом (Photoshop, PDF, FlashPlayer (он конечно скорее макромедийный, но логика та же)). Адоб будучи монополистом не гнался за прибылями и делал продукты бесплатными для самых конечных и массовых потребителей (тех, кто читает pdf и смотрит flash). Такая политика обеспечила долгий период "разумной" монополии, но с другой стороны не приносила денег и не давала ресурсов для конкурентной борьбы. Соответственно Майкрософт, который всегда брал деньги за свою монополию, саккумулировал достаточные средства для выхода на тот же рынок, несмотря на его низкую удельную маржинальность. То есть Майкрософт вынужден играть по правилам, заданным в этом сегменте Adobe (делать бесплатные плагины, открывать код и т.д.) - это проявления конкурентной борьбы а вовсе не "доброты" и любви к людям. Низкая маржинальность рынка при высоких затратах на вход - это причина почему тот же JavaFX (как отркрытое решение) так медленно на него входит. Ну банально нерентабельны эти opensource вложения (по крайней мере на этом этапе и в этих условиях). То есть подобным opensourc-ом могут заниматься только сверхэнтузиасты, готовые делать огромные усилия из одного только принципа.
Если говорить про рынок RIA то тут исторически доминирует Адоб (& Макромедия) и Майкрософту приходится подстраиваться под ситуацию которую сформировал лидер. Но вход этого сильного игрока естественно вынуждает Адоб еще ниже опускать планку и еще ниже опускать маржинальность рынка. Захочет ли еще кто-то выходить на этот рынок в таких и без того невыгодных условиях. Не думаю.
По поводу конкуренции MS и Adobe в сегменте RIA. Конечно наступление MS всех взбудоражило. Большие бюджеты ( а как я писал выше Адоб своей умеренностью в монополизме не монетизировал это направление и не сколотил кокнкурентных капиталов) конечно играют роль. Но надо видеть не только локальные действия но и перспективу. Для MS рынок RIA не основной. MS надо доминировать везде - и на рынке операционок и офисных пакетов, и серверов, и баз данных, и корпоративных приложений, и браузеров, и мобильных устройств, и сообществ, и поиковиков, и там и сям. Временная концентрация усилий и средств MS на сегменте RIA - хотят они или нет - временное явление. Через год-два MS увлечется какой-то другой схваткой на другом поле и темпы развития Silverlight заметно снизятся, опять же учитывая низкую маржинальность сегмента. Для Adobe же это естественный сегмент и уходить из него просто некуда.
Это то, что касается проприетарной конкуренции.
Что же касается открытости - мое ощущение, что открытость, и в частности opensource, в каком-то смысле теряет свои позиции.
Когда opensource проектов были единицы они были в новинку - это значительно привлекало внимание и мотивировало участвовать. По мере же увеличения количества опенсорса тут тоже началась суровая конкуренция - только не за деньги, чтобы оплатить разработку, а за разработчиков, которые бы бесплатно эту разработку вели. А поскольку ценовые войны здесь невозможны - и так все бесплатно, то привлечь внимание к твоему опенсорсу и привлечь достаточное количество разработчиков очень нелегко. Оттуда возникает ситуация когда миллион начатых мелких опенсорсов так и умирают младенческой смертностью. Отсюда вывод - для того, чтобы в современных условиях вести успешный опенсорс - надо УЖЕ иметь достаточное количество потребителей, заинтересованных в движке. Вот тут и возникает обратно роль проприетарности и роль корпораций. Только хорошенько вложившись и создав за счет инвестиций качественный и привлекательный продукт, можно его делать открытым - тогда и будет масса желающих его улучшать. Какой от этого толк корпорациям? Тут действительно надо проявлять креатив и понимать, как грамотно монетизировать свои продукты - как-то ведь нужно отбивать инвестиции. Сторонников полной открытости и т.д. я не готов поддержать полностью. Глобальная ситуация меняется - корпорации из бездушных буржуазных машин выжимающих прибыль превращаются в другие социальные организмы - они превращаются в проектных лидеров. Они берут на себя ответственность и концентрируют усилия по реализации определенных социально значимых проектов (удобный софт - объективно востребованный проект). Рациональное общество понимает, что значимые проекты надо поддерживать и финансами и усилиями и будет концентрироваться вокруг тех корпораций, которые наиболее явно и последовательно будут двигаться в этом направлении (Государство кстати тоже проектно-ориентированная корпорация). Остальные корпорации просто вымрут в конкурентном давлении. Это конечно мое полное ИМХО, не планировал так многословно писать, но почему-то пост Константина заставил высказаться
Также проприетарность приводит к появлению различных несовместимых продуктов, делающих одно и то же. Например, Adobe Flash и Microsoft Silverlight. И мы не сможем использовать в нашем Silverlight-приложении готовый модуль, уже написанный на базе Flash-платформы. Нам нужно будет писать этот же модуль под Silverlight. Если бы создание RIA-рантайма не преследовало целью коммерческие интересы корпорации, то при создании единого рантайма можно было бы удовлетворить интересы всех. И получить один мощный и хороший во всех отношениях рантайм. Реально?
Как показывает биология, лучше всего эволюционируют особи находящиеся в постоянной борьбе с неравными (в сильнейшую сторону) противниками/явлениями. Я не думаю что Адоб+Майкрософт могли бы сделать лучше чем Адоб против Майкрософт.
Во-вторых, обладатель проприетарного продукта может манипулировать пользователями в угоду своим интересам, ущемляя их права. Например, производитель какого-нибудь проприетарного браузера может решить запретить использование в нем всех других плагинов, кроме его родного. Производитель RIA-рантайма (или виртуальной машины) может решить ограничить используемые интернет-протоколы так, чтобы можно было взаимодействовать только с их проприетарным сервером.
Какие то у тебя односторониие(ниже распишу) и экстремальные примеры.
В жизни (не только в софте, а вообще в товарах, обществах и прочих сферах) я за проприетарность, во первых я предпочитаю заплатить, а потом иметь моральное и главное юридическое право требовать, во вторых обычно у проприетарностей есть четкое руководство, иногда такое случаеться с опенсорсом (хорошие примеры SVN, SWING, OpenDLNA), но зачастую в я вижу бардак, еще хуже когда разработчики начинают сраться друг с другом, благо такое я видел только 3-4 раза.
Так же нельзя не учитывать, что в бинесе, проприетарные продукты дают больше гарантий нежели неизвестно кому пренадлежащий софт. Если завтра у меня навернеться source-control сервер, я могу потерять 5 месяцев работы, в случае с Меркурием я имею права потребовать компенсации(если конечно проблема была в сорс-контроллере, а не в другом месте).
У флеша корни проприетарные — и это круто! Есть открытые части — и это круто! Потому что флеш — это очень круто
Можно любить делать на флеше веселые и полезные штуки, и одновременно любить делать веселые и полезные штуки на движке браузера. Главное любить, а не ненавидеть
Да, очень хорошо написал. Возникают мысли по поводу, я их попробую бережно взрастить и тут выложить, так как у самого просилась аналогичная статья.
Если же резонно воспринимать Flash как платформу, то твой вопрос можно переформулировать примерно так:
Любой грамотный разработчик на Ассемблере с легкостью освоит .NET, никаких революционных идей там нет, а вот наоборот...сможет ли избалованный халявным функционалом ".NET-программист" сделать два шага в сторону при необходимости в общем случае?
Ну и вопрос становится несколько странен. Хоть речь идет о той же Windows-платформе.
Но я не думаю, что этот тред удобен для подобной дискуссии. Если интересно продолжить - пиши на мыло.
fsb, я вообще веской причины переходить обратно не вижу. Кстати, касательно сегодняшней революционной новости. Обнаружил вчерашнюю статью на ZDNet.co.uk, где основатель и глава Mozilla Europe Тристан Нитот...
Сегодня, 1 мая, в День Весны и Труда, трудящиеся Американщины порадовали нас новыми повышенными обязательствами и перевыполнением плана!