bine ați navigat pe insula mea de pe internet

Douăzeci de ani de Pandoc

Pe 3 august 2006, John MacFarlane a încărcat pe situl lui personal prima versiune a unui program pe care avea să-l numească Pandoc. Nu avea nicio idee atunci că acel mic proiect, scris din plictiseală și din dorința de a învăța un limbaj de programare nou, va deveni instrumentul standard pentru conversia documentelor, folosit astăzi pe milioane de calculatoare din toată lumea. Recent, MacFarlane a publicat un articol lung în care povestește istoria proiectului cu ocazia aniversării de douăzeci de ani, iar câteva idei din acel text merită împărtășite, pentru cine folosește Pandoc zilnic.

Pandoc - 20 Years

O poveste care începe cu un limbaj de programare, nu cu o problemă de rezolvat

Cel mai interesant detaliu din povestea lui MacFarlane este că nu a pornit de la nevoia de a construi un convertor de documente. A pornit de la dorința de a învăța Haskell, un limbaj funcțional despre care auzise de la un prieten filosof. Abia după ce a scris un parser pentru Markdown, ca exercițiu, și-a dat seama că poate adăuga și alte formate, apoi altele, până când proiectul a „luat-o razna” de la sine, cum spune chiar el.

Arhitectura pe care a ales-o de la început s-a dovedit genială: în loc să transforme direct un format în altul, prin șiruri de expresii regulate, așa cum făceau majoritatea convertoarelor Markdown din acea vreme, Pandoc parsează documentul într-un arbore de sintaxă abstractă intern, pe care apoi îl poate reda în oricare din formatele suportate. Practic, dacă ai N cititoare de format și M scriitoare de format, obții N înmulțit cu M conversii posibile, fără ca fiecare pereche de formate să aibă nevoie de cod dedicat.

De la un proiect de weekend la peste 3.800 de conversii posibile

Evoluția povestită în articol e impresionantă. Primele versiuni, din 2006-2008, susțineau doar câteva formate: HTML, LaTeX, reStructuredText și Markdown. Mutarea pe Hackage și apoi pe GitHub în 2010 a crescut vizibilitatea proiectului, iar contribuitori din toată lumea au început să adauge scriitoare și cititoare noi: DocBook, OpenDocument, EPUB, Word docx, PowerPoint și multe altele.

Un moment pe care îl găsesc fascinant este cel din 2013, când Pandoc a câștigat sistemul de extensii Markdown, blocurile de metadate YAML, scriitoarele personalizate în Lua și filtrele JSON, patru schimbări care au transformat Pandoc dintr-un simplu convertor într-o platformă extensibilă. Tot atunci, MacFarlane a fost implicat în efortul de standardizare a sintaxei Markdown, care avea să devină proiectul CommonMark, după ce numele inițial, „Standard Markdown”, a fost respins chiar de John Gruber, autorul Markdown original.

Astăzi, la 3.9, Pandoc suportă 51 de formate de intrare și 76 de ieșire, adică aproape 3.900 de conversii distincte, scrise în peste 85.000 de linii de cod Haskell. Peste 600 de persoane au contribuit la proiect de-a lungul timpului, deși MacFarlane rămâne autorul a peste 370.000 de linii schimbate, o cifră care arată cât de mult ș-a dedicat acest om proiectului.

De ce Haskell, și dacă a meritat

Un pasaj pe care l-am găsit sincer și util e cel în care MacFarlane discută retrospectiv alegerea limbajului. El recunoaște că nu a decis să folosească Haskell pentru că era limbajul optim pentru un asemenea proiect, ci invers: a decis să învețe Haskell, apoi a găsit un proiect potrivit pentru a exersa. Totuși, la douăzeci de ani distanță, consideră că tipurile de date algebrice, sistemul de tipuri puternic și puritatea funcțională a limbajului au fost esențiale pentru a putea întreține singur, în timpul liber, un program de o asemenea complexitate. Recunoaște și că Rust ar fi, probabil, o alternativă la fel de bună azi, poate chiar mai rapidă și mai eficientă, dar consideră Haskell mai „ergonomic” pentru felul în care te ajută să gândești problema.

Unde ne duce viitorul, între instrumente deterministe și modele de limbaj

Partea cea mai actuală a articolului e reflecția finală, despre viitorul unor programe ca Pandoc într-o lume în care modelele de limbaj pot, la rândul lor, traduce destul de bine dintr-un format de document în altul. MacFarlane recunoaște deschis că un model precum ChatGPT se descurcă surprinzător de bine la conversii de acest fel. Totuși, el vede trei avantaje clare pentru un instrument tradițional ca Pandoc, care merită reținute: consumă mult mai puțină energie pentru aceeași conversie, rezultatul e determinist, adică obții mereu exact același rezultat pentru aceeași intrare, și, cel puțin pentru moment, conversiile rămân mai fiabile decât cele generate de un model de limbaj.

Ca fost utilizator al programului, găsesc povestea asta liniștitoare într-un fel. Pandoc rămâne unul dintre acele instrumente construite temeinic, gândite să facă un singur lucru foarte bine, fără reclame, fără telemetrie, fără nevoia unui cont sau a unei conexiuni la internet ca să funcționeze. Douăzeci de ani de dezvoltare susținută de un singur om, ajutat pe parcurs de o comunitate mică dar loială, sunt o dovadă că programele libere bine făcute pot rezista testului timpului mult mai bine decât multe produse comerciale apărute și dispărute între timp.

Articolul original, cu toate detaliile tehnice și lista completă a contribuitorilor, poate fi citit pe situl oficial al proiectului.

#Blaugust2026

Ți-a plăcut articolul?
← Înapoi

Ai scris despre articolul ăsta?

Dacă platforma ta nu trimite webmentions automat, lasă aici linkul articolului tău care face referire la acesta.

Comentarii

Comenzi rapide de la tastatură

j
Derulează în jos
k
Derulează în sus
d
Derulează jumătate de pagină în jos
u
Derulează jumătate de pagină în sus
gg
Mergi sus de tot
G
Mergi jos de tot
/
Focalizează căutarea
r
Articol aleatoriu
[
Pagina anterioară
]
Ultima pagină
?
Afișează acest ajutor