View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

Smalltalk

Co je to Smalltalk

Smalltalk je čistý objektově orientovaný jazyk a 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 (např. na rozdíl od Javy nezná pojem "primitivní typ"), je extrémně jednoduchý a vyhovuje kromě drsných pragmatiků i idealistům, matematikům a filosofům.
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 typicky smalltalkovské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 [Ralf Johnson: Smalltalk is differenet].
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).

Jaké jsou konkrétní 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. Zajímavé jsou síťové aplikace - například tuto stránku vám poskytl web server, běžící ve Squeaku (více informací).
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.
http://www.smalltalk.org/versions

Jak spustit Squeak Smalltalk v počítačových učebnách FIT

Přebootněte do Linuxu, spustte X (startx) a v xtermu zadejte squeak. Při prvním spuštění se vám squeak nainstaluje do ~/.squeak (něco kolem 15M). Ve Squeaku pak doporučuji ihned provést Menu(1. tl. myši na ploše)->Appearance->Fullscreen on. Více informací o instalaci Squeaku.

Jak se Smalltalk naučit

K čemu je znalost Smalltalku dobrá

Je to výborná platforma pro studentské projekty (matematika, grafika, multimédia, paralelní a distribuované programování, inteligentní systémy, simulace), výzkumné projekty (na FIT VUT hlavně v Ústavu inteligentních systémů, ve skupině Modelování a simulace systémů) a komerční projekty (extrémně liberální licence Squeaku umožňuje tento free Smalltalk použít prakticky libovolným způsobem).
Ve většině firem, které vyvíjejí software ve Smalltalku, najdete v současné době s větší pravděpodobností komerční smalltalky VisualWorks nebo VisualAge (např. firma IBM zaměstnávala v polovině 90-tých let přes 20 tisíc Smalltalkovských programátorů; současné údaje nejsou k dispozici), případně multiuživatelský perzistentní smalltalk (aplikační server) GemStone. Některé firmy (http://www.bluefish.se/bluefish/technologyeng.html, http://www.vanak.cz/) se však nebojí používat ani Squeak. Na platformě .NET lze Smalltalk provozovat díky S# (SmallScript) nebo #Smalltalk.
Z hlediska okamžitého uplatnění v praxi (která bývá obvykle ve větším či menším rozporu se zdravými ideály) je nezanedbatelnou výhodou smalltalkera hluboké pochopení podstaty objektové orientace, což se výrazně uplatní při návrhu jakéhokoliv softwaru a jeho implementaci ve všech jazycích a to i neobjektových!

Kde se programuje ve Smalltalku


Odkazy

http://www.jvuletich.org/issues/Issue0007.htm - Co je Smalltalk?
http://www.onlamp.com/pub/a/onlamp/2006/09/21/learning_smalltalk.html - Squeak Tutorial
http://www.root.cz/serialy/squeak-navrat-do-budoucnosti/- Squeak: Návrat do budoucnosti (autor: Pavel Křivánek, FIT VUT)
http://www.root.cz/clanky/staticka-dynamicka-typova-kontrola/- Statická vs. dynamická typová kontrola (autor: Pavel Křivánek, FIT VUT)
http://www.comtalk.net- česká odnož Squeak Swiki
news://news.fit.vutbr.cz/vutbr.fit.courses.ist- diskusní fórum pro všechny smalltalekry/squeakery na FITu
http://pandora.idnes.cz/conference/squeak/- veřejné diskusní fórum pro české/slovenské smalltalkery
http://www.whysmalltalk.com/articles/panici/considered.htm- vynikající rychlý úvod do Smalltalku
http://www.eli.sdsu.edu/courses/spring02/cs635/readingSmalltalk.pdf- Rychlý úvod do Smalltalu pro céčkaře a javisty
http://www.exept.de/sites/exept/onlineDoc/english/programming/stForLispers.html- Smalltalk for Lispers
http://www.angelfire.com/tx4/cus/notes/index.html- Language notes
http://www.fit.vutbr.cz/~janousek/smalltalk/ORIGindex.html- původní verze této stránky, spousta odkazů, dodatky
http://minnow.cc.gatech.edu/squeak a http://www.squeak.org- zde najdete vše o Squeaku
ftp://st.cs.uiuc.edu/pub/Smalltalk/Squeak/3.6/- download pro linux i windoze
http://www-sor.inria.fr/~piumarta/squeak/- Unix Squeak
http://sourceforge.net/projects/squeak- Windoze VM
http://www.otaflegr.com/preklady/PomstaNerdu.html,http://www.paulgraham.com- o LISPu, což je jeden z kořenů Smalltalku!
Dynamické jazyky
Smalltalk Computers

Vladimír Janoušek



ComSwiki: powered by Squeak




Squeak.org