Tcl (vyslovuje se "tickle" nebo tee cee ell /ˈtiː siː ɛl/) neboli Tool Command Language je vysokoúrovňový programovací jazyk, který lze použít pro mnoho věcí. Tcl byl vytvoˇren tak, aby se snadno používal, ale umˇel mnoho vˇecí. Jazyk Tcl je založen na příkazech, které počítači říkají, co má udělat nebo jak uložit proměnnou. Tcl umí objektový, imperativní, funkcionální nebo procedurální styl.

Tcl se v jazyce C často používá k rychlému vytváření prototypů. Existují interprety pro mnoho operačních systémů. To znamená, že mnoho různých druhů počítačů je schopno spustit kód Tcl. Tcl je velmi malý jazyk, což znamená, že je vhodný pro použití jako vestavné systémy.

Tcl se někdy kombinuje s Tk. V takovém případě se nazývá Tcl/Tk. Tcl/Tk je součástí běžné instalace Pythonu.

Co Tcl přináší a kde se hodí

Tcl je navržen jako jednoduchý, lehce rozšiřitelný skriptovací jazyk pro řízení aplikací a automatizaci. Hlavní přednosti:

  • Jednoduchá syntax – většina příkazů je řetězec slov; výsledkem je rychlé psaní skriptů.
  • Silná práce s řetězci a seznamy – v Tcl jsou data často reprezentovaná jako řetězce; pro seznamy a slovníky existují specializované příkazy.
  • Vysoká přenositelnost – interprety existují pro řadu platforem, proto lze skripty spouštět téměř kdekoli.
  • Dobrá integrace s C – Tcl lze snadno vložit do C aplikace a rozšířit ji vlastními příkazy.
  • Rozšiřitelnost – bohaté knihovny jako Tk, Expect, tcllib a další.

Základní rysy a syntaktické poznámky

Několik klíčových rysů Tcl syntaxe:

  • Příkazy se skládají ze slov oddělených mezerami, první slovo je jméno příkazu, ostatní jsou argumenty.
  • Substituce proměnných pomocí $jmeno, substituce výsledku příkazu pomocí [příkaz].
  • Seskupení do bloků pomocí složených závorek { } zabrání substituci a umožní předat text doslova.
  • Definice procedury: proc jmeno {parametry} {telo}.
  • Od verze 8.6 existuje vestavěné objektové API TclOO; dříve se používala rozšíření jako Itcl nebo incr Tcl.
# jednoduchý příklad v Tcl set jmeno "Svět" proc pozdrav {jmeno} {     puts "Ahoj, $jmeno!" } pozdrav $jmeno 

Typické použití Tcl

  • skriptování a automatizace úloh (build systémy, testování),
  • vkládání (embedded) jako skriptovací rozhraní do aplikací psaných v C/C++,
  • automatizace interaktivních programů pomocí Expect (např. automatické přihlašování, testing CLI aplikací),
  • tvorba GUI aplikací přes Tk (Tcl/Tk) – jednoduché desktopové nástroje, prototypy rozhraní, nástroje pro výuku),
  • rychlé prototypování a skripty pro správu systémů.

Rozšíření a nástroje

Ekosystém Tcl obsahuje několik užitečných balíčků a nástrojů:

  • Tk – nástroj pro tvorbu grafických rozhraní (GUI) často používaný spolu s Tcl, ale dostupný i z jiných jazyků (např. přes Pythonu modul Tkinter).
  • Expect – rozšíření pro skriptování interaktivních programů a automatizované ověřování chování CLI aplikací.
  • tcllib – knihovna užitečných modulů (pracuje s XML, daty, kryptografií atd.).
  • tclsh a wish – běžné interprety (tclsh pro čisté Tcl skripty, wish pro Tcl/Tk aplikace s GUI).

Výhody a nevýhody

Výhody:

  • malá stopa a jednoduchost; snadná integrace do větších aplikací,
  • rychlé prototypování, snadné zpracování textu a seznamů,
  • stabilní a konzervativní vývoj s dlouhou historií a komunitou.

Nevýhody:

  • pro některé vývojáře neintuitivní „vše je řetězec“ model,
  • menší popularita v porovnání s jazyky jako Python nebo JavaScript, což může znamenat méně moderních knihoven a zdrojů,
  • některé starší styly zápisu mohou vést k méně přehlednému kódu, pokud se nedodržují konvence.

Kde začít a další kroky

Pro rychlé vyzkoušení stačí nainstalovat tclsh (nebo balík Tcl/Tk) a spustit interaktivní shell. Dále stojí za to prohlédnout oficiální dokumentaci a tutoriály, vyzkoušet tclsh a wish, a pro GUI vyzkoušet základní widgety v Tk. Pro automatizaci interaktivních aplikací hledejte materiály o Expect.

Celkově je Tcl užitečný nástroj všude tam, kde chcete malý, rozšiřitelný a přenosný skriptovací jazyk, který se snadno vměstná do větších aplikací nebo běží na omezených systémech.