[Olvasói levél] Bevezető jellegű könyv a tisztán funkcionális programozásról magyar nyelven

Egy olvasónk küldte az alábbi levelet:

Szia Gábor!

Most jelentettem meg egy bevezető jellegű könyvet a tisztán funkcionális programozásról magyar nyelven, és arra gondoltam, hogy ez a HUP olvasóközönsége számára is érdekes lehet. A témában folyó kutatások, fejlesztések szinte teljes egészében nyílt forráskódú alapokon történnek, az egyik leghíresebb ilyen fordítóprogram, a Glasgow Haskell Compiler avagy GHC is ilyen.

Tudomásom szerint a HUP-on emellett meg szoktak jelenni programozási nyelvekkel foglalkozó hírek, cikkek is, így ezzel is tudnám színesíteni a palettát. Eddig a legtöbben a FreeBSD Projekt és a Magyar BSD Egyesület köreiben végzett munkámról ismerhettek, viszont mellette közel tíz évet töltöttem az egyetemen kutatással és oktatással, és az ott megszerzett tudást szeretném most szélesebb körben megosztani.

A könyv Leanpubon keresztül érhető el elektronikusan (PDF és ePUB változatokban):

https://leanpub.com/ptfa1/

Ez egy többrészes sorozat első eleme, reményeim szerint hamarosan követni fogják az egyre mélyebb témaköröket feldolgozó folytatások. Az árazás rugalmas, és akár ingyen is hozzáférhető, ám ehhez a Leanpubon olvasói tagságra kell előfizetni.

A HUP olvasói számára azonban létrehoztam egy másik linket, ahol ez nem szükséges:

https://leanpub.com/ptfa1/c/1C83kDcNqPn7

Természetesen szívesen fogadok pénzbeli támogatást is: különösen akkor, ha tetszett a könyv vagy maga a kezdeményezés, esetleg segíteni, ösztönözni szeretné valaki a folytatások elkészültét.

Köszönettel és üdvözlettel: Gábor

Hozzászólások

Fel is tettem a Kindle-re, olvasgatom majd, köszönöm!

subscribe

A funprog szerintem egy méltatlanul underrated koncepció. :(

Egyetértek. Ezen nem csak azt értem, hogy gyakran hülye fordítások és félrefordítások vannak, hanem azt is, hogy sokszor nem segít a megértésben, ha valami le van fordítva magyarra. Vegyük példának ezt az olvasó által írt könyvet. Szakmailag és tördelésileg is nagyon igényesnek és alaposnak tűnik, a fordítás is jó benne, nem találtam semmi hülyeséget (így első, felszínes átfutásra), de épp úgy nem értek belőle többet, mint egy angol nyelvű funprog anyagból, legyen az leírás vagy videó, előadás. Túl magas nekem ez a téma, nem bírom megérteni, mindegy, hogy mennyire van magyarítva, pl. az semmit nem segít, hogy a fold hajtogatásként (vagy a currying körizésnek) le van fordítva, épp úgy érthetetlen lesz végeredményében. Nem maga a koncepció, mert azt elméleti levezetésben még meg lehet érteni, hanem az a kemény része ennek a funkcionális témának, hogy ez sok absztrakt eszköz a végén hogy segít megírni egy konkrét, működő, hasznos programot. Pl. egy problémát leprogramozni hagyományos lineáris vagy strukturális nyelven nem nehéz, szokásos ciklusok, elágazások, stb., könnyű elemekre bontani, folyamatábrává alakítani. OOP már sokkal fogósabb, hogy egy adott feladatot hogy oldunk meg, hogy fogalmazunk át OOP-s elemekre, hogy működjön, de még az is abszolválható, mert vannak hozzá jó könyvek és videók. Na, ez most ezzel a funkcionális cuccal még nehezebb, még absztraktabb. Ezért nem népszerű, mert a legtöbben nem értenek belőle sokat.

Ezzel nem azt mondom, hogy rossz könyv, hanem aki az eddigi könyvekből a funkcionális programozást nem értette meg (mint pl. én se), az kb. ebből sem fogja. Annak ellenére, hogy szakmailag helytálló, de nekem inkább tudományos publikációnak tűnik. Ezt sokkal inkább egy olyan könyvből lehetne megtanulni, ami sokkal gyakorlatiasabb, az elméletet pedagógiailag túlegyszerűsíti, de a gyakorlatban meg használhatóvá teszi.

Másik példa, ez az előadás a YT-on, amit nemrég néztem meg. Angolul van, de nagyon érthető, pazar előadó, az anyagot jól leadta, történet, kombinátorok, levezette, hogy utóbbiakból mik az alapok, amikből a többi kombinitor kirakható. Csak épp ez nem segít, ha egy konkrét programot akar valaki Lispben vagy Haskellben vagy akármilyen nyelven írni, pedig az egésznek az lenne a lényege a végén, hogy ezt használja is valaki valamire.

Ilyen a relativitáselmélet is. Mélységeiben nagyon kevesen értik, mert már a tenzoros részén elvéreznek nagyon csúnyán. Vehetnek hozzá akárhány könyvet, azok puffogtatják, hogy a tenzor egy mező fölötti n dimeziós vektortér duálteránek a külső szorzatos möh-möh, ami nagyon elegáns definíció, de abból kb. semmit nem értenek, főleg, hogy minden nyelven ugyanaz a legfelső absztrakció van leírva, egymást másolják a könyvek. Közben meg van róla könnyebben érthető anyag, pl. egy kanadai hallgató csinált egy csomó videót róla, ahol nagyon érthetően, az alapokból elmagyarázza, annyira általános iskolás szintről indul, hogy nyilakat meg párhuzamosokat rajzolgat, kirakja különböző bázisvektorokból, szépen végigvezeti a vektor, kovektor, kovariáns, kontravariáns fogalmakat, jelöléseket, amíg építi fel az egész témát fokozatosan, kis lépésekben, mindenhez több konkrét példát vesz. Emiatt sok videó, sok órás, de végre van lehetősége annak is megérteni, akinek eddig esélye se volt rá, kurzusként végig tudja venni. Valami ilyesmi kéne funkcionális programozáshoz is.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Ehhez has kell... Tudom régi vicc. L

Köszönjük a hitközség nevében is! El fogom olvasni. Nagyon szeretek programozási nyelvekkel kapcsolatos dolgokat olvasni, ha meg funkcionális akkor pláne!

Az első három fejezet szuper érdekes. Nem mondom, hogy mindent értek, de tetszik!