Как стать автором
Обновить

Комментарии 65

Это всё идеологически правильно, а конечный результат полезен, но зачастую инициатива не остаётся безнаказанной:

  1. Как и любое другое сообщество, опен-сорс сообщество может быть достаточно токсичным, чтобы пропало желание контрибьютить. Достаточно вспомнить вечную драму вокруг GNU/Linux. А ваш пулл-реквест никогда не закрывали фразой «ты тупой идиот»? :)

  2. Зачастую чтобы открыть исходник какого-то компонента надо его сильно порефакторить — убрать специфичные для проекта хаки, выделить точки расширения, добавить тестов и доков. Это всё занимает большое время.

  3. Открытый код компонента — это ещё и обязанность его постоянно поддерживать, что постоянно занимает время разработчиков.

  4. В какой-то момент компания может осознать, что работа с третьесторонним фреймворком, который она использовала много лет, обходится дороже, чем написание собственного. И опен-сорсный фреймворк забрасывается в пользу нового, проприетарного. Заметьте, какое огромное количество библиотек за последнее время появилось, например, от Facebook.

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


Ну а это вовсе глупость:
В свою очередь, IT-компании выделяют большую часть бюджета на платный софт. И в целях экономии на покупке и подписках на софт — пишут свои решения
Время собственного разработчика стоит гораздо больше, чем чужой софт или железо. Иначе бы мы сейчас код оптимизировали, а не гигабайты памяти покупали.
Время собственного разработчика стоит гораздо больше, чем чужой софт или железо. Иначе бы мы сейчас код оптимизировали, а не гигабайты памяти покупали.

Дороже при схеме деньги-продукт.
В случае долговременных подписок на сервисы с малым функционалом, порой (не всегда) безопаснее и дешевле развернуть in-house решение. Благо в нашей вселенной имеется баланс между Open-Source и платными решениями, и почти всегда есть Free-функционал в платных решениях. И платные подписки на поддержку и дополнительный функционал в Open-Source решениях. Плюс аналоги платных решений имплементированные Open-Source сообществом. Одним словом — выбор у нас есть.
  1. Нет. А если напишут, желание не пропадет, в любом случае нет запретов открыть свой форк с блекджеком и всем прилагающимся.
  2. Да, согласен. Open-Source — это работа и ответственность, и это отнимает время.
  3. см.п.2.
  4. Не совсем понял данный пункт. Facebook создают новые решения и делятся с миром, так же принимают pull-request'ы. Когда забрасывают старые проекты — дают жизнь чему-то новому.
  5. Смотря кто является конечным пользователем. Для меня (и нашей компании) это в основном разработчики.
Чем вам поможет форк онлайн игры или виртуальной машины .NET?
или виртуальной машины .NET?

Спросите у контрибуторов Моно
Моно — не форк.
В какой-то момент компания может осознать, что работа с третьесторонним фреймворком, который она использовала много лет, обходится дороже, чем написание собственного. И опен-сорсный фреймворк забрасывается в пользу нового, проприетарного. Заметьте, какое огромное количество библиотек за последнее время появилось, например, от Facebook.


Как-то противоречиво звучит. Огромное количество библиотек от Facebook как раз опенсорсные. Это компания решила сделать свои внутренние разработки открытыми, а не заменить открытые на закрытые.
До этого они долгое время оставались закрытыми.
Осознали стратегическую ошибку и исправились.
Однажды, выложив свой код на GitHub, я уже не смог остановится. Первым моим публичным репозиторием был PHP-код

Сперва это «просто issue», но затем это переходит в серьезные пулл-риквесты… Каждый программист хоть раз пробовал коммитить код в опенсорс… Ты что, хочешь добиться того, чтобы гитхаб полностью стал зеленым?.. Все эти стары и вотчи — прямой путь в активные контрибьютеры… Он снова пытался контрибьютить в опенсорс… Да я сам видел, как ты пушил код! Я нашла твой новый форк в нотификейшенах. Нам нужно поговорить…
Вы спрашиваете про проекты, хотя сами пишете про выкладывание маленьких кусочков. Мне кажется про них и релевантней было бы спрашивать.
Позволил себе назвать маленькие кусочки — «Проектами». Связанно это с большими объемами работ по поддержке репозиториев с любым количеством строк кода — это issues, документация, pull-request'ы и публикация в package-менеджеры.
P.S. Ваш предыдущий комментарий — я не понял.
Это юмор на тему сравнения опенсорса и наркотиков)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Нет. Просто публично выложенный код под соответствующей лицензией — это просто открытый код.
А не opensourсe-проект, хотя он может им стать при наличии «ответственности»(поддержки/документации/сообщества и тп).
Это вы сами только что придумали. Открытый код это буквальный перевод словосочетания «open source». А open source — это вовсе не размытое понятие, а вполне определенный термин с четкими критериями, что под него попадает, а что нет: en.wikipedia.org/wiki/Open_source
Ужас какой, вы для души говнокодите?
НЛО прилетело и опубликовало эту надпись здесь
Ну если это не говнокод, то он как минимум документирован, тестирован и форматирован. Если ваши open source проекты такие, то собсно это же и говорит автор.
НЛО прилетело и опубликовало эту надпись здесь
По сути автор говорит именно про это + взаимодествие с сообществом.
НЛО прилетело и опубликовало эту надпись здесь
это ответственность за качество кода

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

На ваших ресурсах то может и положительно сказалось, но комьюнити такой проект может и не получить. Да, это все еще Open Source.
НЛО прилетело и опубликовало эту надпись здесь
Ну видимо автор о «популярном» Open Source.
Любая публичная деятельность — это ответственность (которая частично закреплена законодательно в частных случаях), например:
  • Текст в статье выше накладывает на меня ответственность за достоверность и актуальность информации, за качество передачи моих мыслей через текст, так же как и на обсуждение данного текста в комментариях, ответы на вопросы, уточнения.
  • Речь произнесенная по теле/радио-эфиру.
  • Текст напечатанный в прессе.
  • Текст в комментариях под интернет-контентом.
  • Слова произнесенные в кругу коллег/друзей (Вы же думаете что говорите? Сказав что-то некорректное вы понесете ответственность в виде потери друзей или рабочего места).


Другой момент — многие не понимают отвественности. К любому виду деятельности можно подойти безответственно. Есть люди которые все в течение своей жизни делают безответственно, — это вовсе не означает, что следует делать так же.

Никто не осудит Вас, если в readme.md Вы укажете что проект только для Вашего личного пользования и другим он не будет интересен, так как несет в себе пользу только для Вас. Или на проекте который был заброшен — что он больше не поддерживается Вами, кто-то другой может увидеть интерес в проекте, и возродит его, уже без Вашего участия.
НЛО прилетело и опубликовало эту надпись здесь
Нет, просто п. 2, 3, 4 законодательно регулируются.
А остальные пункты регулирует окружающая Вас аудитория.
Да и пусть люди сами решают

Согласен, люди сами решат. Но это не означает, что в обществе не существует, общепринятых норм и стандартов.

Вы можете написать код именуя переменные, классы и методы как Вам угодно, не соблюдая отступов и забывая ставить терминаторы, которые не обязательны в Вашем языке — и он может одинаково работать как «правильно» и «красиво» написанный код.
НЛО прилетело и опубликовало эту надпись здесь
А где эти общепринятые нормы и стандарты почитать?

У общества спросить, которое Вас окружает (Честно, не знаю где почитать).

Для Вас неочевидно присутствие ответственности за ведение open-source проекта, ровно на столько же, на сколько неочевидно зачем писать «правильно» и «красиво» код, для тех кто его пишет «не правильно» и «не красиво» — но он же работает (этот код), зачем тратить время на придумывание «правильных» имен переменным, и т.п.

Ну и опять же, про последствия вы не ответили. В чём именно-то ответственность заключается?

Заранее извиняюсь что отвечаю вопросом на вопрос, но — «В чем ответственность заключается при «правильном» написании кода?»
НЛО прилетело и опубликовало эту надпись здесь
В основном пишу на «правильных» и «красивых» CoffeeScript и TypeScript («типобезопасном»).
По факту мне удобно писать на любом языке, благо документации и рекомендаций по стилистике и «правильному» написанию кода имеется в избытке. Опыт был с Go, PHP, C#, Objective-C, совсем немного Java и другие классические языки как Bash, Basic и т.д.
В моей истории был период с написанием «не правильного» и «не красивого» кода, но в какой-то момент мозг переключился и отказался писать и воспринимать «говно-код». Подобная история произошла и с Open-Source.
НЛО прилетело и опубликовало эту надпись здесь
Мы должны научится не только потреблять, но и отдавать обществу.
НЛО прилетело и опубликовало эту надпись здесь
Открытый код — это сохраненное время. В нашей жизни мало уникальных задач, многие задачи решаются многократно разными умами с разных сторон. Возможно, тот способ, которым вы сегодня реализовали сортировку окажется достаточно быстрым, удобным и понятным, чтобы другой человек смог его просто взять и использовать. Или осознать его и переделать под свои нужды. Таким образом он съэкономит свое время не реализуя повторно эту самую сортировку.

Открытый код — это открытая реализация идеи. Кто-то сел и сказал: а клево вот так делать сортировку. А затем кто-то сел и написал на каком-то языке программирования реализацию этого метода сортировки. А кто-то взял и переписал то же самое на другом языке программирования. А еще кто-то увидел это и написал заметку на Хабр как на языке программирования работает алгоритм сортировки и как его использовать в проектах. При этом каждый не тратил столько времени, сколько ему бы потребовалось если бы он делал все сам: и придумывал метод сортировки и реализовывал его алгоритм на языке программирования и затем еще всем ходил и рассказывал какой метод клевый и используйте его в своих проектах.

Когда я выкладываю код в открытый доступ — я выкладываю свое время, свои часы, минуты, дни, потраченные на решение какой-то задачи для других. При чем это необязательно все придумал сам, а взял там и там, написал, собрал, обернул, добавил опций. Чтобы другие не тратили свое время, а взяли то, что есть у меня и попробовали использовать: получилось — отлично, не получилось — жаль, надеюсь они найдут свое решение за приемлемые сроки.

Должен ли я поддерживать, обучать, вести документацию? Должен себя и семью кормить. А всё остальное зависит от мотивации. Если это актуальный проект, у меня есть интерес и я рад вопросам, то могу и статью написать, и на вопросы ответить. Если я охладел к проекту, то, возможно, интерес подогреть может материальный стимул. А если я совсем потерял интерес к проекту, то уж, извините, это моя жизнь — и так немало моего времени уже лежит в открытом доступе, а я может быть хочу еще чего-то сделать и достичь, кроме этого «метода сортировки».

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

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

Иногда люди выкладывают проекты, которые «не взлетели». Достойное решение. Ибо кто-то из обломков старых холодильников выдирает рабочие компрессоры, а кто-то может выдернуть из такого проекта полезные скрипты, структуры, сделать выводы и запилить свое решение, опять же экономя свое время.
Максимально-требовательный подход к написанию кода, документации и тестов.


Возможно, вы к этому пришли поизучав код критически важных для мироздания проектов типа kernel, gcc. Это проекты production уровня, там все на уровне. А сколько еще в open source существует всего другого, криво понаписанного? Про документацию все то же самое. Даже некоторые либы высокого качества исчерпывающей документации по фичам не содержат.
Криво написанное или спроектированное обычно долго не живёт — его никто кроме автора поддерживать не захочет, а автор скорее всего забьёт в итоге на своё «детище».
Люди, которые отвечают «Да» в первом опросе — где вы?
Я по совместительству на работе провожу техническую часть собеседований, и еще ни разу никто не сказал, что он имеет свой Open-Source проект, а человек 100 точно было в сумме.
Тоже интересно.

Ну и кажется, автор слабо себе представляет, что такое поддержка проекта даже от 1К звезд, радости увы там мало, а времени требует много.
Константин, поделитесь опытом по поддержке Sortable и FileAPI
Да не чем особо делится, могу сказать только одно, Issue радуют только первый год, но после набора критической массы, они превращаются в головную боль (в среднем от 1 в день и это не баги). Многие даже не хотят читать ваши доки или подумать, как можно на основе текущих возможностей, решить свою задачу и лепят очередной issue, в котором хотят, чтобы вы решили задачу. Конечно можно ответить на словах «как нужно сделать», но это тоже самое, что и спрограммировать, вы уже потратили время на задачу, её осмысление и решение, так что обычно решение, это готовый код.

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

Вот с FileAPI всё проще, инструмент с самого начало задумывался низкоуровневым, а не очередным плагином к jquery и подобным коробочным решением, поэтому его в основном используют опытные разрабы, которые в случае чего, могу грамотно описать проблему.

P.S. Да, и возможно я не везучий, но настоящих PR крайне мало, либо это правки README.md ;]
Ох уж эти правки README.md Даже удивительно, что те, кому нравится ваш продукт не хотят сами в него вложить ничего. Найти бы какой-либо способ замотивировать слать стоящие PR.
Сделать проект (которым ты сам пользуешься) «лучше и быстрее» — не достаточная мотивация?
RubaXa видимо создал идеальный проект «по коду», который не требует изменений
Ха-ха, если бы, 100+ задач говорят об обратном :]
— 12 требуют помощи;
— 43 по Метеору (а поддерживать его некому);
— 38 тупа не разобраны, либо не понятно что это такое?!;
— и т.д.

А вы говорите «идеальный».
Это был <sarcasm />, идеальных проектов просто — нет.
Не знаю почему, но я уверен, что пережитые эмоции связанные с данным проектом, Вы бы не променяли, ни на что.
НЛО прилетело и опубликовало эту надпись здесь
Присоединяюсь, вот мой проект: TARS
Не повезло вам с кандидатами ) Нас много, очень много.
Кстати, у меня другая проблема — Open Source проектов много, но ни один работодатель ни разу не посмотрел ни один из этих проектов. Просто услышали что проекты есть и забыли.
Имеет место быть проблема с работодателями, которые не придают значения open-source или категорически против таких течений.
Нередко в крупных компаниях (как в России так и в других странах) боятся брать на работу разработчиков поддерживающих популярные open-source проекты. Так как по их мнению они могут использовать код (или его часть) написанный в стенах компании внутри своих open-source проектов, что будет приравнено к разглашению коммерческой тайны. Только вот вопрос где грань? Если я объявляю переменные с одинаковым названием?

По поводу поиска работы — 50/50 где-то с интересом (или обязательно) рассматривают все репозитории во время собеседования, а где-то могут ответить, что им все равно и это баловство, а не программирование.

По поводу поиска сотрудников (по своему опыту говорю только про Москву) — только каждый 4 собеседуемый кандидат за последние 3 года имел свой полезный репозиторий (рабочие репозитории есть почти у всех).
НЛО прилетело и опубликовало эту надпись здесь
Данный аспект характерен для СНГ и России — экономия на IT-персонале ни к чему хорошему не приводит, вот известный пример: habrahabr.ru/post/273249
НЛО прилетело и опубликовало эту надпись здесь
А что есть «полезный» репозиторий?
«Полезный» репозиторий в моем понимании — это репозиторий содержащий код и/или текстовую информацию из которой можно получить пользу.

Проще описать «не полезный» репозиторий — это репозиторий без документации, без описания, содержащий нечитаемый код или код который не возможно или не имеет смысла повторно использовать.
Ну многие считают, что ВУЗ дает достаточно знаний для работы, затем приходят с дипломом в руках и мыслями в голове — я закончил ВУЗ, сейчас мне будут платить
Сколько людей, столько и мнений.
Уверен что бывшим студентам новые коллеги быстро объяснят как все устроено, — жизнь всех научит.
Мои успехи на этом поприще достаточно скромны, но тем не менее…

Тренажёр для подготовки к ЕГЭ: github.com/nickkolok/chas-ege
Подробности
Если не пилить — владельцы reshuege.ru окончательно вобьют в головы абитуриентов фразу «копирование = воровство», пруф: reshuege.ru/about
В настоящее время используется не то чтобы очень активно, но трепыхается (хотя даже Яндекс уже сдался). Статистика: www.liveinternet.ru/stat/math.vsu.ru/chas-ege/referrers.html, где ege_ok.referrer — это ege-ok.ru
Кроме собственно заданий, кто-то может найти полезными склонялку существительных и математические библиотеки (типа умножения многочленов).
Школьники и студенты, желающие контрибьютить — велкам, nickkolok@mail.ru, есть инструкция.
Также как вариант — для организации лаб по JS.


«ЧАС-коррект»: github.com/nickkolok/chas-correct, была статья на Хабре.
Спасибо за статью, как по мне на немного идеалистична получилась.

Есть хорошая картинка на тему стереотипов в open-source разработке
image
На популярных проектах почти как на первой зарисовке, только каждый в своей комнате в своем одиночестве,
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации