Несостоятельность GPL перевод

David Chisnall бросает критический взгляд на GNU GPL и спрашивает, приносят ли она больше вреда, чем пользы для движения Free Software.

В 1985, была сформирована организация Free Software Foundation (FSF) с целью продвижения программной свободы, как определено этими четырьмя свободами:
0. Свобода выполнить программу, с любой целью.

1. Свобода изучения того, как программа работает, и адаптации к своим нуждам.

2. Свобода распространения копий, чтобы помочь своему соседу.

3. Свобода улучшить программу, и выпустить свои усовершенствования (и модифицированные версии в целом) для всех, так, чтобы принести пользу всему сообществу.

Одним из инструментов, используемых для достижения этой цели, является лицензия GPL. Оглядываясь назад, был ли GPL помощью или помехой? И продолжит ли быть помощью или помехой в будущем?

История успеха GPL


Вебсайт FSF указывает на определенный экземпляр GPL, чтобы вынудить компанию открыть ее исходные коды. Компания в этом примере — NeXT (нынче Apple), и исходный код — фронт-энд Objective-C для GCC. Но что произошло в действительности?

Когда NeXT купила права на Objective-C, она унаследовала две части технологии. Одна была препроцессором — довольно простой программой, которая превращала Objective-C в чистый C. Другой была runtime библиотека, которая обрабатывала все динамические запросы, загрузку модуля, и другие элементы, требуемые для полноценной среды Objective-C. У препроцессорного подхода были некоторые ограничения, не последним из которых была трудность в отладке, таким образом NeXT решила переместить препроцессор в компилятор.

В то же время, используемым компилятором C был GCC, который был выпущен под GPL. Чтобы избежать ограничений этого кода, NeXT предоставила свой фронт-энд как библиотеку, которую конечные пользователи слинкуют с GCC, таким образом избегая GPL (которая применима только к распространению программного обеспечения, не касаясь того, как вы используете его). Этот небольшой юридический маневр не работал, однако, NeXT была вынужден выпустить код.

Заметка
Фактически, эта уловка, возможно, сработала бы, если NeXT могла бы показать, что ее фронт-энд не использовал результаты работы GCC (проблемно, потому что он использовал), или если бы NeXT не распространяла GCC (который она распространяла).

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

Вместо того, чтобы признать, что у это был ничего не стоящий кусочек кода, Проект GNU написал свою собственную библиотеку для Objective-C — и это — то, когда начались самые интересные вещи. Библиотека от GNU не был настоящей заменой для библиотеки от NeXT, и GNU необходимо было изменить компилятор для поддержки новой библиотеки. Модификация задействовала множество операторов #ifdef файле поддержки Objective-C. Конечно, NeXT не имела никакого интереса в поддержке библиотеки от GNU, и поэтому не потрудилась импортировать эти изменения.

Периодически, NeXT выпускала бы новую версию своего форка GCC, и основные разработчики пытались бы бэкпортить свои изменения в основную ветку. Когда Apple поглотила NeXT, разработчики Apple продолжали работать над GCC, добавляя усовершенствования, такие как улучшенная поддержка SIMD, чтобы воспользоваться преимуществами модулей AltiVec на процессорах PowerPC, которые поставляла Apple. Разработчики также продолжили добавлять фичи к Objective-C. Поскольку ветка Apple поддерживала единственную runtime-библиотеку, не было никакого четкого разделения между runtime-специфичными и runtime-независимыми частями, и таким образом ветвь GNU быстро отстала.

Тем не менее, история на этом не заканчивается. Позже, Apple захотела более тесно интегрировать компилятор со своей IDE. Одна из хороших вещей в Visual Studio — то, что она использует тот же самый синтаксический анализатор и семантический анализатор для подсветки синтаксиса и сообщений об ошибках, что и для генерации кода, позволяя получить намного лучшую обратную связь, чем от полностью отдельных двух редакторов. К несчастью для Apple, GPL требовала или открыть исходный код XCode или переписать GCC. Apple выбрала последнее.

К счастью, Apple не нужно было начинать на пустом месте, а вместо этого она смогла нанять ведущего разработчика LLVM Compiler Infrastructure Project, инфраструктуры компилятора с BSD-лицензией, и усадить его за работу. Результатом было создание нового проекта, clang, чтобы создать новый фронт-энд для LLVM, который поддерживал C, Objective-C, и C++. Этот фронт-энд в настоящее время поддерживает библиотеку GNU и две библиотекиApple, и поддерживает несколько особенностей — таких как быстрое перечисление и частичная поддержка объявленных свойств — что GCC не делает, даже используя библиотеку GNU.

Clang не единственный фронт-энд Objective-C для LLVM, хотя единственный, основанный на GCC. К сожалению для людей, использующих не-Apple платформы, он основан на эппловской ветке GCC, и поэтому поддерживает только Objective-C на Darwin. Этот фронт-энд покрывается GPL, тогда как тот, который имеет лучшую поддержку библиотеки GNU, идет под BSD-лицензией.

Какой урок мы должны извлечь из этой истории?

Во-первых, мы узнаем, что вы не обязательно получаете хорошие результаты вследствие того, что вы принуждаете людей делать что-то. Код Objective-C от NeXT был внесен в GCC скрепя сердце, и никогда толком не поддерживался. Напротив, код Apple, внесенный в clang, был написан с понятным уровнем абстракции и позволяет легко поддерживать новые runtime-библиотеки. Это не требовалось Apple, которая запустила проект и поэтому она могла делать с ним все, что пожелает. Так как Apple охотно привлекала сообщество, то результат оказался наилучшим для всех.

Вторая вещь, которую нужно помнить — то, что иногда наличие чьего-либо кода фактически не является хорошей вещью. Код Objective-C в GCC — жуткое, нечитабельное месиво. Objective-C — маленький язык, и команда GCC, возможно, могла бы объединить его со своим собственным фронт-эндом самое большое через несколько недель. Если бы команда сделала это, то они вероятно спроектировали бы это так, чтобы поддерживать множественные библиотеки с самого начала, и закончили бы в итоге кое с чем намного более удобным в сопровождении.

Google для Linux


В течение некоторого времени, Google был образцовым представителем сообщества свободного программного обеспечения. Вся инфраструктура Google встроена вокруг свободного ПО, и многое Google возвращает в Linux. Это можно считать успехом для GPL.

Слон в этой посудной лавочке — файловая система Google, высокомасштабируемая распределенная файловая система, используемая в Linux. Google опубликовало ее? Нет. Но ведь GPL требует этого? В конце концов, разве не это было целью — заставить людей, которые извлекают выгоду из свободного ПО и улучшают его, поделиться своми усовершенствованиями с сообществом?

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

Однако, Google внесла справедливый вклад кода в Linux. Почему? Поскольку это более дешево для парней из Google — иметь этот код поддерживаемым в актуальном состоянии, чем хранить постоянно растущий локальный набор патчей для вещей, которые не являются ключевыми в их бизнесе. Каждая компания, которая использует свободное ПО, должна сделать этот рассчет. Содержание изменений в секрете влечет за собой увеличение затрат (таких как дополнительная работа по обслуживанию, когда кто-то вносит некоторые изменения, которые ломают ваши патчи) и выгоду (коммерческое преимущество, которое вы получаете от того, что будете единственным с такой ключевой особенностью). Если расходы перевесят выгоду, то тогда любая грамотно управляемая компания выпустит свой код, независимо от того, требует лицензия этого или нет.

Это объясняет, почему Yahoo! нанимала людей на полный рабочий день для работы над FreeBSD и внесла большую часть изменений. Yahoo! использовала FreeBSD внутри компании, и нуждалась в добавлении определенных особенностей и исправлении ошибок. Как и GPL, лицензия BSD применяется только при распространении, но даже если бы люди из Yahoo! распространяли код, то они не должны были бы выпускать свои изменения. Только они сделали это, потому что у них было хорошее деловое чутье.

Давайте на мгновение задумаемся об этом. Последние оценки, которые я видел, показывали, что приблизительно 10 % разработчиков были заняты для написания массового ПО, в то время как оставшиеся 90 % использовались для разработки программного обеспечения для внутреннего использования. Ни один из этих людей не обязан выпускать изменения GPL-кода, который они изменяют и используют для себя. Сообщество не обязательно извлекает выгоду из любой их работы, но может ли GPL причинить какой-нибудь фактический ущерб?

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

Кто не с нами, тот против нас


FSF делает два набора лицензий для свободного ПО — один, это GPL-совместимые, и другой — GPL-несовместимые. Это — интересная позиция, потому что большинство «GPL-несовместимых» лицензий — пофайловые, позволяют вам объединить их с кодом под любой другой лицензией. GPL устанавливает дополнительные ограничения для кода, и поэтому несовместима. Вы можете легко объединить код под лицензиями APSL, MPL, CDDL, Apache, и BSD в одном проекте, но вы можете объединить только одну из них с кодом GPLv2.

Даже FSF не удатется разрулить все это правильно. Версия 3 LGPL, например, несовместима с версией 2 GPL. Это недавно вызвало проблему для нескольких проектов библиотеки GNU, которые хотели перейти на LGPLv3, но использовались другими проектами, которые были GPLv2-only.

Официальная позиция — то, что проекты не должны быть v2-only, они должны всегда быть v2-or-later. Я позволю вам попытаться убедить Linux переключиться. О, и удачи, также, с читателями PDF; единственные читалки формата PDF с открытыми исходниками в настоящее время основаны на xpdf, который является GPLv2-only. FSF отчаянно пытается написать новую библиотеку PDF, чтобы обойти это ограничение, и лицензирует ее как GPLv3-or-later.

Это отношение понятно. Ричард Столлман полагает, что написание проприетарного программного обеспечения является антиобщественным. К сожалению, такой образ мышления приводит к потере возможностей. GPL не дает вам выбора в написании некоторого проприетарного программного обеспечения и содействия его свободному программному обеспечению. Если Вы хотите использовать некоторый код под GPL, у вас должен быть под GPL весь ваш проект (что иногда невозможно из-за сторонних требований).

Это — то, где у FSF и меня есть фундаментальное философское разногласие. Я полагаю, что сообщество извлекает выгоду, когда растет количество свободного ПО. Фонд свободного ПО полагает, что сообществу вредят, когда растет количество проприетарных программ, и что облегчение написания проприетарного ПО является плохой вещью, даже когда в результате побочного эффекта разработчики улучшают некоторое свободное ПО.

Я чувствую себя нарушенным!


GPL представляет собой несколько страниц юридического жаргона. Я читал ее несколько раз, и все еще должен уточнять определенные вещи, и у меня вероятно есть лучшее знание закона об авторском праве чем у среднего разработчика. Один из главных доводов в пользу свободного ПО — то, что нет никакой стоимости сопровождения лицензий. Любая часть свободного ПО идет со свободами FSF 0 и 2, означая, что Вы можете использовать это и копировать это столько, сколько хотите. Такой порядок резко упрощает аудит, и является огромным выигрышем для крупных компаний.

Поскольку GPL — лицензия свободного программного обеспечения, здесь применяется тот же самый принцип, верно? Да, пока вы распространяете с исходниками. Есть простой способ нарушить версию 2 GPL, в выполениии которого, как я полагаю, виновна по крайней мере половина читателей этой статьи. Возьмите исходный текст своего любимого проекта GPLv2, скомпилируйте его, и дайте другу бинарный файл. Упс — вы только что совершили нарушение авторского права. GPLv2 требует, чтобы вы предоставили или исходники или предложение в письменной форме (действующее в течение трех лет) по их предоставлению (см. пункт 3).

Это вообще полезным принимать во внимание, при компиляции программного обеспечения для ваших друзей, которые не особенно разбираются в компьютерах. У них нет никакого интереса к исходникам, но GPL требует, чтобы вы дали им исходники (они поблагодарят вас за них, когда загрузят объединенный пакет по мобильному подключению с оплатой по трафику), или дали им письменное предложение относительно исходников. Если вы выбираете второй вариант, вы должны иметь в наличии копию источника в течение трех лет — и не забываете, что это должна быть именно та версия, использовавшаяся для сборки бинарника.

Это — только индивидуальная проблема, так? Ну, не совсем. Вообразите этот разговор, происходящий между двумя служащими различных компаний:

«Я не могу открыть тот файл, который вы послали мне.»

«Ох, извините. Я вышлю вам программу, которой я пользовался для создания файла — она бесплатная.»

«Отлично, спасибо.»

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

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

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

Связи, Каналы, Уловки


GPL раздувает проблему о связывании. Если Вы хотите избежать необходимости соответствия требованиям GPL, вам нужно, чтобы ваш код работал как полностью отдельная программа. Вы можете соединить две программы через каналы или сокеты, если вы делаете это через достаточно универсальный интерфейс, без обмена результатами работы. Или, как обнаружила NVIDIA, вы можете обеспечить GPL'ную модификацию GPL'ной программы, которая обеспечивает универсальный интерфейс, и затем заставлять конечных пользователей связывать ее с некоторым проприетарным кодом.

Если вы достаточно изобретательны, то весьма просто обходить ограничения, вводимые GPL. С веб-службами и веб-приложениями, получающими все большее распространение, вы даже не должны сильно напрягаться. Вы можете внедрить так много GPL кода, как вы захотите в свое проприетарное веб-приложение или службу, и никто не сможет получить код, потому что вы не распространяете бинарник — вы просто позволяете людям использовать его.

Affero GPL пытается обратиться к этой проблеме, требуя, чтобы вы оставляли на месте любые существующие ссылки «загрузить исходники». Конечно, это требование сделало Affero GPL несовместимым с GPLv2 (v3, имеет специальное исключение). Поскольку это требование ограничивает модификации, которые вы можете сделать в коде, оно нарушает четыре свободы (хотя это не мешает FSF рекомендовать его).

Если GPL легко обойти, то почему это является проблемой? Любой, кому нужно установить дополнительные ограничения для кода, может сделать это — то есть, любой с достаточным количеством денег, чтобы потратить на дополнительное усилие разработчика или консультацию юриста, и в этом заключается проблема. GPL не в состоянии достичь своих оригинальных целей, и она также препятствует людям, которые не хотят нанимать адвоката, для чтения нескольких страниц юридического жаргона и выяснения, действительно ли их предполагаемое использование может быть разрешено. Легко нарушить случайно; но если вы действительно хотите нарушить дух лицензии, то все еще остается возможность соблюсти букву лицензии. Осознавая эту ситуацию, становится просто понять, почему разрешительно-лицензируемые альтернативы GPL'ных программам в последнее время стали видеть намного больше коммерческих разработчиков.
_________
Текст подготовлен в ХабраРедакторе
+59
21 сентября 2009, 10:26
24
intnzy 25,5

комментарии (122)

–1
intnzy #
Может закинуть в какой-нибудь тематический блог?
НЛО прилетело и опубликовало эту надпись здесь
+2
intnzy #
буду рад, если подскажете как иначе озвучить I Feel Violated!
НЛО прилетело и опубликовало эту надпись здесь
0
intnzy #
Вы знаете — таким литературным приемом автор пользуется умышленно. Чтобы сказать именно это.
–1
ishua #
эмнь, мой уровень английского тоже не высок настолько, что бы понять звучит ли эта фраза на английском столь же коряво как коряво она звучит на русском, но сдается мне, что написать на русском «Я чувствую себя нарушителем» было бы более корректно.
+1
vizlot #
i feel violated — пассивное причастие вроде
+2
Roxis #
иногда это можно перевести как: «я чувствую себя изнасилованным»
0
intnzy #
пропадает игра слов. здесь идет обыгрывание License Violation
+3
valyard #
да, скорее всего имеется ввиду именно это
но, можно еще посмотреть в сторону «я чувствую, что меня нарушили», если принять позицию лицензии
хотя криво
+9
vk2 #
Вы знаете, у Вас очень «подстрочный» перевод. Мне пришлось читать текст по-английски, чтобы полностью все понять.
НЛО прилетело и опубликовало эту надпись здесь
0
intnzy #
пропадает игра слов. здесь идет обыгрывание License Violation
0
Foret #
«Я чувствую, что меня использовали.»
+1
iZENfire #
«Я чувствую себя ущемлённым!»
+2
juliette #
Так чтобы сохранилась игра слов — никак. Просто написать нормальный русский вариант, вроде тех, что предложили ниже, и сделать примечание, мол, игра слов потерялась, извините.
0
kyb27 #
«Я чуствую себя преступником»
–1
ApeX #
у меня баттхерт
–4
SunexDevelopment #
Вам интереснее потрындеть на тему точности перевода или все же вы, находясь на техническим портале, прочитаете статью? Уверяю Вас, она очень интересная.
+4
Frrrr #
Мне тоже нравиться, когда люди выражают свои мысли грамотно. Но тем не менее кажется, что на Хабре процветает «граматический снобизм».
Человек, на голом энтузиазме, дабы поделиться заинтересовавшей его идеей с сообществом, перевел и выложил интересную техническую статью. Причем перевел достаточно неплохо, а желающим прочитать оригинал привел ссылку на первоисточник.
Но отдельные же члены сообщества вместо благодарности начинают тыкать на некоторые огрехи в форме текста в духе: «В таком виде засуньте эту статью себе в толстую записную книжку!»
Вам нужны идеи или дроч на граматику? Не переносите тексты, написанные не гуру русского языка? Так может в таком случае не мучать себя и читать вместо Хабра Джека Лондона. Да, там, правда, не будет интересных мыслей на тему ИТ, но зато перевод будет литературным и неоднократно вылизанным корректорами.
Не хочу быть неправильно понятым. Грамотное изложение мыслей несомненно важно, но надо соотносить свои убеждения с окружающей реальностью и делать рациональные выводы.
Мое резюме: было интересно, спасибо большое автору за труд.
+2
intnzy #
всегда пожалуйста! :)

однако, справедливая критика тоже непременно должна быть. особенно — критика с предложениями. она помогает стать лучше.
0
Frrrr #
Обеими руками за конструктивную критику
0
dobry_kolbasnik #
особенно интересно, как написано в твоем посте слово «грамматический».

Вот уж точно — снобизм :-))
–15
VlK #
Фигня какая-то. Последнее время все больше крупных игроков рынка начинает видеть преимущества лицензии и вложений в софт.

Приводится в пример BSD-licensed freeBSD, который явно скоро испустит дух, и GPL-licensed Linux, растущий постоянно во множестве сфер (пожалуй, только десктопы тормознулись). Бр.
+8
Q2W #
Это почему, интересно, FreeBSD явно скоро испустит дух?
–3
VlK #
Денежек больше вкладывается в Линукс, в целом он много шире используется. Тот же Гугл, Red Hat, Oracle, IBM сейчас делают упор на него.

А кто делает упор на freeBSD?
+2
TMC #
Не совсем разумно сравнивать напряму. Линукс — зоопарк из кучи независимых дистрибутивов и сборок.
Фряха — монолитная ОС от одного сообщества.
0
VlK #
Почему некорректно? Дистрибутив — это просто комплект программ; причем этот комплект программ в серверном исполнении очень даже похож на freeBSD как единый дистрибутив. Почему нет?
+4
Semy #
Yahoo, Juniper — самые явные и самые крупные. Из Intel есть разработчики.
В рунете много. Самые известные — rambler, yandex, mail.ru.

А вообще, я уже лет 10 слышу, что FreeBSD dying. Однако, до сих пор не сбылось.
+1
Alaunquirie #
А еще куча серверов в америке тоже на фряхе — она там завоевала неплохую популярность. Большую, думаю, чем здесь.
0
youROCK #
Да вроде нет, в России половина серверов на фряхе :). А вот в америке всё же более популярны Linux и Windows.
+2
intnzy #
речь таки о лицензиях, а не о freebsd vs linux
+1
VlK #
Там в статье вспоминалось о том, что, мол, какая-то контора заложилось в freeBSD, а не Linux для чего-то там из-за лицензий. А я сходу могу вспомнить гораздо больше случаев работы с GPL, нежели BSD; кроме тех случае, когда надо было откровенно спереть код.
+3
intnzy #
некая малоизвестная контора Yahoo!..
кстати, другая контора Яндекс держит поиск на серваках под FreeBSD…
0
VlK #
Ага, и Яндекс занимается выпуском своей ОС на базе freeBSD, и постоянно заливает патчи в ядро… Ну-ну…

Вот не знаю, что там у Yahoo, конечно. Но один, как известно, в поле не навоюется. Из четырех вышеперечисленных компаний три — гиганты мирового масштаба. Yahoo на их фоне как-то теряется…
+2
romx #
Это Яху-то теряется? У вас довольно странные представления о размере и влиятельности Яху.
0
VlK #
Ну почему же? Вполне конкретные. Oracle, годовой доход больше 20 млрд.

IBM >100 млрд.

Google >21 млрд.

_______

Yahoo! — 7.22 млрд плюс постоянные разговоры о слиянии, покупках, тра-та-та. Не малыш, конечно, но и большого влияния за пределами Штатов не имеет. Вы когда последний раз пользовались поиском Yahoo?
+3
Semy #
Не понял сарказма.
В Яндексе работают по крайней мере 4 разработчика и в Рамблере около того. Есть разработчики в МастерХосте, Макомнете и т.д. Патчи заливают, да.
0
VlK #
«Гугл, Red Hat, Oracle, IBM» — то, что я перечислял выше :)
+10
vk2 #
Странно, что BSD-проекты вообще развиваются, правда?

А все просто.

Когда корпоративные разработчики возвращают код в GPL-проекты — это брак по расчету.
Когда корпоративные разработчики возвращают код в BSD-проекты — это брак по любви!
–3
VlK #
То есть любовь это когда можно брать, ничего не давая взамен? :)
+19
vk2 #
Любовь — это когда можно давать, ничего не требуя взамен :)
–4
romx #
«Любовь» — это русские придумали, чтобы денег не платить. (с)
+4
intnzy #
«А теперь жених и невеста, поставьте ваши подписи под BSD лицензией»
ггг
0
foe_nix #
нет, они возвращают только когда любят, BSD. В остальных случаях, видимо, приминима модель «Поматросил и бросил»…
+4
foe_nix #
нет, они возвращают только когда любят, BSD. В остальных случаях, видимо, применима модель «Поматросил и бросил»…
+7
khayrov #
Помимо общей корявости перевода, в нём встречаются фактические неточности. Взять хотя бы вот это:
Clang не единственный фронт-энд Objective-C для LLVM, хотя единственный, основанный на GCC.

Сравните с оригиналом:
clang isn't the only Objective-C front end for LLVM, though; there's also one based on GCC.

Просто включить логику: если clang распространяется под BSD, как он может быть основан на GPL-ном GCC. (Не говоря уже о том, что clang написан на C++).
–7
intnzy #
если clang распространяется под BSD, как он может быть основан на GPL-ном GCC.

об этом и речь вообще идет. там не все чисто.
clang.llvm.org/ — можно самому убедится в типе лицензии

и какая разница на чем он написан?
+7
khayrov #
Определённо вы не умеете читать, либо оригинал на английском, либо свой собственный перевод. Из вашего перевода следует, что фронтэндов Objective C для LLVM несколько, clang один из них, но только он основан на GCC. Но clang написан с нуля и никакого отношения к GCC не имеет.
+2
khayrov #
А другой фронтэнд — это как раз llvm-gcc: форк GCC с прикрученным бэкэндом LLVM.
+7
crazywebdev #
Feel the difference:
Тем не менее clang — не единственный фронт-энд Objective-C для LLVM, существует и еще один, на базе GCC.
+1
Dreammaker #
Для своей работы тоже стараюсь не использовать GPL, даже при условии, что мне всё равно возвращать код или нет. Неизвестно какова судьба моих разработок в будущем и лучше перестраховатся. :)
0
spiritedflow #
> Неизвестно какова судьба моих разработок в будущем и лучше перестраховатся. :)

А в чем проблема? Как автор ты всегда сможешь перелицензировать свой код и продать. Другой вопрос, нужно ли будет кому-нибуть покупать твой код, если он под BSD и его можно использовать без опаски?
0
Dreammaker #
Проблема не только во мне как авторе, но и тех кто заказал у меня разработку, кто знает, что будет с проектом потом.
+11
leotsarev #
Больше всего меня веселит требование использовать клаузу v2-or-later.
Отдавать свой код под условием «так, как захочется правой пятке Ричарда Столлмена через 5 лет» :)
+7
AlexcYeCu #
В тексте приведён возможный диалог между двумя сотрудниками. Когда один высылает другому какой-то софт (которого толи в репозитории не было, толи тот второй под MS Windows сидел, не суть). Так как они умудрились нарушить GPL?
Ну и выставлять GPL ТОЛЬКО как лицензию распространения, а не использования — это явная подтасовка фактов.
Кто заплатил гражданину Девиду Чиснолу?
Мне лично критика в адрес GPL всегда была непонятна. Хочешь использовать чужие наработки? Что, эти просят денег (много денег), а те вовсе запрещают? А вот эти разрешают, но заставляют с обществом делиться? Злодеи!
0
Frag #
Насколько я понимаю, был выслан бинарник без исходников, что прямым образом нарушает лицензию.
+4
AlexcYeCu #
С какого перепугу это нарушает?
Во-первых, исходники предоставляются по требованию, а не впариваются вне зависимости от необходимости. Именно по этой причине, к примеру, в пакетных GNU/Linux-дистрибутивах исходники не выкладываются на установочных CD/DVD. Однако никто не мешает подключить репозитории с пометкой src и скачать себе исходники.
Во-вторых, с чего вы взяли, что исходники должен предоставлять тот, кто выслал программу? Если установочный пакет с бинарниками был взят с официального сайта программы или из репозитория дистрибутива, то там же следует искать и исходники. Вот если товарищ внёс изменения в исходный текст и собрал свою версию программы — тут может быть другой разговор, да и то лишь в случае распространения(!) изменённой программы.
В-третьих, а где здесь распространение? Это вполне себе частный случай отношений между двумя лицами. К примеру, если вы надумаете продавать или даже раздавать яблоки всем подряд, то вам придётся оформить некоторое количество бумаг и разрешений. Если же вы угостите яблоком товарища — какие проблемы?
Так что вопрос «Кто заплатил гражданину Девиду Чиснолу?» актуален. Я подозреваю MS — самые большие любители рассказывать бредовые страшилки про GPL.
0
intnzy #
С какого перепугу это нарушает?

с такого, что в GPLv2 пункте 3 это указано. Это вам не российское законодательство, где требования закона можно исполнять «в общих чертах».
Так что- не передал исходники, писменное обещание или явное указание — все, нарушил.

Это вполне себе частный случай отношений между двумя лицами.

К примеру, если лицо А передаст только лицу Б всего 1 пакетик героина/пистолет, то лицо А пойдет под статью о сбыте — легко и непринужденно.
все ОЧЕНЬ зависит от юридических формулировок.

Так что вопрос «Кто заплатил гражданину Девиду Чиснолу?» актуален. Я подозреваю MS — самые большие любители рассказывать бредовые страшилки про GPL.

Вы напрасно обвиняете Девида. www.cs.swan.ac.uk/~csdavec/
Он внес весьма немалый вклад в OpenSource.

0
hmage #
У Вас явно плохо с английским. Нужно либо предоставить вместе с бинарником, либо дать возможность их запросить, либо передать предложенную возможность дальше по цепочке:

3. You may copy and distribute… in object code or executable form… provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code… or,
b) Accompany it with a written offer… or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. ...


Многоточиями я заменил подробности.
0
intnzy #
если не выполняется a, b, c — то нарушение., и более того пункт c — с определенным оговорками.
простая передача бинаря без исходников/предложения — нарушение!
вы не согласны?
0
hmage #
Согласен, а теперь перечитайте пожалуйста комментарий, ответ на который вы уже написали, отрицая и a, и b, и c.
0
AlexcYeCu #
В пункте 3 GPL v. 2 сказано:
«If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.»
А теперь перечитайте «во-первых» и «во-вторых» из предыдущего моего поста.
И с российским законодательством мне, в отличие от вас, приходилось работать. Что в этой, что в любой другой стране «соблюдать законодательство в общих чертах» можно далеко не всем.
На счёт «в-третьих»: какой к чертям пистолет? Какой героин? Почему сразу не атомную бомбу?
0
intnzy #
и каким же это образом приведенный кусок из п.2 соответсвтует «лицо А переслало лицу Б»?

про пистолеты и т.п. — если что-то, оборот чего регламентируется законом передается от А к Б «мимо закона» — за это наказывают. Будь то программа или пистолет. Нет разницы.
0
AlexcYeCu #
Я «лицо А». Вы «лицо Б». Я подхожу к лотку, где бесплатно раздаёт яблоки вырастивший их садовод, одно беру себе, а другое передаю вам. Будьте так любезны назвать законы, со статьями и пунктами, которые я нарушаю. Да, оборот яблок и иной плодоовощной продукции регламентируется законодательством. Гуглить по словам «продовольственные рынки плодо-овощная продукция», там много всего.
0
intnzy #
а в этих регламентах есть слова «допускается передача яблок ( в любом количестве) иному лицу только при условиях ....»? нету? а в лицензии на ПО — есть!
0
dobry_kolbasnik #
короче

достаточно иметь исходники на ФТП.

Вот и все! Так делает, к примеру, Д-линк.
0
wRAR #
I want to distribute binaries via physical media without accompanying sources. Can I provide source code by FTP?

Version 3 of the GPL allows this; see option 6(b) for the full details. Under version 2, you're certainly free to offer source via FTP, and most users will get it from there. However, if any of them would rather get the source on physical media by mail, you are required to provide that.
+13
sky_lord #
Странная статья — говорятся вполне очевидные вещи. Интересно было только про NeXT/Apple почитать.
Вообще, удивляет количество холиваров на тему GPL и BSD — о чем тут спорить-то? GPL создавалась для решения конкретной практической утилитарной задачи — тупо обеспечить постоянное увеличение количества кода. Не важно какого именно кода, не важно — нужен он кому-либо или нет, не важно что с ним будет потом. Имелся в виду чисто количественный фактор. GPL выполнила эту задачу? Да, на все 100%. Столлман доволен, все довольны, количество разнообразного кода превышает воображение, происходят постоянные fork'и, количество проектов растет в прогрессии — чего и хотелось. А что силы кучи разработчиков распыляются зря, что проку от всех этих петабайт исходников — чуть, — это никого не должно волновать, так задачи «сделать мир лучше» не ставилось изначально.
BSD — лицензия с одной стороны пофигистическая (какая разница, что будет с кодом? Лишь бы копирайт поставили...), с другой стороны — в намного меньшей степени размножающая код, способствующая его «централизации» в рамках одного проекта (без распыления на тысячи) и в среднем — повышающая его качество (мы имеет в виду именно возвращаемый код по сравнению с таким же GPL). Если компания использует BSD в своих пропиетарных продуктах, то есть по сути лишь три варианта развития событий:
1) Код компании (т.е. изменения в основном BSD-коде) нужен только ей и она сама им занимается — смысла выкладывать все равно нет. Сюда же относятся всякие know-how и прочее — разве что по сравнению с GPL компании не приходится искать обходные пути (некоторые упомянуты в статье) и зря тратить время и силы своих сотрудников, так что продукт получится быстрее, а программеры будут заниматься делом, а не обходить, матерясь, GPL.
2) Код компании может пригодится сообществу. Тогда компания обычно зондирует почву в рамках приватных переписок с мантейнерами основной ветки и если обо всем договорятся — скидывает код сообществу, получая халявную его поддержку. Отличие от GPL: скинутый таким образом код всегда идет в дело, а не валяется пустым грузом на ftp компании в каталоге «То_что_мы_должны_отдать_по_GPL».
3) Код компании не особо нужен сообществу, но она уже подзаколебалась поддерживать его самостоятельно — в статье упомянут этот вариант. Там же упомянут и типичный вариант решения: компания нанимает кого-то из основных мантейнеров (или вкладывается деньгами в организацию типа BSD Doundation) для разработки и поддержки ее кода. Бонусы очевидны: комьюнити получает код, компания получает его поддержку за меньшие деньги, чем держать в штате отдельного программера (или даже нескольких).

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

–3
spiritedflow #
> А что силы кучи разработчиков распыляются зря, что проку от всех этих петабайт исходников — чуть, — это никого не должно волновать, так задачи «сделать мир лучше» не ставилось изначально.

Я не согласен, но перед тем, как я начну строить антитезис и обоснование для него, хотелось бы спросить: Это окончательный вариант, который ты готов и в состоянии защитить, или ты его уточнишь?
+5
sky_lord #
Эээ… Я же сказал — я против холиваров. :-) Я с удовольствием изменю свою точку зрения, если она окажется несостоятельной — в чем проблема-то? Но я, откровенно говоря, не понимаю, о чем тут спорить. Ты хочешь привести примеры, как вырванный силой код у скрывающих его, пошел на реальноеблагое дело, а не просто потешить себя — «вах! мы отстояли GPL! рулез!»? Или показать пальцем на Linux и сказать — «Вот! Это супер-результат и достигнут от благодаря GPL!»? Но это же все несерьезно, а успех проекта к лицензии вообще имеет слабое отношение, а зависит на-а-амного больше хотя бы от менеджерских качеств его лидера. Или есть такие проекты, про которые, как на них посмотришь, сразу можно уверенно сказать, что не будь они GPL — сдохли бы, т.е. которые только и живут за счет возвращаемого кода. Кстати, было бы действительно любопытно посмотреть!
А возвращаясь опять к «количественным» целям GPL — не надо воспринимать все буквально. :-) Естесственно, Столлман не ставил напрямую целью именно тупо увеличивать количество кода. Просто у него достаточно идеалистические взгляды и он считал и считает, что достаточно, чтобы весь код был открыт, а дальше все само как-нибудь урегулируется, устаканится и в итоге настанет светлое будущее. :-) Ан нет, не получается так. Точнее это как с экономикой — сначала получается и все саморегулируется, но чем больше и сложнее становится система, тем хуже это все работает.
0
spiritedflow #
> Я же сказал — я против холиваров. :-) Я с удовольствием изменю свою точку зрения, если она окажется несостоятельной

Не каждый спор — холивар. Есть такие, где оппонентов выслушивают. Я, например, хочу выслушать тебя, так как моя точка зрения расходится с твоей. Где-то ошибка. Где? Вот это я и предлагаю выяснить. Если она окажется в моих суждениях, то я только скажу «Спасибо!».

Я не прошу окончательный тезис, но, пожалуйста, сформулируй его тщательнее, чтобы потом не оказалось, что под «в огороде бузина» скрывалось «в Киеве дядька».

> Ты хочешь привести примеры, как вырванный силой код у скрывающих его, пошел на реальноеблагое дело ...

Нет конечно. Если бы там была фраза «без исключений», то от отдельных примеров был бы толк, а так нужен другой подход.

> А возвращаясь опять к «количественным» целям GPL — не надо воспринимать все буквально. :-)

Я стараюсь воспринимать всё так, как написано, т.е. буквально. Других источников информации у меня нет. Зачем писать то, что сам не считаешь верным?
+2
sky_lord #
Слушай, давай уже говори свое мнение. :-) А то пока мы определимся с понятийным и методологическим аппаратом — тема разговора успеет потерять свою актуальность. :-)
+3
spiritedflow #
Ок.

Во-первых, введу термин "GPL-инвестор", это программист, который разрабатывает GPL программы по своему желанию или человек, который нанимает других программистов для создания или изменения GPL-программ. Это программисты, которые пишут для себя и для друзей, студенты, которые учатся на GPL программах, маленькие и большие фирмы, которые зарабатывают на GPL-программах. Аналогично определяется термин BSD-инвестор.

А теперь моё мнение:

1. Весь GPL-код создан за счет GPL-инвесторов. Аналогично для BSD.

2. Сообщество свободного кода — не армия. Никто тащить шары и катить ящики не заставляет. Т.е. все разработки делались по своей воле, полезность работы оценивалась GPL-инвесторами самостоятельно. Аналогично для BSD.

3. GPL-инвесторы в большинстве своем люди разумные, знают цену своему времени и средствам. Их доля примерно равна доле разумных людей среди BSD-инвесторов.

4. Разумные люди по своей воле не тратят время на бесполезную работу. Вложения и инвестиции делаются с расчетем их вернуть и получить прибыль тем или иным способом. Т.е. вынести пользу.

Складывая все, получается: весь GPL код написан сознательно за счёт людей, которые вкладывая свои средства собирались вынести пользу для себя. Аналогично для BSD. Говорить о какой-то черезмерной, по сравнению с BSD, долей бесполезного кода нельзя. Отношение полезного/бесполезного кода примерно равно.

Вопрос был к «петабайтам». Если ты под этой цифрой понимал проценты, то мой антитезис к месту. А если ты просто схитрил, посчитал по абсолютной шкале, не принимая во внимание, что общее количество GPL-кода больше чем BSD, то тут уже был бы другой разговор.
0
sky_lord #
Пардон, что долго не отвечал — другие дела были. :-)

1) При чем тут причины, которые толкают людей на создание проекта? Это вполне очевидно, что они всегда примерно одинаковы и лицензия тут не при чем. Лицензия — это вообще штука второстепенная, как бы некоторые не превозносили ее значимость… При использовании GPL бесполезный код образуется не по чьей-то злой воле, а чисто механически: каждый потребитель кода проекта выкладывает по сути свой форк этого проекта с нужными ему изменениями (в лучшем же случае — набор патчей). Нужны ли кому-либо кроме выкладывающего эти изменения, будут ли они внесены в основную поддерживаемую ветку и т.п. — никого не волнует. В случае же BSD за счет того, что выкладывание кода с изменениями по сути добровольное, оно почти всегда целенаправленное и является результатом соответствующих договоренностей между выкладывающим и основными мантейнерами проекта, так что в итоге выложенный код всегда идет в дело. Именно поэтому в итоге и получается, что возвращенный комьюнити пропиетарщиками код в случае BSD объективно полезнее — так как возвращается целенаправленно, а не просто лишь бы соблюсти условия лицензии, как в случае GPL. Я повторю еще раз: это возникает не потому что одни программеры с одной лицензией лучше других или по каким-то иным причинам, а чисто автоматически и механически — за счет требования GPL выкладывать все изменения. Ну, народ натурально их и выкладывает…

2) Чего ты так к петабайтам привязался-то? Петабайт — это 1024 терабайта. :-) Используя это слово я просто хотел подчеркнуть, что GPL кода очень много и из-за свойств лицензии он постоянно саморазмножается — чисто автоматически, как я пояснил выше. И за счет того, что это происходит именно автоматически, о полезности этого кода (не кода проектов, а производного от них, который и размножается за счет лицензии) никто специально не думает. Дай Бог, если из опубликованного чего-то в проект таки закоммитят… И то это обычно является результатом процесса, аналогичного описанному мной выше для BSD, т.е. к самой лицензии отношения все равно не имеющего.

3) Насчет объема кода и популярности лицензий. У меня появилась мысль написать статью с соответствующим историческим обзором, т.к. не помню, чтобы читал что-то аналогичное, где на пальцах было бы все показано. :-) Появится время — покурю хотя бы Википедию и сделаю резюме. Суть в следующем: своим успехом GPL обязана исключительно пиару. :-) Все остальные лицензии писались большей частью про конкретные продукты или проекты. А Столлман сел и сделал универсальную лицензию для всех, которую его общественные организации и пиарили в качестве таковой под девизом, типа «Пишешь код и не хочешь, чтобы его скоммуниздили? Выбирай GPL!». У других — «карманных» по сути — лицензий, включая BSD, всего этого не было и никто этим не занимался. Ну реально — какой смысл университету Беркли предпринимать усилия к распространению BSD, а Массачусетскому — пиарить MIT License? Они себе эти лицензии сделали, кодили под ними и не парились. Кроме того, еще немаловажный факт — GPL второй версии появилась в 91 году, а из BSD убрали ее известный ограничивающий пункт насчет университета Беркли только в 99. Т.е. все 90-е годы, когда как раз и началось бурное развитие open source у людей по сути не было вообще никаких общедоступных лицензий, кроме GPL. Линукс использовал GPL не потому, что она ему так нравилась, а просто в силу того, что другой лицензии в общем-то и не было. Кроме того, Линукс и появится в 91 году, так что было вполне логично начать использовать самую свежую и современную на тот момент лицензию — GPL. С какой стати для своего личного проекта Торвальдс должен был выбрать BSD — какую-то совершенно посторонюю лицензию далекого американского университета?
В общем, попробуйте посмотреть на всю тему с лицензированием под этим углом, без поиска каких-то далеко идущих предпосылок. Все намного проще, чем кажется. :-)
0
spiritedflow #
Спасибо за ответ. Я попробую ответить по частям.

К третьей вопросов и комментариев нет :)

К первой есть вопрос:
Что ты понимаешь под словом «полезный форк»? Полезный для тебя? Полезный для кого-либо? Полезный для основной ветки? Полезный для некоторой части сообщества? Какой части?
И соответственно что ты понимаешь под словом «бесполезный форк»?

Во второй части тоже есть слово «полезность», поэтому ответить смогу только после того, как пойму смысл который ты в него вкладываешь.
0
sky_lord #
Смысл в «полезность» я вкладываю очень простой: использование выложенного кода кем-либо, кроме его автора. Применительно к GPL, к сожалению, от огромного количества измененного кода, который выкладывают компании, кроме них зачастую ни горячо, ни холодно. Подчеркиваю — я имею в виду именно тот код, который выкладывается по условиям лицензии. Код, который компании сознательно коммитят в тот же Линукс, к лицензии отношения не имеет, он направлен именно на снижение издержек (см. выше про варианты взаимоотношений) и будь лицензия той же BSD — было бы, скорее всего, тоже самое.
Особенно хорошо это видно в сфере embedded: даже у того же Самсунга можно слить с сайта исходники Линукса и бизибокса, использованные в последних моделях телевизоров. Но что с них толку? Это тупо исходники Линукса и бизибокса. :-) Они чуть-чуть изменены и тюнингованы, чтобы запускаться на оборудовании внутри телевизора, но весь функционал по работе с оборудованием реализован в виде подключаемых модулей ядра (исходников от которых нет), а весь фронтенд, которым телевизор общается с пользователем — в виде бинарника, от которого исходников, естесственно, тоже нет. Да, toolchain'а, чтобы можно было бы хотя бы имеющееся ядро собрать, прошить в телевизор и погонять через консольку на плате тоже нет.
Или взять IPTV приставку D-Link DIB-120, для которой я пишу интерфейс — ситуация аналогичная до мелочей: исходники линукса и GNU'шных стандартных утилит и все. Поддержка Бродкомовского чипа — через пропиетарный модуль ядра, весь функционал — в виде одного здорового 16мегабайтного бинарника, куда вкомпилирована Опера, dhcp-клиент и все остальное, что нужно для работы девайса. Польза от выложенных исходников — нулевая. И таких примеров — тысячи, я просто говорю о том, что мне ближе. :-)
Я, опять же, подчеркиваю, что это все не есть плохо. Просто это так есть и говоря о GPL не надо думать, что она — светоч во тьме и истина в последней инстанции. Свою задачу она решает — обеспечивает незакрывание исходников при их использовании для создания своих продуктов. Вопрос в том — всегда ли это так хорошо — жестко настаивать на раскрывании исходников?
–1
spiritedflow #
Ок, значит «полезный» в твоем понимании, это полезный кому-либо, кроме автора.
Значит «бесполезный» — полезный только автору или никому. Согласись, общепринятое понимание слова «бесполезный» отличается от твоего: бесполезный — это никому не нужный. Никому! Даже автору.
0
sky_lord #
Ты не вполне прав. Бесполезность — относительное и субъективное понятие, т.е. все зависит от субъекта которого мы выбираем. Выбирать в качестве субъекта «всех-всех-всех» не вполне методологически верно — естесственно, что никогда не бывает так, чтобы какая-то вещь была априори ненужна никому во вселенной. Говоря об open source большинство людей всегда оперируют полезностью с точки зрения общества, комьюнити — ну вот, собственно, я с этой же стороны и подхожу. :-)
А с точки зрения философии ты, конечно, прав — абсолютно-вселенски-бесполезным любой код назвать нельзя. И вообще: "- Мама, мама, а правда, что программы, когда их деинсталлируют, попадают на небо, и там их устанавливают на большом-большом компьютере, который никогда-никогда не зависает...? " (с) народное
:-)))
–1
spiritedflow #
> Говоря об open source большинство людей всегда оперируют полезностью с точки зрения общества

Возможно, если бы не четкое:

> не важно — нужен он кому-либо или нет

Здесь стоит «кому-либо», а не «обществу».

У программиста словосочетание «бесполезный код» плотно ассоциируется с NIH-синдромом, велосипедами без дополнительной функциональности, конструкциями вида if flag=True and flag != False and flag in (True, False) и т.п.
0
spiritedflow #
> Подчеркиваю — я имею в виду именно тот код, который выкладывается по условиям лицензии.

Это существенно. «Выкладывается» — это значит, что речь не про весь код вообще, а только про опубликованный. Как я понял, мысль была примерно такая:

GPL вынуждет автором бессмысленно опубликовывать никому не нужный, кроме самих авторов код

Во-первых, «код» -> «публикация кода».
Во-вторых, «бесполезный код» -> «не нужный никому кроме автора код». Это более корректно.

Теперь я правильно понял мысль?
+1
sky_lord #
Ага. Вполне. Только под «авторами» мы, ясен перец, имеем в виду не авторов/мантейнеров проекта, а тем, кто их кодом пользуется и изменяет его.
И я еще раз повторю: это все не есть плохо — опубликовывают и ради Бога, мне не жалко — я об этом еще в самом первом комментарии сказал. Просто я не согласен с теми, кто считает подобную схему — истиной в последней инстанции, а все остальные лицензии — ересью, за которую надо сжигать, как минимум. :-) Есть ли плюсы от GPL? Безусловно (см. выше)! Есть ли минусы от GPL? Безусловно (тоже см. выше)! Вот и все, собственно. :-)
0
spiritedflow #
Чтобы сэкономить наше время, (я думаю, теперь я правильно понимаю твою мысль) сразу перейду к этим пунктам. Итак пункт 1. Я не согласен вот с этим:

> BSD объективно полезнее — так как возвращается целенаправленно, а не просто лишь бы cоблюсти условия лицензии

Точнее, согласен со второй частью, но не согласен с первой.

Да, под GPL выложено в открытый доступ гораздо больше кода не нужного никому кроме тех, кто выложил. Они были вынуждены выложить, чтобы не нарушить GPL. Под BSDL доля опубликованного полезного для сообщества кода гораздо выше. Тут я согласен. Но это только одна сторона медали.

Другая: Под BSDL гораздо больше, невыложенного в открытый доступ, кода, который мог бы оказаться полезным сообществу. Ты её не рассматривал.

Грубо говоря, вопрос переходит вот в такой: Что лучше? Когда где-то на ftp лежит не нужный тебе код, или когда никак не достать нужный? Для сообщества, очевидно, лучше первое.

Но это еще не конец, нельзя говорить, что GPL «объективно полезнее». Из-за «мог бы» в вопросе. Не факт, что если бы весь BSDL код нужно было бы тоже выкладывать, его бы кто-то написал. И тут ответ уже не так однозначен. Не понятно, какие функции не были бы написаны, а какие все же написали бы и выложили. Что лучше иметь доступ к коду но лишится каких-то функций (каких? на какое время?), или не иметь доступ но функций будет больше.

Что я хочу сказать? Всё намного сложнее, чем кажется :-)
0
spiritedflow #
> Под BSDL доля опубликованного полезного для сообщества кода гораздо выше.

Неправильно сформулировал. Надо: "… доля полезного для сообщества кода среди опубликованного гораздо выше."
0
sky_lord #
Ну, в общем-то я примерно про это вначале и говорил. :-) Я про то и веду речь: чтобы понять более предметно и конкретно, было бы неплохо оценить, какой объем опубликованного с изменениями кода по GPL возвращается в проекты. Не того кода, когда компании сознательно сотрудничают с мантейнерами и делают официальные прямые коммиты, а именно вот эта ситуация: выложили у себя код на ftp — потратило ли комьюнити потом силы, чтобы закоммитить эти изменения в основную ветку? Я таких обзоров и такого анализа в Интернете не встречал, а ведь он реально намного полезнее и интереснее, чем выявлять, какие компании больше коммитят официально — официально оно и в Африке официально…
0
spiritedflow #
Ок, раз с предыдущим вроде бы пришли к согласию, то вопрос вызывает вот эта фраза:

> GPL создавалась для решения конкретной практической утилитарной задачи — тупо обеспечить постоянное увеличение количества кода.

Я не считаю, что именно это было целью создания GPL. Можешь привести цепочку выводов, с помощью которой ты пришел к такому результату?

0
sky_lord #
Дык, я выше в одном из комментов об этом написал. Ясное дело, что Столлман так для себя задачу не формулировал — он-то хотел всеобщего счастья. Но он считал, что оно достижимо при выполнении главного условия: чтобы код не закрывали. Своей лицензией он это условие обеспечил, а о стратегических целях/задачах (например, обеспечить выкладывание кода не только теми, кто распространяет продукты на его основе, но и теми, кто просто им пользуется) тогда и не думал. А думать только через 10 лет начал, когда третью версию GPL стали сочинять…
0
spiritedflow #
> А думать только через 10 лет начал, когда третью версию GPL стали сочинять…

Я думал, что GPLv3 делалась для того, чтобы закрыть «дырки» GPLv2? Если нет, или не только, то какие там новшества отражают то, что Столлман наконец-то задумался о стратегических целях/задачах?

Почему ты решил, что Столлман раньше не думал о стратегии? Что ты понимаешь под словом стратегия?
0
sky_lord #
Ага, для того и делалась. И именно то, что эти дырки были отражает то, что изначально о перспективах думали не особо. :-) Ты погляди хотя бы в той же Википедии статью про GPL — там прямым текстом сказано, что первая версия делалась просто для решения двух проблем, существовавших на тот момент: сокрытие измененных исходников и выпуск производных продуктов под более ограничивающими лицензиями, чем оригинальные. Ну, вторую версию лишь немного подрихтовали — причем в сторону большей суровости, — а только потом осознали, что как раз стратегически это все не вполне верно, и придумали LGPL.
Но вот сейчас сижу и думаю, что, возможно, ты действительно прав насчет GPLv3 — вероятно, что создавая ее о стратегии тоже не думали, а просто дырки второй версии затыкали… Если так, то обидно.
Под стратегией я понимаю то, что значит это слово по словарю. :-)
0
spiritedflow #
> И именно то, что эти дырки были отражает то, что изначально о перспективах думали не особо. :-)

Непонятна связь. Например, я сделал программы, защищающую данные. В ней нашли дырки, и получили доступ к данным. Это означает, что я не особо думал о перспективах. Допустим. О каких перспективах?
Я не думал для чего и как её будут использовать?
Я не думал зачем и кому нужна такая программа?
Я не продумал стратегию?
Я не достаточно хорошо предусмотрел все способы обхода моей защиты?
Я не думал о будущем?
+1
sky_lord #
Слушай, я бы не стал проводить параллели между конкретной программой и общественной лицензией, которая и создавалась, чтобы выполнять более глобальные задачи.
И я никак не пойму, чего ты от меня в конце концов хочешь. Я должен признать, что Столлман — гений, а GPL — гениальный продукт его разума? ;-)
0
spiritedflow #
Твоя точка зрения отличается от моей, и хочу понять где и почему. От тебя я прошу только помощи в этом :)
0
spiritedflow #
Хорошо, без параллелей. Я просто хочу понять что ты понимаешь под словом «перспективы» в данном случае, и как это относится к «стратегии», о которой Столлман не думал или думал но не всесторонне?

0
spiritedflow #
> а только потом осознали, что как раз стратегически это все не вполне верно, и придумали LGPL

Если они решили, что путь GPL был стратегически не верным, то почему его оставили?
Почему LGPL стала лишь дополнением, а не заменой?
Почему стратегически не вполне верный путь даже стали развивать, сделали GPLv3?
0
sky_lord #
Они не решили, что путь GPL был стратегически неверным. Читай мои комменты внимательнее — я же все это уже говорил… Просто они изначально достаточно узко понимали свою стратегическую задачу обеспечения развития программного обеспечения просто через полную доступность всех исходников. LGPL и сделали именно потому, что осознали, что так прямолинейно эта задача не решается.
А у людей всегда должен быть выбор — что ж в этом такого? Поэтому и лицензий много. :-) Если Столлман, ты или я считаем, что светлое будущее будет только при какой-то конкретной лицензии — это не значит, что надо всем диктовать свою волю и что лицензия у всех должна быть одна. :-)
0
spiritedflow #
> Под стратегией я понимаю то, что значит это слово по словарю. :-)

Стратегия — общий всесторонний план достижения определенной цели. Такое определение вполной мере отражает твое понимание этого слова?
0
sky_lord #
Ага. Вот с моей точки зрения план достижения цели был обдуман не вполне всесторонне. :-)
Вот, скажем, читаю я CreativeCommons и эту всестороннесть и желание учесть все нюансы вижу… А в GPL — только убежденность в своей одной точке зрения и все…
0
spiritedflow #
Получается, фраза «а о стратегических целях/задачах тогда и не думал» на самом деле означала «план достижения цели был обдуман не вполне всесторонне». Т.е. цель была, стратегия тоже, но не тщательно проработана?
0
sky_lord #
Цель, конечно, была. Она вообще всегда у всех одна — «сделать мир лучше». :-) А вот стратегия действительно не была проработана. Как я уже неоднократно писал выше, тогда считали, что достаточно обеспечить незакрытие кода и все будет хорошо. Я лично с этим не согласен и считаю, что для торжества идеи open source (что будет заключаться в том, что весь код будет open source и все коммерческие продукты будут на нем основаны, а зарабатывать деньги все будут не на «воздухе», а на предоставлении конкретных услуг и сервисов) самой по себе гарантии открытия кода недостаточно и что как раз она не является основным средством достижения цели.
0
spiritedflow #
Я должен сказать, ты слишком вольно относишься к формулировкам. Уже третий раз я вижу твое утверждение, с которым не согласен, а после нескольких вопросов, оказывается что там было совсем другое, которое не вызывает возражений. Но чего стоит вот это:

«задачи «сделать мир лучше» не ставилось изначально.» в самом первом сообщении
и
«Столлман так для себя задачу не формулировал — он-то хотел всеобщего счастья.» в недавнем ответе.

Реально. Как это произошло?
0
sky_lord #
О! Ты решил перечитать мои комментарии — мне это приятно. :-)
Прошу прощения за допущенную вольность с формулировками. Я надеюсь, что несмотря на это, после нашего долго обсуждения ты понял мою мысль и то, что я в итоге и изначально хотел сказать. К сожалению, я не предполагал, что мой первый комментарий вызовет столь долгое и и плодотворное обсуждение, в результате которого я, главным образом, смог более четко формализовать собственную позицию по данному вопросу, а то иначе я бы с самого начала сел и четко обозначил используемый понятийный аппарат. Так или иначе, я рад, что с точки зрения содержания ты в целом со мной согласен и что наш спор касался по сути лишь формы высказываний. :-)
0
spiritedflow #
Это хорошо. Я тоже подправил свое мнение :)

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

Спасибо за помощь и потраченное время :)
0
sky_lord #
Взаимно! :-)
+3
cencelad #
i feel overminded.
+4
entw #
Каждый год находится какой-нибудь «умник», желающий поделиться со всеми своими мыслями о несостоятельности GPL, и тем не менее она широко используется в различных проектах уже на протяжении ~25 лет. Собака лает — караван идёт.
+7
sky_lord #
Да ради Бога! Пусть идет! Никто же и не спорит! :-) Эта и другие подобные статьи просто хотят показать и другую сторону — что не все так классно в Датском королевстве. Посмотрите внимательнее — эта статья чуть менее, чем полностью состоит из отрицательных примеров использования GPL. Не высосанных из пальца размышлений на тему «GPL — говно!», а конкретных примеров. И задача ее и других подобных статей лишь в том, чтобы заставить разработчиков думать перед тем, как начинать новый проект под какой-то конкретной лицензией — чтобы потом не было мучительно больно. Я об этом написал чуть выше.
А сама GPL совершенно неплоха — никто ничего другого и не говорит. Но она и не всеобъемлюща, как иногда почему-то думают ее фанаты.
+3
entw #
Тогда, пожалуй, не стоит бросаться такими громкими словами, как «несостоятельность» (в оригинале failure).
+1
sky_lord #
С этим соглашусь. :-)
Но это, к сожалению, тенденция современного интернета: все гонятся за скандальностью, чтобы увеличить себе количество посетителей/читателей. Назови ее автор «Несколько советов разработчикам по выбору лицензии на перспективу: GPL не панацея» — и потенциальный интерес явно стал бы меньше. :-)
0
smind #
и тем не менее… для себя я давно определился, gpl это для меня, и все свои поделки я делаю именно под ней, т.к. ИМХО это наиболее честная, для программиста, лицензия. А тех кого она не устраивает, по каким по причинам, имеют возможность выпускать ПО под двойной-тройной лицензией.
0
sky_lord #
Я это правильно! Если что-то свое я буду скидывать в public — это тоже, скорее всего, будет под GPL. Просто в силу того, что я такой весь из себя маленький одиночный разработчик и все такое. С другой стороны — именно из-за того, что я маленький и одиночный, кто-нибудь, кому вдруг понадобится мой код (особенно в этой стране ;-) ) — положит с прибором на лицензию. :-) С третьей стороны — из-за того, что разработчик я опять же одиночный — никто мне не мешает всегда лицензию изменить. А вот в больших и масштабных проектах, которые принимают патчи от тысяч людей — это уже сложнее и поэтому важно определиться в самом начале…
Вообще, сложно все это. Вот, скажем, все кому не лень пользуют и тырят код busybox — очень уж штука вкусная. И куча разборок из-за этого происходит. А вот был ли толк комьюнити от кода, открытого в результате разборок — это вопрос отдельный. Надо будет покурить хорошенько сорцы и всякие рассылки самого busybox'а…
НЛО прилетело и опубликовало эту надпись здесь
+2
evgenyk #
Да автор пытается обосновать одну простую мысль: хорошо бы пользоваться плодами работы других людей, но ничего не отдавать взамен. Ну, извините, мир устроен не так, нет ни вечного двигателя, ни рога изобилия, ни скатерти-самобранки. Если что-то даешь, что-то приходится отдавать взамен.
0
dmodeus #
Но ты можешь отдавать нечто совершенно другое взамен, поэтому «ты мне — я тебе» нужно воспринимать в более широком смысле.
0
Hnome #
да, GPL не совершенна, но есть еще LGPL и вообще каждый выбирает лицензию сам и это право разработчика в первую очередь и вот уже тут не уместно рассуждать плоха GPL или нет, ее выбрал автор кода и этим все сказано.
Так же советую поинтересоваться мотивацией разработчиков wine при смене лицензии на LGPL
+1
ishua #
дело в том, что такие статьи пишут для разработчиков, которые часто совсем не хотят быть юристами, и есть такие разработчики (дада такие есть!), которые не сильно то разбираются в разнице GPL, BSD, Apache, MIT и др. лицензий… и часто выбирают GPL, так как она на слуху, но это действительно не всегда выход, бывает когда люди подходят к выбору здраво, то понимают, что им не нужна «вирустность» GPL, и BSD лучше подходит либо в данном случае, либо вообще.
+4
Hnome #
ну вы же понимаете, что это не проблема молотка, что его использовали чтобы поколотить человека, а не заколотить гвоздь :)
Нельзя говорить, что GPL несостоятельна. То что ее используют не осознавая того, что хотят получить ее использованием это да, но это несостоятельность конкретных разработчиков. И бесполезно пинять, мол виновата GPL, сейчас уже многие профессиональные разработчики разбираются в тонкостях лицензирования и знают что они хотят получить использую конкретную лицензию.
Вывод один, нужно думать своей головой. Но это собственно не новость, правда?
+1
hmage #
С любым проектом под BSD лицензией легко проделать такое:
1) Форкаем
2) Не распространяем исходники
3) Вливаем оплаченные человеко-часы, быстро добавляем вкусную функциональность, чтобы пользователи оригинального проекта перешли на наш форк.
4) Ждём, чтобы пользователям не было интересно пользоваться оригинальным проектом из-за громадного отставания в функциональности.
5) Начинаем требовать денег.
6) Автор оригинальной ветки забрасывает проект.
+2
intnzy #
под практически любую вещь можно найти свой способ «рейдерства»
+1
iZENfire #
Да, все шесть пунктов не противоречат лицензии BSD.

Однако вы обязаны сделать уведомление об авторском праве на исходный код, на основе которого был сделан ваш форк, и приложить к продукту:
1) информацию об авторском праве;
2) список условий BSDL;
3) отказ от гарантий в документации и/или в других материалах, поставляемых при распространении.

А название <Организации> — владельца авторских прав на исходный продукт, ни имена ее сотрудников не могут быть использованы в качестве поддержки или продвижения ваших продуктов, основанных на их ПО без предварительного письменного разрешения.

BSDL разрешает не публиковать исходники и вводит необязательность их распространения, но не разрешает не указывать информацию об авторском праве.
+1
Pilat #
Может быть это ошибка перевода, но в статье как-то смешиваются GPL и LGPL, по-моему это неправильно.
–1
xsektorx #
>К несчастью для Apple, GPL требовала или открыть исходный код XCode или переписать GCC
ах ты ж надо же! вот срань-то! как можно приносить несчастья-то?!
дальше не осилил, извиняюсь
0
exah #
офигенная статья, искренне автору благодарен!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.