Hlavní navigace

Názor k článku
Základy programování ve Squeaku

Pavel Křivánek aura:96
29. 7. 2010 8:24 Nový

Re: Squeak

celé vlákno

Jan Vraný dělá svým studentům demo, při kterém udělá pár úprav ve třídě Point a celé prostředí se mu pod rukama pěkně přeskládá. Pak řekne studentům, že pokud mu to předvedou v Javě, dá jim zápočet i bez toho, aby se museli učit Smalltalk.
Ale vážně, existuje celá řada věcí, která se ve Smalltalku dělá podstatně snáze, než v Javě něbo C# (ty jazyky jsou samozřejmě turingovsky úplné).
Ve Smalltalku lze používat kontinuace, což je nedocenitelná věc, pokud např. píšete pořádný webový nebo simulační framework. Má bohatší a rychlejší práci s výjimkami. Má lepší práci s uzávěry.

C#:
static void Main()
{
    List<Action> actions = new List<Action>();
    for (int counter = 0; counter < 10; counter++)
    {
        actions.Add(() => Console.WriteLine(counter));
    }
    foreach (Action action in actions)
    {
        action();
    }
}
Smalltalk:
| actions |
actions := (1 to: 10) collect: [:i | [ Transcript show: i; cr.] ].
actions do: [:action | action value ].

V Javě ani C# si nepřenesete rozladěný program na jiný počítač jiné platformy a tam nedoladíte. Samotné spuštění vývojového prostředí je ve Smalltalku bleskurychlé.
Ve Squeaku ve veškerý kód pod BSD-like licencí. Aplikace ve Smalltalku mohou mít vč. virtuálního stroje třeba 2MB (nejmenší image, co jsem viděl, měla 1337 bytů). Existuje několik aplikací v Apple AppStore napsaných ve Smalltalku, ale asi žádná napsaná v Javě nebo C#.
Mnohem snáze se píší unit testy (všechny testovací frameworky jako JUnit dokonce vycházejí z původní SUnit pro Smalltalk) a vůbec zvráceností, které Smalltalk umožňuje a Java nebo C# prakticky nikoliv, je celá řada.