tifyty

pure Java, what else ?

Szabadság

Ez nem lesz túl technikai. Egyrészt nyár van (ezt se ma írtam), és ezért azon a néhány napsütéses napon, amikor a véletlen úgy hozza, hogy éppen szombat vagy vasárnap van, inkább kimegyek a szabadba. Persze lesznek technikai cikkek is, mert ami késik az nem múlik. Szokták mondani, hogy ami késik az az órám, de ez itt Svájcban annyira nem jellemző. Itt Schaffhausen nem óra, és Winterthur nem nyugdíjbiztosító: mind a kettő város. Persze tudtam, de mégis furcsa volt látni. És furcsák egy kicsit az emberek is: mi nagyobb szabadsághoz szoktunk. Persze kérdés az, hogy mi a szabadság. Amikor a szabályok pontosan meghatározzák, hogy mit szabad, és mit nem, olyankor kisebb a szabadságunk. Amikor nincsenek szabályok, akkor nagy a szabadság. Itt nincs olyan nagy szabadság, itt majdnem mindent szabályoznak. A nagy különbség, hogy ezt a szabályozást magukénak érzik az emberek, nem érzik úgy, hogy valami külső hatalom erőltette rájuk.

Ha perl-ben programozunk, nagy a szabadság. Nagyokat is lehet bukni vele. Ha Java-ban programozunk, sokkal kisebb a szabadság. Rosszul éljük meg? Általában nem (persze van, aki igen, de ő nem is programoz Java-ban). Mi választottuk ezt a nyelvet, és élvezzük a szabályokkal járó előnyöket. Mert a szabályok nem csak arra jók, hogy betartsuk, hanem arra is, hogy mások is betartják, és ez az igazi előny. Persze az lenne a legjobb, ha a szabályokat csak másoknak kellene betartaniuk, és nekem nem, de ez nem megy. És nem csak azért, mert nem vagyunk egyedül a társadalomban (szerencsére), hanem azért sem, mert ha nem tartom be a szabályokat, akkor nem csak másokkal tolok ki, akik csak nehezen tudják majd a kódomat karbantartani, hanem magammal is, amikor fél év múlva elém kerül. Ezért kell fegyelmezettnek lenni, és betartani a sebességkorlátozást, mert nem csak a kisgyerekek halhatnak meg az úton az autód alatt, hanem te is fának mehetsz, akár egyedül is.

A szabályok egy része adott. Rétegekben, mint a hagyma, vagy mint az ogre. Minél lejjebb haladunk, annál több a szabadságunk abban, hogy mennyi szabályt alkotunk és tartunk be. Például elég kevés hatásunk van arra, hogy hat-e ránk a gravitáció. Ez általános fizikai szabály, amin a mindenható esetleg tud változtatni, és érdekes lehet azon filozofálni, hogy elképzelhető-e olyan univerzum, amelyben mások a fizikai törvények, és mégis “konzisztens” az egész, de nem tudom, hogy a szellemi felfrissülésen kívül van-e értelme. Egyébként elárulom: a válasz igen. Elképzelhető. Mert az ember sok mindent el tud képzelni. De csak ezért.

Aztán vannak olyan szabályok, mint az, hogy ha elégetjük a föld szénkészletét, akkor pont olyan lesz a légkör, mint amilyen akkor volt, mielőtt a széndioxidot elkezdték baktériumok felzabálni, és megmérgezték magukat a zoxigénnel. Ezen elvileg tudna az emberiség változtatni, de nem fog, és mivel nincs statisztikai sokaság, hogy azt mondhassuk, hogy van olyan emberiség, amelyik megteszi, van amelyik nem, ezért értelmetlen azt mondani, hogy megtehetnénk, de nem tesszük meg. Mert nincs különbség aközött, hogy megtehetnénk, meg aközött, hogy nem tehetjük meg, mert ilyen a természetünk. Mint a skorpiónak. Ezen a folyón nem jutunk keresztül.

És mehetünk tovább: vannak törvények, regionális, országos szinten, amit magunk hozunk magunknak, jó esetben. És vannak még alacsonyabb szintű szabályok, amiket kis közösségben hozunk, és végül hozunk szabályokat magunknak. Például nem veszek bérletet, és inkább rossz időben is küzdök a kerékpárral, mert ha vennék, akkor jó időben is vonatra szállnék. Ezért, ismerve magam: nincs bérlet. Persze ebben a döntésben sokat segít a bérlet ára is, ami a budapesti négyszerese, miközben a fizetés meg nem. (Azért nem kell sajnálni.) Kellemetlenek a szabályok? Amikor felfelé tekerek, és ki akar ugrani a tüdőm, meg a szívem a helyéről, akkor igen. Amikor meg kell írni a unit tesztet, meg a dokumentációt, akkor igen. De van értelme. Egy idő után már nem kell annyira küzdeni, és egyre jobban megy a unit teszt, meg a dokumentáció készítés is. És érdekes módon a unit teszt készítése visszahat a kód minőségére, amíg észrevétlenül eljutunk arra a szintre, hogy előbb írjuk a unit tesztet, mint a kódot. És nem kell küzdeni, amikor lehajolok bekötni a cipőmet, és nem kell azon gondolkoznom, hogy a harmadikra lifttel menjek-e vagy sem: nincs lelkiismeret furdalásom, mert mozgok eleget a napi 16km kerékpározással (mire gondoltál, hogy gyalog megyek fel by default?). Persze nem gond, ha gyalog kell felmenni 🙂

Mennyi szabály kell? Minél fegyelmezettebbek, és minél belátóbbak (okosabbak) az emberek a közösségben annál kevesebb kell. Csupa kiemelkedő programozóból álló csapatban, ahol nem gond, hogy a kiemelkedő képességű embereknek kiemelkedő fizetést kell általában adni ragyogó alkalmazásokat lehet készíteni JavaScript-ben, PHP-ban, Perl-ben, és után a jönnek a nagy megmondások, hogy lám lám. De nem mindenki zseni, és még kevesebb a fegyelmezett zseni. Mostani környezetemben minden kód átmegy a review-n és bizony szembe kell néznem néha magammal: több fegyelem kell(ene). Aztán persze a review fenyegetése megteremti a több fegyelmet, mert ha meg is engednék magamnak némi pongyolaságot, tudom, hogy úgyse megy át a review-n, nem kerül bele a master-be, a master halad tovább, és egyre nagyobbat fogok szívni, mire a kódot szebbre, jobbra kijavítva újra kérhetem a review-t egy git pull origin master után. Bizony így megy ez 20 év fejlesztői tapasztalattal is. Ifjú kollégáim rámpirítanak, nincsenek tekintettel a tapasztalatomra, és szólnak ha valami olyat alkotok, amit nem kellene, nem illene. Pedig a múltkor igen öregnek éreztem magam:

Arról volt szó, hogy a reguláris kifejezések a Java-ban a Perl nyelvből jönnek-e. És akkor elmondtam, hogy igen is, meg nem is, mert volt előzmény: awk, meg sed és hasonlók, és akkor ifjú kollégám megkérdezte, hogy melyik könyvben olvastam ezekről. Szóval neki ez már történelem, amiről csak könyvben lehet olvasni. Én meg ezeket használtam.

Hát így… Lehet tovább gondolkodni. Azt szeretem, ha sok a komment.

2 responses to “Szabadság

  1. zgyv december 4, 2013 11:37 de.

    Hát a nyár már elmúlt, ma -4 fok volt reggel.
    Reguláris kifejezések, fiatalok..
    Amikor elment közülünk Steve Jobs, mindenki róla beszélt, megjelent életrajzi könyve, sorban osztották meg az emberek a Stanford egyetemen elhangzott beszédét. Mire jó, ha az ember megtanul szabályokat és azokat alkalmazza, pont Steve tett magasról sok szabályra, ennek is köszönhető sok klassz termék, ami a cégeinek műhelyeiből kiesett. De a true-type fontok sokat köszönhettek annak, hogy elvégzett egy tanfolyamot ezzel kapcsolatban és az ott megtanult elveket – értsd szabályokat – később, mikor szükségét látta, alkalmazni tudta.
    De ugyanezen a szomorú őszön, amikor Steve Jobs halálával volt tele nemcsak a rágott alma hívők összes blogja, egy hónapon belül elment még Dennis Ritchie is, akire a fiatalok többsége rákérdez, hogy az ki is volt? Annak a könyvnek a szerzője, igen a Kernighan – Ritchie? Ja azt már mi nem használjuk, nekünk a Stroustrup név ugrik csak be mert az már ++ ugye. Dennisnek a reguláris kifejezésekhez elég sok köze volt, A reguláris kifejezéseket a mai talán legnépszerűbb webfejlesztő nyelvben, a PHP-ben is használják. Érdekes, megkérdeztem velem szemben ülő fiatal webfejlesztő kollégámat (PHP-s), tudja-e ki volt Rasmus, nem hallott róla, Dennis gyanús volt neki, Jobs nevét vágta. Egy megoldásra kértem tőle ötletet, a YII keretrendszert javasolta helyből, mert ő ugye PHP-s és a szabályokra nevelték.

    Unalmas további gondolatok helyett a szabályokról alkotott véleményemet írom le az informatikai fejlesztés során. IMHO, aki nem tartja be az adott csapatban, helyen közösen elfogadott, vagy kötelező érvényűen elődjeink által meghatározott szabályokat, az vélhetően nem fog újrafelhasználható, értékes kódot írni. Ugyanakkor a szabályok nemcsak megkötik a kezünket, de a túlszabályozottság egyrészt az innováció halálát is jelenti, másrészt szinte lehetetlen konzisztens összetett szabályrendszert alkotni. Az újítások sem az éppen érvényben lévő szabályrendszerek szerint jönnek létre, sőt.
    Szóval az én javasolt szabályom, legyetek folyamatosan kíváncsiak és éhesek az újdonságokra, de a mások által megalkotott szabályokra is. Nemcsak elvárás, hanem amúgy lehet is belőlük tanulni.
    Fejlesztés során pedig a szabályrendszerek hatékonysága jelenleg bizonyított, de a munkaszervezés szerintem többet számít. Ha az adott idő alatt a csapat nem képes az alkalmazandó framework-öt és eszközöket megfelelő minőségben megtanulni, akkor lehet, hogy gyorsabban produkál eredményt “nulláról” . Ezért kell a jó projektvezető, aki lehet, hogy nem is profi fejlesztő…

  2. tamasrev december 4, 2013 1:04 du.

    “Jöjj el szabadság! Te szülj nekem rendet” (JA)
    És egy másik, amit kortárstáncos berkekben mondogatnak: (Megfelelő) szabályok adják az igazi szabadságot.

    Kent Beck amúgy azt mondja pl a kód konenciókra, hogy “Develop a coding convention” – azaz a csapat menet közben evolváljon magának egy ilyet, és tartsa be (kivéve amikor továbbfejlesztgetik)

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: