Зачем программисты добровольно выкладывают код в github?

У каждого свои цели или причины и тут сложно подвести всех под одну гребенку. Тут может быть все угодно. Как можно сказать, почему люди покупают BMW? Я купил только потому, что у меня дочка любит BMW, но это не причина, ведь кому-то нравятся только бумер, а кто-то покупает машину только потому, что дилер дал хорошую скидку а покупателю все равно. 

Я считаю, что код не должен быть всегда открытым, это нормально держать закрытую интеллектуальную собственность. Но бывают случаи и причины, которые могут дать вам преимущества от открытия кода. 

Сегодня я хотел бы поговорить, почему стоит выкладывать свой код в открытый доступ и почему кто-то делает это. 

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

Если у программиста или даже компании есть проект, который не является прямым источником заработка денег, но он возможно помогает зарабатывать, то можно поддерживать такой проект самостоятельно, прятать исходники и никому их не показывать. Именно так долго поступало большинство коммерческих компаний. 

Последнее время даже Майкрософт поняла, что можно использовать сообщество программистов в своих целях. Для этой компании основным источником являются игровая платформа Xbox, Windows, Office, облачные технологии и последнее время неплохо себя показывает производство собственных устройств линейки Surface. 

Платформа .NET не является чем-то, что можно продать, так почему бы не начать открывать исходный код инструментов и кода, который компания не продаёт, но который даёт конкурентное преимущество самой компании. 

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

Неудивительно, что и Swift тоже открылся. Развитие этого языка помогает не только Swift, но и самой платформе. 

Проект с открытым исходным кодом может быть выгоден даже коммерческой компании. 

Допустим, что ваша основная работа – администрирование серверов и вам нужны надежные сервера. По счастливой случайности вы являетесь ещё и программистом и можете написать целую ОС. То есть основной доход у вас администрирование, а программирование хобби. Так почему не выложить исходный код и получить помощь в развитии хобби? 

А если компания разработала собственную систему тикетов или собственную систему мониторинга и использует ее. Она не продаёт код и не планирует этого делать, поэтому поддержание подобного проекта для компании может быть убытками. Программисты компании, которые работают над подобными внутренними проектами не приносят прямую прибыль. Да, они помогают бизнесу компании, но это не прямая прибыль. 

Так почему же в таких случаях не поделиться исходным кодом? Пусть другие компании тоже используют ваш код. Кто-то поможет тестированием вашего проекта, кто-то поможет реальным кодом – исправит баг или может даже добавить полезную функциональность, от которой выиграете и вы!

Я не отношусь к тем, кто считает, что весь код должен быть бесплатным. Это выбор каждой компании и если от этого можно получить выгоду, то почему нет? 

Для Facebook-ка React не является источником прибыли и почему не открыть? Пусть все пользуются им, пусть пишут сайты с использованием React, от этого социальная сеть Facebook не похудеет. Вообще среди ИТ компаний очень много подобных примеров, когда открытие внутренних инструментов может реально дать выгоду всем. 

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

На этапе обручения программированию можно попробовать присоединиться к какому-то проекту, который вам интересен и получить великолепный и необходимый в дальнейшей карьере опыт. Если участвовать в OpenSource проекте, то:

- вы научитесь читать чужой код. Прежде чем начать что-то писать, придётся сначала научится читать и понимать чужой код. 

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

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

Участие в открытых проектах – это возможность прокачаться. Получить опыт, который схож над процессом работы в компании. На мой взгляд не самая лучшая для совсем начинающего, но если вы только закончили институт и есть хорошие знания, но нет опыта, то вот тут GitHub может быть выходом, а точнее входом в мир ИТ. Можно начать учиться хотя бы с того, что посмотреть запросы Pull Request и посмотреть, как владельцы проекта вносят изменения. 

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

На работе мне недавно приходилось проводить интервью с интерном, который все ещё учиться в колледже и его резюме – это информация о том, что он изучал в колледже и несколько проектов на GitHub. К сожалению, все проекты – это просто тестовые задания, которые этот студент делал в колледже. Для меня это возможность увидеть, как он решал задачи, а для остальных – это очередной мусор. Подобные проекты не будут развиваться дальше. 

Так что GitHub все больше и больше используют в качестве средства поиска кандидатов, которые умеют писать код. 

Я тоже выкладывал свой код в открытый доступ. Самый первый проект, который я когда-то выложил был написан на Java и это была программа моделирования схемы баз данных. Я просто учился писать на Java, набросал проект и выложил его в открытый доступ ещё лет 15 назад. С Java я расстался и со временем я уничтожил этот набросок. 

Я как-то набросал CMS, как ее вижу я и выложил в открытый доступ чтобы кто угодно мог взять и использовать какие-то идеи и задумки. Не обязательно брать проект целиком и использовать его, я просто хотел поделиться информацией и подходом, который сам использовал, когда работал в консалтинговой компании. 

Кто-то открывает исходный код сразу после закрытия проекта. Такое было с некоторыми играми, когда финансирование заканчивалось, исходные код проекта уходил в открытый доступ, чтобы не умирать бесследно. 

У каждого могут быть свои причины открытия исходных кодов. Открытый исходный проект может даже приносить выгоду коммерческим компаниям, поэтому они все больше и больше обращаются к этой модели. 

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



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне