MySQL – дребни промени

Днес прочетох, с доста закъснение, новина – MySQL вече предлага базата си данни в два варианта. Единият, Community Server, е безплатен, без поддръжка, под свободен лиценз, заедно с изходния код, и т.н. Другият – Enterprise Server – е платен, с поддръжка и всичко, нужно на един тежък бизнес.

Правело се заради разликата между двете общности – на хората на свободния софтуер, и на големите бизнес-потребители. Цитирам – между хората, готови да инвестират време, за да пестят пари, и тези, готови да инвестират пари, за да пестят време.

Дотук – добре. Доста продукти се предлагат комбинирано, под свободен лиценз без поддръжка, и под несвободен с поддръжка и всичко. Щом са решили, че така ще финансират нещата си по-добре – чудесно!

Част от работата ми обаче е да бъда системен администратор. А за тази професия параноята е не заболяване, а професионално изискване. Изглежда отговарям на изискването, защото започват да ме глождят някои дребни съмнения.

Като начало, двата продукта едно и също ли ще са? Или дори изобщо съизмерими? Дали няма бизнес-продуктът да обира всички усилия, а свободният да получава колкото да не е без хич, да е само рекламно лице пред общността – “вижте, ние сме добри, ползвайте ни, рекламирайте ни…”?

Докато продуктът е един, предлаган под два лиценза, това опасение е безпочвено. Станат ли два обаче, изкушението да се постъпи така расте. Също и рискът в някой момент да започне превръщането на MySQL AB от компания за свободен софтуер, спечелила влиянието и позициите си благодарение на него, в обикновена фирма за затворен софтуер. Не отведнъж – постепенно. Като в примера с жабата и горещата вода – пуснеш ли я направо в гореща вода, жабата изскача, но подгряваш ли водата по малко, жабата си остава вътре, докато се свари.

Кай Арно твърди, че целият изходен код ще продължи да бъде свободен и достъпен за сваляне, дори въпреки че компилираните версии на Enterprise Server ще бъдат достъпни само срещу заплащане. Това ми се струва чудесна стъпка, но не ми се вярва да остане така задълго.

Защо ли? Изкушението някой да сваля изходния код и да предлага Enterpise Server на подбита цена ще е голямо. Да, при свободния софтуер нещата винаги стоят така, това помага на конкуренцията – но психологическият натиск върху MySQL AB да скрият кода ще бъде голям, и не зная дали ще издържат дълго. Отначало марката им ще тежи – но направят ли и други грешки, ще дадат база на други фирми да ги надмаркетират със собствения им продукт. Никой бизнес няма да приеме това.

А грешките вече се правят. Ето на какво се натъкнах в описанието на Кай Арно (отделил съм което имам предвид, без да променям контекста):

“We’re happy to note the growth in contributions flowing into MySQL and its ecosystem. To facilitate these, we have:

[…]

* established a Contribution License Agreement

[…]”

Хм? Досега подобни договорености нямаше, и нещата си вървяха чудесно. Какво ли налага въвеждането им? Я да видим пояснението…

“The MySQL Contributor License Agreement (CLA) means, in simple terms, that:

* You assign and transfer the copyright of your contribution to MySQL. In return you receive back a broad license to re-use and distribute your contribution…

[…]

… Your benefit is that we relieve you of the burden of maintaining your contribution…

[…]”

Хм?! Това ми звучи като прекалено злобна шега на тема Майкрософт. Вие ни приписвате безвъзмездно всичките си права, а печелите това, че ви освобождаваме от нуждата да се грижите за създаденото?! Стига бе!… Я да видим самия документ, все пак?

“[…]

2.1. You hereby irrevocably assign, transfer, and convey to MySQL all right, title and interest in and to the Contribution. Such assignment includes all copyrights, copyright applications, and copyright registrations, and all other intellectual property or proprietary rights other than patents relating to the Contribution, together with all causes of actions accrued in your favor for infringement thereof…

[…]”

Хм?!?! Че Стив Балмър би предложил по-малко нахални условия!

И за вкус, под новината:

“Finally, we will continue to be active good citizens in the greater Free and Open Source Software world. We’re participating in the GPLv3 drafting process, we’re supporting the Free Software Foundation as FSF corporate patrons, and we’re supporting campaigns against the spread of software patents around the globe.”

Обичаме свободния софтуер, помагаме за GPLv3, подпомагаме, грижим се… Красиви приказки, подкрепени със суми като за сандвичи. Реалността, дето я чета в лиценза, звучи по-различно.

Разбирам и нуждата на един бизнес да си контролира авторските права на продукта. Но има и други начини за това. Например, неограничени права върху кода за използване, променяне, защита и прочее биха били напълно достатъчни за всякаква бизнес-употреба.

Очевидно MySQL разбират това много добре – предлагат на оригиналния автор на кода точно такива права. Само че не е ли редно той да държи собствеността върху кода, а те да получават вторичните права, вместо обратното? Така става “ти плащаш – аз пия, пък обещавам да е за твое здраве.”… Това не е съглашение, писано от честна към общността фирма за отворен код – то е съглашение, писано от фирма, която иска да изглежда честна, но всъщност държи да е Този, Дето Притежава и Контролира Всичко.

След тази формулировка, дори ако MySQL AB всъщност са открити и честни към контрибуторите си, и тя е случайна грешка или лош съвет, никой сериозен няма да им повярва. Бих очаквал сравнително скоро размерът на прехвърления им код да започне да клони към нулата, и все по-често да чуват: “Тези условия не ме уреждат – имате моя код само ако си го платите.” А манталитетът “или ще съм царят, или няма да играя” не се лекува лесно – по-вероятно е да отчетат като грешка не поставянето на контрибуторите на отблъскващи условия, а изобщо писането на свободен софтуер. Че именно то превърна MySQL от нечие хоби в база данни No. 2 на света вероятно ще бъде удобно забравено.

Какво следва? Каквото е ставало вече стотици пъти. Фирмата, получила известност и влияние благодарение на общността на свободния софтуер, губи подкрепата й. Отначало държи пазарен дял, след това той започва катастрофално да спада. Вътре във фирмата се надигат гласовете на виделите грешката; мениджърите, които са я направили, обаче си пазят позициите, и ги мачкат. Приходите на фирмата спадат, тя затъва или фалира, или пък я купува някой конкурент. И свободната общност загубва поредния си успех. Паднал жертва на философията “дайте да заколим кокошката със златните яйца, за да вземем златото й накуп”.

Има ли спасение от това? Поне за момента, май не. Но, пак за момента, не се и налага. PostgreSQL вече съществува, и има прилични позиции. Ако MySQL решат да тръгнат по този път, вероятно общността на свободния софтуер масово ще се измести към PostgreSQL, с всички последствия от това. А не е изключено и да се образува група, която да fork-не последния свободно достъпен код на MySQL, и да продължи да гради върху това.

Не ви ли се вярва? Случва се и при далеч по-дребни проблеми. Заради една несвободна картинка и една търговска марка, тези на Firefox и Thunderbird, вече се появиха IceWeasel и IceDove – техни напълно свободни версии, развивани от GNU общността и от Debian Project. Не се знае колко ще успеят (IceDove вече официално влиза в Debian Sid, IceWeasel се очаква всеки момент), но и да не процъфтят, не е беда – оригиналните Firefox и Thunderbird са почти 100% свободни. Ако MySQL решат да постъпят както се боя, възмущението на общността, а оттам и привлечените към алтернативния проект програмисти, ще бъдат с порядъци в повече.

Скептик съм, признавам си. Но все пак се надявам да не се случи.

8 Responses to 'MySQL – дребни промени'

  1. Мордред Says:

    Хм, уви, и Балмър не би предложил “по-малко нахални условия”:
    http://techdirt.com/articles/20061019/102225.shtml

    Освен това аз ли бъркам или авторското право не може да се предава? Т.е. това:
    You assign and transfer the copyright of your contribution to MySQL. In return you receive back a broad license to re-use and distribute your contribution…
    не важи?

  2. Сале Says:

    “психологическият натиск върху MySQL AB да скрият кода ще бъде голям, и не зная дали ще издържат дълго.”

    Няма как да стане. Има много силен защитен механизъм против “скриването” на кода, но за съжаление не мога да споделя детайли.
    Не става въпрос за добри намерения или пожелания а за законово издържана “спирачка”.

    Мога ли да те помоля да отправиш критиките си към Кай директно към него т.е. на английски? Предпочитам ти д аго направиш отколкото аз да превеждам твоите въпроси и да ги предавам на Кай. А той колкото и добре да каза няколко приказки на български на УебТех тази година едва ли ще успее да се справи без превод.

    Някои малки коментари от мен:
    “Вие ни приписвате безвъзмездно всичките си права”

    Къде е казано, че е безвъзмездно?

    “А манталитетът “или ще съм царят, или няма да играя” не се лекува лесно – по-вероятно е да отчетат като грешка не поставянето на контрибуторите на отблъскващи условия, а изобщо писането на свободен софтуер. Че именно то превърна MySQL от нечие хоби в база данни No. 2 на света вероятно ще бъде удобно забравено.”

    Хм … мисля, че грешиш и то сериозно. MySQL никога не е бил обществен проект и никога не е разчитал *предимно* на външни разработчици. Напротив. Винаги от самото начало основната работа по разработката е била концентрирана в един “вътрешен” екип (първоначално само Монти) а обществените добавки, корекции и предложения винаги са приемани с благодарност като такива, но винаги е било в сила обещанието, че основната работа ще се свърши именно от програмистите на MySQL. С други думи от самото начало и досега и за в бъдеще никой не поставя *изисквания* към обществото да свърши по-голямата, основната, съществената част от работата.

    Позицията на MySQL AB е, че разработката на MySQL е *наша* отговорност не отговорност на обществото. Ако някой желае да ни помогне разбира се е това е прекрасно, но не ни освобождава от отговорността да си вършим работата.

    А по повод на писането на свободен софтуер – не няма начин да бъде забравено. Не и с такива мениджъри, борд на директорите и CEO.

    “Приходите на фирмата спадат, тя затъва или фалира, или пък я купува някой конкурент.”

    И точно тук е силата на свободния софтуер … никак, ама никак не искам да си представя дори за милисекунда, че MySQL AB може да затъне или фалира, но ако това се случи GPL лиценза на изходния код гарантира, че някой друг може да поеме щафетата и да продължи да разработва. Дали този някой ще е друга фирма или обществото за крайния потребител не е чак толкова съществено.

    Ако не следиш Slashdot препоръчвам ти да прочетеш интервюто с Мортен Микос. http://interviews.slashdot.org/article.pl?sid=06/10/20/1325244
    Там има доста неща, които дори да не отговорят конкретно на твоите въпроси, ще ти изяснят по-добре позицията на MySQL AB. А ако имаш желание и смяташ, че има интерес в българското общество мога да опитам да организирам едно такова интервю с него или с Кай специално за българските потребители. Може би на http://mysql.bgug.org

    Е ако някой се беше сетил да се обади на Кай Арно за OpenFest може би щеше да може да го вмъкне в програмата си – неговата или на някой друг и да ти даде възможност на теб а и на всички останали в България да зададат въпросите си директно. Ама това е друга тема.

  3. Сале Says:

    Още една малка, но съществена корекция

    “… именно то превърна MySQL от нечие хоби в …”

    MySQL никога ама никога не е било нечие хоби. Още от самото си начало е приложение с бизнес насоченост.

    Първообразът – Unireg е написан за решаване на конкретни вътрешно фирмени задачи (от 1979-та между другото). Впоследствие пак за целите на фирмата е написан SQL интерфейс и именно това се смята за рожденна дата на MySQL (1995-та). Скоро след това MySQL се появява и GPL версията (първоначално за MySQL съществува собствен свободен лиценз) а през 2001 е създадена компанията MySQL AB с цел да се изгради бизнес около вече съществуващия GPL продукт – MySQL.

  4. Григор Says:

    @Мордред: Има ли договор, всичко може да се продаде, включително и авторското право.

    @Сале: Като начало, здравата съм изненадан, че смогваш за блога ми! 🙂 Не съм очаквал, че съм толкова четен…

    Отговорите ми – първо по детайли, а после като цяло.

    За разработката – да, прави се почти само вътрешно, но тя е само част от процеса. Ключови части от дебъгинга реално са външно-зависими. Спадне ли авторитетът на MySQL AB, те ще пострадат.

    За безвъзмездността – предложеният максимум компенсация за дарен код е 100 долара. Формално погледнато, не е безвъзмездно… ;-(

    За качествата на мениджърите, борда на директорите и CEO-то – прав си, и това е може би най-тъжното. Защото общността рискува да изгуби именно такива хора. (Защо продължавам да мисля така – по-долу.)

    За интервюто на Мартен Микос и потенциалното на Кай Арно – хубаво, ама това са (и ще са) думи. А предложеното положение за контрибутиран код (“основните права – наши, пък за автора му – производни широки”, вместо обратното “основните права – на автора, пък за нас – производни широки”) е факт. Докато то не бъде поправено, думите ще му противоречат, колкото и много и добри да са – и съответно само ще поставят ръководството на MySQL AB в неприятна позиция… А за това, че не поканихме Кай Арно, камъкът е и в моята градина – и напълно заслужено. За следващия ОпънФест ще е добре да съм по-досетлив.

    А за това дали MySQL ще го развива фирмата, или наследила я общност девелопери – не си прав, никак не е все едно за крайния потребител! Ако го прави фирмата, значи тя успява и се държи, и значи свободният софтуер има един образец за успешен бизнес-модел – тоест, силен лост да се налага, и бъдещето да принадлежи на него, а не на мегакорпоративния монопол. Затова съм много сериозно загрижен MySQL AB да успява, и да не се проваля. Отделно от това, хората, създали фирма на такава основа, няма как да не са ми симпатични, и да им желая доброто…

    Изискването за прехвърляне на авторските права на кода обаче е груба грешка. Според мен е редно MySQL AB да поиска пълни и неотменими права за използване, модифициране, представляване на интереси, и т.н. – но не трансфер на основните права. Да се задоволи с горе-долу това, което предлага в момента на оригиналния автор. Иначе… каквото си помислих аз, ще си го помисли малко или повече всеки здравомислещ. Само дето аз го казвам открито в блога си, а другите ще го споменават в лични пощи до останалата част от общността. И авторитетът на фирмата ще започне “неизвестно как и защо” да се срива.

    Като цяло: вярвам на думите, но на фактите повече. Стигнало ли се е до такъв факт, значи се е тръгнало по лош път – колкото и да ми е неприятно да го отбележа. И според мен точно затова е толкова важно да се действа веднага, и с широка гласност. Докато ръководството на фирмата все още са хората, които описваш – защото човек се променя, а формулировки като тази са признак на промяната. Докато не е късно.

  5. Сале Says:

    “За разработката – да, прави се почти само вътрешно, но тя е само част от процеса. Ключови части от дебъгинга реално са външно-зависими. Спадне ли авторитетът на MySQL AB, те ще пострадат.”

    Де да беше така както казваш. Кои са тези ключови части?

    Една от задачите на хората от екипа ми е да проверяват бъговете. Почти всички бъгове пратени на http://bugs.mysql.com са в стил “Ей това не работи” и някой от нашия екип се захваща с дебъгването докато стигне до core, backtrace и изрови къде в кода се чупят нещата. Та затова не приемам твоето твърдение за ключовите части. Да като пожелание ми харесва.

    Не не се сърдя на потребителите които не се задълбават а само ни съобщават за проблемите. Задълбаването си е пак наша работа.

    Цялото това предложение което толкова те притеснява просто не е за всеки. Знаеш много добре, че каквото и да предложиш ще се хареса на едни и няма да се хареса на други.

    Авторските права ни трябват заради двойното лицензиране. Не можем да си позволим да пуснем под комерсиален лиценз нещо за което нямаме пълните права. Съответно не можем да включим въпросното нещо в основната версия. Тъй, че съобщението е “ако искаш да включим твоя код в кода на MySQL ни трябват правата иначе не можем да си го позволим” . Естествено е да не се харесва на всички.

    “Стигнало ли се е до такъв факт ..”
    Ами не се е “стигнало”. Винаги е било такова положението с авторските права просто досега трябваше да попиташ. И винаги е имало както недоволни така и доволни.

    Въпросът е до кого искаш да достигне твоят принос. Ако е само до обществото можеш просто да направиш твоя код достъпен, да го посочиш на http://forge.mysql.com, да го включиш примерно в някоя Линукс дистрибуция. Няма проблем за това нали?

    Ако обаче искаш твоят принос да стигне и до клиентите на MySQL AB, да стане част от основната версия, да получи пълната 24 часова поддръжка тогава начинът е този …

    Само, че дотук разговорът е прекалено общ. Хайде да поразсъждаваме за какъв вид принос говорим?

    Ако е например за корекция на един бъг която корекция ти е отнела да речем 2-3 часа смяташ ли, че предложението на фирмата ни е чак толкова некоректно? Хайде да не са 2 часа а 2 дни …

    А ако иде реч за голям проект който си докарал донякъде, но нямаш достатъчно време да доразвиеш?

    Или завършен проект за който нямаш възможността или желанието да осигуриш 24 часова поддръжка?

    Не е ли очевидно, че за “големи” случаи има съвсем други варианти?

    “Като цяло: вярвам на думите, но на фактите повече”

    Аз също. И точно затова харесвам “управата” на MySQL, но това е друга тема.

    “А за това, че не поканихме Кай Арно, камъкът е и в моята градина”

    Не да го поканите … да му се бяхте обадили поне. Да му бяхте обърнали мъъъничко внимание като беше тук в София.

    Именно Кай е човекът който решава дали и как MySQL да участва на някое мероприятие или не. Дали аз или някой друг от фирмата ни да се изявява като лектор.

    Богомил ме попита веднъж какво трябва да направи за да докараме Монти в България. Кай може да го направи. Кай може да доведе тук когото поискате от фирмата стига да е убеден, че има смисъл. Аз не мога. Пробвал съм многократно от 2002-ра насам. На тазгодишния УебТех най-после успях след 3 години и половина да докарам един от тези които взимат решенията във фирмата.

    Оказа се обаче, че той е прекалено дребен, незначителен и безинтересен за организаторите на OpenFest. Наложи ми се да се моля лично на Йовко по телефона поне за по една бира да отдели малко време след като никой друг от организаторите на OpenFest не прояви и най-малък интерес. (Освен Богомил и Мариян които бяха заети с УебТех-а и не им беше до това).

    Според теб какви са ми шансовете оттук нататък да убедя Кай, че OpenFest заслужава вниманието на MySQL?
    И как ли изглеждат усилията ми от миналата година примерно когато донесох от 10 кладенеца вода за да се преборя MySQL да спонсорира макар и с малко OpenFest? При положение, че по принцип *не* спонсорираме такива прояви.

    Не смятам, че съм направил кой знае колко много за OpenFest годините, но и съвсем нищожните ми усилия явно са отишли на вятъра.

  6. Григор Says:

    Ключовите части на дебъгинга, за които говоря, са откриването на грешки. Ти знаеш по-добре от мен колко важни грешки се откриват от хора извън фирмата. Помисли какво мотивира повечето от тях да се занимават с това.

    За авторските права – разбира се, че не ви трябват за двойното лицензиране. Достатъчен е договор, с който авторът ви дава всички нужни права. Които са измислили тази клауза, го знаят добре – тя предлага на оригиналния автор именно такива права. Ако те не бяха достатъчни, никой не би се съгласил да си подари кода на MySQL AB, и клаузата щеше да е безсмислена. Съществуването й е доказателство за верността на това, което казвам.

    Алтернативно, питай специалисти по авторски права дали имаш право чрез договор да дадеш на друг необратими права да използва, продава, поддържа, дописва, релицензира и пр. кода ти, без да е нужно ти да се откажеш от авторското си право върху него. И след като получиш отговора, си задай въпросите, които аз си задавам – например защо се настоява за лишаване на оригиналния автор от копирайта му, след като това не е необходимо? И за какво говори това? И най-вече дали тези въпроси си ги задавам само аз…

    За достигането на приноса – да, мога да си пусна кода отделно от MySQL, но никой няма да си играе да го вкомпилира, най-малкото защото не ме знае. Ако обаче ми се предлагат такива условия за допринасяне, няма да го пусна изобщо, защото няма да го напиша. Прекалено много други проекти (примерно PostgreSQL) имат нужда от помощта ми, и не ми налагат условия.

    За видовете приноси – да, продължавам да смятам така. Независимо дали кодът ми е 2 часа или 2 месеца работа, той си има цената, и тя не е максимум 100 долара. Ако аз държа основните права – ОК, имат го, с всичко необходимо за бизнеса им като под-права. Решил съм, че може. Ако обаче искат да ми вземат копирайта, и те вече да решават какво може и какво не, да си платят като попове всеки ред по пазарни цени. Коректно е, нали?

    Същото е, когато става дума за голям проект, за който нямам време да доразвия, или желание да предлагам поддръжка за него. Прекалено много други с удоволствие биха продължили нещата, без да ме карат да си предам правата: това е, което се случва в свободния софтуер постоянно, във всеки проект, дори без изрично даване на необратими права за релицензиране и пр. И нещата вървят.

    Опитай се да разбереш: това кой държи копирайта е ключовата червена линия в свободния софтуер. Откъм девелопера (индивид или фирма), това е разликата между свободен и несвободен софтуер – при единия си запазваш копирайта, при другия – не… А когато искат да се откажеш от копирайта си под неверен предлог, това е друга червена линия. Да не кажа черна… Пак: консултирай се с юрист по авторски права, както писах по-горе! И тогава вярвай на фактите.

    За Кай Арно – да, фалът ни е голям. Няма как да се отрече. Ако бях научил, че е в София, щях да направя всичко по силите ми, но го проспах. Съжалявам искрено – виновни сме, всички от ОФ. И съм много далеч от мисълта да отрека усилията и приноса ти – знам добре, че те са много по-големи, отколкото се вижда отстрани… Моля те, не ми го натяквай повече – знам, че съм виновен, и не съм щастлив от това. По-добре кажи как да изкупим вината си към теб лично. Нужно е.

  7. yovko Says:

    Salle, сам знаеш, че всеки прави колкото може… А някои хора тъчат на неопределим брой места. Аз, например, без бой си признавам, че не смогвам. Знаеш, че сме комшии почти и за три години сме се видяли веднъж на комшийска бира. Аз лично това не мога да си простя. Както и за много други неща, които пропускам в своя живот…

    И на мен ми е тъжно за много неща – най-вече за твърде летаргичното community в България, но какво да се прави такова е… Такива сме. Защото всички сме част от него…

    И ако някой ден няма кой да направи OpenFest, значи навярно така е трябвало… или OpenFest не е бил толкова нужен. Ще има нещо друго, което има смисъл или значение… Аз съм спрял да се дразня на хората. Горчивината най-малкото с нищо не ни помага.

    P.S. Между другото не съм приемал онова като молба, а като приятелска покана да се запозная с Кай и приех този жест наистина като жест при това с чест и удоволствие. Въобще не съм чувствал, че запълвам дупка…

  8. Григор Says:

    @yovko: Ти поне направи нещо. В нас, останалите, е проблемът…

Leave a Reply