Чужой код: краткий ликбез по использованию
Что нужно знать об авторских правах на исходники, чтобы не было мучительно больно и стыдно.
memed_nurrohmad / pixabay
Профессионалы уважают чужой труд, особенно если он облегчает им жизнь. Мы выяснили, как быть с чужим кодом студенту, сотруднику компании, бизнесмену и разработчику открытого ПО, а ещё — провели почти серьёзный мини-опрос среди программистов. Результаты в конце статьи.
Спойлер: особых открытий нет, лицензия рулит.
Самое главное: автор, правообладатель, лицензия
С точки зрения закона код — такой же объект авторского права, как книга, рисунок или музыкальное произведение. Что самое важное в авторском праве:
- оно неотчуждаемо: вы не перестанете считаться автором ни при каких обстоятельствах;
- оно возникает в момент создания кода;
- оно не нуждается в дополнительной регистрации.
Кроме автора, у кода и произведения искусства могут быть правообладатели, или держатели исключительных прав, — например, издательство, киностудия или разработчик ПО. При этом программист, писатель, режиссёр и музыкант остаются авторами.
Если вы написали код в рамках трудового договора с ООО «Крутые Питоняшки», то по-прежнему остаётесь его автором. Но использовать его и получать прибыль могут только «Питоняшки». Так или почти так наверняка написано в договоре — и любой суд с этим согласится.
На практике до переговоров с авторами и правообладателями дело доходит редко. Почти у любого кода есть лицензия, которая ясно говорит: как, для чего и на каких условиях можно этот код использовать. Здесь всё в точности как с изображениями — про них написано в нашей статье о соблюдении авторских прав в дизайне.
Если вы студент
Выдавать чужой код за свой, чтобы получить нужную оценку, обычно строго запрещено. Преподаватели преследуют плагиаторов — в конце концов, они отвечают за качество диплома, который вы получите. Важен именно ваш уровень написания кода.
Тем не менее плагиат в университетах скорее жив, чем мёртв: «Нью-Йорк Таймс» пишет, что в 2015 году в Стэнфорде читили до 20% студентов, изучающих компьютерные науки.
Использовать чужие исходники — значит подставлять и добросовестных студентов под горячую руку преподов. Их тоже начнут подозревать. Если вы из таких студентов, ловите несколько лайфхаков, которые помогут укрепить репутацию.
- Попробуйте программировать отдельно от сокурсников — например, в другом помещении.
- Не используйте популярные и шаблонные имена переменных.
- Подробно комментируйте свой код: у каждого программиста узнаваемый стиль комментирования. К тому же комментарии показывают, насколько вы в теме.
Уважайте себя, своих наставников и свою альма матер: старайтесь кодить самостоятельно, если только в условиях задания не указано иное — например, групповая работа или парное программирование. Тем более что у преподавателей есть куча продвинутых инструментов — найти плагиат в коде довольно просто. Есть даже серьёзные научные исследования на эту тему.
Если вы работаете в компании
Чаще всего за использование чужого кода отвечает сам сотрудник, и соответствующий пункт нередко включают в договор при найме. Ведь специалист здесь вы — а значит, вы и зарплату получаете за оригинальные решения.
Иногда компании даже требуют от работников подписать сертификат подлинности — в нём вы «зуб даёте», что не только сами написали какой-то фрагмент кода, но и никогда раньше не передавали его другим работодателям. Чувствуете? Это же как раз об отношениях правообладателя и автора.
Правило простое: отслеживайте источник кода и не забывайте уточнять, по какой лицензии он распространяется. Иначе подставите шефа — а шеф такого не любит.
Даже у кода с сайта Stack Overflow есть лицензия: её полное название Creative Commons Attribution-ShareAlike 4.0 International. Вы можете делиться кодом и использовать его для любой цели (бинго! коммерческое применение разрешается) — надо только указать автора, лицензию и поставить ссылку на источник.
Например, добавить что-то подобное на экран или страницу, где конечный пользователь сможет увидеть всю информацию об авторских правах и данные компании-разработчика:
А вот классическая заставка шестого Photoshop с копирайтами: родные сердцу Томас Кнолл, Марк Гамбург и почему-то всё время попадавшийся на глаза Ситха Нарайанан, фамилия которого навевала воспоминания о треке Prodigy с легендарного Fat of The Land.
Если вы владелец бизнеса
Здесь ставки выше: нарушение лицензий, авторских прав и исключительных имущественных прав грозит судебными разбирательствами. А они не только встают в копеечку и отнимают много времени, сил, нервов, но и больно бьют по репутации обеих сторон.
Те же Google и Oracle судятся уже больше десяти лет, приковывая внимание всего IT-сообщества. Суть дела такова: Oracle владеет правами на язык Java, а его используют в экосистеме Android, принадлежащей Google, — пишут миллионы мобильных приложений. На старте корпорации не сумели договориться об условиях использования Java (точнее, его API), и Oracle подал иск почти на девять миллиардов долларов.
Интересно, что Oracle не сами разработали Java: права на язык достались им при покупке легендарной Sun Microsystems.
По мнению экспертов, возможная победа Oracle больно ударит по всей компьютерной отрасли и замедлит общий прогресс. Ведь если на API можно наложить исключительное право, то:
- разработка и использование открытых программных продуктов затормозятся — они часто копируют функции (не код) успешных приложений;
- совместимость приложений окажется под угрозой — компании будут насторожённо относиться к чужим API и начнут разрабатывать собственные.
Но ругаются не только западные гиганты — отечественные Иван Ивановичи и Иван Никифоровичи тоже нередко встречаются в судах. Юрист Яндекса Денис Доротенко даже написал большой обзор с историями о плагиате и краже исходного кода. Самый распространённый сюжет — когда сотрудники уносят весь свой код к новому работодателю. По закону это нарушение исключительных прав, поэтому в суде обычно побеждают правообладатели.
К слову, один из популярных ответов на вопрос владельца бизнеса «Как избежать кражи кода» звучит примерно так: «Делайте своих программистов счастливыми и цените их работу». И, знаете, что-то в этом есть.
Если вы делаете open source
Разработка свободных программ с открытым исходным кодом не является волшебным «я в домике» и не защитит от обвинения в плагиате. Мол, я тут Д’Артаньян и Арамис, стараюсь на благо всего мира, а значит, имею право пользоваться любым кодом. Например, разработчикам открытой операционной системы ReactOS регулярно прилетают претензии от Microsoft — и это тормозит разработку операционки. Один из маленьких и мягких инженеров обвиняет разработчиков в краже исходного кода через университетские лицензии — или из внутренней документации компании, таких вот гроссбухов:
Плагиат токсичен: он наносит ущерб и правым, и виноватым, и тем, кто просто «мимо проходил» — пользователям или добросовестным студентам. В прошлом году GitHub получил предупреждение и почти тут же заблокировал репозитории библиотеки машинного обучения PHP-ML с открытым исходным кодом — не прошло и суток.
При этом у автора библиотеки и его комментаторов были доказательства, что плагиатором были как раз обвинители — авторы другой библиотеки, RubixML. Но никто из команды GitHub вникать в детали не стал: нет репозитория — нет проблемы.
Итоги, бонус и почти серьёзный опрос
Мы спросили участников одного дружественного программистского чата, как они относятся к использованию чужого кода. Особых открытий не случилось: делаем то, что прямо не запрещено лицензией.
Причём никто не считает, что код программы должен быть исключительно оригинальным. Похоже, правы сторонники свободного ПО и open source, которые утверждают, что открытость и возможность недорого или даже бесплатно использовать чужой код развивает всю индустрию.
Бонус: небольшая памятка о том, как обращаться с чужим кодом.
На курсах раздела «Программирование» вы научитесь писать такой код, который все захотят украсть законно использовать и за который вам будут платить работодатели. А ещё у нас крутые наставники и гарантия трудоустройства.