 |
[6 * 9 = 42] whileTrue: [World run]
Stopařův průvodce jedním převážně neškodným programovacím jazykem
|
 |
|
Smalltalk
Co je to Smalltalk
Smalltalk je čistý objektově orientovaný jazyk/systém, interpretovaný virtuálním strojem (podobně jako Java, C#, ...) a použitelný v podobném okruhu aplikací jako Java (sítě, web, multimédia, vestavěné systémy). Na rozdíl od Javy však jde o jednoduchý dynamický jazyk (co do jednoduchosti a dynamičnosti srovnatelný s LISPem a Prologem) použitelný i pro rychlé prototypování a pro aplikace z oblasti umělé inteligence (mj. protože s programy lze manipulovat jako s daty a mohou za běhu samy sebe modifikovat).
Jelikož Smalltalk uplatňuje objektovou orientaci naprosto důsledně a bez vyjímek (na rozdíl od Javy nezná pojem "primitivní typ"), je extrémně jednoduchý.
Na rozdíl od běžného cyklu edit-compile-run-debug, typického pro souborově orientované jazyky obvykle Algolovského typu (Pascal, C, C++, Java) se software ve Smalltalku (což je jazyk Lispovského typu) tvoří inkrementálně a interaktivně za pomoci jednoduchého, leč důmyslného vývojového prostředí, které umožňuje experimentovat i s nehotovým softwarem v raných fázích vývoje (říká se tomu exploratory programming).
Jazyk a vývojové prostředí tvoří konzistentní celek, zastřešený grafickým uživatelským rozhraním.
Smalltalk není jen jazyk (na rozdíl od Javy, C#, ...). Jde o systém s vlastnostmi běžně očekávanými od operačního systému. Jazyk je jeho součástí a v tomto jazyce je celý systém vytvořen. Díky tomu je schopen sám sebe svými vlastními prostředky vyvíjet (inkrementálně, za běhu, bez restartu). Je zcela otevřený a přístupný jakýmkoliv modifikacím a rozšířením a to i ve svých nejhlubších vrstvách (plánovač procesů, kompilátor, ...). Celý systém běží na virtuálním stroji a proto se chová bitově/pixelově totožně na všech hardwarových a softwarových platformách a ke své činnosti ani nutně nepotřeboje žádný operační systém (virtuální stroj nijak nezávisí na souborovém systému a může běžet přímo na "holém železe").
Smalltalk byl vyvinut v 70-tých letech ve výzkumém středisku XEROX Parc, kde tenkrát mimo jiné probíhal vývoj hardwaru i univerzálního softwaru pro osobní počítač. Grafické uživatelské rozhraní Smalltalku později v 80-tých letech inspirovalo vývoj GUI v rámci jiných systémů (Apple Macintosh, Atari, Microsoft Windows a X-Windows v UNIXu).
Implementace Smalltalku
Nejznámější komerční implementace Smalltalku jsou VisualWorks (Cincom) a VisualAge (IBM). Jde o velmi kvalitní implementace, v průmyslu hojně používané pro jejich spolehlivost a výkonnost. Srovnatelná open-source free implementace Smalltalku je Squeak. V některých aspektech, jako je např. podpora multimédií, výrazně převyšuje schopnosti komerčních Smalltalků. Je však o něco pomalejší. Navazuje sice bezprostředně na starou klasiku, Smalltalk-80, avšak v současné době v něm probíhá bouřlivý vývoj. Porovnání Squeaku s komerčními Smalltalky dopadá prakticky stejně jako porovnání Linuxu s komerčními UNIXy - v podstatě umí totéž, i když jde trochu jinou (otevřenou) cestou.
Kromě Squeaku, WisualWorks a VisualAge existuje celá řada dalších komerčních i otevřených implmentací Smalltalku, ale tyto implementace mají, na rozdíl od výše uvedených, některá omezení - některé se hodí jen pro skriptování, některé nejsou zcela portabilní, některé se liší v jiných aspektech.
|
|