Interjú Ola Binivel – 1. rész
Az alábbiakban megosztom a Weblabor olvasóival azt a work in progress interjút, ami Ola Binivel készül e-mailben. Az eredeti angol verziót a teljes interjú összeállításakor adom közre. Az írás alatti kommentekben ti is kérdezhettek. Ola Bini a ThoughtWorks tanácsadója, többek között a JRuby egyik fő fejlesztője, ebben a témában könyvet is írt Practical JRuby on Rails címmel. Népszerű blogjának vezetése mellett egy új nyelv, az Ioke létrehozásán fáradozik.
Weblabor: Úgy tudom, nincsen hivatalos végzettséged informatikából. Hogyan látod ennek az előnyeit és/vagy hátrányait.
Ola Bini: Tényleg abbahagytam a főiskolát, így nincsen semmiféle végzettségem. Ennek nyilván vannak előnyei és hátrányai. Ami jó ebben, az az, hogy egy csomó munkatapasztalatra tettem szert az évek során és igazából sosem éreztem a formális képzés hiányát. A szükséges tudást menet közben fel tudtam szedni például úgy, hogy rengeteget olvastam. Ugyanakkor most, hogy egy saját nyelv megírására vállalkoztam, belátom, hogy a felsőbb képzés sokat segítene bizonyos dolgokban.
A legfőbb hátrány, ami ebből származik, hogy nem tudom papírokkal igazolni a tudásomat. Karrier szempontból nem feltétlenül jó így nekivágni az életnek, de mostanra azért elértem egy olyan szintre, hogy ez már nem is szükséges.
Azt hiszem, a blogok és a nyílt forrás világában ma már anélkül is bizonyíthatsz, hogy előbb papírokat kéne beszerezned – ezzel persze semmiképpen sem akarom azt állítani, hogy ez mindenki számára követendő út.
WL: Mi a foglalkozásod? Kapcsolódik-e a munkád valahogyan ahhoz, ami a programozásban szenvedélyesen érdekel?
OB: Nagyon is. Főállásban névleg tanácsadó vagyok, de emellett például a JRuby projektnél is közreműködöm tanácsadóként. Azután részt veszek többféle konkrét fejlesztési projektben is, Java, .NET és Ruby nyelveken fejlesztek.
Azért leginkább olyan dolgokkal foglalkozom, amik egyébként is nagyon érdekelnek. A munkám része például a JRuby fejlesztése, meg előadások tartása konferenciákon. Az Ioke nem kimondottan olyasmi, amiből a ThoughtWorks közvetlenül profitálna, de közvetve mégis megéri nekik, hogy hagynak rajta dolgozni. Végül Language Workbench-eken is dolgozom, így például az Intentional-on.
Most az a fő célom, hogy végre legyen egy svéd ThoughtWorks iroda, és ennek megvalósításába elég sok energiát fektetek.
WL: Szereted magad „language geek”-nek nevezni. Megosztanád velünk tapasztalataidat azokkal a nyelvekkel kapcsolatban, amelyeket használtál és kedvelsz? És még egy idevágó kérdés: természetes nyelveket is szeretsz tanulni, vagy inkább csak formálisakat?
OB: Valóban „language geek” vagyok, de azért inkább programozási nyelvekre korlátozva a kifejezést. Megjegyzem, a programozási nyelvek nem feltétlenül formálisak. Azt kell mondjam, hogy nem vagyok túl jó természetes nyelvekben, svédül és angolul beszélek, de kifejezetten érdekelnek a természetes nyelvek is egyfajta meta szinten. Ebben a témában szoktam olvasgatni.
Szeretek új programozási nyelveket megtanulni. A legtöbb jelentősebb nyelvbe beleártottam már magam, meg egy csomó kisebb nyelvbe is. Tulajdonképpen ez az, ami miatt elkezdtem megírni egy saját nyelvet.
WL: Szerinted hogyan érdemes belevágni egy új nyelv megtanulásába, például a Rubyéba?
OB: Elég közhelyes lesz, amit mondok, de ez tényleg tőled függ. A legjobb, amit általában ezzel kapcsolatban mondhatok, hogy csinálj valamit az adott nyelven, egy igazi projektet, nem valami játékszert. Ez persze nem mindenkire érvényes – én például egész jól tudok tanulni pusztán olvasással is. Vagy például fogd az adott szkriptnyelvet és használd pár hétig; először biztosan vért fogsz izzadni, de kénytelen leszel gyorsan megtanulni, hogyan lehet megcsinálni dolgokat.
WL: A hype-ot leszámítva milyen előnyök származhatnak a Ruby vagy más szkriptnyelv JVM-en való futtatásából?
OB: Személy szerint nem kedvelem a „szkriptnyelv” kifejezést. A Ruby például egy általános célú programozási nyelv, és bár számos olyan szolgáltatása van, ami miatt kiváló szkripteléshez, nem feltétlenül korlátozódik csupán arra.
Manapság a legtöbb programozónak aki nyelveket ír, egyszerűen nincs ideje arra, hogy igazán jó szemétgyűjtőt, szálkezelőt vagy JIT fordítót írjon. A nap végére kézbe akarsz venni egy megfelelő kifejezőerővel bíró nyelvet, amivel azért már lehet csinálni valamit. És nem feltétlenül csak azt a nyelvet akarod használni. Így a JVM-hez hasonló virtuális gépek előnyei közül legalább hármat említenék. Először is, lehetővé teszi azt, hogy sokkal kevesebb erőforrás felhasználásával implementálj egy nyelvet, mint ha ezt a hagyományos módon tennéd. Másodszor, jó együttműködést (interoperability) tud biztosítani ugyanazon virtuális gépen futó más nyelvekkel, így lehetőséged van a poliglot programozásra, vagyis arra, hogy a legmegfelelőbb nyelvet használd az adott célra, és ahol van értelme, ezeket a nyelveket vegyesen alkalmazd. Végül, egy jól megalapozott virtuális gép hozzáférést biztosít rengeteg könyvtárhoz, így nem kell újra meg újra feltalálnod a kereket, vagy C bridge-eket írnod.
WL: Egyes Ruby alkalmazások és könyvtárak számára szükség van többszálúság (thread safety) biztosítására. Hogyan sikerült ezt megoldani a JRuby esetében?
OB: Nos, a JRuby önmagában véve thread safe, ugyanakkor még mindig kénytelenek vagyunk imitálni a Ruby némely furcsaságait, ide értve például a threading körüli bosszantó kis trükközéseket. Ha egy Ruby alkalmazás vagy könyvtár többszálúságot igényel, ez a thread könyvtárral megoldható - ebben vannak mutexek, szemaforok és más hasonló dolgok. Mindez szépen működik JRuby alatt, hiszen a JRuby-ban valódi szálak vannak.
Az interjú folytatásával hamarosan jelentkezem.
■ Weblabor: Úgy tudom, nincsen hivatalos végzettséged informatikából. Hogyan látod ennek az előnyeit és/vagy hátrányait.
Ola Bini: Tényleg abbahagytam a főiskolát, így nincsen semmiféle végzettségem. Ennek nyilván vannak előnyei és hátrányai. Ami jó ebben, az az, hogy egy csomó munkatapasztalatra tettem szert az évek során és igazából sosem éreztem a formális képzés hiányát. A szükséges tudást menet közben fel tudtam szedni például úgy, hogy rengeteget olvastam. Ugyanakkor most, hogy egy saját nyelv megírására vállalkoztam, belátom, hogy a felsőbb képzés sokat segítene bizonyos dolgokban.
A legfőbb hátrány, ami ebből származik, hogy nem tudom papírokkal igazolni a tudásomat. Karrier szempontból nem feltétlenül jó így nekivágni az életnek, de mostanra azért elértem egy olyan szintre, hogy ez már nem is szükséges.
Azt hiszem, a blogok és a nyílt forrás világában ma már anélkül is bizonyíthatsz, hogy előbb papírokat kéne beszerezned – ezzel persze semmiképpen sem akarom azt állítani, hogy ez mindenki számára követendő út.
WL: Mi a foglalkozásod? Kapcsolódik-e a munkád valahogyan ahhoz, ami a programozásban szenvedélyesen érdekel?
OB: Nagyon is. Főállásban névleg tanácsadó vagyok, de emellett például a JRuby projektnél is közreműködöm tanácsadóként. Azután részt veszek többféle konkrét fejlesztési projektben is, Java, .NET és Ruby nyelveken fejlesztek.
Azért leginkább olyan dolgokkal foglalkozom, amik egyébként is nagyon érdekelnek. A munkám része például a JRuby fejlesztése, meg előadások tartása konferenciákon. Az Ioke nem kimondottan olyasmi, amiből a ThoughtWorks közvetlenül profitálna, de közvetve mégis megéri nekik, hogy hagynak rajta dolgozni. Végül Language Workbench-eken is dolgozom, így például az Intentional-on.
Most az a fő célom, hogy végre legyen egy svéd ThoughtWorks iroda, és ennek megvalósításába elég sok energiát fektetek.
WL: Szereted magad „language geek”-nek nevezni. Megosztanád velünk tapasztalataidat azokkal a nyelvekkel kapcsolatban, amelyeket használtál és kedvelsz? És még egy idevágó kérdés: természetes nyelveket is szeretsz tanulni, vagy inkább csak formálisakat?
OB: Valóban „language geek” vagyok, de azért inkább programozási nyelvekre korlátozva a kifejezést. Megjegyzem, a programozási nyelvek nem feltétlenül formálisak. Azt kell mondjam, hogy nem vagyok túl jó természetes nyelvekben, svédül és angolul beszélek, de kifejezetten érdekelnek a természetes nyelvek is egyfajta meta szinten. Ebben a témában szoktam olvasgatni.
Szeretek új programozási nyelveket megtanulni. A legtöbb jelentősebb nyelvbe beleártottam már magam, meg egy csomó kisebb nyelvbe is. Tulajdonképpen ez az, ami miatt elkezdtem megírni egy saját nyelvet.
WL: Szerinted hogyan érdemes belevágni egy új nyelv megtanulásába, például a Rubyéba?
OB: Elég közhelyes lesz, amit mondok, de ez tényleg tőled függ. A legjobb, amit általában ezzel kapcsolatban mondhatok, hogy csinálj valamit az adott nyelven, egy igazi projektet, nem valami játékszert. Ez persze nem mindenkire érvényes – én például egész jól tudok tanulni pusztán olvasással is. Vagy például fogd az adott szkriptnyelvet és használd pár hétig; először biztosan vért fogsz izzadni, de kénytelen leszel gyorsan megtanulni, hogyan lehet megcsinálni dolgokat.
WL: A hype-ot leszámítva milyen előnyök származhatnak a Ruby vagy más szkriptnyelv JVM-en való futtatásából?
OB: Személy szerint nem kedvelem a „szkriptnyelv” kifejezést. A Ruby például egy általános célú programozási nyelv, és bár számos olyan szolgáltatása van, ami miatt kiváló szkripteléshez, nem feltétlenül korlátozódik csupán arra.
Manapság a legtöbb programozónak aki nyelveket ír, egyszerűen nincs ideje arra, hogy igazán jó szemétgyűjtőt, szálkezelőt vagy JIT fordítót írjon. A nap végére kézbe akarsz venni egy megfelelő kifejezőerővel bíró nyelvet, amivel azért már lehet csinálni valamit. És nem feltétlenül csak azt a nyelvet akarod használni. Így a JVM-hez hasonló virtuális gépek előnyei közül legalább hármat említenék. Először is, lehetővé teszi azt, hogy sokkal kevesebb erőforrás felhasználásával implementálj egy nyelvet, mint ha ezt a hagyományos módon tennéd. Másodszor, jó együttműködést (interoperability) tud biztosítani ugyanazon virtuális gépen futó más nyelvekkel, így lehetőséged van a poliglot programozásra, vagyis arra, hogy a legmegfelelőbb nyelvet használd az adott célra, és ahol van értelme, ezeket a nyelveket vegyesen alkalmazd. Végül, egy jól megalapozott virtuális gép hozzáférést biztosít rengeteg könyvtárhoz, így nem kell újra meg újra feltalálnod a kereket, vagy C bridge-eket írnod.
WL: Egyes Ruby alkalmazások és könyvtárak számára szükség van többszálúság (thread safety) biztosítására. Hogyan sikerült ezt megoldani a JRuby esetében?
OB: Nos, a JRuby önmagában véve thread safe, ugyanakkor még mindig kénytelenek vagyunk imitálni a Ruby némely furcsaságait, ide értve például a threading körüli bosszantó kis trükközéseket. Ha egy Ruby alkalmazás vagy könyvtár többszálúságot igényel, ez a thread könyvtárral megoldható - ebben vannak mutexek, szemaforok és más hasonló dolgok. Mindez szépen működik JRuby alatt, hiszen a JRuby-ban valódi szálak vannak.
Az interjú folytatásával hamarosan jelentkezem.
Kiváncsian várom a