Scratch (język programowania)
Scratch – interpretowany 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.
Autor | MIT Media Lab – Lifelong Kindergarten Group |
---|---|
Pierwsze wydanie | 2003 |
Aktualna wersja stabilna | 3.0 (2 stycznia 2019) [±] |
Platforma sprzętowa | PC |
System operacyjny | (Windows, macOS 10.13[1]) |
Rodzaj | język programowania i środowisko programistyczne |
Licencja | MIT |
Strona internetowa |
Nazwa programu
edytujNazwa języka wywodzi się z turntablizmu, czyli techniki miksowania muzyki (tworzenia tzw. skreczy) przez hip-hopowych didżejów.
O Scratchu
edytujScratch to edukacyjny język wizualny, 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.
Scratch 2.0
edytujW 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
edytujScratch 3.0 został ogłoszony w 2016 roku. Wersja beta aktualizacji 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ść
edytujScratch 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.
Cenzura w innych krajach
edytujW sierpniu 2020 r. GreatFire ogłosił, że chiński rząd zablokował dostęp do strony internetowej Scratch. W tamtym czasie szacowano, że korzystało z niej ponad trzy miliony osób w Chinach.[potrzebne źródło] Punkt sprzedaży przytoczył fakt, że Makau, Hongkong i Tajwan były wymienione jako kraje na stronie internetowej.
Przypisy
edytuj- ↑ a b Scratch Desktop. scratch.mit.edu. [dostęp 2019-01-05]. (pol.).
- ↑ Lifelong Kindergarten Group at the MIT Media Lab: Scratch Modification. Scratch Wiki. [dostęp 2019-01-10]. (ang.).
- ↑ Lifelong Kindergarten Group at the MIT Media Lab: Blocks. Scratch Wiki. (ang.).
- ↑ Using Catrobat, a Scratch-like visual programming language for smartphones, in a middle school physics course. [dostęp 2017-11-30].
- ↑ Scratch 2.0. en.scratch-wiki.info. [dostęp 2019-01-05]. (ang.).
- ↑ Damellis: Preliminary Scratch extension for talking to Arduino boards running Firmata. Scratch extension, GitHub. [dostęp 2019-01-05]. (ang.).
- ↑ Scratch 3.0. en.scratch-wiki.info. [dostęp 2019-01-05]. (ang.).
- ↑ Warto poznać nowe języki: Swift, Go i Scratch. www.dobreprogramy.pl. [dostęp 2017-11-26]. (pol.).
- ↑ Scratch to an Android app on Scratch. scratch.mit.edu. [dostęp 2017-11-26].
Linki zewnętrzne
edytuj- Scratch – strona domowa (pol. • ang.)
- Snap! – strona domowa (ang. • pol.)