Wizualny język programowania obiektowego Scratch to zupełnie darmowe środowisko. Zostało opracowane przez naukowców ze słynnego Media Lab, działającego na renomowanej, amerykańskiej uczelni MIT. Pomysłodawcą projektu jest prof. Mitchel Resnick, popularyzator informatyki, który stworzył m.in. programowalną kostkę będącą sercem zestawu klocków Lego Mindstorms, przeznaczonych to budowania robotów.
Programy układane z klocków
Program w Scratchu buduje się z wirtualnych klocków. Podobnie jak w przypadku lego informacja o możliwym połączeniu elementów jest zawarta w ich kształtach. Na przykład moduły, które uruchamiają skrypt (zdarzenia związane z kliknięciem myszą bądź naciśnięciem klawisza), dają możliwość podłączenia kolejnego elementu tylko poniżej. Z kolei takie elementy programu, jak pętle czy instrukcje warunkowe, mają kształt klamry, który wskazuje na konieczność umieszczenia instrukcji wewnątrz. W wizualny sposób są także wyróżnione pola, które zwracają wartości. Jeśli mają kształt owalny, należy wpisać do nich liczbę. Jeśli sześciokątny, wartość logiczną (prawda/fałsz). Dzięki takiej formie można łatwo stworzyć działający program i uniknąć wielu błędów, które wkradają się w kod w czasie nauki składni tekstowej.
Nacisk, jaki położyli twórcy Scratcha na łatwość układania programu, nie oznacza, że w tym języku nie ma zaawansowanych funkcji. Można przechwytywać zdarzenia, co pozwala na uzyskanie interakcji, a także definiować zmienne do przechowywania informacji wewnątrz programu. Dane można przechowywać także w postaci list, ale tablice nie są obsługiwane.
Środowisko do tworzenia programów w Scratchu jest bardzo interaktywne. Aby przetestować element kodu, żeby zobaczyć, jak się zachowa obiekt, do którego jest przypisany, wystarczy go kliknąć. W podobny sposób można aktywować fragment albo cały skrypt. Nie trzeba nawet opuszczać okna edytora, co ułatwia i przyspiesza eliminowanie błędów.
Zachęta do eksperymentów
Przestrzeń robocza, w której powstaje program, jest zaprojektowana tak, by używać jej jak pulpitu. Można przeciągnąć elementy, bez podłączania ich do programu, tworzyć i testować fragmenty w celu późniejszego połączenia ich w większą całość. Dzięki temu, w przeciwieństwie do tradycyjnych języków programowania, nie jest potrzebna faza planowania i projektowania. Zamiast tego można się bawić i w ten sposób próbować stworzyć coś nowego.
Projektanci Scratcha zadbali o bardzo dużą liczbę funkcji multimedialnych, które łatwo można zintegrować z tworzonymi projektami. Dostępne są elementy związane z odtwarzaniem dźwięków, w tym nagrań muzyki i głosu z plików dźwiękowych, oraz z wyświetlaniem i modyfikacją obrazów. Duszki, jak w nomenklaturze Scratcha są nazywane obiekty w programie, można ubierać w skórki projektowane we wbudowanym edytorze, wyposażonym w dużą bazę clipartów. Oczywiście można także importować obrazki i zdjęcia z własnej kolekcji.