Scratch (język programowania)

Scratch
AutorMIT Media LabLifelong Kindergarten Group
Pierwsze wydanie2003
Aktualna wersja stabilna3.0
(2 stycznia 2019) [±]
Platforma sprzętowaPC
System operacyjny(Windows 10, macOS 10.13[1])
Rodzajjęzyk programowania i środowisko programistyczne
LicencjaMIT
Strona internetowa

Scratchinterpretowany wizualny język programowania. Został zaprojektowany przez Mitchela Resnicka (m.in. pomysłodawcę serii zabawek Lego Mindstorms i twórcę języka StarLogo), jest rozwijany przez zespół pracujący w Lifelong Kindergarten Group w MIT Media Lab.

Nazwa programu

Nazwa języka wywodzi się z turntablizmu, czyli techniki miksowania muzyki (tworzenia tzw. skreczy) przez hip-hopowych didżejów.

O Scratchu

Przykładowe okno z projektem w wersji 2.0
Efekt działania programu: figura Lissajous

Scratch to edukacyjny język obiektowy, stworzony jako środek do nauczania dzieci i młodzieży (od 8 lat wzwyż) podstaw programowania komputerów oraz środowisko programistyczne służące do tworzenia i uruchamiania programów w tym języku. Scratch umożliwia tworzenie interaktywnych historyjek, animacji, gier, muzyki. Programowanie odbywa się w sposób wizualny – elementy języka mają kształt puzzli, a poprzez przeciąganie mogą być układane w określonym porządku. W ten sposób tworzy się kod przypisany określonemu obiektowi. Obiekty mogą reagować na zdarzenia zewnętrzne. Wygląd postaci przypisanych do obiektów można wybierać z zasobnika, tworzyć lub importować z zewnątrz.

Scratch to także społecznościowy serwis, pozwalający na umieszczanie stworzonych w tym języku programów, dyskutowanie o nich oraz oglądanie i „remiksowanie” (edytowanie) prac stworzonych przez innych użytkowników tego serwisu.

Na podstawie otwartego kodu źródłowego wersji 1.4 zbudowano pochodne Scratch[2], wprowadzające zwykle dodatkowe bloki[3] lub zmiany w interfejsie użytkownika. Niektóre pochodne, jak np. Snap!, wprowadzają bardziej znaczące zmiany do podstaw języka: funkcje pierwszoklasowe, pierwszoklasowe listy (oraz listy list), czy w pełni obiektowy paradygmat programowania umożliwiający definiowanie klas i stosowanie dziedziczenia.

Pochodna języka Scratch pod nazwą Catrobat pozwala na programowanie wizualne za pomocą urządzenia z systemem Android. Aplikacja Pocket Code umożliwia tworzenie, pobieranie i publikowanie kodu Catrobat[4]. Catrobat i Pocket Code są programami wydanymi na licencji open source.

Kod programu

Scratch 2.0

W wersji 2.0 oprócz udoskonaleń dodano możliwość tworzenia procedur zwanych blokami (procedury jednak nie są typem pierwszoklasowym). Dostępna jest wersja działająca w przeglądarce internetowej w połączeniu z MIT i wersja działająca w trybie offline (Scratch 2 Offline Editor, wersja beta)[5]. Scratch 2.0 obsługuje zestaw operacji na plikach zdefiniowany w Extension Protocol, eksperymentalnym rozszerzeniu pozwalającym na komunikację Scratch’a z innymi programami. Rozszerzenie to pozwala także na komunikację z urządzeniami, np. Lego Mindstorms lub Arduino[6].

Scratch 3.0

Scratch 3.0 został ogłoszony w 2016 roku. Wersja beta dodatku Scratch 3.0 została wydana 1 sierpnia 2018 r., zastępując pre-beta „preview” i jest dostępna do użytku w większości przeglądarek, z wyjątkiem Internet Explorer. Pierwsza oficjalna wersja została wydana 2 stycznia 2019 r.[7] Nazwa Scratch Offline w wersji 3.0 została zmieniona na Scratch Desktop[1].

Popularność

Scratch od 2017 jest jednym z popularnych języków programowania (wg rankingu TIOBE z 2017 roku pozycja 20)[8]. Istnieje konwerter online pozwalający na tworzenie aplikacji na system operacyjny Android[9]. W oparciu o Scratcha stworzono część scenariuszy ogólnopolskiego programu edukacyjnego #SuperKoderzy, prowadzonego przez Fundację Orange w szkołach podstawowych.

Przypisy

  1. a b Scratch Desktop. scratch.mit.edu. [dostęp 2019-01-05]. (pol.).
  2. Lifelong Kindergarten Group at the MIT Media Lab: Scratch Modification. Scratch Wiki. [dostęp 2019-01-10]. (ang.).
  3. Lifelong Kindergarten Group at the MIT Media Lab: Blocks. Scratch Wiki. (ang.).
  4. Using Catrobat, a Scratch-like visual programming language for smartphones, in a middle school physics course. [dostęp 2017-11-30].
  5. Scratch 2.0. en.scratch-wiki.info. [dostęp 2019-01-05]. (ang.).
  6. Damellis: Preliminary Scratch extension for talking to Arduino boards running Firmata. Scratch extension, GitHub. [dostęp 2019-01-05]. (ang.).
  7. Scratch 3.0. en.scratch-wiki.info. [dostęp 2019-01-05]. (ang.).
  8. Warto poznać nowe języki: Swift, Go i Scratch. www.dobreprogramy.pl. [dostęp 2017-11-26]. (pol.).
  9. Scratch to an Android app on Scratch. scratch.mit.edu. [dostęp 2017-11-26].

Linki zewnętrzne

Media użyte na tej stronie

Scratch-Lissajous-nevit-02.gif
Autor: Praca własna, Licencja: CC BY-SA 2.0

Lissajous curve

Scratch-Lissajous-nevit-01.gif
Autor: Praca własna, Licencja: CC BY-SA 2.0

Lissajous curve

Scratch2 0 Entwicklung Beispiel.png
Autor: selbst (de:User:Mtwoll, Licencja: Copyrighted free use
Scratch 2.0 Entwicklungsumgebung