Представьте, что вы развиваете OpenSource проект. Что-нибудь для разработчиков – язык программирования, СУБД, универсальную библиотеку общего назначения или какой-то специализированный фреймворк. Вы воплощаете в нем свои идеи и вам кажется, что вы все делаете правильно. Но почему-то пользователей у вашего проекта не много. Почему?
Имхо, это вопрос почти на миллион долларов :) Ведь если узнать причину неудачи, то можно ее устранить. Так что дело за малым – узнать ;)
И вот хороший случай. Лет пять назад на RSDN сформировалась банда ценителей нового “супер-пупер языка на букву Ны” – языка программирования Nemerle. То, что эта банда своим помешательством засрала кучу тем на RSDN-е, сейчас не важно (но упомянуть стоит). Важно другое: как я понимаю, после ухода из проекта Nemerle двух его основателей, двух польских аспирантов, разработка Nemerle выполнялась, в основном, силами RSDN-еров. И вот теперь главный идейный пропихиватель Nemerle в массы озадачился вопросом о том, почему же разработчики не используют его.
На мой взгляд, с основными причинами нежелания разработчиков связываться с Nemerle нужно ознакомиться всем лидерам подобных OpenSource-проектов. Поскольку, если заменить Nemerle на, скажем, Vala, Falcon, Fanton или SObjectizer, то список причин не сильно изменится.
Итак, начинать нужно с голосования: http://www.rsdn.ru/poll/2558.aspx
Самая важная причина (на данный момент) – отсутствие серьезной организации за проектом (~49% опрошенных).
Далее следуют:
- разработчикам хватает возможностей других мейнстрим-инструментов (~27%);
- опасение за то, что уход владеющего инструментом разработчика оставит команду в сложном положении (~23%);
- недостаточно стабильный статус проекта, обилие багов (~23%);
- невозможность использования проекта из-за привязки к конкретной платформе (~22%).
Все это в целом напоминает мне мой собственный список факторов, по которым я оцениваю тот или иной инструмент перед началом его использования. Не важно, будь то скриптовый язык вроде Ruby, или библиотека уровня Crypto++. Все озвученные выше причины будут актуальны.
Вот такая информация к размышлению. Сильно сомневаюсь, что лидеры среднестатических OpenSource проектов в состоянии побороть все эти факторы. Но и успех в этой борьбе (например, попадание под патронаж IBM и выпуск очень стабильной версии), имхо, все равно не будет гарантировать ажиотажного внимания к проекту. Хотя ситуацию наверняка исправит :)
Ну и в завершение укажу ссылку на мега-пост ув.тов.alexeiz, который дал очень хороший список вещей, на которые следует обратить внимание.
В общем, community привлекает community. Хотите иметь community вокруг проекта – уделяйте community не меньше внимания, чем самому проекту. А то и больше.
Мои пять копеек. Я думаю, что значительное кол-во человек в такой же ситуации как и я. Вот он спрашивает про сложность синтаксиса, какие-то сборки, компиляцию, комьюнити. Да мне вообще пофигу. Я без понятия какой там синтаксис и комьюнити. А почему я должен это знать? Почему я вообще должен быть на него взглянуть хотя бы один раз (на всё сейчас, к сожалению, не взглянешь)? Он решает какую-то проблему, которая для меня актуальна? Какую? Я не знаю.
ОтветитьУдалитьКакие проблемы он призван решать? Какая у него ниша? Если это просто "упрощение и ускорение" разработки, то этого сейчас имхо маловато (тем более, что обычно это всё равно шило на мыло).
Взять, например, библиотеку Intel TBB. Если есть задача/проблема распараллеливания для нативного кода, то вариантов-то не особо много (по пальцам одной руки пересчитать, а три года назад вообще один OpenMP был). Тут хочешь-не хочешь а поглядишь на неё.
Имвхо ниша и решаемые проблемы (которые на данный момент должны быть решены не удовлетворительно) один из основополагающих моментов. На вторичных характеристиках можно выехать (например, есть только С библиотека, а эта С++), но только до поры до времени, пока ниша ещё не переполнена.
Дима, ты воспринял все слишком близко к Nemerle. Представь себе другую ситуацию -- тебе нужно распараллелить вычислительную задачу на C++. Ты знаешь про OpenMP, про разные реализации MPI, про Intel TBB. И тут тебе на глаза попадается какая-то библиотека от какого-нибудь Диего Родригеса, которую сейчас используют три с половиной человека. Соответственно, у нее будет почти мертвый и пустой сайт, о ней не будет блогов, не будет IRC каналов. Ее последняя версия, именуемая 0.9.4-beta вышла три года назад.
ОтветитьУдалитьСколько у нее шансов попасть в твой проект? Сколько у нее вообще шансов быть глубоко изученной тобой? А ведь не исключено что конкретно для твоей задачи она подойдет лучше, чем OpenMP/MPI/TBB.
Я имею в виду другое. Представь, что мне не НЕ надо ничего распараллеливать. Сколько шансов у всех этих библиотек тогда?
ОтветитьУдалитьКакой сайт, какая поддержка, когда был релиз, какой синтаксис и скорость компиляции начинает иметь значение, когда это вещь по своей сути кому-то нужна, когда у неё есть ниша. А до этого момента это всё не релевантно. Сколько языков/библиотек/сайтов/продуктов молча умирает каждый год, и у многих из них всё вполне нормально с поддержкой и внешним видом.
>Я имею в виду другое. Представь, что мне не НЕ надо ничего распараллеливать. Сколько шансов у всех этих библиотек тогда?
ОтветитьУдалитьНе, это другой вопрос. Мне интересна проблемы привлечения к проекту именно тех, кому "нужно распараллеливать".
А ты думаешь, что если за Н будет стоять организация, будет документация и он отвяжется от .NET, то сотни разработчиков с RSDN начнут его использовать?
ОтветитьУдалитьЯ даже не уверен, что те 50 человек, которые ответили, что он сырой, вообще в курсе насколько он сырой или нет.
>А ты думаешь, что если за Н будет стоять организация, будет документация
ОтветитьУдалить... то для .NET-а он мог бы стать тем же, чем Scala пытается стать для JVM.
От .NET-а ему бесполезно отвязываться -- он такой нужен только дотнетчикам.
>Я даже не уверен, что те 50 человек, которые ответили, что он сырой, вообще в курсе насколько он сырой или нет.
В этом и фишка -- люди судят о сырости по внешним признакам (встречают по одежке). Если бы человек видел, что за Н стоит какой-нибудь HP или SAP, что на его сайте постоянно происходят обновления, что версии выходят часто, то у человека (меня, например) сложилось бы впечатление того, что это вполне зрелый проект. Даже если бы качество самого компилятора оставалось на том же уровне.
Для сравнения -- в каждом релизе Scala находят десятки багов. Язык постоянно мутирует. Но при всем при том, он не кажется лично мне таким же сырым, как Nemerle.
Что необходимо для привлечения внимания.
ОтветитьУдалить* Наличие простых примеров доказывающих силу языка.
* Внятная документация.
* Мягкая learning curve. Большой плюс - наличие книги навроде http://www.diveintopython.org/
* Активное комьюнити. Это гарантия получить быстрый ответ на вопросы.
* Какое-то количество готовых библиотек.
Без всего перечисленного смотреть язык не очень интересно (с точки зрения прагматика, не специалиста по языкам).
То же самое относится и к другим инструментам или библиотекам. Должна быть возможность быстро получить ответ на вопрос "зачем мне нужна эта новинка и что в ней такого интересного".
* Весьма желательно, чтобы за проектом была крупная организация.
Могу назвать минимум два языка которые интересны и до которых рано или поздно дойдут руки:
http://processing.org/
http://www.r-project.org/
>Что необходимо для привлечения внимания.
ОтветитьУдалитьС этим сложно несогласиться... Но есть у меня смутные подозрения, что все это будет работать когда человек уже принял решение вплотную заняться инструментом X. Но вот когда есть выбор между X, Y, Z и о них человек мало что знает, тогда какие факторы вступают в силу? Или посмотрел человек на X, на Y, на Z -- составил какое-то приблизительное мнение. Дальше за счет чего будет строится выбор между X/Y/Z? Как раз за счет известных именах за спиной, за счет ярких success stories, за счет показателей активности в mailing-list-ах, bugzilla-х и пр. Имхо, конечно.
Например, у библиотеки ACE и learning curve очень себе крутая, и документация почти левая, а между тем используется.
Мягкая learning curve
ОтветитьУдалитьВсе равно придется что-то новое выучить, у каждого языка есть свои особенности.
Какое-то количество готовых библиотек
Тут согласен, и чем больше, тем лучше, готовые библиотеки могут сильно облегчить жизнь.
Большой плюс - наличие книги
Согласен, книги - это безусловно привлечение внимания. И выпуск этих книг должен быть регулярным, а не раз в 10 лет, как это сейчас в языке Eiffel.
Не нужно также забывать и блогах, заметки в блогах должны публиковаться регулярно. Наличие скринкастов - дополнительный плюс. Хороший пример такого блога, который я с удовольствием просматриваю - это Smalltalk Daily (http://www.cincomsmalltalk.com/blog/blogView?searchCategory=smalltalkDaily).
Подводя итог, можно сказать, что в 21 век (век пиара) для привлечения внимания нужно как можно больше жужжать о том, что ты делаешь, стараясь охватить как можно большее количество программистов. Иначе высок риск так и остаться мало известным даже с хорошим проектом.
>Подводя итог, можно сказать, что в 21 век (век пиара) для привлечения внимания нужно как можно больше жужжать о том, что ты делаешь
ОтветитьУдалитьОтлично сказано. Даже известная яблочная компания, которая любит держить свои новые продукты в секрете, в области инструментария жужжит, кака и все остальные. Вспоминается их Grand Central Dispatch.
Насчет языка на букву Ны, с одной стороны Влад конечно молодец что тянет язык почти в одиночку, но с другой стороны полностью это нейтрализует своим хамским поведением, например он точно потерял несколько человек которые вполне могли бы ему помощь.
ОтветитьУдалитьИз всех пунктов я бы выделил 2
ОтветитьУдалитьпервий - который подходит для меня :) и наверное я -трус - как самый прикольный :).
Хотя я также пробовал изучать шарп ещё в далёком 1999 году когда выдали на гора бета вирсию НЕТ платформы.
Тогда все говорили что это всё мура, а через два-три года какой спрос пошел на шарп. НО это история.
Про язык Ны я практически ничого не знаю, но читал посты Влада. Агресивный парень :).
Это пройдёт со временем.
>Тогда все говорили что это всё мура, а через два-три года какой спрос пошел на шарп.
ОтветитьУдалитьЧесно говоря, очень мало вспоминается OpenSource-проектов, который имели бы такой успех, как проталкиваемые крупными компаниями разработки (вроде Java и C#). На ум приходят разве что Perl и Apache, распространение которых происходило очень шустро. Тот же Python долго добирался до мейнстрима, не говоря уж про Ruby.
>Агресивный парень :).
Говорят, Тео де Ранд, основатель и лидер проекта OpenBSD, тоже не подарок. А Ханс Рейзер, автор ReiserFS, вообще жену убил...
>Говорят, Тео де Ранд, основатель и лидер проекта OpenBSD, тоже не подарок. А Ханс Рейзер, автор ReiserFS, вообще жену убил...
ОтветитьУдалитьНу это уже крайности.