უკან დაბრუნება
SiTech Professional Insights
პანდოკის ოცი წელი: დოკუმენტების გადამყვანი, რომელიც ჰასკელზე დაიწერა
SiTech Team2 წთ. საკითხავი

პანდოკის ოცი წელი: დოკუმენტების გადამყვანი, რომელიც ჰასკელზე დაიწერა

ჯონ მაკფარლეინი პანდოკის პირველი გამოცემიდან ოცი წლისთავს აღნიშნავს: 51 შემავალი და 76 გამომავალი ფორმატი, 3876 შესაძლო კონვერტაცია და 600-ზე მეტი კონტრიბუტორი.

პანდოკის ავტორმა ჯონ მაკფარლეინმა გამოაქვეყნა რეტროსპექტივა, რომელიც დოკუმენტების გადამყვანის პირველი გამოცემიდან ოცი წლისთავს ეძღვნება. პანდოკი 0.1 მან 2006 წლის 3 აგვისტოს ატვირთა საკუთარ ვებგვერდზე და GPL ლიცენზიით გამოაქვეყნა. პირველი ვერსია დაახლოებით 3000 სტრიქონი Haskell კოდი იყო, დამოკიდებულებების გარეშე — მხოლოდ GHC-ის სტანდარტული ბიბლიოთეკა — და Markdown-, reStructuredText-, HTML- და LaTeX-დოკუმენტებს ერთმანეთში, აგრეთვე RTF-სა და S5-ში გადაჰქონდა. ორასზე მეტი გამოცემის შემდეგ პროექტი Haskell-ზე დაწერილ ყველაზე პოპულარულ პროგრამად იქცა, 50-ზე მეტ ფორმატს უჭერს მხარს და მილიონობით კომპიუტერზეა დაყენებული.

რატომ Haskell და რატომ AST

მაკფარლეინის თქმით, არჩევანი პირიქით მოხდა, ვიდრე ხალხი ფიქრობს: ჯერ Haskell-ის გამოყენება გადაწყვიტა, შემდეგ კი — დოკუმენტების გადამყვანის დაწერა. მეგობრის ბლოგით დაინტერესებულმა წაიკითხა „A Gentle Introduction to Haskell“ და ენის შესასწავლად პრაქტიკული პროექტი მოძებნა. იმ დროის Markdown-იმპლემენტაციები Perl-ზე, Python-ზე, Ruby-სა და PHP-ზე დაწერილი, რეგულარულ გამოსახულებებზე დაფუძნებული გარდამქმნელები იყო; პანდოკმა სხვა გზა აირჩია — Markdown აბსტრაქტული სინტაქსის ხედ (AST) აალაგა და შემდეგ ამ ხეს სხვა ფორმატებში ასახავდა. ეს უფრო საიმედო და გაფართოებადი არქიტექტურაა, რადგან N წამკითხველი და M ჩამწერი N × M კონვერტაციას იძლევა.

ორი ათწლეულის გამოცემები

პანდოკი 1.0 2008 წლის სექტემბერში გამოვიდა MediaWiki-ს, Texinfo-ს, OpenDocument-ისა და ODT-ის ჩამწერებით და სინტაქსის ხაზგასმის მქონე კოდის ბლოკებით; Haskell-ში მაშინ ამ ფუნქციებისთვის ბიბლიოთეკები არ არსებობდა, ამიტომ ავტორმა თავად დაწერა zip-archive და highlighting-kate. პანდოკ 1.9-მა (2012) Word-ის docx ფორმატში გამოტანა დაამატა. პანდოკ 2.0-მა (2017) წამკითხველები და ჩამწერები ისე გადააკეთა, რომ საჭიროებისას ფაილებთან მუშაობა შეძლონ, და Lua-ფილტრები შემოიტანა, რომლებიც პირდაპირ პანდოკის AST-ზე მუშაობენ. პანდოკ 3.0-მა (2023) პროექტი ოთხ პაკეტად გაყო — ბიბლიოთეკა, Lua-ძრავი, სერვერი და CLI — და Figure ელემენტი დაამატა; მოგვიანებით დაემატა Typst-ის (3.1.3) და djot-ის (3.1.12) მხარდაჭერა, ხოლო პანდოკ 3.9-მა (2026 წლის თებერვალი) WebAssembly-ზე კომპილაცია და ბრაუზერში გაშვება შესაძლებელი გახადა.

ციფრებით

რეტროსპექტივაში მოცემულია მიმდინარე სტატისტიკა: 51 შემავალი და 76 გამომავალი ფორმატი, ანუ 3876 სხვადასხვა კონვერტაცია; ოთხ ძირითად პაკეტში 85 684 სტრიქონი Haskell კოდი — პანდოკისთვის შექმნილ დამოკიდებულებებთან ერთად დაახლოებით ორჯერ მეტი; GitHub-ზე დახურული 7346 issue; 600-ზე მეტი კონტრიბუტორი, მათ შორის ალბერტ კრევინკელი, ჯესი როზენტალი და კრისტიან დეპრე. 2018 წელს პროექტმა Handshake-ისგან 100 000 დოლარის შემოწირულობა მიიღო, რომელიც ხუთი წლის განმავლობაში ყველაზე აქტიური მენტენერებისთვის მცირე ანაზღაურებაზე დაიხარჯა.

რა ელის პანდოკს

ავტორი კითხვას სვამს, კიდევ რამდენ ხანს იქნება ასეთი ხელსაწყო საჭირო: LLM-ები დოკუმენტის ფორმატებს შორის თარგმნას უკვე საკმაოდ კარგად ახერხებენ და შესაძლოა ერთ დღეს პანდოკზე საიმედონიც გახდნენ. ჯერჯერობით, მისი აზრით, პანდოკს სამი უპირატესობა აქვს: გაცილებით ნაკლებ ენერგიას მოიხმარს, მისი შედეგი დეტერმინისტული და წინასწარ ცნობადია, კონვერტაციები კი უფრო საიმედოა. მაკფარლეინი პროექტის გაუმჯობესებას მაინც აგრძელებს და ტექსტს „დაბადების დღეს გილოცავ, პანდოკო!“-თი ამთავრებს.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.