Pascal, potažmo Object Pascal, prohlašovat za mrtvou relikvii je trochu programátorský kolorit. Je to trochu upovídaný programovací jazyk, ale dokážu najít hodně důvodů, proč jej definitivně neodsunout na smetiště dějin a proč v něm řešit některé úlohy.
Ano, byl to druhý programovací jazyk, který jsem se nějak systematicky učil, překvapivě tím prvním byl Forth, podle seriálu od Rudolfa Pecinovského, který vycházel v Amatérském Rádiu (1984).
Není Pascal jako Pascal
Pascal podle původního návrhu určen k výuce programování a odsud pochází i jeho zdánlivá „upovídanost“; kdo viděl někdy zápis v COBOLu tak bude nesouhlasit; se striktní typovou kontrolou.
Pascal je standardizován, ale standard je poměrně starý (fakticky počítačový pravěk) a dnes se pravděpodobně nejvíce využívá podoba Object Pascalu, jak byla definována roku 1985 (překladač Mac Pascal) a zpopularizována začátkem 90. let 20. století překladači firmy Borland (po Turbo Pascal 5.5).
Když Borland ohlásil ukončení vývoje svého Pascalovského překladače, začal vývoj Free Pascalu [dále jen FP], který považuji za nejlepší překladač. FP je portován snad na všechny běžně používané kombinace platforem a operačních systémů, případně lze použít kompilaci pro jinou platformu. FP fakticky adoptoval standard jazyka definovaný Borlandem, podporuje standardní syntaxe ANSI i ISO (Standardpascal P5) a některé části syntaxe Apple Pascalu. FP sám o sobě nemá rozumné IDE, ale existuje projekt Lazarus, který je popsatelný jako „open source Delphi“.
Není bez zajímavosti, že Pascal byl portován na Apple II a propagován jako hlavní programovací jazyk pro modely Lisa a Macintosh. Pascal, jako hlavní vysokoúrovňový jazyk, skončil u Apple s přechodem na mikroprocesory PowerPC. Svou stopu má i sázecím systému TeX, nebo je v něm vyvíjen velmi populární Total Commander.
Object Pascal je…
Přehledný
Pomine-li programátor poměrně velikou „ukecanost“ jazyka, tak Pascal nutí programátora k logickému uspořádání programu i funkcí/procedur:
- Deklarace proměnných jsou na začátku, v samostatném bloku
var
. - Příkaz přiřazení je
:=
a porovnání=
. - Kolik programátorů někdy udělalo chybu (typicky v C-like jazycích), kdy v podmínkách přiřadili, místo porovnání? To Pascal nedovoluje.
Typově striktní
Pascal je kompilovaný a staticky typovaný jazyk (tuto informaci lze potkat v každé učebnici). Chybná přiřazení nepropustí překladač, který tak nutí programátora přemýšlet nad strukturou dat.
Z několika základních typů lze poskládat vlastní struktury a je to velmi úsporné pro pozdější uložení dat (ano ukládat tajemná čísla do databáze; s číselníky jen někde v programu; není korektní přístup k datovému návrhu).
Modulově orientovaný
Zdrojové kódy lze rozdělit do modulů (unit
), které jsou ve zvláštních souborech. To je dnes běžné, ale pro sestavení projektu není potřeba používat systém jako je make
.
Jednotky sdružují v jednom souboru hlavičky (interface
) i vlastní kódy procedur/funkcí (implementation
). Osobně mi systém „vše v jednom souboru“ vyhovuje.
Objektový
Po vydání Turbo Pascal 5.5 se dostal Object Pascal do širšího povědomí programátorů. Není tak striktně objektový, jako Ruby, nebo Smalltalk, přecijen byla podpora OOP dodána až dodatečně.
V unit
ě se objekt definuje jako komplexní typ (type TName = object
) s nastavením soukromých a veřejných metod (funkce/procedury) i vlastností (proměnné).
Je multiplatformní
Delphi běží jen v operačním systému Microsoft Windows (možná by se mi povedlo je spustit přes WINE) a prý umí kompilovat pro GNU/Linux, nebo MacOS X. Nedisponuji jimi, poslední Delphi, které jsem měl koupené, byla velmi povedená verze 6.
Vedle Delphi je svobodný projekt Free Pascal, který sám nemá RAD, a velmi povedený Lazarus, jenž nejen podporuje kompilaci pro jiné platformy, ale sám na různách platformách běží. Ano psát v Lazarusu na slabém počítači, například Raspberry Pi, není moc pohodlné, ale pro odladění problémových míst a finální kompilaci to stačí. Seznam podporovaných architektur a operačních systémů je opravdu solidní.
Generiky
Od roku 2006 podporuje FP i Generiky (parametrizované typy). Až do jara 2017 byla jejich podpora spíše experimentální, to změnilo vydání FGL.
Zajímavost
Svět jazyka Pascal je trochu pestřejší, než někteří připouští. Existuje i Smart Mobile Studio, v němž lze vytvářet aplikace s výstupem do HTML5 a JavaScriptu.
Závěr
Již delší dobu mám jako hlavní jazyky Python a Go, ale oba mi ne vždy vyhovují k zadání problému. Object Pascal, přesněji napsáno Free Pascal a Lazarus, mi skvěle poslouží vždy, když potřebuji udělat rychle malou aplikaci, chci solidní nástroj pro tvorbu GUI a příjemným bonusem je možnost kompilace pro několik platforem.
Vcelku zajímavý výukový materiál pro Pascal (anglicky) pochází od Michalise Kamburelise, autora Castle Game Engine. České výukové materiály s balíkem užitečných příkladů najdete na wikistránce TrSek.
Občas si říkám, že bych měl už Object Pascal vyměnit za moderní Rust, ale ve výsledku vítězí nedostatek času na „rozšiřování obzorů“ a zatím úplně nevěřím Mozille v otázce dlouhodobé podpory (zkušennost s Firefox OS pro mě bude ještě dlouho odstrašující).
Napsat komentář