Lukáš Faltýnek: Další programovací jazyk: Smalltalk

Tuesday, January 31, 2006 ·

Často si říkám – čím to, že většina nadčasových počinů zůstává mnohdy bez povšimnutí. A to i přesto, že nás mohou v mnohém obohatit a výborně posloužit. Ve světě programovacích jazyků lze za takový nadčasový počin označit čistě objektový jazyk Smalltalk. Přestože v následujících řádcích nestihnu přiblížit všechny jeho rysy a možnosti, budu se vás snažit pro Smalltalk alespoň pozitivně naladit. Zájemci o hlubší poznání Smalltalku pak na konci článku naleznou vhodně zvolené odkazy, které jim pomohou k jeho dalšímu již podrobnějšímu poznání.

Proč se Smalltalk jmenuje Smalltalk, vysvětluje jeho tvůrce Alan C. Kay následovně. Za prvé vyjadřuje pojmenování snahu dosáhnout takového jazyka, v němž by práce co nejvíce připomínala nenáročný rozhovor. Za druhé je toto pojmenování vzdorující reakcí dobovému zvyku, kdy se pro jména systémů volila božská velkolepá jména jako Zeus, Odin, nebo Thor, přičemž samo o sobě tyto systémy toho moc neuměly. Pojmenování Smalltalk se zdálo být natolik neškodné, že pokud by skutečně něco hezkého udělal, mohli být uživatelé jen příjemně potěšeni.

Historicky hledejme počátky Smalltalku na počátku sedmdesátých let. Tehdy si v Palo Alto Research Center (PARC) firmy XEROX pohrávala Learning Research Group (LRG) pod vedením Alana Kaye s myšlenkou vyvinout levný a malý počítač. Jeho ovládání mělo být řešeno perem nebo dotykem prstů. Používat se pak měl jako dynamická kniha, která by mimo jiného, jak autoři uvádějí, nahradila školní učebnice. Od toho název Dynabook.

Protože Dynabook měl sloužit každému, od předškolních dětí až po dospělé, bylo potřeba najít jazyk, který by byl s minimálními znalostmi srozumitelný širokému spektru uživatelů. Z tehdy dostupných jazyků se jako nejpřijatelnější jevil funkcionální jazyk LISP, ale byl odmítnut pro nevyhovující zapouzdření dat. Velmi populární procedurální jazyky pak byly odmítnuty z důvodu vysoké složitosti, která narůstá s délkou kódu.

První implementace jazyka nazvaného Smalltalk-71 se dnešním verzím mnoho nepodobala. První „smalltalkovský“ systém, Smalltalk-72, byl vytvořen v roce 1972 Danem Ingallsem. Kódován byl v Basicu a dokázal zvládat základní aritmetické operace. Přes verze Smalltalk-74, Smalltalk-76 a Smalltalk-78 skončil Smalltalk u verze Smalltalk-80, jejíž implementace se používá dodnes. Pod termínem Smalltalk však nevnímáme pouze pouze programovací jazyk, ale i knihovnu tříd a vývojové prostředí. Ačkoliv jsou tyto tři zmiňované věci koncepčně odděleny, velmi blízce spolu souvisejí.

Jazyk Smalltalk je velmi malý a v porovnání s jinými jazyky toho moc nedělá. V základě umožňuje pouze definovat proměnné, přiřazovat proměnným objekty a zasílat objektům zprávy. Zvládnout tedy ve chvilce celý jazyk Smalltalk není žádný problém.

Základem „smalltalkovských“ systémů je knihovna tříd. Tato knihovna nabízí stovky znovupoužitelných tříd, se kterými se setkáme v každém „smalltalkovském“ programu. Tyto třídy dále poskytují základní funkcionalitu, která je u většiny jazyků vlastní přímo programovacímu jazyku.

Vývojové prostředí je implementováno užitím tříd z knihovny tříd. To znamená, že kód, kterým je vývojové prostředí napsáno, je sám součástí knihovny tříd. Protože jsou všechny zdrojové kódy knihovny tříd volně dostupné, jsou volně dostupné i zdrojové kódy vývojového prostředí. V praxi to znamená, že celé vývojové prostředí je výborným příkladem, jak je možno psát program ve Smalltalku. Dále je pak možno změnit si cokoliv, co se nám v prostředí nelíbí.

Tvorba samotného programu ve Smalltalku se oproti klasickým jazykům diametrálně liší. Zatímco v klasických jazycích začínáme budovat aplikaci na zelené louce, ve Smalltalku je od počátku součástí naší aplikace i vývojové prostředí. Nad tímto vývojovým prostředím pak požadovanou aplikaci vytváříme a v případě potřeby vývojové prostředí k obrazu vytvářené aplikace přizpůsobujeme. Na závěr, kdy máme aplikaci vytvořenou, odstraníme vše, co v aplikace nechceme. Na základě tohoto poznatku můžeme říct, že naše aplikace je celý Smalltalk.

Implementací Smalltalku je mnoho. Mezi nejznámější patří VisualWorks, VisualAge a Squeak. Poslední jmenovaná implementace Squeak je nabízena zdarma a tak ji mohu vřele doporučit k vyzkoušení. Se spuštěním pod Linuxem (Mandriva 2005 LE) jsem neměl žádný problém.

Jak je v našem seriálu zvykem, uvádíme vždy klasický příklad „Hello World“. Dnes si však nejenom „Hello World“ vypíšeme na obrazovku, ale také si ho řekneme. Dle libosti máme na výběr jestli mužským, nebo ženským hlasem. V příkladu je zvolen ženský hlas. Příklady jsou psány pro implementaci Squeak.

Ukázka programu Hello, World!: 
Transcript show: `Hello, World!`
Ukázka mluveného programu Hello, World!:
Speaker woman say: `hello world`.

Největší využití Smalltalku v současné době nalezneme jako výukového nástroje objektového programování. A to jak pro dospělé, tak i pro děti. Další využití Smalltalku pak můžeme nalézt při tvorbě firemního i běžného softwaru.

Odkazy:

Článek vyšel původně v časopisu LinuxEXPRES, některé informace nemusejí být aktuální.
Článek je uveřejněn s GNU FDL licencí (anglicky, česky).



Lukáš Faltýnek

0 comments:

Články dle data



Učitelské listy

Nabídka práce

Česká škola - portál pro ZŠ a SŠ

Česká škola poskytuje svým čtenářům diskusní prostor k vyjádření názorů na školskou problematiku. Tyto příspěvky se nemusí shodovat se stanoviskem redakce České školy a jsou uveřejňovány jako podnět k dalším diskusím.

Obsah článků nemusí vyjadřovat stanovisko redakce nebo vydavatele Albatros Media, a.s.


Všechna práva vyhrazena.

Tento server dodržuje právní předpisy
o ochraně osobních údajů.

ISSN 1213-6018




Licence Creative Commons

Obsah podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Nezasahujte do díla 3.0 Česká republika, pokud není uvedeno jinak nebo nejde-li o tiskové zprávy.



WebArchiv - archiv českého webu



Tyto webové stránky používají k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Informace o tom, jak tyto webové stránky používáte, jsou sdíleny se společností Google. Používáním těchto webových stránek souhlasíte s použitím souborů cookie.