"Öt mítosz a nyílt forráskódú fejlesztésekkel kapcsolatban"

Címkék

"A szoftverfejlesztéseket támogató megoldásokat fejlesztő Black Duck Software átfogó elemzése a nyílt forráskóddal kapcsolatos öt tévhitet cáfol meg."

[...]

"Az utolsó mítosz az, hogy néhány vezéregyéniség, mint Linus Torvalds ellenállása miatt a GPLv3 nem terjed, és egyelőre parányi is a részesedése. A valóság az, hogy több mint 6300 projekt használta ezt a sokat vitatott új licencet, mely tavaly júniusban jelent meg, és máris az ötödik legnépszerűbb, és a Black Duck Software szerint néhány éven belül megelőzheti a BSD-t. A projektek 70 százaléka valamilyen GPL-t használ."

A teljes cikk magyarul itt. A Black Duck Software esszéje itt.

Hozzászólások

Nem ezek az igazi mítoszok, hanem:

* Az open source jellegéből adódóan biztonságosabb, mert sokan átnézik.
* Az open source kód jó minőségű, mert a programozó beégne, ha rossz minőséget adna ki a kezéből.
* Az open source programokban felfedezett hibákat gyorsabban javítják.
* Az open source kód újrafelhasználható, nem kell még egyszer megírni.
* Az open source szoftvereket a Közösség fejleszti.

Ami meg a GPL3 térhódítását illeti, így is lehet a tényeket kommunikálni, meg úgy is, hogy a GPL2 leváltására tervezett licenc nem váltotta be a hozzá fűzött reményeket, mert nem mindenki váltott.

Nem ez a lényeg. Az elemzőcégek a rendelkezésre álló adatokból a rendelkezésükre álló eszközökkel megpróbálnak valami tanulságot szintetizálni, amit aztán egy tanulmányban leírnak. A Black Duck áldozatos munkával megállapította, hogy nem 1 milliárd, hanem 10 milliárd open source kódsor van. És akkor most mi van? Mit kezd ezzel a számmal egy döntéshozó, aki a tanulmányt rendelte? Erre volt kíváncsi? Ha igen, akkor semmi baj.

6500 projekt használja a GPL3-at. Semmitmondó adat, mert ebben benne van a Sourceforge/Freshmeat minden hamvába holt kezdeménye is. Az érdekesebb volna, hogy mondjuk a top 100 letöltés, top 100 aktivitás, top 100 méret vagy top 100 fejlesztőszám szerint mi az eloszlás.

A Fekete Kacsa átfogó elemzésést a Fekete Kacsa rendelte meg, és hogy-hogynem pont azokara a tényekre sikerült rávilágítania, amik rácáfolnak arra, hogy a Fekete Kacsától tök fölösleges lenne tanácsot kérni.
Get the facts.

Azért az bámulatos, hogy mennyire szippantják az emberek a marketinget, ha azt hallják, amit szeretnének hallani - még akkor is, ha tudják, hogy tömény hülyeség.
Ráncos öregasszonyból pirospozsgás tinilány? Nem gond! Redvás-zsíros edény egy mozdulattal csillogó? Hát persze! Kockás has a tévé előtt ülve? Naná!

--
geri / otperc.net

Mert ha megvizsgált volna, akkor mi lenne? Össze tudná hasonlítani zárt forráskódú programok statisztikájával?
Azt, hogy mennyire van valami kommentezve, ez alapján pl nehéz összehasonlítani. Bár hogy mi jelentősége van annak, hogy egy zárt forráskódú sw. kommentezve van? Ha nem dolgozol a cégnél...
Ki mondta, hogy csak annak a statisztikának hiszek, amit én hamísítottam? Winston Churchill?

Akkor egy kicsit megalapozottabbak lennének az állításai, így nem ér semmit.
A statisztika egzakt tudomány, még ha fel lehet használni rossz szándékkal is, sőt úgy is, ahogy írod, hogy eleve hamis adatokból indul ki.
Ha csak rossz szándékkal használják fel és valós adatokból indulnak ki, akkor értelmes ember átláthat rajta. Pl. az öszödi beszéd után volt olyan statisztika, hogy az emberek hány százaléka szeretné, ha a miniszterelnök távozna. A pontos számok nem érdekesek, de kb. 24 % volt aki azt mondta maradjon, a többi pedig azt, hogy menjen. Csak ez a többi rész 4 pontba volt szedve, hogy hogyan menjen. Az eredménynél azt hangsúlyozták, hogy a többség azt akarja, hogy maradjon.

A kommentezésnek az a jelentősége, hogy könnyebb (gyorsabb) a program tovább fejlesztése illetve könnyebb (gyorsabb) a hibák javítása. Ez az ott dolgozóknak könnyebbség. A szoftver használóknak is jó, mert jobb programot kapnak és a hibákat is gyorsabban javíthatják.

Természetesen. "Closed source" mítoszok is vannak:

* A closed source jellegéből adódóan biztonságosabb, mert nem tud belenézni a rossz ember.
* A closed source kód jó minőségű, mert a fejlesztőcégeknél minőségbiztosítás van, és fizetett profik fejlesztik.
* A closed source programokban felfedezett hibákat gyorsabban javítják, mert ez a fejlesztők üzleti érdeke.

Írd meg nekik, hátha megcáfolják. Egyébként az mítosz amit azzá akarnak tenni. Aki a fenti 5 kijelentésre alapozza a nyílt forráskódú alternatívának a használatát, az megérdemli, mivel ezeket Önmagában a nyílt forráskód képtelen megadni. A harmadik picit átfogalmazva már nem lenne igaz állításod: "Az open source programokban felfedezett hiba gyorsabban javítható" kijelentés mivel nem szükséges authorizáció a kód tulajdonosa részéről csak tudás meg tudja állni a helyét.
Illetve az újrafelhasználhatóságba is bele lehetne kötni, de inkább ezt nem teszem, mert hitvitai kérdésé válhat.

Az újrafelhasználhatóság két dolgon bukhat: 1) technikai nehézségek (más nyelv, más toolkit, más programozói felfogás stb.), 2) licencek inkompatibilitása. Te nem azt figyelted meg, hogy a kétségtelenül létező kód-újrafelhasználás mellett jelentős mértékben folyik a kódok újraírása? Azonos rendeltetésű programokat külön-külön megírnak KDE-re, GNOME-ra, XFCE-re, illetve Linuxra, BSD-re, Solarisra. Pl. KDE-n belül is kompletten át kellett írni mindent KDE 1-ről, 2-re, majd 2-ről 3-ra, majd 3-ról 4-re. Ugyanez GTK 1-ről 2-re. A példák hosszan sorolhatók.

A gyors hibajavítás szintén nem jellemző a nyílt forrásra. Néha gyors, néha meg nem gyors. Van, hogy éveket pihen egy teljesen kidolgozott hibajelentés mellékelt javítással a bugzillában, és nem teszik be, mert épp senki nem akar foglalkozni vele. De a lényeg: a hibajavítás sebessége nem attól függ, hogy valami nyílt vagy zárt forrású. Nincs összefüggés e két dolog között.

Mellébeszélsz, ferdítesz. :)

Az újrafelhasználhatóság nem abban merül ki, hogy mi a helyzet a major verziószám váltások esetén. Azért nem hiszem, hogy mondjuk az Amarok-ot nulláról újraírják minden egyes verzió frissítésekor. Vagy még jobb példa, hogy ha forkolsz egy mediaplayert, akkor azt sem azért teszed, hogy nulláról hozd létre az "új terméked". Csináld ezt meg egy zárt forráskódú programmal, ha tudod...

Ne gyere, légy szíves a kevés user által használt, "alvó" programokkal. Hasonlítsuk össze mondjuk az IE-t és a Firefox-ot, hogy mennyi ideig tart egy-egy hiba kijavítása a nyílvánosságra hozás után!

> Az újrafelhasználhatóság nem abban merül ki...

Tisztában vagyok vele, írtam is, hogy létezik a dolog, és jó is, csak az általános érvényű, leegyszerűsítő kijelentéssel szálltam vitába.

> Hasonlítsuk össze mondjuk az IE-t és a Firefox-ot, hogy mennyi ideig tart egy-egy hiba kijavítása a nyílvánosságra hozás után!

Ennek mi köze a kód nyíltságához, már bocsánat?! Hacker Joe szabadidős programozó foltozza be a biztonsági hibákat a Firefoxban? Nem. A Mozilla Corporation alkalmazottja fogja javítani. Ráadásul amennyire lehet, titokban. Az erről szóló Bugzilla-bejegyzés zárolva lesz a javítás megjelenéséig.

Ha már szóba hoztad a Mozillát kicsit kapcsolódik a témához egy sztori. Whistlerben, a Mozilla bulijáról lefelé jövet a sífelvonóban beszélgettem egy programozó sráccal. Feltettem a szokásos udvariassági kérdést, hogy mivel foglalkozik a projektben. Az mondta, hogy a Mozilla core kódját automatikus eszközökkel refaktorálják, már egész jól állnak, de hatalmas munka, és sok nehézséggel találkoztak. A cél, hogy ebbe a kódba a refaktorálás után ne csak az a 2-3 régi netscape-es arc tudjon commitolni, akik még értik, hogy mi van ott. Ugyanis most az van, hogy ha ezekkel az emberekkel történne valami, akkor nyílt forrás ide vagy oda, nincs ember a Földön, aki érti, hogy mi van ott, és hogy lehet úgy belenyúlni, hogy ne boruljon az egész.

Ugyanis most az van, hogy ha ezekkel az emberekkel történne valami, akkor nyílt forrás ide vagy oda, nincs ember a Földön, aki érti, hogy mi van ott, és hogy lehet úgy belenyúlni, hogy ne boruljon az egész.
Egyrészről akkor dokumentálni kellene, másrészt olyan nincs, hogy nem lesz ember aki megérti. Max egy jó darabig kell törni a buksit, hogy megértse és átlássa a dolgokat. Kaptam én is olyan forrást ami szegényesen volt kommentelve, dokumentáció nulla. Még nem értem teljesen de már kijavítottam benne egy halom hibát, a fő vázát átlátom. Igaz ez nem akkora project mint a Mozilla, de gondolom azt is emberek írták és nem ufók...

Az, hogy te talaltal egy projektet, aminek a kodja nem hasznalhato fel konnyen, attol meg nem lesz mitosz, hogy ujrafelhasznalhato a kod. A vilag nem fekete-feher, van olyan kod, ami konnyen felhasznalhato ujra, van olyan ami kevesbe konnyen. A kod amihez nem fersz hozza sehogy nem hasznalhato fel.

Heti rendszeresseggel hasznalok fel nyilt forrasu kodokat kulonfele projektekbol, neha konnyebb, neha nehezebb, de eddig meg mindig mukodott, legfeljebb a nekem nem tetszo reszt ujrairtam.

> Az újrafelhasználhatóság két dolgon bukhat:

Attól még újrafelhasználható, hogy nem használja fel újra senki.

> A gyors hibajavítás szintén nem jellemző a nyílt forrásra.

Hibajavításról van szó az állításban, nem pedig arról, hogy mennyi idő telik el a hibajavítás előtt.

> De a lényeg: a hibajavítás sebessége nem attól függ, hogy valami nyílt vagy zárt forrású.

Tegyük fel, hogy hibát akarok javítani a winamp-ban és az xmms-ben. Melyikkel végzek előbb? Van összefüggés? :-)))

> Attól még újrafelhasználható, hogy nem használja fel újra senki.

Én a gyakorlatról beszélek, nem az elméletről. Érveket keresünk a nyílt forrás mellett, az előnyeit szeretnénk látni. Mondjuk adott Gnumeric, ami tegyük fel, egyes területeken jobban teljesít, mint az OOo Calc. Nosza, vegyük át a jobb kódot! Nem fog menni, mert eltér az objektummodell, a programnyelv, sőt még a licenc is? De kár.

Németh Laci mesélte egyszer nekem, hogy az Aspellben van egy jó funkció, amit a Hunspellben is meg akar valósítani, de még jobban. De nem nézi meg az Aspell kódját, nehogy akaratlanul is átvegyen belőle, mert az GPL-es, és a Hunspell GPL/LGPL/MPL hármas licencelésű.

> Hibajavításról van szó az állításban, nem pedig arról, hogy mennyi idő telik el a hibajavítás előtt.
> Tegyük fel, hogy hibát akarok javítani a winamp-ban és az xmms-ben. Melyikkel végzek előbb? Van összefüggés? :-)))

A zárt forráskódot fejlesztő is a forrásban fogja kijavítani a hibát, nem a binárisban. A hibát bejelentő felhasználó ismeretek híján általában nem tudja kiaknázni azt a lehetőséget, hogy nyílt forrás és megengedő licenc esetén akár maga is javíthatná a hibát. Lehet, hogy te olyan okos vagy, hogy magad javítod a programhibákat az elérhető mintegy 10 milliárd kódsorban, de a legtöbben nem így vannak ezzel, hanem bejelentik a hibát, és várják, hogy a fejlesztő javítson. Még akkor is így van ez, ha valaki ki tudja javítani, mert a javítás terjesztése nem valósítható meg irreális erőbefektetés nélkül. Pl. nem fogja valaki forkolni a glibc-t, hogy jó legyen benne a magyar ábécébe rendezés. Nem biztonsági hibákra gondoltam elsősorban.

Ujrafelhasznalas: en rengeteg kodot szedek ki GPL projektek forrasabol es rakom azt bele a sajat programjaimba, amiket vagy soha nem publikalok, vagy ha publikalok, akkor persze GPL alatt. Nekem pl. ezt jelenti az ujrafelhasznalas, rengeteg idobe telne ezeket a kodokat ujra megirni.

Vagy akar csak tanulas szempontjabol is remek, hogy van jo minosegu kod amit meg lehet nezni, SOKKAL nehezebb lenne egy adott nyelvet, op.rendszert, bizonyos tipusu algoritmusokat vagy ugy altalaban programozast tanulni ezek nelkul.

Hibajavitas: szamos alkalommal tortent, hogy egy program alapvetoen megfelelt a celjaimnak, csak egy-ket apro problema volt vele, ezeket ilyenkor -- hala a forrasnak -- ki tudtam javitani. Zart forrasu szoftvernel nem lett volna ilyen konnyu, honapokig szivtam az OSX-szel emiatt. A javitas max 15 perc lett volna, ha megvan a forras.

> Én a gyakorlatról beszélek, nem az elméletről.

Ki mondta, hogy nincsenek kivételek? Számomra ettől még "újrafelhasználható".

> A zárt forráskódot fejlesztő is a forrásban fogja kijavítani a hibát, nem a binárisban.

Ki beszélt a fejlesztőről? Számomra ettől még "gyorsabban javítható".

"A kódok 90 százalékát öt fő nyelvben írták, (C, C++, C#, Java és Javascript)."

LOL

Szövegértés: az elemzés azt hozta ki, hogy 5 nyelv szerepel túlnyomó többségében a vizsgált projektekben, ezek egyike a Javascript... Nyilván nem a létező összes projektet nézték át. E
pl: van 100 php projektem ezeket elemzem:
a kódok
- 95% php
- 3% perl
- 2% js

Kijelenthetem, hogy a 100 php projekt 3 fő nyelven íródott: php, perl és javascript

Csak furcsának tűnik bármilyen valamennyire is reprezentatív mintában, ha több a JS, mint a PHP vagy a Python. Viszont azt nem írták, hogy a fő nyelveknek nevezett nyelvek azok, amik a legnagyobb részben voltak a mintában, vagy előre eldöntötték, hogy mik a fő nyelvek, összeadták őket, és 90 %-ot kaptak, majd azt mondták, "akkor tényleg ezek a fő nyelvek, ha a kódok 90 %-át adják". Az utóbbi esetben ettől még simán lehet 0,1 % JS és 3 % PHP.