Scratch (язык программирования)

Материал из wikixw
Перейти к навигации Перейти к поиску

Эта статья о языке программирования. Для других целей см. Scratch (disambiguation).

Scratch - высокоуровневый блочный визуальный язык программирования и веб-сайт, ориентированный в первую очередь на детей как образовательный инструмент для программирования, с целевой аудиторией от 8 до 16 лет. Пользователи сайта, называемые Scratchers, могут создавать проекты на веб-сайте, используя блочный интерфейс. Проекты могут быть экспортированы в HTML5, JavaScript, приложения для Android и EXE-файлы с помощью внешних инструментов. Сервис разработан MIT Media Lab, переведен на более чем 70 языков и используется в большинстве стран мира. Scratch преподается и используется во внешкольных центрах, школах и колледжах, а также в других общественных учреждениях знаний. По состоянию на 8 мая 2022 года статистика сообщества на официальном сайте языка показывает более 104 миллионов проектов, разделяемых более чем 90 миллионами пользователей, более 686 миллионов когда-либо созданных проектов (включая неразделенные проекты) и более 100 миллионов ежемесячных посещений веб-сайтов.[7]

Scratch получил свое название от техники, используемой диск-жокеями под названием "скретчинг", когда виниловые пластинки скрепляются вместе и манипулируются на проигрывателе для создания различных звуковых эффектов и музыки. Как и scratching, веб-сайт позволяет пользователям творчески смешивать различные медиа (включая графику, звук и другие программы), создавая и "ремикшируя" проекты, такие как видеоигры, анимации и симуляции.

Программа для изменения фона и говорения персонажа при нажатии

Scratch 3.0[править]

Пользовательский интерфейс[править]

Интерфейс Scratch разделен на три основных раздела: область сцены, палитра блоков и область кодирования для размещения и упорядочения блоков в скрипты, которые можно запустить, нажав зеленый флаг или нажав на сам код. Пользователи также могут создавать свои собственные блоки кода, и они будут отображаться в разделе "Мои блоки".

В области stage отображаются результаты (например, анимация, черепашья графика, небольшого или нормального размера, также доступна полноэкранная опция), а в нижней области отображаются миниатюры всех спрайтов. Сцена использует координаты x и y, центром сцены является 0,0

При выделении спрайта в нижней части промежуточной области к нему можно применить блоки команд, перетащив их из палитры блоков в область кодирования. Вкладка Костюмы позволяет пользователям изменять внешний вид спрайта с помощью векторного и растрового редактора для создания различных эффектов, включая анимацию. Вкладка Sounds позволяет прикреплять звуки и музыку к спрайту.

При создании спрайтов и фонов пользователи могут нарисовать свой собственный спрайт вручную, выбрать спрайт из библиотеки или загрузить изображение.

В таблице ниже приведены категории программных блоков:

Категория Примечания Категория Примечания
Движение Движения спрайтов, такие как углы и положение Зондирование Спрайты могут взаимодействовать с окружающей средой
Выглядит Управляет визуальными эффектами спрайта Операторы Математические операторы, сравнения
Звук Воспроизведение аудиофайлов и эффектов Переменные Переменная и списки использования и назначения
Мероприятия Обработчики событий Мои блоки Некоторые функции, созданные пользователем, определяются другими блоками при определении скриптов.
Управление Условные обозначения и циклы и т. Д. Расширения Объяснено ниже

Автономное редактирование[править]

Автономный "редактор рабочего стола" для Scratch 3.0 доступен для Microsoft Windows 10 в Microsoft Store и Apple macOS 10.13; это позволяет создавать и воспроизводить программы Scratch в автономном режиме. Автономный редактор также можно загрузить в предыдущих версиях, таких как Scratch 2.0 и Scratch 1.4.

Расширения[править]

В Scratch расширения добавляют дополнительные блоки и функции, которые можно использовать в проектах. В Scratch 2.0 и 3.0 все расширения были аппаратными. В Scratch 3.0 были добавлены программные расширения, такие как text-to-speech voices, а также некоторые новые аппаратные расширения, такие как micro:bit. Расширения перечислены ниже.

  • Музыка
  • Ручка
  • Видео зондирование
  • Преобразование текста в речь
  • Перевести
  • BBC Micro:бит
  • LEGO Mindstorms EV3
  • LEGO WeDo 2.0
  • Макей Макей
  • LEGO SPIKE Prime
  • LEGO BOOST
  • Go Direct Force & Acceleration

Физический[править]

  • Lego Mindstorms EV3 – управление двигателями и получение сенсорных данных от Lego Mindstorms EV3
  • Makey Makey – используйте Makey Makey для управления проектами
  • Lego Education WeDo 2.0 – управление двигателями и получение данных датчиков от Lego WeDo
  • Lego Education SPIKE Prime — основной язык программирования для Lego SPIKE Prime, включающий управление двигателем и прием данных датчиков
  • BBC micro:bit – использование BBC micro:bit для управления проектами
  • Lego BOOST – воплощение роботизированных творений в жизнь
  • Go Direct Force & Acceleration – Sense pull, push, motion, and spin

Digital[править]

Многие цифровые расширения в Scratch 3.0 были обычными категориями блоков, которые были перенесены в раздел расширений, чтобы уменьшить беспорядок. К ним относятся:

  • Музыка – играть на цифровых инструментах (барабаны, трубы, скрипки, пианино и многое другое)
  • Ручка – Рисуйте на сцене различными толщинами и цветами
  • Video Sensing – обнаружение движения с помощью камеры

Новые цифровые расширения также были добавлены в сотрудничестве с коммерческими компаниями. К ним относятся:

  • Text to Speech – преобразует слова в тексте в голосовой вывод (различные голоса, поставляемые Amazon)
  • Translate – использует Google Translate для перевода текста с одного языка на множество других языков, включая арабский, китайский, голландский, английский, французский, греческий и японский

Пользователи также могут создавать свои собственные расширения для Scratch 3.0, используя JavaScript.

      • Кодовая база***

Scratch 3.0 - это совершенно новая кодовая база на основе JavaScript, состоящая из нескольких компонентов, таких как "Scratch-GUI", теперь основанная на библиотеке Blockly, "Scratch-VM", которая интерпретирует код, и "Scratch-Render".движок рендеринга. Скретч-блоки создаются с помощью Blockly.

Противоречие

Некоторые пользователи покинули Scratch, так как Scratch 3.0 сломал их проекты. Многие пользователи жаловались, что новый интерфейс был детским.

Статья, опубликованная в 2019 году Нью-Йоркским университетом, утверждает и иллюстрирует для кодирования музыки с помощью Scratch, "что музыкальные и звуковые блоки, реализованные в настоящее время в Scratch, могут ограничивать и расстраивать значимое музицирование для детей, основной пользовательской базы Scratch".

Сообщество пользователей[править]

Scratch используется в самых разных местах: школах, музеях, библиотеках, общественных центрах и домах. Scratch предназначен в основном для пользователей в возрасте 8-16 лет, но он используется всеми возрастами и имеет значительную базу пользователей для взрослых по состоянию на 2009 год.] Этот широкий охват создал множество окружающих сообществ, как физических, так и цифровых. В апреле 2020 года рейтинг языков программирования Tiobe включил Scratch в топ-20. По данным Tiobe, существует 50 миллионов проектов, написанных на Scratch, и каждый месяц добавляется миллион новых проектов.

Образовательные пользователи[править]

Scratch используется в качестве вводного языка, потому что создание интересных программ относительно легко, и полученные навыки могут быть применены к другим языкам программирования, таким как Python и Java.

Scratch предназначен не только для создания игр. С помощью предоставленных визуальных эффектов программисты могут создавать анимацию, текст, истории, музыку и многое другое. Уже существует множество программ, которые студенты могут использовать для изучения тем математики, истории и даже фотографии. Scratch позволяет учителям создавать концептуальные и визуальные уроки и задания научной лаборатории с анимацией, которая помогает визуализировать сложные концепции. В рамках социальных наук преподаватели могут создавать викторины, игры и учебные пособия с интерактивными элементами. Использование Scratch позволяет молодым людям понять логику программирования и научиться творчески строить и сотрудничать.

Scratch преподается более чем в 800 школах и 70 колледжах организации DAV в Индии и по всему миру.

В высшем образовании Scratch используется в первую неделю вводного курса компьютерных наук Гарвардского университета CS50.

Интернет-сообщество[править]

"Jumper", пример игры, созданной с помощью Scratch 2.0

Пользователей Scratch называют "скретчерами". Scratchers имеют возможность делиться своими проектами и получать обратную связь. Проекты могут быть загружены непосредственно из среды разработки на веб-сайт Scratch, и любой член сообщества может загрузить полный исходный код для изучения или ремиксов в новые проекты. Scratchers также могут создавать студии проектов, комментировать, любить и "любить" чужие проекты, следоватьдругие участники могут видеть свои проекты и деятельность, а также делиться идеями. Проекты варьируются от игр и анимации до практических инструментов. Кроме того, чтобы стимулировать создание и обмен между пользователями, веб-сайт часто устанавливает задачи "Scratch Design Studio".

Команда MIT Scratch работает над тем, чтобы это сообщество поддерживало дружественную и уважительную среду для всех людей.

Педагоги имеют собственное интернет-сообщество ScratchEd, разработанное и поддерживаемое Гарвардской высшей школой образования. В этом сообществе преподаватели Scratch делятся историями, обмениваются ресурсами и задают вопросы.

Scratch Wiki[править]

Scratch Wiki - это ресурс поддержки Scratch и его веб-сайта, истории и явлений, связанных с ним. Несмотря на поддержку команды Scratch (разработчики Scratch), она в основном написана Scratchers (пользователями Scratch) для получения информации о программе и веб-сайте.

Первоапрельский день дураков[править]

Каждый год в День дураков, начиная с 2014 года, вики показывает шутливые версии многих страниц вместо реальной, хотя реальная версия страницы все еще может быть доступна в нижней части шутливой версии. Хотя это не 1 апреля, вы все еще можете получить доступ к шутливой версии страниц здесь. Кроме того, точка с запятой также появляется внизу каждой страницы вики в День дураков апреля с 2019 года.

Разработчики[править]

Scratch 2.0 и Scratch 3.0 находятся с открытым исходным кодом на GitHub, и разработчики могут внести свой вклад в Scratch.[40]

Мероприятия[править]

Преподаватели Scratch могут собираться лично на Scratch Educator Meetups. На этих собраниях преподаватели Scratch учатся друг у друга и делятся идеями и стратегиями, которые поддерживают вычислительное творчество.

Ежегодная "Неделя скретча", ранее известная как "День скретча", объявляется в мае каждого года. Членам сообщества предлагается провести в этот день или около него мероприятие, большое или маленькое, посвященное Scratch. Эти мероприятия проводятся по всему миру, и список можно найти на веб-сайте Scratch Day. Scratch Week - это серия мероприятий, посвященных Scratch на веб-сайте Scratch.

Каждый первоапрельский день дураков команда Scratch будет разыгрывать пользователей и добавлять пасхальные яйца.

История[править]

В начале 2000-х годов группа непрерывного детского сада MIT Media Lab (LLK) занималась разработкой визуальных языков программирования, ориентированных на детей. В 2003 году Митчел Резник, Ясмин Кафаи и Джон Маэда получили грант Национального научного фонда на разработку новой среды программирования для самовыражения детейс кодом. LLK, возглавляемая Митчелом Резником, в партнерстве с командой Ясмин Кафаи в Калифорнийском университете в Лос-Анджелесе тесно сотрудничала с компьютерными клубами в Бостоне и Лос-Анджелесе, чтобы разработать Scratch, основывая свой дизайн на практике и социальной динамике этих внешкольных молодежных центров.базовый язык программирования, без обозначенных категорий и без зеленого флага. Подобно AgentSheets[46] Scratch использовал концепции тактильного программирования, позже известного как программирование на основе блоков. Scratch был создан с целью научить детей программировать.

Философия Scratch поощряет совместное использование, повторное использование и комбинирование кода, о чем свидетельствует слоган команды "Imagine, Program, Share". Пользователи могут создавать свои собственные проекты, или они могут выбрать "ремикс" чужого проекта. Проекты, созданные и ремикшированные с помощью Scratch, лицензируются по лицензии Creative Commons Attribution-Share Alike License. Scratch автоматически присваивает кредит пользователю, создавшему оригинальный проект и программу, в верхней части страницы проекта.

Scratch был разработан на основе постоянного взаимодействия с молодежью и персоналом компьютерных клубов. Использование Scratch в компьютерных клубах послужило моделью для других внешкольных центров, демонстрирующих, как неформальные условия обучения могут поддерживать развитие технологической беглости

Scratch 2.0 был выпущен 9 мая 2013 года. Обновление изменило внешний вид сайта и включило как онлайн-редактор проектов, так и офлайн-редактор. Теперь пользовательские блоки можно было определять в проектах, наряду с несколькими другими улучшениями. Автономный редактор Scratch 2.0 можно было загрузить для Windows, Mac и Linux непосредственно с веб-сайта Scratch, хотя позже поддержка Linux была прекращена. Неофициальную мобильную версию приходилось скачивать с форумов Scratch

Scratch 3.0 был впервые анонсирован командой Scratch в 2016 году. С тех пор и до января 2018 года было выпущено несколько публичных альфа-версий, после чего были выпущены предварительные бета-версии "Preview". Бета-версия Scratch 3.0 была выпущена 1 августа 2018 года.[55] для использования в большинстве браузеров, за исключением Internet Explorer.

Scratch 3.0, первая версия 3.x, была выпущена 2 января 2019 года.

Типы файлов[править]

В Scratch 1.4 файл *.sb использовался для хранения проектов.

Файл *.sb разделен на четыре раздела:

  • "заголовок", этот 10-байтовый заголовок содержит строку ASCII 'ScratchV02' в версиях выше Scratch 1.2 и 'ScratchV01' в Scratch 1.2 и ниже
  • "infoSize", кодирует длину инфообъектов проекта. 4-байтовое, 32-битное, big-Endian целое число.
  • "InfoObjects", раздел данных в формате словаря. Содержит: "эскиз", эскиз этапа проекта; "автор", имя пользователя создателя проекта; "комментарий", заметки проекта; "история", журнал сохранения и загрузки; "scratch-версия", версия Scratch, используемая для сохранения файла;
  • "contents", таблица объектов со Сценой в качестве корня. Все объекты в программе хранятся здесь как ссылки.

Scratch 2.0 использует формат файла *.sb2. Это zip-файлы, содержащие файл .json, а также содержимое проекта Scratch, включая звуки (сохраненные в формате .wav) и изображения (сохраненные в формате .png). Каждый тип файла, за исключением project.json, хранится в виде числа, начинающегося с 0 и подсчитываемого с каждым дополнительным файлом. Файл изображения с надписью "0.png" всегда представляет собой белое изображение размером 480x360, но "0.wav" по-прежнему будет самым ранним не удаленным файлом.

В экспериментальной версии Scratch использовался формат .sbx.

Scratch 3.0 использует формат *.sb3, который очень похож на *.sb2, с одним отличием - звук.

Старые версии[править]

Хотя основной сайт Scratch теперь работает только в текущей версии (Scratch 3.0), автономные редакторы для Scratch 2.0 (и более ранних Scratch 1.4) все еще доступны для скачивания и могут использоваться для создания и запуска игр локально. По-прежнему можно загружать проекты из лаунчера Scratch 2.0, которые сразу же преобразуются в Scratch 3.0 при загрузке на основной сайт. Существует также автономная версия Scratch 3.0.

ТЕХНОЛОГИЯ[править]

Редактор Scratch 1.4 и ниже был написан на языке Squeak, в то время как его онлайн-средство просмотра проектов было написано на Java, а позже был добавлен проигрыватель, написанный на Adobe Flash. Scratch 2.0 полагался на Adobe Flash для онлайн-версии и Adobe AIR для автономного редактора. Они вышли из моды, и Adobe прекратила их поддержку в конце 2020 года.

Интерфейс[править]

В Scratch 2.0 область stage находится слева, с палитрой programming blocks посередине, а область coding - справа. Расширения находятся в разделе "Дополнительные блоки" палитры.

Палитра блоков в Scratch 2.0 состоит из дискретных разделов, которые не прокручиваются от одного к другому; в таблице ниже показаны различные разделы:

1.4 звуки[править]

Scratch 2.0 изменил способ импорта звуков, поэтому многие звуки Scratch 1.4 перестали работать. (Файл проекта был изменен с *.sb на *.sb2).

Расширения[править]

В Scratch 2.0 все расширения были аппаратными.

Особенности и производные[править]

Scratch использует событийное программирование с несколькими активными объектами, называемыми спрайтами. Спрайты могут быть нарисованы как векторная или растровая графика с нуля в простом редакторе, который является частью Scratch, или могут быть импортированы из внешних источников. Scratch 3.0 поддерживает только одномерные массивы, известные как "списки", а также скаляры с плавающей запятой и строки, но с ограниченными возможностями манипулирования строками. Существует сильный контраст между мощными мультимедийными функциями и многопоточным стилем программирования и довольно ограниченной областью применения языка программирования Scratch.

Scratch 2.0 не рассматривает процедуры как структуры первого класса и имеет ограниченные возможности ввода-вывода файлов с помощью протокола расширения Scratch 2.0, экспериментальной функции расширения, которая позволяет взаимодействовать между Scratch 2.0 и другими программами.[71] Протокол расширения позволяет взаимодействовать с аппаратными платами, такими как Lego Mindstorms или Arduino. Scratch 2.0 был реализован в ActionScript, а экспериментальный интерпретатор на основе JavaScript разрабатывался параллельно.

Scratch 1.4 был основан на Squeak, который основан на Smalltalk-80. Ряд производных Scratch [75], называемых модификациями Scratch, были созданы с использованием исходного кода Scratch 1.4. Эти программы являются вариантом Scratch, которые обычно включают несколько дополнительных блоков или изменений в графический интерфейс. Turbowarp - это вариант Scratch 3.0, который улучшает производительность Scratch путем компиляции проектов в Javascript и позволяет загружать внешние расширения.

Snap![править]

Более продвинутым визуальным языком программирования, вдохновленным Scratch, является Snap!, в котором представлены первоклассные процедуры (их математические основы называются также лямбда-исчислением), первоклассные списки (включая списки списков) и первоклассные действительно объектно-ориентированные спрайты с наследованием прототипов и вложенными спрайтами, которые не являются частью Scratch. Snap! (ранее "BYOB") был разработан Йенсом Менигом с документацией, предоставленной Брайаном Харви из Калифорнийского университета в Беркли, и использовался для преподавания вводного курса "Красота и радость вычислений" в CS для не-Студенты CS-major. Оба они были членами команды Scratch до разработки "Snap!".

ScratchJr[править]

В июле 2014 года ScratchJr был выпущен для iPad, а в 2016 году - для Android. Несмотря на то, что он сильно вдохновлен Scratch и совместно возглавляется Митчем Резником, он, тем не менее, является полным переписыванием, предназначенным для детей младшего возраста - в возрасте от 5 до 8 лет.

Цензура[править]

В августе 2020 года GreatFire объявила, что китайское правительство заблокировало доступ к сайту Scratch. В то время было подсчитано, что более трех миллионов человек в Китае использовали его. Издание сослалось на тот факт, что Макао, Гонконг и Тайвань были перечислены как страны на сайте.

См. также[править]

Читать[править]

wiki.xentax.com/ Репозитарий Граф

Пруф[править]

/curlie.org/Computers/Programming/Languages/Smalltalk/Squeak/Scratch