Minden ami „vélemény”

Practical Common Lisp

A héten befejeztem Peter Seibel Practical Common Lisp című könyvét, és továbbra is vegyes érzéseim vannak a nyelvvel kapcsolatban. A könyv egyébként nagyon jó, csak ajánlani tudom mindazoknak, akiket érdekel a Lisp és egy viszonylag széles merítést akarnak kapni belőle az alapoktól indulva, egészen egy egyszerű kis webes alkalmazás elkészítéséig, ami egyúttal shoutcast szerver, binárisból parsolja az ID3 tageket stb. Nagyon jól összerakott könyv 10/10, bár én tudnék ilyet írni valamikor… akármiről.

Domain specifikus nyelvek

De vissza a vegyes érzelmekhez. Tulajdonképpen az egész nyelvben csak a makrók fogtak meg, ami nem is csoda laza 8 év domain specifikus nyelvek (DSL) terén szerzett tapasztalatomból kifolyólag. Na jó, ez így túlzás, de ha meg azt írom, hogy DSL alapú eszközök (domain workbenchek) fejlesztésére szolgáló eszköz fejlesztésében, az még durvábban hangzik, pedig hát ez az igazság, akárhogy nézzük is. A makrók nagy királyság, és már emiatt megérné a nyelvet nap mint nap használni, ugyanakkor én láttam ennél sokkal ígéretesebb megoldásokat ezen a téren.

Olyan eszközöket, amikben a DSL olvasható. Igen, olvasható, mert mondjon nekem akárki akármit, a Lisp programok kurva nehezen olvashatók. Jó, a könyvben nincs syntax highlight, viszont van szöveges magyarázat. De még ezzel együtt is elgondolkozik az ember, hogy akkor ez itt most egy változó neve akar lenni, vagy talán inkább valami függvény, netán kulcsszó. És eleve mindent beleerőltetni ezekbe a zárójelekbe, kész gyötrelem. És tökéletesen tisztában vagyok vele, hogy John McCarthy az elején még tervezte a szintaxis kialakítását (amíg közbe nem jött a Beatles*), és így, hogy nem kell parsolni, sokkal könnyebb a kódot adatként kezelni, de ez nekem még így is kevés. Köpjenek le, kérem, köpjenek le, és bizonyítsák be hogy nincs igazam.

Én olyan eszközöket szeretnék, ahol definiálom a DSL-t valami egyszerű kis nyelven, ami mondjuk olyasmi lehet, mint ahogy az ember egy xml sémát definiál. Aztán adok hozzá valami projekciót (akár többet is), ami meg az xml analógiát folytatva, egy xsl transzformáció a DSL-ről valami layout nyelvre. Írok hozzá pár sorban egy generátort DSL → C# vagy akármi, ami szemantikát ad az egészhez. És ennyi, megkapom az editort. Nem írtam parsert, de jól néz ki a képernyőn a DSL-ben írt “program”. Világos, hogy mi kulcsszó és mi nem. Rendesen van tördelve, az általam használt, ismert és szertett jelölésrendszert látom magam előtt. Úgy általában pont úgy néz ki az egész, ahogy papíron a legkényelmesebben le tudnám írni. Nem is biztos hogy szöveg alapú… lehet, hogy egy táblázat jobban megfelel, vagy valami gráf, ahol összehuzigálom a dolgokat. Ki tudja…

És igen, akarok hozzá code completiont kapni, és refactoring toolokat is, meg “find references”-t, és az összes kis feature-t, amit egy IDE-ben megszoktam programozási nyelvek kapcsán. Ja, hogy a DSL-em nem programozási nyelvekről szól, hanem adószabályokról, pénzügyi döntésekről, logisztikáról, akármiről… annál inkább.

Hiányoznak ezek az eszközök mint egy falat kenyér, és sajnos a Lisp nem adja meg a kívánt szabadságot, bár kétség kívül nagyon erős a maga kis világában.

Dinamikus nyelvek

A másik dolog ami miatt nem kedvelem a Lispet az a típusok hiánya. Van most egy vicc a cégben, hogy hidd el nekem, hogy te már nagyon öreg programozó vagy, mert még mindig a szigorú statikus típusosságban hiszel, és nem ismered el a manapság divatos dinamókus nyelvek létjogosultságát. (Természetesen ilyenkor átsiklunk afölött, hogy a Lisp egyike az ős nyelveknek.) Az utóbbi évtizedben egyre-másra jönnek fel a dinamikus nyelvek, és én és a barátaim közül sokan nagyon nem értjük ezeket az újhullámos kis nyikhajokat a rapid prototyping-al meg a test driven developing-al, valahogy úgy tűnik, hogy nagyon hiányzik valami, ha pl. az IDE nem tudja nekem megmondani, hogy egy adott változóval mit lehet csinálni. Sokakat ez egyáltalán nem zavar, és ilyenkor tényleg úgy érzem, hogy én már egy vén fasz vagyok és nem értek semmit. De amikor a Lisp könyv végén arról olvasok, hogy jó ez a nyelv, na de hol van teljesítményben egy C-hez képest, és aztán elkezdi declare-ekkel teleszórni a kódot, hogy futás idejű ellenőrzéseket kapcsoljon ki annak érdekében, hogy mondjuk egy összeadás csak int-ekre működjön, és túl tudjon csordulni (ahogy C-ben), akkor azért csak nagyon nehezen tudom elnyomni a kis félmosolyt, hogy lám-lám a nagy öreg hogy küzd a típus kalkulus hiánya miatt. De megint megkérem Önöket, hogy rakjanak helyre, ha tudnak.

Összességében. A könyv nagy kaland volt, tetszett, rengeteg ideig tartott napi húsz oldal sebességgel a buszon elolvasni, de megérte, mert sokat tanultam belőle. Még akkor is, ha nem tervezem, hogy Lisp programozóként folytassam karrieremet.

Gázóra – Tigáz és Emfesz

Megmondom kivel vigyázzanak: akitől a házamat vettem. Az eladó (Zabó László) ugyanis úgy hagyta itt az ingatlant, hogy a gázóra meg volt buherálva. Természetesen nem tudom bizonyítani, hogy ő buherálta meg, de ha Önöknek dolguk akad az illetővel, előbb alaposan győződjenek meg róla, hogy nincs semmi turpisság a dologban. Előfordulhat ugyanis, hogy lesz.

A buherált gázórát a Tigáz 540.000Ft-os kötbérrel súlytja, plusz még az új óra ára és szerelési költsége.  Ez több mint két évnyi gázfogyasztásom ára. Természetesen úgy képzelik a dolgot, hogy ezt én fogom befizetni, de minden erőmmel azon leszek, hogy ez végülis majd ne történjen meg. Elvégre is mi a redves faszér nem jöttek ki tavaly, amikor a házat megvettem, és bejelentettem a rosszemlékű Emfesznek, hogy mostantól én vagyok itt a tulajdonos. Csak azt tudom elképzelni, hogy az Emfesznél inkompetens idiótákat alkalmaznak, akik nem tájékoztatták a Tigázt arról, hogy tulajdonosváltás történt, és ki kéne jönni az órát megvizsgálni. Esetleg a Tigáznál alkalmaznak inkompetens idiótákat, akik még egy ilyen alap dolgot sem tudnak elintézni.

De mégis. Akkor kellett volna idetolni a tigázos pofájukat és alaposan megvizsgálni a telibebaszott gázmérőt. És ha akkor még minden rendben lett volna, akkor most joggal jöhetnének a kötbérrel. De nem. Ezek ott a Tigáznál úgy képzelik, hogy majd csak úgy írnak nekem egy levelet én meg fizetek mintha én basztam volna el a dolgot. Az külön vicces, hogy nekem egy papírt eddig még a Tigáznál alá nem kellett írni, azt se tudtam hogy a világon vannak, csak mióta ezzel a kötbérrel elkezdtek zaklatni. Én az Emfesszel voltam szerződésben, amikor meg elkezdett becsődölni, átkerültem a Főgázhoz és azóta is ott vagyok. Tigázról szó se volt, nem is teljesen értem, hogy mit akarnak tőlem.

Mindenkinek az lesz a legjobb, ha nem én írok levelet nekik arról, hogy milyen kurvára nincs igazuk a kérdésben, hanem megkérem Enikőt, aki mégiscsak szabálysértésekkel foglalkozott előző életében, és pontosan tudja, hogy az ilyeneket hogy kell kezelni.

A folytatásról tájékoztatom Önöket.

Frissítés 2011.10.25.

Mintegy két hónap és 10 telefon után az alábbi levelet kaptam ma. Na most küldjék a csekket a fasszopó görények.

Tisztelt xxxxxxxxxxx!

Hivatkozással Társaságunkhoz érkezett megkeresésére, tájékoztatásul az alábbiakat közöljük Önnel:

Az Ön xxxxxxx fogyasztási helyén az ügyfélváltozást követően mérőhely ellenőrzés nem történt.

Megkeresését köszönjük.

Nyíregyháza, 2011. október 20.

Tisztelettel,

(fénymásolt/scannalt aláírás….) Dombrádyné, Back office vezető

Vad Virágok Könyvműhely

Nehogy azt gondolják, hogy csak a fogyasztó társadalommal kapcsolatos rossz tapasztalataimat írom meg, egyszerűen ezekből van több. Egy remek pozitív példa viszont a Vad Virágok Könyvműhellyel kapcsolatos. Tavasszal, vagy tán még a múlt télen írtam nekik, hogy a Kázmér és Huba képregénygyűjtemény második kötetét keresem. Akkor nem volt nekik raktáron, de ősszel tervezték az újrakiadást.

Eltelt pár hónap, és egyszer csak egy levelet kaptam tőlük, hogy íme megjelent a könyv, és a Komikon képregényboltban (1075 Budapest, Wesselényi u. 12.) tudom átvenni kedvezményes áron.

Na így kéne mindenkinek.

Szeretem a Kázmér és Hubát. Nagy mennyiségben nagyon szórakoztató tud lenni.

Azt tudták például, hogy a két figura nevét (Calvin és Hobbes) Kálvin János és Thomas Hobbes ihlette? Ők mindketten a szabad akarat hiányában hittek, bár más-más megfontolásból. Kálvin János szerint teljes isteni irányítás alatt állunk, Hobbes szerint viszont minden mozdulatunk csak biológiai törvényszerűség. Ez azért elég jól kapcsolódik az “elnyomott” kisgyerek világképéhez, nem?

Hamarosan megjelenik a hatodik kötet, talán bekerül a karácsonyfa alá… Ugye? :)