Воскресенье, 10е февраля, приспичило порассуждать…
…Воскресенье, 17е февраля, 00:30, решил таки закончить статью…
Текущую статью можно конечно же сократить до одной фразы — «Да, нужно! », но так не будет. Немного порассуждаем.
Начнем с того, что же из себя представляет опенсорс. Опенсорс — это программные продукты которые развиваются одним человеком/группой людей/большой группой людей и распространяют продукт с открытыми исходными кодами, и почти всегда — бесплатно. Для многих это играет очень большую роль, т.к. можно очень хорошо сэкономить денег перейдя с платных продуктов на бесплатные, но речь не об этом. Да, бывает еще и платный опенсорс! Яркий пример — Qt: он имеет двойное лицензирование, по LGPL вы можете его использовать сколько хотите для своих бесплатных продуктов, как это делает KDE Foundation, ну или же можете купить Commercial лицензию для использования в своих коммерческих продуктах. И коммерческая лицензия стоит не мало, кстати говоря.
Опенсорс проекты развиваются людьми зачастую бесплатно, они не имеют прибыли от своего продукта, не получают зарплату. Исключением является только пожертвования разных размеров — для маленьких проектов это зачастую пара баксов от человека раз в месяц, для больших — десятки и сотни тысяч баксов, как например, у Wikimedia Foundation, KDE Foundation, Apache Foundation и пр.
Так в чем же профит разработки опенсор проектов если от них нет выхлопа? Профит заключается в том, что часто разработкой занимается не автор приложения, а пользователи. Например, ядро Linux так и разрабатывается. Изначально ядро было написано Линусом в 1991 году, в последствии оно стало популярным и стало разрабатываться пользователями, и это продолжается по сей день. Над разработкой ядра и модулей трудятся тысячи людей, а мантейнры различных подсистем ядра просто занимаются внесением изменений в основную ветку ядра если посчитают что данный функционал там нужен. И сейчас системы на ядре Linux стоят наверное на половине различных серверов в мире. Очень маловероятно что если бы оно было проприеарным то стало бы таким популярным. Точно такое же сравнение можно привести и для остальных проектов, Apache, nginx, php, python…
Так, вроде бы разобрались с тем что такое опенсорс, и зачем он нужен. Теперь перейдем к главному вопросу — нужно ли участвовать в разработке опенсорс‐проектов? И ответ на этот вопрос — да! И плюсы от этого есть несомненные:
- Вы получаете опыт
- Вы помогаете другим
- Вы лично делаете продукт лучше, чем помогаете потребителям этого продукта
- Вы делаете этот продукт для себя по большей части
Рассмотрим все эти пункты по порядку. Первое, получение опыта — думаю это не оспоримый факт, который и пояснять не нужно. Второе, помощь другим — если вы выполняете какую то работу — ее не придется выполнять кому то другому. Третье, улучшение продукта — мало того, что вы бесплатно получаете опыт разработки, вы добрый молодец который помогает другим таким же как вы, так вы еще и помогаете конечному потребителю делая продукт лучше. Ну и четвертый пункт — зачастую, люди которые участвуют в разработке какого‐то OpenSource проекта, пишут его как для себя, являясь теми самыми конечными пользователями.
Зачастую, помощь проектам сводится к угрызениям совести (или как еще это можно назвать…), мол я использую эту софтину которую я получил бесплатно и которую развивают люди ради удовольствия, почему бы мне им не помочь. Ну и помощь у всех сводится к разным вещам, это либо финансовая поддержка, либо написание кода, написание переводов или же тестирование и отправка баг‐репортов. Но есть так же люди, которые высказывают фразы вроде: «Да, опенсорс мне помогает очень сильно, но я им помогать не буду! ». Что движет этими людьми я могу только догадываться, либо желание только самому получать деньги и не уделять хотя бы 10–20 минут в месяц на написание банального баг‐репорта, либо просто лень, либо же, отсутствие совести как таковой.
Лично я, использую только OpenSource продукты, за исключением Google Chrome. И наличие совести и желания отплатить за то, что у меня есть возможность использовать бесплатный софт мне позволяет вносить свой вклад в опенсорс проекты. Где‐то я отписываю баг‐репорты, ну, а где‐то отправляю патчи с исправлениями проблем. И на данный момент я помогаю проекту foobnix, который лично мне очень нравится, которым я пользуюсь каждый день, и в котором есть вещи которые меня не устраивают. Те вещи которые мне под силу — я исправляю сам и отправляю pull‐request'ы, которые мне не под силу — я отписываю разработчику этого проекта. И да, разработкой этого проекта занимается только один человек, и естественно, ему не под силу реализовать все пожелания и пофиксить все баги, поэтому, этот проект нуждается в помощи чтобы просто не умереть.
Вместо заключения могу задать только вопрос — «А что сделал ты для OpenSource сообщества? ».
P.S. Да, статья получилась сумбурной и очень жидкой, но в общем, вроде получилось донести свою мысль…