ugrás a tartalomhoz

Interjú Ola Binivel – 1. rész

yaanno · 2009. Jún. 30. (K), 16.19
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.
 
1

Kiváncsian várom a

Török Gábor · 2009. Júl. 1. (Sze), 15.23
Kiváncsian várom a folytatást.