open-source-versus-closed-source

Prečo nie sú všetky rozšírenia open-source?

Michal Těhník sa ma na Twitteri opýtal, či je nejaký dôvod nepublikovať rozšírenia pre prehliadače ako open-source na GitHub-e:

Nenapadlo ma, ako odpoveď zostručniť na 140 znakov. Takže odpoveď píšem sem.

Všetky rozšírenia sú aj tak open-source

Teda aspoň tie pre Chrome a Firefox. Ak o to niekto stojí, k ich zdrojákom sa dá celkom jednoducho dostať. Buď si otvorí balíček s rozšírením – formát CRX pre Google Chrome a formát XPI pre Mozilla Firefox sú v podstate ZIPy, ktoré sa dajú normálne rozpakovať. Alebo si ich môžete nainštalovať a nájsť ich zdrojáky na disku.

Aký teda dáva zmysel zdrojáky rovno nezverejniť?

Peniaze, peňeži, peníze

Autori spústy rozšírení sa pokúšajú zarobiť nejaké peniaze. V rámci rozšírení sú to obvykle rôzne affiliate programy, reklamné systémy a podobne. Chcú, aby užívatelia používali ich verziu rozšírenia, kde k správnym odkazom pripájajú svoje affiliate ID, alebo vkladajú svoje reklamné kódy. Nestoja o to, aby si niekto to rozšírenie vzal a tie kódy z toho vyhádzal. Alebo aby ich nahradil svojmi a distribuoval ich pod svojim menom.

Ďalšia vec je, že v rozšíreniach sa často používajú volania na API, ktoré môžu byť súkromné alebo platené. Napríklad ja vo svojom rozšírení Amazon Currency Switch používam na získavanie aktuálnych kurzov mien API OpenExchangeRates, za ktoré si regulérne platím. Nechcem, aby si ktokoľvek mohol len tak easy-peasy mohol skopírovať môj API key a priživovať sa na mojom účte.

Balanc na hrane obskurity

Samozrejme, úplne sa tomu zabrániť nedá. Teoreticky ako autor rozšírenia môžem zdrojáky minifikovať či uglifikovať. Ale keď ich niekto skutočne bude chcieť rozpliesť, urobí to.

Ide o to, do akej miery sa to niekomu oplatí. Ja sa napríklad bežne vŕtam v zdrojákoch rozšírení od chlapcov zo Seznamu. Ale to je dané tým, že je moja práca mať o tom prehľad. Rovnako ako som si istý, že chlapci z Alzy sa pohrabali v mojich zdrojákoch Punk Consumera.

Ale bežnému užívateľovi či vývojárovi nestojí za to strácať tým čas. A práve preto nie sú všetky rozšírenia open-source.

Michal, stačí ti to ako odpoveď?

PS: Ak nejaké rozšírenie nie je monetizované, tak sa jeho zdrojáky snažím poskytnúť open-source. Viď napríklad môj Amazon Link Shortener na GitHub-e. Zverejnil som ho pod UNLICENSE. Sú tam nielen komplet zdrojáky, ale aj všetky veci okolo toho (skripty na bildovanie a testovanie). Robím to preto, aby ostatní mali možnosť sa naučiť, ako si nastaviť prostredie a procesy pre efektívny vývoj multiplatformného rozšírenia.

  • Honza Štěrba

    Pointa je zrejme v tom ze pokud zdrojaky publikujes neobfuskovane mohl bys je stejne dobre dat do verejneho repositore na GitHub s tim ze licence by byla “all rights reserved”. Pravda je ze bys tim padem k tomu dal navic i historii a svoje myslenkove pochody.

  • MicTech

    Děkuji za vyčerpávající odpověď.

    Navážu další otázkou. Do jaké míry má smysl minifikovat/obfluskovat výsledný kód pluginu?

    To jak na tom vydělat peníze, se předpokládám dozvím zítra :)

  • IMHO nemá. Každopádne ak máš pocit, že tvoje rozšírenie budú iní ľudia vykrádať a reverse-engineerovať, tak to kľudne urob. Síce im v tom nezabrániš úplne. Ale aspoň zvýšiš laťku náročnosti, ktorú kvôli tomu budú musieť preskočiť. A snáď to niektorých z nich odradí.

    Ako som písal, je to balancovanie na hrane obskurity. Ak som len zvedavý, ako vyzerá zdroják, tak sa mi neoplatí ho rozmotávať. Ak je to konkurenčný produkt a ja z neho chcem vyzobať zaujímavé kúsky, tak nad tým kľudne strávim pol dňa až deň. Ak na vykradnutí tvojho zdrojáku môžem zarobiť státisíce, tak nad tým kľudne strávim týždeň.

  • starenka

    Je mi to v podstate burt (jestli je to os a jakej je opravdovej duvod proc to neni), ale je bazimilionarda oss projektu, ktera pouziva oauth2/api keys a na gh stejne sou. Neni prece problem tohle parametrizovat a nekomitovat to do public repa. Nebo se pletu?