Pull to refresh

OpenSource или история одной любви

Reading time3 min
Views1.3K
Что может подвигнуть разработчика на написание программного обеспечения просто так, не за деньги, не получая изначально ни копейки а только тратя все свое и без того отсутствующее свободное время? Существует на самом деле множество причин и люди не раз пытались их анализировать. На многих сайтах существует огромное количество опросов, с множеством вариантов ответов, на которые люди отвечают примерно равномерно. Оно и понятно, мотивация у всех разная. Однако, моя задача сегодня не попытаться вывести “теорию опенсорса”. Моя задача сегодня – рассказать о небольшом проекте, который я делал совсем недавно. И который помог мне добиться хороших позиций в жизни, хоть о нем так никто и не узнал.


Итак, с чего все началось? Я не раз пытался делать что-то просто так, честно. И, честно, у меня это никогда не выходило. Во-первых, когда я был женат в первый раз, мне казалось что у меня не хватает на это времени. Именно казалось, потому что оглянувшись на пройденный день каждый из нас понимает что день этот можно было провести грамотнее, правильно распределяя ресурсы. а во-вторых, даже если я и садился “за перо”, то мне тут же становилось скучно. Да, когда сидишь с бумажкой и выснув язык, ловишь капли с его кончика, вырисовывая диаграммы UML, схемы перехода и взаимодействия, кажется что блиин… круто, сейчас сяду и все будет в шоколаде! А на самом деле садишься и понимаешь что нифига ты не сделаешь потому что… Ну фиг знает… просто потому что уже скучно, это же делать надо, никто не заплатит, а гарантий что это будет популярно, никаких…

Однако однажды я наткнулся на одну программу… Я лишь хочу написать ее название, это вовсе не реклама, уважаемый читатель. Ее название – postsharp. Ее назначение состоит во внедрении в C# аспектно-ориентированного программирования, и о ней вы можете почитать в моих более ранних публикациях. И тут я захотел сделать ей конкурента. Аналог по функциональности, но более гибкий (я тогда недооценил трудность поставленной задачи) И знаете, я понял, чего мне не хватало. Я понял, что для того чтобы делать что-то просто так, идеей надо заразиться. Именно заразиться, как вирусом, как болезнью, которая будет щекотать ваши центры удовольствия, заставляя заниматься этим просто так, не ища выгоды со стороны или славы. Вы понимаете, что над вами будут смеяться, что на первых порах это будет говнокод (потому что в порыве желания новой версии, вы не понимаете что это говнокод), и это надо будет потом исправлять, однако пальцы стучат по клавишам и в костяшках чувствуется боль усталости. Вы пишите и пишите… А потом наступает кризис…

Мне кажется, кризис наступал у каждого… Если посмотреть на историю коммитов, то можно четко проследить, когда наступил кризис. Например, по моим коммитам видно, что иногда я даже на работе этим занимался. А иногда – выпадал из разработки на целый месяц. Что служит причиной? Я не могу дать точного ответа на этот вопрос. Иногда кажется что кроме тебя этот проект никому не будет нужен (в случае с моим детищем — конкурентом PostSharp, это мысль укреплялась тем что в России почему-то он не особо популярен, а для Европы или Штатов где он очень популярен… Ну не знаю… я не знаю, как там можно раскрутить продукт). Иногда – что я так никогда за него и не получу денег. Т.е. для меня частью мотивации все-таки были надежда на монетизацию и отдачу довольных пользователей Эх, обманщик я обманщик, сам себя обманул. Думал что просто так, а на самом деле как у всех, ради денег и славы. Частью причин было также использование библиотеки Mono::Cecil, поскольку когда используешь ее на полную катушку, начинаешь понимать что ребятам еще много и много допиливать, несмотря на 6-летнюю историю библиотеки. Однако кризис рвался, и я продолжал разработку.

А почему он рвался? Потому что оставался неприятный осадок невыполненной задачи. Невыполненного труда, который надо выполнить. Плюс это подстегивалось новостями с офф сайта моего конкурента, у которого выходили новые фичи, который становился быстрее. Я писал unit-тесты не только на работоспособность, но и на то что мой код быстрее. Это далеко не всегда удавалось. Программирование превращалось в гонку с конкурентом, который обо мне даже не знал! Однако, главным стимулом было для меня добавление ссылки на мой проект на сайте postsharp в разделе альтернатив (в самом низу, мой проект — NSurgeon)

После этого я с ними связался, у нас завязалась беседа. Они оказались славными ребятами, которые подняли бизнес вместе, оба женаты и имеют детей. Гаель сейчас ждет близнецов и как отец очень счастлив. А проект… Он немного завис… Теперь причина ясна как слеза: я работаю на тех, кому я делал конкурирующий продукт. Т.е. основная мотивация для меня была другой… Основной мотивации я даже сам не понимал, но я хотел там работать и делать оригинал.
Tags:
Hubs:
Total votes 47: ↑39 and ↓8+31
Comments17

Articles