Привет, Хабр, давно не виделись! Со времени моих предыдущих публикаций в
серии «Памятка евангелиста PostgreSQL» (1, 2, 3) прошло довольно много времени, и многое изменилось. Вышли новые релизы MySQL и PostgreSQL с интересными фичами (хотя содержимое моих статей остаётся по большей части актуальным, я старался вносить мелкие обновления там, где это требовалось). В моду вошёл ко-маркетинг (с ко-франшизингом и местами даже ко-лизингом), когда доклады о PostgreSQL звучат на конференциях, посвящённых MySQL, и наоборот. Появились даже совместные доклады, где предпринимаются попытки объективного сравнения MySQL и PostgreSQL в тех или иных плоскостях. Отгремела история с Uber, с протяжённой по времени дискуссией, в которую я тоже внёс свой скромный вклад.
В целом, диалог между двумя проектами становится более содержательным. Я всё реже слышу страшилки и мифы, о которых я рассказывал в предыдущих статьях. Однако есть один устойчивый миф, который по-прежнему раскручивается сообществом PostgreSQL. Если быть точным, раскручивается он моей любимой компанией Postgres Professional – от представителей других компаний я пока такого не слышал. Это миф о «проприетарности» MySQL. В беседах руководство Postgres Professional демонстрирует какое-то дикое незнание матчасти и своеобразное толкование терминов. А значит пришло время дорогой редакции снова взобраться на броневичок!
С чего всё началось?
Началось всё с доклада Олега zen Бартунова, генерального директора Postgres Professional, на конференции DevConf 2017. Доклад назывался PostgreSQL для хипстеров. Естественно, как нельзя пройти мимо тёщиного дома без шуток, так и нельзя поговорить о PostgreSQL, не упомянув при этом MySQL. Так было и тут, я услышал несколько удивительных историй о MySQL. О некоторых из них, надеюсь, будет отдельный рассказ чуть позже. Здесь же мы будем обсуждать одно конкретное утверждение Олега, где он лихо загоняет Oracle RDBMS, MySQL и Microsoft SQL Server под одну гребёнку, называя их всех «проприетарщиной» (видео, с 16:48 до 17:11).
Я связался с Олегом, чтобы выяснить, что это было: незатейливый троллинг, случайная оговорка или сознательный евангелизм. Оказалось, что евангелизм – Олег действительно так считает и даже готов аргументировать свою точку зрения. Но его аргументация мне показалась натянутой, а мои аргументы Олег тоже отверг. Я подумал, что раз Олег высказывает свою точку зрения публично, то почему бы и мне не высказать свою, и что это было бы хорошим продолженим серии статей про PostgreSQL евангелизм.
Собственно, это не первая попытка Postgres Professional объявить MySQL проприетарным ПО. Вкратце я затрагивал эту тему в предыдущих статьях, но я тогда и не подозревал всю глубину заблуждений, которая вскрылась только в комментариях к статьям, а также в недавней личной переписке и небольшой дискуссии на эту тему в Facebook. Периодически к дискуссии подключается директор Postgres Professional по разработке Александр smagen Коротков. Для обоснования проприетарности в ход идут любые аргументы: отличия в моделях разработки, лицензиях и бизнес-моделях между MySQL и PostgreSQL сообществами. Отличия, естественно, есть – вряд ли существуют два абсолютно одинаковых по всем критериям проекта. Однако желание объявить «проприетарщиной» всё, что не вписывается в собственные представления об экосистеме открытого ПО, наблюдается только у Postgres Professional.
Чисто по-человечески я могу понять это желание экспроприировать звание самой популярной открытой СУБД. Но понимать мотивы – не значит соглашаться, поэтому будем разбирать аргументы подробно.
Авторское право и лицензия
Начнём с базовых терминов. Я не буду углубляться в историю, как это делает в своих лекциях Ричард Столлман. Я также не буду вдаваться в юридические дебри, описывая авторское право для «произведений науки, литературы и искусства», как это делает Wikipedia. Я буду описывать вещи простым русским языком с фокусом на программное обеспечение.
Авторское право (copyright) для программного обеспечения – это набор законов, принятых в большинстве стран, которые дают автору программы (правообладателю в более общем смысле) право самостоятельно определять условия использования и распространения программы. Такие условия называются лицензией. Авторские права возникают в момент написания кода программы. Автор может передать авторские права другому лицу или организации, либо вовсе от них отказаться. В случае отказа от авторских прав или истечения срока их действия программа переходит в «общественное достояние» (public domain).
Свободное и проприетарное ПО
Термины «свободное», «открытое» и «проприетарное» ПО используются довольно широко для условного разделения всего спектра ПО в зависимости от уровня «свободы» использования и распространения, то есть условий лицензии.
Термин «свободное ПО» (англ. free software) используется созданной Столлманом в 1985 году организацией Free Software Foundation. В последнее время также используется термин «libre software», чтобы избежать двусмысленности слова «free» в английском языке, которое может означать как «свободное», так и «бесплатное», что применительно к программам совсем не одно и тоже.
Столлман и FSF определяют следующие четыре критерия для свободного ПО:
- свобода номер 0: возможность запускать программу с любой целью
- свобода номер 1: возможность изучать исходный код программы и модифицировать под свои нужды
- свобода номер 2: возможность распространять немодифицированные копии программы
- свобода номер 3: возможность распространять модифицированные копии программы
Очень близкий термин «открытое ПО» (англ. open source software) был предложен основанной в 1998 году организацией Open Source Initiative. OSI определяет более длинный список формальных критериев, но если отбросить мишуру, все они сводятся к тому же определению, которое использует FSF: открытое ПО – это «программное обеспечение, которое можно свободно получить, использовать, изменять и распространять в исходном или модифицированном виде». Новый термин был создан в основном для того, чтобы избежать двусмысленности слова free в английском языке. А новая организация была создана из-за несогласия по «филосовским» вопросам с FSF и желания сфокусироваться на практических вопросах без лишнего евангелизма.
Термин «проприетарное ПО» используется для обозначения программ, которые не соответствуют критериям свободного или открытого ПО. Заметим также, что исходя из популярных определений, «свободность», «открытость» и «проприетарность» ПО зависит исключительно от лицензии.
Очевидно, что MySQL, который Oracle распространяет под созданной FSF лицензией GPLv2, этим критериям соответствует. Есть много проектов и даже компаний, которые без перечисленных свобод просто никогда бы не появились, например MariaDB, Percona Server/XtraBackup, Galera, Amazon RDS/Aurora. Многие крупные использующие MySQL компании создают и используют свои собственные «форки» MySQL, что было бы невозможно, если бы MySQL был проприетарным: Facebook, Twitter, LinkedIn, Uber, Alibaba.
На этом статью можно было бы заканчивать, если бы не всё многообразие аргументов, набрасываемых Postgres Professional на вентилятор.
Аргументы Postgres Professional: «все права в одних руках»
Итак, называя MySQL «проприетарщиной» Олег Бартунов очевидно пользуется какими-то своими определениями открытого/свободного и проприетарного ПО. Имеет право, конечно, но выяснить эти определения мне не удалось. Вместо сформулированных критериев Олег приводит какие-то цитаты из Википедии и Oracle Contributor Agreement, которые он явно не очень хорошо понимает.
Во-первых, говорит Олег, открытость исходного кода ещё ничего не значит и в качестве доказательства приводит цитату из википедийной статьи о проприетарном ПО: «Проприета?рное програ?ммное обеспе?чение, несвобо?дное программное обеспечение (англ. proprietary software; от proprietary — частное[1], патентованное[1], в составе собственности[1] и software — программное обеспечение) — программное обеспечение, являющееся частной собственностью авторов или правообладателей и не удовлетворяющее критериям свободного ПО (наличия открытого программного кода недостаточно)».
Действительно, наличие открытого кода недостаточно, чтобы удовлетворять критериям от FSF или OSI. Код проприетарного продукта можно получить от производителя на очень ограниченных условиях (а можно вообще украсть), и примеры такого «открытия» можно найти. Обычно такой код можно почитать, но что-либо сверх того делать с ним нельзя. Возможность чтения исходного кода – это только малая часть свобод, определяемых FSF/OSI.
Но причём здесь MySQL, лицензия которого – это GPLv2 c полным спектром свобод, которые она определяет?
Во-вторых, Олег утверждает, что проприетарность MySQL обеспечивается тем, что «все права сосредоточены в одних руках» и подтверждает это существованием OCA (Oracle Contributor Agreement) и следующей цитатой оттуда: «This Oracle Contributor Agreement (“OCA”) applies to any contribution that you make to any product or project managed by us (the “project”), and sets out the intellectual property rights you grant to us in the contributed materials.»
Как я понял, Олег интерпретирует эту цитату примерно как all your base are belong to us, мол «караул, хулиганы авторских прав лишают!».
Начнём с того медицинского факта, что Oracle мог бы вообще не принимать никаких патчей извне, и MySQL не перестал бы от этого быть свободным и открытым ПО в определениях FSF и OSI. Но у Олега своё определение, и мне стало интересно пойти дальше и попробовать его хотя бы понять.
Если бы Олег удосужился почитать соглашение целиком (оно короткое) или хотя бы список часто задаваемых вопросов, он бы узнал, что OCA не требует эксклюзивной передачи авторских прав и права не «сосредоточены в одних руках». Соглашение устанавливает совместные авторские права между Oracle и автором кода, после которой каждый из участников соглашения может делать с кодом всё, что захочет. Цитата из OCA FAQ: «You retain all rights, title, and interest in your contributions and may use them for any purpose you wish. Other than revoking the rights granted to Oracle, you still have the freedom to do whatever you want with your code.»
Кроме того, есть как минимум ещё одна известная в мире свободного ПО организация, которая занимает даже более радикальную позицию, чем Oracle. Называется она Free Software Foundation. Если вы ходите сделать вклад в любой проект, авторские права на который принадлежат FSF, вы будете должны подписать соглашение о полной (а не совместной как у Oracle) передаче авторских прав FSF. Список проектов включает glibc, GCC, Bash, Autoconf, Automake, coreutils, GnuPG и многие другие проекты, без которых сложно представить современную экосистему свободного ПО.
Получается, что все эти проекты – такая же проприетарщина с точки зрения Олега, как и MySQL («все права сосредоточены в одних руках» же)? Олег не даёт ответ, как эту неувязку разрешить. Но тут на помощь ему приходит Александр Коротков, который как бы говорит нам, что «FSF и Oracle – это же совсем разные организации!». Да кто бы спорил, Oracle есть за что не любить (FSF, кстати, тоже). Но тут мы опять вступаем на очень скользкий путь, когда каждый может называть «проприетарщиной» всё что угодно в зависимости от собственных религиозных убеждений. А хочется-то говорить на общем языке. Кто и как будет определять кошерность компании-разработчика, чтобы понять, следует ли считать её open soure проекты «проприетарщиной» или «свободными»?
Александр частично согласен с такой аргументацией, но перевёл разговор в возможность смены лицензии и двойного лицензирования. Об этом мы поговорим чуть позже.
Если смотреть на весь спектр свободного/открытого ПО, какие-то проекты (включая PostgreSQL) вообще не требуют подписания соглашений, какие-то требуют подписание лицензионного соглашения (примеры: openssl, Qt, проекты Apache Software Foundation), которые требуют от разработчика предоставить проекту как правило неотзываемую лицензию на использование с достаточно широкими правами, а какие-то требуют совместной или полной передачи авторских прав (примеры: FSF и Oracle).
Откуда такой разброд и шатание? Здесь начинается юридический хардкор. Всё зависит от специфики проекта, юридической озабоченности правообладателя, а также мнения конкретных юристов, которые его, правообладателя, консультировали. Свободное ПО во многом ещё «серая зона» для традиционного законодательства об авторском праве. Нет единого «правильного» способа, нет даже согласия между самими юристами. Например, на конференции FOSDEM есть отдельный трек посвящённый юридическим проблемам разработки и использования свободного ПО, и этих проблем ещё очень много.
Отсутствие каких-либо соглашений безусловно упрощает включение сторонних патчей. Но есть и обратная сторона, связанная с юридическими рисками. Про это всё можно написать отдельную статью. Я пока просто оставлю ссылки на наиболее содержательные, с моей точки зрения, статьи для желающих разбираться дальше:
Повторю, что все эти вопросы касаются условий включения в проект сторонних патчей. Что абсолютно ортогонально условиям, на которых код проекта получают пользователи и которые определяют «свободность» или «проприетарность» проекта, по крайней мере с точки зрения FSF и OSI. Олег Бартунов и Александр Коротков в праве давать свои определения, какие им вздумаются, но по собственному признанию, в юридических вопросах они не очень разбираются. Мы все можем ошибаться, но хотелось бы видеть хотя бы желание разобраться в базовых вещах.
Аргументы Postgres Professional: двойное лицензирование
Этот аргумент неизбежо возникает при обсуждении «проприетарности» MySQL. Напомню, что cуществуют два отдельных программных продукта: MySQL Community Edition (который обычно и называют MySQL), распространяемый под лицензией GPLv2, и MySQL Enterprise в разных вариантах, которые распространяются под проприетарной лицензией.
Здесь мы будем говорить о бизнес-моделях открытого ПО. Одной из основных задач, которые ставят перед собой как FSF, так OSI, всегда являлось привлечение коммерческих компаний к разработке открытого ПО. Для этого должны существовать устойчивые бизнес-модели, которые бы привлекали коммерческие компании вкладываться в разработку того, что доступно всем бесплатно, да ещё и под свободной лицензией. Если вы не Facebook или Google, вариантов здесь не так много. Один из них называется двойное лицензирование.
Модель двойного лицензирования можно применять по-разному. Можно один и тот же продукт распространять под разными лицензиями. Например, под GPL для тех, кому эта лицензия подходит, и под проприетарной лицензии для тех, кому ограничения GPL не позволяют использовать или интегрировать продукт в свои приложения. То есть, бизнес-модель по сути состоит в продаже исключений из свободной лицензии.
Второй вариант, предусматривающий продажу поприетарных лицензий на продукт с расширенной функциональностью, ещё называют open core.
Первый вариант применяется, например, самим Oracle для некоторых версий MySQL Enterprise, компанией Digium для VoIP системы Asterisk, системой полнотекстового поиска Sphinx, а также известной библиотекой Qt. Кстати, именно Столлман когда-то впервые предложил эту модель компании Trolltech, бывшему разработчику Qt.
Второй вариант использует Oracle как для того же MySQL, так и для VirtualBox. Эту модель также использует компания Nginx в коммерческом продукте NGINX Plus.
Двойное лицензирование в варианте open core использует и Postgres Professional для проприетарного продукта Postgres Pro Enterprise. Кстати, я ни разу не слышал, чтобы сотрудники Postgres Professional называли Nginx, Sphinx, Qt, VirtualBox, да и сам PostgreSQL «проприетарщиной» из-за наличия проприетарных версий под двойной лицензий. Но почему-то про двойное лицензирование MySQL и «камень преткновения» они порассуждать очень любят. Какая странная избирательность.
На мой взгляд очевидно, что наличие проприетарных версий вовсе не делает соответствующие открытые проекты «проприетарщиной», будь то MySQL, Nginx, PostgreSQL, Qt или Sphinx. Все туманные рассуждения на этот счёт со стороны Postgres Professional – это попытка натянуть слона на глобус.
Аргументы Postgres Professional: «Oracle злой!»
Этот аргумент в разных формах всплывает в дискуссиях в людьми из Postgres Professional и не только, когда заходит речь о MySQL. «Вопрос доверия к компании», «эксклюзивные права в руках коммерческой компании», «Oracle может закрыть MySQL». Это всё с одной стороны правда, а с другой очередные попытки навести тень на плетень.
Это правда, потому что Oracle действительно является коммерческой компанией с достаточно «агрессивной» репутацией. И никто никогда не сможет вам гарантировать, что Oracle не закроет MySQL или не остановит разработку.
Но это и попытки навести тень на плетень, потому что на дворе 2017-й год, не 1997-й, и мы живём в мире, где значительная (если не большая часть) открытого ПО, от драйверов устройств до дистрибутивов и СУБД разрабатывается коммерческими компаниями. Это не хорошо и не плохо, это просто объективная реальность, данная нам в ощущениях. Вот спиcки open source проектов других крупных компаний: Facebook, Google, IBM, Intel, Redhat, Canonical, Яндекс, Mail.Ru.
Мне сложно сказать, чем все эти компании «добрее» Oracle, и кто может гарантировать, что они не забросят или не закроют свои проекты. Сама концепция открытого ПО была разработана как раз для того, чтобы минимизировать ущерб от подобных ситуаций, когда поднять упавшее знамя может сообщество, если оно есть. Сообщество включает и сотрудников компании, которые участвуют в разработке проекта, но после закрытия или остановки проекта могут продолжить его за пределами «злой» компании, и таких примеров в экосистеме открытого ПО очень много.
Наконец, последний высказанный Олегом аргумент заключается в том, что раз нет доверия к Oracle, то и права им отдавать нельзя. Как я уже писал, Oracle получается совместные, а не эксклюзивные права – они не «сосредоточены в одних руках», а автор кода остаётся правообладателем и может делать с ним всё, что угодно. Но дело даже не в этом.
Я толерантно отношусь к людям любых религиозных конфессий. Действительно, есть люди, которым религия запрещает передавать что-либо в Oracle, Microsoft, IBM, Facebook, Google и т.д. Рационально объяснить это сложно, но я не вижу в этом проблемы. Проблема в том, что, называя MySQL «проприетарщиной» по сути на основании собственных религиозных убеждений, Олег навязывает свою религию в докладах и разговорах с самыми разными людьми, от студентов до чиновников. Я бы ожидал большей ответственности от человека с такой должностью и с таким широким кругом общения.
Что в итоге?
«Да это же всё очевидно!» – воскликнет не по годам развитый читатель и будет абсолютно прав. Мне и самому было несколько скучно это всё писать, есть гораздо более интересные и содержательные темы для обсуждения вокруг MySQL и PostgreSQL. Но дело в том, уважаемый читатель, что мы живём в удивительном мире постправды, поэтому полезно иногда говорить и об очевидных вещах, исключительно в психотерапевтических целях.
Я не питаю иллюзий, в мире есть вечные вещи, и Postgres Professional будет распространять FUD про MySQL и дальше по идеологическим и коммерческим причинам. Эта статья скорее для тех, кому интересно выслушать и другую сторону, чтобы разобраться самому.
Но есть и хорошие новости! Здравый смысл пока ещё преобладает, и в своём мнении о том, что MySQL – это «проприетарщина», Postgres Professional всё же в меньшинстве. Не нужно даже разбираться во всех нюансах, чтобы понимать, что свободы по изучению, модификации и распространению кода Oracle или Microsoft SQL Server (которых просто нет) в корне отличаются от тех же свобод, которые получают пользователи MySQL, а значит называть их всех одним термином «проприетарщина» уже как минимум нелогично – это чистый FUD. MySQL можно получить, использовать, изменять и распространять в исходном или модифицированном виде в полном соответствии с лицензией GPL, на тех же условиях, что и тысячи других проектов под этой лицензией. FSF содержит MySQL в своём каталоге открытого ПО, Wikipedia также считает MySQL «свободной СУБД», количество форков на Github тоже немного намекает, да и сотрудникам таких компаний как MariaDB, Percona, Amazon, Facebook, Twitter, LinkedIn, Uber и Alibaba явно есть о чём рассказать Олегу.
Следуя моде, предлагаю организовать баттл в виде опроса к статье!
Комментарии (25)
smagen
31.08.2017 14:24+5Честно скажу, не понимаю почему дискуссия по спорным вопросам выплёскивается в виде таких публичных статей на хабр с переходом на личности. Я, например, никогда не говорил, что MySQL – «проприетарщина» (вообще не употребляю этого слова), но действительно считаю что «степень свободности» проекта MySQL гораздо меньше, чем в PostgreSQL (что, иногда кстати, в идёт в ущерб последнему, тоже этого не отрицаю). При этом у меня нет какой-то 100% уверенности в своей позиции, и я готов на эту тему дискутировать. Но когда я пытался на хабре это обсудить с тобой, в комментариях к одному из твоих прошлый постов, то довольно быстро столкнулся с FUD'ом и переходом на личности уже с твоей стороны. Что касается Олега, то у него своё понимание «проприетарщины», и он его придерживается. В любом случае, вряд ли можно монополизировать понимание этого слова и заставить всех трактовать его также, как и ты.
Вопрос то у меня в следующем. Не являются ли такие статьи, как эта, проявлением агрессивного евангелизма, с которым они номинально призваны бороться?kaamos Автор
31.08.2017 15:11Уважаемый Александр!
Как я сообщил в самом начале статьи, она по сути является публичной реакцией на публичные высказывания публичных фигур (которыми вы с Олегом несомненно являетесь). Я также старался сфокусироваться на сути высказываний, а не на личностях. Это не всегда просто, и если я где-то допустил ненамеренный переход на личности, пожалуйста, дай мне знать!
Мне действительно было трудно понять твою точку зрения, потому что в явном виде ты её нигде не высказывал. Если бы ты в комментариях на Facebook написал: «Я не считаю MySQL проприетарным ПО, но считаю *процесс разработки* PostgreSQL более открытым», у меня вообще бы никаких вопросов не возникало. Но это же совсем не то, что ты написал, правильно? Тем не менее, спасибо, что разъяснил позицию. Для этого, в том числе, и статья.
Нет, конечно, я не пытаюсь монополизировать термины. Я несколько раз повторил, что ты и Олег можете использовать любые определения, которые вам нравятся.
Отвечаю на твой вопрос: нет, на мой взгляд, не являются.smagen
31.08.2017 15:38+1Я также старался сфокусироваться на сути высказываний, а не на личностях. Это не всегда просто, и если я где-то допустил ненамеренный переход на личности, пожалуйста, дай мне знать!
На мой взгляд, вырванные из контекста дискуссии скриншоты комментариев – это не самая лучшая идея (а в данном случае читатель не может увидеть контекст даже при желании). Попробуй отразить эту ситуацию зеркально на себя. Из твоих комментариев можно запросто надёргать подборку, которая дискредитирует и твою точку зрения, и тебя лично.
Я не хочу тебя обвинять в том, что ты эти комментарии злонамеренно выбирал против меня или Олега. Но хочу обратить внимание на сомнительность самой такой практики.
Мне действительно было трудно понять твою точку зрения, потому что в явном виде ты её нигде не высказывал.
Я не высказывал точку зрения, потому что её не было. Она и сейчас не сформирована полностью, потому что пока я не располагаю достаточной фактической информацией.
Если бы ты в комментариях на Facebook написал: «Я не считаю MySQL проприетарным ПО, но считаю *процесс разработки* PostgreSQL более открытым», у меня вообще бы никаких вопросов не возникало.
Так я бы не написал. Если нужна моя позиция *на текущий момент*, то её можно сформулировать следующим образом: «Я не называю никакое ПО, распространяемое под свободной лицензией проприетарным, потому что не считаю себя в этом вопросе достаточно компетентным. Но при этом считаю PostgreSQL *в целом как проект* более открытым, чем MySQL.»
vlsinitsyn
01.09.2017 12:22Столкнулись с двойным лицензированием на Mule. Это чистый ад и трэш. В один прекрасный момент mulesoft говорит: «а с версии такой-то, этот коннектор становится проприетарным». Усе.
Так что теперь, когда я слышу про двойное лицензирование, то жду подвоха.kaamos Автор
01.09.2017 12:36Это не двойное лицензирование, а смена лицензии со свободной на проприетарную.
vlsinitsyn
01.09.2017 12:52Нет, почему-же? Как раз таки Mule остается открытым в комьюнити эдишн.
Так же, старый вариант коннектора все еще открыт.
Вообщем, я не вижу причину, по которой владелец ПО не сможет в определенный момент сказать, что вот эта вот функциональность будет доступна только в платной версии и начнет отвергать коммиты с аналогичной функциональностью в публичную версию.
Ну и важнейшим моментом тут является именно мотивация. Понятно, что владелец заинтересован в том, чтобы пользователи переходили с бесплатной на платную версию.
И полный контроль над кодом дает ему в руки хороший рычаг для стимуляции пользователей двигаться в этом направлении. У мulesoft это напоминает выкручивание рук.kaamos Автор
01.09.2017 13:02Я понятия не имею, что это за Mule такой и что у него за коннектор. Но если старый вариант коннектора ещё открыт, а новый уже нет — это не двойное лицензирование, это тупо смена лицензии.
vlsinitsyn
01.09.2017 13:12Дело не в том, как это назвать. Дело в том, что имеется две лицензии на продукт и один полноправный владелец заинтересованный в том, чтобы клиенты платили.
kaamos Автор
01.09.2017 17:26Я ничего не знаю про Mule, но могу рассказать про MySQL. Во-первых, за 8 лет существования MySQL Enterprise не было ни единого случая, когда бы бесплатную фичу перевели в платную версию. Просто некоторые фичи изначально появляются в MySQL Enterprise. Во-вторых, почти для всех «платных» фич есть бесплатные альтернативы от MariaDB и Percona (примеры: PAM authentication, thread pool, XtraBackup)
netch80
01.09.2017 22:48Совершенно удивительная статья — огромное количество слов, но нигде не сказано про проблему лицензии клиента БД.
Почему она важна? Потому что, по тому же процитированному автором статьи:
> свобода номер 0: возможность запускать программу с любой целью
для СУБД (как и любого сетевого сервера) это означает, что она может использоваться клиентскими программами любой лицензии — аналогично тому, как программа под GPL может использоваться под управлением сколь угодно проприетарного комплекта софта, взаимодействуя с последним через штатные каналы связи, через файлы и т.д.
Но СУБД имеют свой протокол. Для MySQL лицензия утверждает совместимость GPL-версии штатного клиента только с явным и закрытым (нерасширяемым) списком FOSS-лицензий. (Список, кстати, странный — в нём нет даже GPLv2.) Коммерческий продукт обязан брать коммерческую лицензию или использовать отдельный процесс-переходник (по сути, последний вариант — хак для лицензии). (Разумеется, есть альтернативные клиентские библиотеки. Но это таки другой продукт.)
Этого для меня, как и, думаю, для большинства потенциальных разработчиков программ — клиентов БД, достаточно, чтобы считать MySQL несвободным: его свобода ограничивает чужую свободу в тех местах, где штатно предполагается отсутствие ограничительных рамок на чужие лицензии.
И вот тут PQ отличается — лицензия клиента по сути тождественна BSD или MIT и не ограничивает лицензирование того, кто использует штатную реализацию клиента.
Не хочу тут раздувать новый спор про уже известные проблемы, потому что они уже обсуждены, кажется, чуть менее чем всеми, за последние 10-15 лет: это темы GPLv3 vs. GPLv2, тема свободы разработчиков против свободы пользователей и частный случай GPL vs. BSD в вопросах построения не-FOSS продуктов на базе FOSS. Ищущий да обрящет. Мой посыл был в том, что статья подобного рода, как тут, без упоминания той тематики, что я назвал — бессмысленна и вводит в заблуждение. Спасибо за внимание.
kaamos Автор
01.09.2017 23:53Ну наконец-то дельный комментарий, спасибо! В статье действительно много слов, и я своей целью ставил рассмотреть конкретные аргументы, которые набрасывает Postgres Professional. Иначе статья была бы настолько большой, что её бы вообще никто не прочитал, т.к. attention span у современного читателя довольно низкий.
Начнём с того факта, что «свобода номер 0» соблюдена, вы можете запускать программу (MySQL) с любой целью.
Далее мы обсуждаем клиентские приложения, которые используют libmysqlclient, то есть клиентскую библиотеку MySQL. Поскольку она тоже распространяется под GPLv2, есть конфликт с теми клиентскими приложениями, которые распространяются под несовместимыми с GPLv2 лицензиями. И это проблема лицензии GPLv2 и любых библиотек под этой лицензией, а не что-то специфичное для MySQL.
Для того, чтобы убрать эту проблему для свободного ПО, Oracle как правообладатель предлагает исключения из GPLv2. Именно по этой причине самой GPLv2 в списке нет — её совместимость вытекает из лицензии на MySQL.
Какие проблемы это представляет для мира проприетарного ПО? Если вы используете проприетарное приложение, слинкованное с libmysqlclient, вы ничего не нарушаете. Что устраняет проблему для подавляющего количества веб- и интернет пользователей, где MySQL лидирует. Пример: сайт с MySQL и проприетарным приложением, которое использует MySQL с помощью libmysqlclient. Естественно, само приложение никуда за пределы компании-разработчика как правило не распространяется. И в этом случае никакие лицензии не нарушаются. Именно поэтому все использующие MySQL интернет-гиганты (где уж точно много внутреннего проприетарного ПО, работающего в связке с MySQL) никаких проблем с лицензией GPLv2 не имеют.
Проблема есть только у разработчиков проприетарного ПО, которые хотят не только запускать своё приложение у себя, но и распространять его. Сколько таких компаний от общего количества пользователей MySQL? Думаю, что единицы процентов. Тем не менее, и у них есть варианты:
— купить лицензию на MySQL Enterprise. На мой взгляд, это вполне честный вариант: зарабатываете на распространении проприетарного ПО — покупайте проприетарную лицензию.
— использовать клиентскую библиотеку от MariaDB, которая совместима как с MySQL, так и с MariaDB, и при этом лицензирована под LGPL, что устраняет все перечисленные вами проблемы.
То есть, варианты есть в любом случае, для любого класса ПО. Есть ли какие-то случаи, которые они не покрывают?smagen
02.09.2017 01:26-1В статье действительно много слов, и я своей целью ставил рассмотреть конкретные аргументы, которые набрасывает Postgres Professional. Иначе статья была бы настолько большой, что её бы вообще никто не прочитал, т.к. attention span у современного читателя довольно низкий.
Напротив, я думаю, если бы ты написал хороший пост, а не агитку, его успех был бы намного больше. Можно будет проверить. Боюсь, что не смотря на моё нежелание, в конце концов придётся мне самому придётся разобраться в теме и написать объективный и нейтральный пост на данную тему.kaamos Автор
02.09.2017 07:13-2Успех поста — вещь вообще никак не связанная с его качеством. Если бы я гнался за успехом, я бы клепал посты «чем PostgreSQL лучше, чем MySQL» и с успехом было бы всё хорошо.
Я написал хороший и качественный пост на сложную тему. А сложная она исключительно потому что, что врать легко, а опровергать враньё сложно. На этом основана любая пропаганда. Сказать «MySQL проприетарщина» просто, а чтобы объяснить в подробностях, почему это враньё, нужно много слов.
Если по сути поста сказать нечего, попробуй просто промолчать, например.smagen
02.09.2017 11:38-1Успех поста — вещь вообще никак не связанная с его качеством.
Ну, не знаю. На мой взгляд качество поста – один из факторов, влияющих на его успех. Не единственный, конечно.
Я написал хороший и качественный пост на сложную тему.
Это непреложная истина, а все кто думают по-другому – непременно врут и ведут пропаганду? :)
А сложная она исключительно потому что, что врать легко, а опровергать враньё сложно.
Вот этого я не понимаю. Почему те, кто думаю по-другому, непременно врут, а ты непременно говоришь одну лишь правду и только опровергаешь враньё?
У тебя в твоей серии постов «Памятка евангелиста» довольно много спорных и, я бы даже сказал, жульнических и манипуляторских аргументов. Зачастую приписываешь оппоненту (реальному или виртуальному) то, чего он не говорил, а потом выставляешь его дураком. Реально спорные и дискуссионные вопросы при этом обходятся стороной.
А сложная она исключительно потому что, что врать легко, а опровергать враньё сложно. На этом основана любая пропаганда.
Но ведь и ты написал свой пост в духе пропаганды. Он, как минимум, очень однобокий, избегает альтернативных мнений, и дискуссионных вопросов.
Если по сути поста сказать нечего, попробуй просто промолчать, например.
Честно скажу, что по итогам твоей серии статей «памятка евангелисту» стала вырисовываться идея статьи «разоблачаем разоблачителя». Смущает то, что это будет ещё большим разжиганием срача. И ещё какой-то подсознательный страх есть, когда видишь советские плакаты, безапелляционные суждения, а также посыпание альтернативных мнений словами «враньё» и «пропаганда» :)kaamos Автор
02.09.2017 12:12Ваша постгрес-профессиональная проблема заключается в абсолютно непрофессиональном подходе к дискусси с конкурентами. За все годы существования компании я не видел ни единого хоть сколько-нибудь объективного, основанного на фактах высказывания о MySQL. Если у тебя есть примеры таких высказываний — я жду их здесь.
Вы привыкли, что о MySQL можно говорить всё что угодно, не удосужившись подучить матчасть (которую вы не знаете по собственному признанию), хотя бы попытаться что-то выяснить или хотя бы дочитать документ до конца. Зачем, если возражать никто не будет? Для Oracle вы слишком мелкие, чтобы вас замечать. Перкона далеко и её местная возня не очень интересует. «Аля-улю, болтай что хочешь!» — вот ваше отношение к MySQL.
Когда же вам начинают аргументированно возражать, вас начинает корёжить. «Боюсь, что мне придётся написать объективную статью». Да милый ты мой, напиши. Хоть что-то будет объективного с вашей стороны за долгие годы. Но боюсь, что выйдет такая же пропаганда как обычно.
smagen
02.09.2017 13:05Я рад, что ты выговорился. Серьёзно.
Ваша постгрес-профессиональная проблема заключается в абсолютно непрофессиональном подходе к дискусси с конкурентами.
Конкретно кто? Олег? Я мало вообще говорил про MySQL, дискуссии с тобой – редкое исключение. У нас в компании многим нравится MySQL. Во внутренних дискуссиях, сотрудники часто указывают на недостатки PostgreSQL и достоинства MySQL. Если во внешних дискуссиях кто-то кого-то обидел, то дай знать. Мы не можем это сами полностью контролировать, но и никому ничего не навязываем. По вопросам «проприетарности», «свободного ПО», «открытого ПО», и высказываниям на этот счёт Олега я буду разбираться. Не обещаю что это будет быстро. Но как только у меня будет законченное мнение, я его изложу.
Вообще, усиленная критика MySQL со стороны сообщества PostgreSQL – я думаю, вещь, естественная и закономерная. Дело в том, что MySQL – это действительно самая популярная в мире Open Source СУБД. И люди, которые пробовали работать с Open Source СУБД (использовать, разрабатывать и т.д.), начинали именно с MySQL. И только если их MySQL чем-то не устраивал, то они начинали знакомиться PostgreSQL (не скажу, что происходит всегда, но знаю лично много примеров). Поэтому сообщество PostgreSQL естественным образом (не потому что кто-то злые козьни строит), прошло селекцию нелюбви к MySQL, и потом активно критикует. Но в том есть своеобразная плата за популярность.
Но, по своему опыту, могу сказать, что поток критики не всегда направлен в сторону от PostgreSQL к MySQL. Довольно часто сталкивался с мнением, что PostgreSQL не нужен, потому что уже есть MySQL и он популярен; и на PostgreSQL не нужно тратить ни времени, ни сил. Аргументы при этом приводились разные, многие в духе тех, которые ты разоблачаешь. Но опыт, он у каждого свой. Бывает, что кто-то кого-то в детстве покусал. Но со временем это проходит.
P.S. Не в то место дискуссии отправил коммент. Цитата позволяет однозначно определить, что я отвечал вот на это.kaamos Автор
02.09.2017 14:34Вот это уже слова «не мальчика, но мужа». Уважаю, без всякого сарказма!
Я прекрасно понимаю, что в Postgres Professional есть (или были, но уже ушли) сотрудники вполне адекватных взглядов на мир, без излишней идеологической/религиозной ангажированности. Но работать нужно не только с Олегом, есть некоторый общий настрой, который определяется руководством, а скорее всего и бизнесом. Чтобы не быть голословным, я просмотрел вот это интервью с Иваном Панченко и некоторые моменты привели меня в полный восторг. Особенно то, как ловко был обойдён вопрос популярности СУБД ;)
Поэтому нет, я не «выговорился» и мне ещё много есть чего сказать. Считаю (ничего не монополизируя), что я делаю неблагодарную, но нужную работу. Когда бы ты ещё решил разбираться по поводу высказываний Олега, если б не эта статья?
Я всегда и везде подчёркиваю, что PostgreSQL — замечательная СУБД с кучей интересных возможностей, но и с собственными недостатками. Желание со стороны PostgreSQL сообщества спустить всех собак на MySQL, старательно заметая собственные недостатки под ковёр — вот с чем я борюсь по мере своих скромных возможностей. И Postgres Professional задаёт здесь локальный тренд как ни крути, в том числе и ты своими комментариями.
Желание разобраться и сформировать собственное мнение — это прекрасно. Но хорошо бы это делать до того, как что-то высказывать, а не после. Я, по крайней мере, поступаю именно так. Ошибаюсь ли я в чём-то из того, что говорю? Да наверняка, как и все мы, и это нормально. Ненормально сначала говорить, а потом разбираться.smagen
02.09.2017 16:38Вот это уже слова «не мальчика, но мужа». Уважаю, без всякого сарказма!
Спасибо, я тебя тоже очень уважаю. Но ответить тем же на «не мальчика, но мужа», пока не могу (хотя надежды не оставляю). В твоих постах и комментариях на тему «PostgreSQL vs. MySQL» всё время сквозит какая-то обида. Если бы ты её преодолел, то дело продвижения MySQL только выиграло бы, ИМХО.
Интервью с Иваном Панченко я посмотрю, не думал, что вообще в нём что-то говорится о MySQL. Честно говоря, никогда не видел желания «спустить собак» на MySQL. Я бы сказал, что скорее MySQL вообще не брался в расчёт, а сравнение шло с коммерческими СУБД и NoSQL.
И Postgres Professional задаёт здесь локальный тренд как ни крути, в том числе и ты своими комментариями.
Да, задаёт. Но не вижу, где я своими комментариями задаю неправильный тренд, в том числе в тех комментариях, которые ты привёл в данной статье. Надо при этом учесть, что ты вырвал их из контекста. А эти комментарии делались под твоим провокационным постом в группе «PostgreSQL в России», что оправдывает их ироничный тон.kaamos Автор
02.09.2017 17:56Да нет конечно, весь контекст беседы, откуда были взяты комментарии я очень аккуратно сохранил. Просто Facebook не позволяет делать ссылки на конкретные ветки комментариев или сами комментарии, поэтому пришлось делать скриншоты.
Но я не вижу смысла эту унылую беседу продолжать. Я чувствую, что тебе важно оставить последнее слово за собой. Поэтому ответь что-нибудь назидательное на этот комментарий, и замнём тему.
mtyurin
03.09.2017 23:59www.freebsd.org/doc/en/articles/bsdl-gpl/article.html
холивар вар варkaamos Автор
04.09.2017 07:31-2Да. Кстати, сообщество FreeBSD — ближайший конкурент сообществу PostgreSQL по степени упоротости. Но постгрес сообщество лидирует с большим отрывом.
VolCh
Думаю, пост бы значительно выиграл без постоянного упоминания Postgres Professional и её сотрудников. Один раз в начале или в конце и было бы достаточно, а в целом обойтись обезличенным "сторонники отнесения MySQL CE к проприетарным продуктам (далее — оппоненті) часто приводят аргумент такой-то" или чем-то вроде этого.