Geri Dön
SiTech Professional Insights
Pandoc'un yirmi yılı: Haskell ile yazılmış belge dönüştürücü
SiTech Team2 წთ. საკითხავი

Pandoc'un yirmi yılı: Haskell ile yazılmış belge dönüştürücü

John MacFarlane, pandoc'un ilk sürümünün yirminci yılını andı: 51 giriş ve 76 çıkış formatı, 3.876 dönüşüm ve 600'den fazla katkıda bulunan. Yazıda LLM'lerin bu tür araçların yerini alıp almayacağı da tartışılıyor.

Belge dönüştürücü pandoc’un yaratıcısı John MacFarlane, ilk sürümün yirminci yılı için bir retrospektif yayımladı. pandoc 0.1’i 3 Ağustos 2006’da web sitesine yükledi ve özgür GPL lisansıyla yayınladı. İlk sürüm, GHC’nin standart kütüphanesi dışında hiçbir bağımlılığı olmayan yaklaşık 3.000 satır Haskell kodundan oluşuyordu ve Markdown, reStructuredText, HTML ile LaTeX belgelerini birbirine, ayrıca RTF ve S5’e dönüştürebiliyordu. İki yüzden fazla sürümün ardından proje, Haskell ile yazılmış en popüler program hâline geldi; elliden fazla belge formatını destekliyor ve milyonlarca bilgisayarda kurulu.

Neden Haskell, neden AST

MacFarlane’e göre seçim, sanılanın tersine işledi: önce Haskell kullanmaya karar verdi, sonra bir belge dönüştürücü yazmaya. Bir arkadaşının blog yazısından etkilenip “A Gentle Introduction to Haskell”i okudu ve dili öğrenmek için pratik bir proje aradı. Dönemin Markdown uygulamaları Perl, Python, Ruby ve PHP’de düzenli ifadelerle çalışan dönüştürücülerdi; pandoc farklı bir yol seçti — Markdown’ı gerçek bir soyut sözdizimi ağacına (AST) ayrıştırıp bu ağacı diğer formatlara render etti. Bu daha güvenilir ve genişletilebilir bir mimari: N okuyucu ve M yazıcı, N × M dönüşüm sağlıyor.

Yirmi yıllık sürümler

pandoc 1.0, Eylül 2008’de MediaWiki, Texinfo, OpenDocument ve ODT yazıcıları ile sözdizimi vurgulamalı kod bloklarıyla çıktı; Haskell’de bulunmadıkları için zip-archive ve highlighting-kate kütüphanelerini MacFarlane kendisi yazdı. pandoc 1.9 (2012) Word docx çıktısını ekledi. pandoc 2.0 (2017), okuyucu ve yazıcıları formatın gerektirdiği durumlarda dosya giriş-çıkışı yapabilecek şekilde yeniden düzenledi ve doğrudan pandoc AST’si üzerinde çalışan Lua filtrelerini getirdi. pandoc 3.0 (2023) projeyi dört pakete böldü — kütüphane, Lua motoru, sunucu ve CLI — ve Figure öğesini ekledi; sonraki sürümlerde Typst (3.1.3) ve djot (3.1.12) desteği geldi, pandoc 3.9 (Şubat 2026) ise tarayıcıda çalışmak üzere WebAssembly’ye derlemeyi mümkün kıldı.

Rakamlarla

Retrospektifte güncel istatistikler yer alıyor: 51 giriş ve 76 çıkış formatı — yani 3.876 farklı dönüşüm; dört çekirdek pakette 85.684 satır Haskell kodu; pandoc için yazılmış bağımlılıklarla birlikte bu sayı yaklaşık iki katına çıkıyor; GitHub’da kapatılmış 7.346 issue ve 600’den fazla katkıda bulunan, aralarında Albert Krewinkel, Jesse Rosenthal ve Christian Despres de var. 2018’de projeye Handshake’ten 100.000 dolarlık bağış geldi; bu para beş yıl boyunca en aktif bakımcılara küçük ödemeler olarak kullanıldı.

Bundan sonrası

MacFarlane, böyle bir araca daha ne kadar ihtiyaç duyulacağını soruyor: LLM’ler belge formatları arasında çeviriyi hâlihazırda makul düzeyde yapıyor ve bir gün pandoc’tan daha güvenilir olabilirler. Şimdilik ona göre pandoc’un üç avantajı var: çok daha az enerji tüketimi, deterministik ve öngörülebilir çıktı ile daha güvenilir dönüşümler. Yazı, “pandoc, doğum günün kutlu olsun!” dileğiyle sona eriyor.

SSiTech

SiTech — AI destekli web geliştirme

Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.