?

Log in

 
 
08 October 2012 @ 01:28 am
Бизнес-стратегии в языках программирования или что общего у Haskell и Apple  
В последнее время я стал достаточно плотно интересоваться маркетингом и бизнесом вообще и как-то дошел до такого понятия как бизнес-стратегия.

По большому счету, успешных бизнес-стратегий всего три:

  1. лидерство по издержкам (минимальная себестоимость и цены)

  2. дифференциация товаров ("think different", "не такой как все", т.е. отличие по качеству, уровню обслуживания, технологическому превосходству или высокой ценности для покупателей)

  3. фокус — обслуживание узких рыночных ниш.


Другие стратегии, или различные комбинации перечисленных, не работают. Т.е. нет смысла делать супер-продукт или нишевый продукт задешево, или делать нишевый продукт супер-крутым. Если, конечно, у вас нет магических артефактов типа "+$10M от инвестора" или "+24 часа в сутках". Более подробно можно посмотреть например здесь.

Оказалось, что с помощью анализа бизнес-стратегии можно также понять и спрогнозировать степень успешности языков программирования.

Поехали.

Erlang. Нишевый язык для телекомов и различных распределенных сетевых подсистем. Четкая бизнес стратегия и явный успех в этой нише. Но использование его для создания компиляторов или числодробильни вряд ли приведет вас к успеху.

PHP. Лидерство по издержкам. Как и со многими дешевыми продуктами, конечная цена поддержки и развития может оказаться выше (скупой платит дважды), но никак нельзя отрицать успешность PHP.

C# и Java также лидеры по издержкам. Учитывая количество программистов, библиотек, инструментов, "мейнстримность", многим кажется (и зачастую так оно и есть), что использование этих языков наиболее дешево (хотя не забываем, про "скупой платит дважды").

C был в свое время лидером по издержкам (дешевле, чем писать на ассемблере или писать кучу привязок к ОС), но с появлением "продуктов-заменителей" потихоньку становится нишевым языком (embedded, OS, runtime). Поскольку в некоторых нишах ничего, кроме Си нет, он явно будет в них успешным.

C++ потерял позиции лидера по издержкам (было легко перейти на него с Си), и я не вижу, какую серьезную нишу он мог бы теперь занять, кроме поддержки старых проектов.

OCaml — помесь всех трех стратегий. Относительно дешевый вход (есть императивное программирование, точки с запятой, while/for, объекты, когда-то была сравнительно неплохая скорость работы), при этом different и, заодно, нишевый (все-таки создавался для разработки Coq). В итоге язык так и не стал успешным. Недостаточно дешевый и недостаточно different.

Haskell. Явно стратегия "think different". И явный успех. Самый популярный функциональный язык (как бы его создателям не хотелось обратного). Посмотрите объем mail list-а, hackage, число статей. Кому-то может показаться, что Erlang более популярен, но это вызвано его нишей, где проекты обычно достаточно масштабные и громкие, однако само число и объем этих проектов вряд ли дотянет даже до части hackage.

Хаскелл дорогой, как и многие "think different"-продукты. А известная фраза "avoid success at all costs" не дает сделать его дешевым (ведь смешивание стратегий приводит к провалу).

И самое интересное — продукты с данной стратегией не оставляют никого равнодушными. Их либо любят, либо ненавидят :)

Я долгое время не мог понять причину некоторых агрессивных атак на Хаскелл. Ну не понял человек хаскелл за полчаса — а зачем так кричать в жж-шечке? Не увидел каких-то явных для себя преимуществ — не используй, чего разглагольствовать? А, оказывается, это всего-лишь стандартная реакция на "think different". Теперь можно не удивляться )

Т.е. Haskell — это Apple среди языков программирования. Отсутствие изменяемого состояния — отсутствие USB на iPad. Побочные эффекты через монады — музыка через iTunes.

Сначала люди удивлялись/недоумевали/злились, что на iPad нет USB. А сейчас я ума не приложу, для чего он там может понадобиться. Думаю, то же самое произойдет в программировании с использованием переменных везде, где ни попадя.

Люди также злились, что какой-то геморрой с закачиванием mp3-шек. А теперь многие из покупающих музыку в iTunes возможно и не знают, что такое mp3. Думаю, будет неплохо, если в будущем программисты будут изначально знать, что за побочные эффекты надо платить (к тому же с iTunes, тьфу, монадами это так удобно ;).

Интересная получилась аналогия.

А что касается F#, Scala, Clojure и прочих "новых языков поверх существующей платформы". Я, кажется, понял, что мне в них не нравится: они пытаются одновременно быть и different и дешевыми (с легким входом). Они, конечно, привлекут к себе часть клиентов, но вряд ли смогут сделать такой же красивый дизайн как у Haskell, оставаясь при этом дешевыми (с легкой интеграцией с существующей платформой).

В общем, либо делайте дешево (мейнстрим с легким входом), либо по настоящему different (но понадобятся неординарные дизайнерские способности), либо для узкой ниши (только не совсем уж узкой). В любом другом случае успешный язык вам не создать.
 
 
 
dmzlj on October 8th, 2012 04:51 am (UTC)
и думай теперь, то ли полюбить внезапно эппл и анальное зондирование, то ли отказаться от Haskell
Vladimir Shabanov: греция покупался 07vshabanov on October 8th, 2012 11:35 am (UTC)
))) Думаю ничто не мешает одновременно пользоваться продуктами с разной бизнес-стратегией.
VoidEx: eyevoidex on April 9th, 2013 05:42 am (UTC)
ну анальное зондирование таковое только если за него денег отдаешь

хотя если считать, что за хаскель платишь мозгами (которых, правда, меньше не становится), то можно считать, что хаскель не юзают только умственные нищеброды

Edited at 2013-04-09 05:47 am (UTC)
Vladimir Shabanov: греция покупался 07vshabanov on April 9th, 2013 09:01 am (UTC)
Такое иногда всплывает: "Вы просто не можете себе позволить использовать эппл, поэтому вы его так и не любите" )
zerthurd: бородаzerthurd on June 18th, 2014 09:32 am (UTC)
Я ведь раньше хаскель ругал, а как пересел на макось, так сразу начал его в продакшене использовать.
lavir2 on June 18th, 2014 09:37 am (UTC)
Так и знал, что все хаскеллисты — геи.
zerthurd: бородаzerthurd on June 18th, 2014 11:23 am (UTC)
Эппл уже давно не только для геев девайсы производит. Им прибыль нужна, а не think different.
Vladimir Shabanov: греция покупался 07vshabanov on June 18th, 2014 12:17 pm (UTC)
Не все. Первый интерпретатор Perl6 был написан на хаскелле транссексуалом (что, в принципе, логично ж)
Alexey VeselovskyAlexey Veselovsky on October 8th, 2012 02:55 pm (UTC)
Не-е. Среди ЯП apple это python: низкий порог вхождения, няшный интерфейс (ака синтаксис), разработчики приложений (либ) всеми силами стараются следовать гайдлайнам (pythonic).

Ну а то что оно концептуально какашка (динамическая типизация) и реализация страдает (с многозадачностью проблемы (привет GIL), ну и для аналогии привет многозадачность в iOS. Причем и там и там адепты частенько покрикивают что многозадачность не нужна) - это все мелочи.

Да, и к тому же доля что у яблока что у питона вполне растет.

А Haskell... Что haskell? Haskell никогда 10-25% рынка не отхватит просто потому, что порог вхождения велик, а задачи, которые решаются в 95% программистов, много проще чем сам haskell (точнее чем коцепции которые вокруг него наросли). Да и среди всего рынка даже у 10% программистов величина мозги*интерес слишком мала чтобы haskell ждал успех на уровне apple.
Vladimir Shabanov: греция покупался 07vshabanov on October 8th, 2012 04:43 pm (UTC)
Ну скорее питон -- это тоже "лидерство по издержкам". Хоть там и пытаются тоже сделать типа "дизайн". Но дизайнер из Гвидо не очень ) Он скорее как раз пытается оставлять "лидером по издержкам" с дешевым входом.

> А Haskell... Что haskell? Haskell никогда 10-25% рынка не отхватит просто потому, что порог вхождения велик

В принципе, в сфере персоналок у Apple доля тоже меньше 10%. С планшетами мощно получилось потому что у них и издержки невелики (аналогичные iPad андроидные планшеты стоят столько же) и дизайн ничего. Про телефоны правда ничего не могу сказать -- мне слишком дорого зрение, чтобы пользоваться смартфоном.
Rigidus: irigidus on October 8th, 2012 04:22 pm (UTC)
Я бы добавил еще стратегию OpenSource и тогда мой любимый CommonLisp - как раз в нее попадает. Берешь его и делаешь себе хоть низкие издержки, хоть эксклюзив, хоть нишевый язык, но при одном условии - ты можешь сделать это сам. О популярности при этом речь не идет
Vladimir Shabanov: греция покупался 07vshabanov on October 8th, 2012 05:24 pm (UTC)
Это как раз про артефакты "+24 часа в сутках" или "бесплатное время". С ними можно пилить что угодно.

А так лисп -- это тоже явно из "think different" и его также либо любят либо ненавидят. Правда, дизайн лиспа нравится все же меньшему числу народа, чем дизайн хаскелла.
Serguey Zefirov: with Cat The Catthesz on October 10th, 2012 05:09 am (UTC)
Понял, что меня смущает.

Я не могу придумать/назвать язык, который бы не подпадал под эту классификацию.

Это означает нефальсифицируемость подхода, что, в свою очередь, мешает им пользоваться.
Vladimir Shabanov: греция покупался 07vshabanov on October 10th, 2012 09:25 am (UTC)
Вообще есть куча языков как раз не попадающих ни в одну из этих стратегий. Тот же OCaml -- всего по чуть-чуть. Явно никуда не идет. И непопадание под классификацию является признаком неуспеха.

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

С другой стороны, тут все как в какой-нить психологии, если успешность еще можно как-то формализовать (число пользователей/число и объем написанных программ), то качество (дизайн) языка свести к какому-то числовому параметру трудно. А это нужно в оценке например того, действительно ли different или нет.

Т.е. критерии скорее для оценки на глаз или для позиционирования языка. Но строгой наукой я бы их не назвал.
Serguey Zefirov: with Cat The Catthesz on October 10th, 2012 11:27 am (UTC)
Психология редко фальсифицируема. Психоанализ, например, не фальсифицируем.

Далее, твоя теория включает и объяснение успешных языков, не подпадающих под стратегии (и даже даны возможные причины этого успеха).
Vladimir Shabanov: греция покупался 07vshabanov on October 10th, 2012 12:55 pm (UTC)
> Психология редко фальсифицируема. Психоанализ, например, не фальсифицируем.

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

> Далее, твоя теория включает и объяснение успешных языков, не подпадающих под стратегии (и даже даны возможные причины этого успеха).

Теорию придумал не я, я ее просто на языки программирования положил, т.к. они тоже в своем роде продукты. Теория не объясняет успех языков, не попадающих под нее -- она просто применима на нормальном рынке, без преимуществ типа неограниченных ресурсов.

Достаточно сделать с ограниченными ресурсами успешный язык, не соответсвующий ни одной стратегии, и вуаля -- теория опровергнута.

Для меня наиболее ценно здесь:

1. Продукты с дифференциацией порождают споры. Кто-то их любит, кто-то ненавидит. Мне было непонятно, почему некоторые так отчаянно наезжают на Хаскелл, а теперь понятно, что это норма для таких продуктов.

2. Не надо мешать стратегии -- решил делать different, не надо пытаться упрощать язык для чайников; делаешь для чайников -- не выпендривайся с фичами; делаешь нишевый -- вот и делай нишевый (или делай уже другой продукт, а то нишу потеряешь).

3. Об этом я упомянул вскользь -- дешевые продукты на самом деле делать тяжело (сложно выиграть ценовую войну с крупными корпорациями), но при этом их легко вытесняют более дешевые продукты (текущий мейнстримный язык часто меняется). Так что нет смысла делать мейнстрим-язык (или надеяться, что какой-то язык станет мейнстримом) -- там дерутся корпорации, да и недолго он будет мейнстримом. Кстати, Хаскелл станет мейнстримом, когда мейнстримом станет ФП (благодаря стараниям корпораций) и сложность входа понизится (с другой стороны, к этому моменту возможно появится более удобный ФП язык).
Влад: pic#123384956vlad_lisovsky on June 18th, 2014 12:47 pm (UTC)
ох, а к какой категории вы Ruby отнесёте? я бы ко 2-й, отличный язык, приятно писать код, крутые либы для веба и не только. Хотя я предпочитаю Ansible для управления конфигурациями.
Vladimir Shabanov: греция покупался 07vshabanov on June 18th, 2014 12:57 pm (UTC)
Я с руби не знаком. Скорее всего, к 1-й. Хотя, возможно, всего по чуть-чуть.