tifyty

pure Java, what else ?

Java és Perl

Mennyire más világ a két nyelv. Csináljunk valamit hatékonyan és gyorsan, legyen kész, működjön. A másik meg azt mondja, hogy legyen karbantartható. Legyen világos, érthető. Ne akarjunk trükkös kódot írni. Ne kelljen érezni a kódot. Ne lehessen megmondani, amikor ránézek a kódra, hogy ezt Józsi készítette, azt meg Juli.

Amikor 1999-ben csatlakoztam az Index.hu alakuló csapatához egy sörös, boros beszélgetés során Bánóczi Zoltán (ma mint seo.blog.hu például) mondta, hogy a perl programozás olyan, hogy azt nem elég érteni, meg gyakorlottnak lenni. Azt érezni kell. És igaza van. Mai fejjel azt gondolom, hogy a Perl kiválóan alkalmas kisebb szoftverek megírására, de nem alkalmas nagyobb rendszerek professzionális fejlesztésére. Persze jöhetnek az ellenpéldák, hogy mi mindent raktak össze Perl programokból, csak a megfelelő ember kell hozzá: éppen ez a baj. Ha ki akarom festetni a lakásomat, akkor nem körömlakk ecsetet veszek elő, hanem festőhengert. Nem Michelangelo-t fogom hívni, hanem Makrai urat (Dohány utca 1/B), mert a célnak megfelelő minőségben dolgozik, és ki tudom fizetni. Lehet, hogy jöhetne Michelangelo is, és meg is tudná csinálni, de nem tudnám kifizetni. Ha pedig de igen, akkor ő nincs megfizetve, és akkor hobbizott. A kulcs ott van, hogy professzionális megoldásról beszélek.

A perl túl nagy szabadságot ad, és egyébként is: halott nyelv. Persze feltámadhat, ahogy a héber nyelv is feltámadt (vagy mit tudom én), de pillanatnyilag halott. Amikor 2005-ben Magyarországon megtartották az első Perl konferenciát, akkor itt járt Larry Wall és Leopold Tötsch. Larry a Perl megalkotója, Leopold pedig akkoriban a Perl 6-os verziójának a virtuális gépét fejlesztgette szabadidejében. Az éppen akkor volt neki elég, mert munkanélküli volt, aminek az is lett a folyománya, hogy a konferencia szervezőinek kellett megvenni, és elküldeni neki a vonatjegyet.

Erre a konferenciára elhívtak engem is előadni. Akkoriban elég ismert volt a nevem a Perl fejlesztők körében. Na nem azért, mert annyira értettem a Perl nyelvhez, hanem azért, mert írtam egy rövid tutoriált a nyelvről magyarul, és kiraktam az internetre. Sok időm volt úgy látszik. A konferenciára pedig készítettem, egy előadást, aminek az volt a címe, hogy “Tiltsák be a Perl-t!” Gondoltam, hogy aki igazi elvakult perl programozó az iróniának veszi az egészet, aki meg csak szereti a perl-t és esetleg észreveszi, hogy nem csak irónia van a dologban, az elég értelmes (és kultúrember) ahhoz, hogy a testi épségem ne forogjon veszélyben. Az előadásról készült videó felvétel is, de az idők során elvesztettem. (Ha valakinek megvan, tegye már fel utubra, vagy valahova.) Az előadás szövege azonban rövidítve megvan, és megvannak a slide-ok is. Bemásolom ide az egészet, és aztán mindenki elgondolkodhat, hogy vajon mi minden változott az életünkben nyolc év alatt:


Az előadás azt mondja el, hogy miért nem szabad kis, közepes, illetve nagy projekteknél a Perl nyelvet használni. Minden más esetben persze lehet. De ezeknél az eseteknél valami más megoldást kell választani, tipikusan Java-t.

Slide1

A Java sokkal jobb választás mindenki számára. (A Java csak egy a lehetséges választások közül, bárki behelyettesítheti kedvenc nyelvét, persze a Perl kivételével.)

A felhasználónak/megrendelőnek azért, mert tudhatja olyan rendszert használ, amelyik széles körben elterjedt platformra épül, sok millió rendszer épül fel Java-ban, és így nem kell szembenéznie azzal a veszéllyel, hogy amikor kiderül, hogy a rendszer az üzleti céljait nem teljesíti akkor a személyes felelőssége felmerülne: ő szabvány megoldást választott. Hogy az azzal készült rendszer rossz lett? Az nem az ő hibája.

Slide2

Ti pedig képesek lennétek Perl-t használni? Normálisan működő rendszert készíteni pár nap alatt? Esetleg ha közben, már a működő rendszert látva kiderül, hogy valami egy kicsit másképp kell, akkor módosítani pár nap alatt? Kinek jó ez?

A programozónak is jó, hiszen iszonyat mennyiségű metodológiát, eszközt, paradigmát, objektum orientáltságot, alkalmazás szervert lehet felvonultatni, ezen kívül létezik mindenféle megszerezhető certificate. Így a megrendelő sokkal kevésbé lát bele a tényleges Slide3 munkába, nem okvetetlenkedik, nem kritizálja meg, hogy miért kell egy közepes feladatra is egy chief architect, egy infrastructure designer, egy database designer, valamint ha már ennyi senior expert van a csapatban akkor tíz programozó, és hogy valaki ezt összefogja egy projekt manager.

Ti pedig képesek lennétek Perl-t használni? Megcsinálni ugyanazt a projektet fele idő alatt három okos programozóval? És a többi tíz családjával mi lesz? Éhen hal?

Slide4

A hardvergyártónak is jó, hiszen…

Nem mondom el, hogy miért. A 13 fős Java team-nek sem mondanám el, úgysem értenék és vitatkoznának velem. Itt egész más okból nem mondom el.

Ti pedig képesek lennétek Perl-t használni? Csak gondoljatok bele: ha mindenki Perl-t használna, és apró, gyors programokkal lenne megoldva a feladatok zöme, akkor nem tudnának a hardvergyártók nagy tömegben eladni irdatlan teljesítményű gépeket. Ha pedig csak kevés gyors gépet adnak el, akkor ezek a gépek nagyon drágák lennének. Akkor min játszanánk a Doom-ot? (Tetszőleges kedvenc játék behelyettesíthető, kivéve a Perl-t.)

Slide5

A szoftvergyártó cégnek is jó, hiszen fillérekért lehet alkalmazni főiskoláról frissen kikerült Java-t alapszinten tudó kódgyártókat. Ha pedig okosodtak egy kicsit, akkor vagy olcsó chief architect lesz belőlük, vagy ha rájönnek arra, hogy mennyit érnek, és elkezdenek magasabb fizetést követelni, akkor utcára kerülnek, és jön helyettük új, friss diplomás. (Legfeljebb megtanulnak Perl-ben programozni.)

Slide6

Ti pedig képesek lennétek Perl-t használni? Végetek van! Már ott elrontottátok, amikor megtanultátok a Perl-t! Tagadjátok le, hogy ismertek ilyen nyelvet! Nem fog sikerülni, de legalább próbáljátok meg! A szoftvergyártó cégtulajdonos, menedzser nem fog felvenni benneteket, még ha megtanultátok is a Java-t! Csak zűrt okoz, ha a chief architect-en kívül más is érti, hogy hogyan működik az egész rendszer. Az meg aztán mindennek a teteje, ha egy programozó annyira átlátja a rendszer felépítését, hogy kiderül, hogy a chief architect viszont nem. Még a végén egy egyszerű, logikus, átlátható rendszer születne, amit másik szállító is tudna módosítani, ő pedig elveszít egy vevőt.

Slide7

Összegezve: NEM SZABAD PERL-t HASZNÁLNI! Tönkreteszi az informatikát! Tönkreteszi a világot! Tiltsák be a Perl-t!


A konferencia jó hangulatú volt. Utána elmentünk együtt vacsorázni, sörözni. (Egyébként javaslom, hogy ha egy jó sörözésre vágysz, akkor inkább a régi jó haverokkal menjetek, mint egy nemzetközileg ismert, introvertált geek-kel.) A Perl továbbra is töretlenül fejlődik, és már a 5.17.8 verziónál tart (2013. február), de már nincs akkora lendülete, mint 2005-ig volt (forrás, wikipédia (ha ha)).

Mit lehet még ehhez hozzátenni?

.

.

.

MONDOM: Mit lehet még ehhez hozzátenni?!?

6 responses to “Java és Perl

  1. Gábor Lipták április 24, 2013 1:04 du.

    Eszembe jut a klasszikus mondás: PERL az a programnyelv, ami nem lesz kevésbé olvasható, ha bezippeled 🙂

  2. S.E. április 24, 2013 1:11 du.

    Azt is olvastam valahol, hogy a Perl egy write-only language…mennyire igaz…

  3. Zoltán Gyenes április 24, 2013 1:56 du.

    Engem ez a téma php vs java flame-re emlékeztet, az ott közösen kiásott, simára koptatott lövészárkokra 😉
    És akkor, szerintem, a perl kiváló eszköz egy üzemeltető kezében és hozzáértők kezében ennél sokkal többet is ki lehet hozni belőle. Ha ezekből kevés van, bármely nyelv használata kockázatokat hordoz. És persze, könnyebb rosszul használni, de a pattern-ek, szabályozások, konvenciók itt is előírhatóak, betarthatóak. Ezek terjesztése az evangélisták feladata lenne, de ha ők erre nem kaphatóak, akkor persze leszáll az ág.

  4. Király Péter április 24, 2013 3:38 du.

    Az alapfelvetéssel egyetértek a már születésekor is a Perl nagyon speciális célszerszám, míg a Java univerzális, gondosan tervezett nyelv (ennél fogva fenntartható) — de szerintem ez trivialitás, nem is értem, hogy hogy jött ez fel. Az izgalmasabb kérdés inkább az, hogy hogyan és miért tudott egy sor Perl-hez hasonló nyelv (pl. a PHP) dinamikusabban és sikeresebben fejlődni. Az 5.0-ás változat 1994 októberében jött ki, gondoljuk át, hogy maga a PHP is csak egy évvel későbbi és azóta mennyi minden változott meg benne. Én azt látom, hogy a Perlben például a nagy hangsúlyt kapott a regex ami ugyan nekem a kedvencem volt, de azt látom, hogy sokan kifejezetten gyűlölik, tehát ez egy olyan küszöb volt, amit eleve kevesebben léptek át. A másik (a webes szükségletek megjelenésekkor) a natív sablonrendszer hiánya (vagy a meglevő natív lehetőségek korlátos volta). Továbbá az is gond volt, hogy maga az alapnyelv viszonylag szűk, és egy a minimálisnál nagyobb célt megvalósító programhoz a CPAN/PPM/stb. helyekről kellett modulokat vadászni, amik vagy crossplatformosak voltak, vagy nem, vagy együttműködtek, vagy sem.

  5. tamasrev április 24, 2013 4:49 du.

    “mi minden változott az életünkben nyolc év alatt?” Ezt én úgy fordítom, hogy melyik nyelv ölte meg a perlt? Szerintem a python/ruby/scala/ lesz a ludas. Ugyanis ahogy Perl mellett van most Java, ugyanúgy volt mellette régebben C++ – mégis jól megfértek egymás mellett.

  6. Mefi április 27, 2013 1:41 du.

    A PHP gyors fejlődése és sikeressége a Javához viszonyítva nekem egyértelmű: sokkal gyorsabban és könnyebben lehet sikereket elérni egy kétsoros PHP-kóddal. Könnyebb elindulni, de nagyon könnyű kinőni. Szemben a Javával, ahol nehezebb elindulni, mert sokkal mélyebb tudást igényel, mégis sokkal igényesebben és hatékonyabban lehet dolgozni a későbbiekben.

    A PHP ugyanúgy eltűnt volna, ha rengeteg fejlesztőnek nem lett volna igénye arra, hogy az eredetileg megírt alkalmazásokat lehessen minőségi módon továbbfejleszteni. Ma már van PHPUnit, PHPDepend, PHPMD stb., a nyelv rengeteget fejlődött mert a készítői is felismerték a hiányosságait, és áll mögötte egy nagyon erős közösség.

    Egy idő után minden fejlesztőnek igénye van arra, hogy egy komolyabb nyelvvel dolgozzon, ahol nem csak a fejlesztő képességei azok, amik megakadályozzák a hákolást, hanem maga a nyelv felépítése is.

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: