Cayman Islander | Diary of a Freelance Programmer traveling the world

Cayman Islander's blog - Diary of Freelance Programmer

Proč je výhodný "open-source" software a nestačí nám jen "freeware" programy?

Open source, freeware, komerční softwarePtal se mne jeden začínající programátor, v čem jsou výhodné open-source programy, když se stejně skoro nikdo nevyzná v těch zdrojových kódech. Prý by mu stačil software, který by měl otevřené API a byl by zdarma k používání, což jsou i všechny freeware programy.


K čemu je dobrý "open-source" software?

Hodně uživatelů vidí hlavně, že je takový software zdarma. Hlavní výhodou je ale ten "otevřený" kód, kdy celé řešení se dá využít pro vlastní úpravy, rozšíření a pro vytváření dalších produktů, které použijí část nebo kompletní hotové řešení (při zachování konkrétních licenčních podmínek).

Každý asi hned nebude upravovat a kompilovat nové jádro Linuxu a vytvářet vlastní distribuci operačního systému. Je ale open-source software, který není zas tak těžké upravit a na světě existují tisíce skvělých řešení, které jsou postaveny právě na nějakém otevřeném kódu.

(Však i nový Google Chrome browser, který zatím nebudu instalovat, je složen z několika open-source komponent, jako jsou např. WebKit Browser Engine nebo V8 JavaScript Engine.)

Viz také - Metoda "zahrnout a rozšířit" je dobrá cesta...


Má cenu studovat "open-source" kód?

K tomu, že se "nikdo" nevyzná v cizím zdrojovém kódu, musím uvést, že to je z části pravda, neboť někdy je opravdu ztrátou času studovat a upravovat cizí kód. Stačí ale většinou rychlá kontrola, zda kód je dobře dokumentovaný, existuje aktuální dokumentace, zda je dostupné např. diskuzní fórum, příp. komunita vývojářů, která může pomoci.

Každý si musí sám poměřit a vyzkoušet, zda mu stojí za to strávit chvíli studiem dokumentace a testováním, kdy pak stačí jen zahrnout hotový kód, knihovnu, komponentu, příp. zda je rychlejší si něco sám naprogramovat od úplného počátku.

Záleží na znalostech a zkušenostech, takže se nedá moc radit, zda použít již vymyšlené a odladěné, rozpuštěné a vypuštěné, či zda vymýšlet vlastní řešení.


Nestačilo by jen otevřené API?

To by bylo ideální a funguje to tak snad od počátků vývoje software. Asi každý někdy využil nějaké funkce např. z WinAPI, které jsou dostupné v operačním systému Windows v těch stovkách DLL/LIB knihoven, a které umožňují volat všechny základní i nadstavbové funkce OS.

Podobně to funguje i u dobrých komerčních produktů, které nabízejí vývojářům zdarma, či za mírný poplatek, balík knihoven ve formě SDK (Software Development Kit), které je možno využívat jako rozhraní pro tvorbu dalších produktů, kdy stačí jen "zahrnout a rozšířit".

Na Webu je to skoro to samé a každá dobrá Web služba nabízí také různá API rozhraní, které může každý vývojář využívat a nemusí nic programovat. Stačí použít dané funkce ve svém vlastním řešení.

(Jednoduchým příkladem můžou být Google Maps nebo Youtube API, kdy jsou k dispozici skoro nepřeberné možnosti pro každého vývojáře, kterému se "nechce" programovat, ale chtěl by rychle vytvořit nějaké nové a funkční řešení.)

Vše je jen otázkou osobních priorit a jak si dokážeme vážit svého času, což jsou témata, o kterých tady často píšu.


Komerční software nebo "open-source"?

Častým argumentem některých zastánců open-source projektů je, co si počneme, když nějaká firma s komerčním produktem zkrachuje, kdy v případě open-source to "prý" není problém, neboť zdroják převezme někdo jiný a komunita vývojářů se postará o další vývoj. To považuji za trochu naivní názor ;-)

Nezažil jsem ještě firmu, která by nabízela komerční produkty (ať už pro koncové zákazníky nebo pro vývojáře), že by po svém příp. krachu nechala své zákazníky úplně bez podpory. Obvykle ji totiž spolkne nějaká jiná firma a převezme stávající produkty, včetně všech zákazníků.

Osobně sice preferuji komerční software a placené služby, což hledám jako první. Vždy se ale podívám (pro porovnání), co by šlo využít i z open-source scény. Zatím mne ale komerční produkty nezklamaly, což bude asi tím, že používám software od větších firem, snažím se investovat jen do ověřeného a otestovaného řešení.

Je mi ale jasné, že doba placeného software je pomalu pryč a nastává doba poskytování služeb ;-)

5 comments :

dadajax řekl(a)...

Souhlasím, ale musím zmínit ještě jednu výhodu open-source. Zvlášť pro začátečníky můžou být open-source aplikace výborným zdrojem inspirace při studiu. Nicméně uznávám, že je to dvousečná zbraň. Pokud někdo bere inspiraci ze špatně napsané aplikace, spíše si tím uškodí.

Cayman řekl(a)...

Jasně, pro studium skoro dokonalé. Když si ale vezmu kolik free aplikací se zdrojovým kódem k volnému použití (tj. na studium i na další využití) nabízejí skoro všechny komerční produkty, tak nějak nevím.

Namátkou třeba komerční CodeCharge a jeho portfolio free examples. Nebo třeba APEX, o kterém jsem se už zmiňoval.

byF řekl(a)...

Osobně jsem zatím nenarazil na komerční knihovnu, kterou bych nemohl nahradit stejně kvalitním opensource produktem; nicméně přesně jak říkáš, každý preferuje něco jiného.

Nesmírnou výhodou open source je ale hlavně možnost opravit si v něm sám chybu, kterou tam nechal někdo předchozí :)

Botanicus řekl(a)...

Souhlas, akorat to mam naopak - nejdriv OSS, pak koukam jinam. Momentalne pouzivam jen malo neOSS veci – Operu, TextMate, Mac OS X, jinak same mile OSS tooly – TeX, Linux, ZSH, Vim, screen ...

Botanicus řekl(a)...

Jeste dodatek – pro me je jedna z nejvetsich vyhod software zadarmo (tedy i freeware, nejen a ne kazdeho OSS), ze

1) zadny opruz s licencema (kam jsem jen dal ten licencni kod ... )
2) jak instalace, atk upgrade probiha stahnutim a pretahnutim do /Applications, zadne problemy s placenim (tak doslo jim to tam uz konecne nebo ne?! ... co to zas dela, jaktoze uz to nechce ten starej key?!)

Jinymi slovy je to o lenosti. Stve me lizt nekam, registrovat se tam, vyplnovat dementni 2-strankovy formular, chci proste stahnout a ject. Nebo jeste lip napsat apt-get install texlive a ject :)

Okomentovat