Scratch (język programowania)

Ten artykuł od 2024-05 zawiera treści, przy których brakuje odnośników do źródeł.
Należy dodać przypisy do treści niemających odnośników do źródeł. Dodanie listy źródeł bibliograficznych jest problematyczne, ponieważ nie wiadomo, które treści one uźródławiają.
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.
Scratch
logo
ilustracja
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 10, macOS 10.13[1])
Rodzaj język programowania i środowisko programistyczne
Licencja MIT
Multimedia w Wikimedia Commons
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 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.

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 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ść

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.

Cenzura w innych krajach

W 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

  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

  • Scratch – strona domowa (pol. • ang.)
  • Snap! – strona domowa (ang. • pol.)
  • p
  • d
  • e
1GL
2GL/
Język drugiej generacji/
Asembler
3GL /
Język trzeciej generacji
wieloparadygmatowe
proceduralne
i strukturalne
historyczne
inne
obiektowe
funkcyjne
edukacyjne
4GL/
Język czwartej generacji/
Język dziedzinowy
Języki zapytań do baz danych
Generatory raportów / stron
Przetwarzanie danych, analiza i raportowanie
5GL/Logiczne
Ezoteryczne
Inne
  • LCCN: sh2008006648
  • GND: 7860906-9
  • NKC: ph751040
  • J9U: 987007564120605171