Парадигма | Событийный , блок на основе языка программирования |
---|---|
Впервые появился | 2003 г. (первый прототип) 2004 г. (второй прототип) 15 мая 2007 г . [1] 9 мая 2013 г . (Scratch 2.0) 2 января 2019 г . (Scratch 3.0) | (публичный запуск)
Язык реализации | Squeak (Scratch 0.x, 1.x) ActionScript (Scratch 2.0) JavaScript (Scratch 3.0) |
Операционные системы | Microsoft Windows , macOS , Linux (через средство визуализации), HTML5 , iOS , iPadOS и Android . |
Лицензия | GPLv2 и лицензия на исходный код Scratch |
Расширения имени файла |
|
Веб-сайт | scratch |
Под влиянием | |
Логотип , Smalltalk , HyperCard , StarLogo , AgentSheets , AgentCubes , Etoys | |
Под влиянием | |
Catrobat , [2] ScratchJr , [3] Snap ! , [4] [5] mBlock , Turtlestitch |
Scratch - это высокоуровневый язык визуального программирования на основе блоков и веб-сайт, ориентированный в первую очередь на детей 8–16 лет в качестве образовательного инструмента для программирования. [6] [7] Пользователи сайта, называемые Scratchers, могут создавать проекты на сайте, используя интерфейс, похожий на блоки. Проекты можно экспортировать в HTML5 , приложения для Android и файлы EXE с помощью внешних инструментов. Сервис разработан MIT Media Lab , переведен на 70+ языков и используется в большинстве стран мира. [8]Скретч изучают и используют в внешкольных центрах, школах и колледжах, а также в других общественных учебных заведениях. По состоянию на июль 2021 года статистика сообщества на официальном веб-сайте языка показывает более 82 миллионов проектов, которыми пользуются более 74 миллионов пользователей, и более 73 миллионов посещений веб-сайтов в месяц. [8]
Scratch получил свое название от техники, используемой диск-жокеями, называемой « скретчинг », когда виниловые пластинки соединяются вместе и манипулируют ими на проигрывателе для создания различных звуковых эффектов и музыки. Как и царапина, веб-сайт позволяет пользователям творчески смешивать различные мультимедиа (включая графику, звук и другие программы), создавая и ремикшируя проекты, такие как видеоигры , анимации и симуляции . [9] [10]
Интерфейс Scratch разделен на три основных раздела: область сцены , палитра блоков и область кодирования для размещения и упорядочивания блоков в сценарии, которые можно запустить, нажав зеленый флаг или щелкнув сам код. Пользователи также могут создавать свои собственные блоки кода, и они появятся в «Моих блоках».
В рабочей области отображаются результаты (например, анимация, графика с черепахой , маленького или нормального размера, с возможностью полноэкранного режима), и все эскизы спрайтов перечислены в нижней области. Этап использует координаты x и y , где 0,0 является центром сцены. [11]
Если спрайт выбран в нижней части промежуточной области, к нему можно применить блоки команд, перетащив их из палитры блоков в область кодирования. Вкладка «Костюмы» позволяет пользователям изменять внешний вид спрайта для создания различных эффектов, включая анимацию. [11] Вкладка «Звуки» позволяет прикреплять к спрайту звуки и музыку. [12]
При создании спрайтов, а также фонов, пользователи могут рисовать свои собственные спрайты вручную, [11] выбирать спрайт из библиотеки или загружать изображение. [12]
В таблице ниже показаны категории блоков программирования:
Категория | Примечания | Категория | Примечания | |||
---|---|---|---|---|---|---|
Движение | Движения спрайтов, такие как углы и положение | Зондирование | Спрайты могут взаимодействовать с окружением | |||
Выглядит | Управляет визуальными эффектами спрайта. | Операторы | Математические операторы, сравнения | |||
Звук | Воспроизведение аудиофайлов и эффектов | Переменные | Переменная и списки использования и назначения | |||
События | Обработчики событий | Мои блоки | Позволяет определять функции, которые не имеют возвращаемого значения | |||
Контроль | Условные выражения, циклы и т. Д. | Расширения | Объясняется ниже |
Автономный «настольный редактор» для Scratch 3.0 доступен для Microsoft Windows 10 в Microsoft Store и macOS 10.13 от Apple; [13] это позволяет создавать и воспроизводить программы Scratch в автономном режиме. Автономный редактор также можно загрузить в предыдущих версиях, таких как Scratch 2.0 и Scratch 1.4 .
В Scratch расширения добавляют дополнительные блоки и функции, которые можно использовать в проектах. В Scratch 2.0 и 3.0 все расширения были аппаратными. В Scratch 3.0 были добавлены программные расширения, такие как голоса для преобразования текста в речь, а также некоторые новые аппаратные расширения, такие как micro: bit . Расширения перечислены ниже.
Многие цифровые расширения в Scratch 3.0 раньше были обычными категориями блоков, которые были перемещены в раздел расширений, чтобы уменьшить беспорядок. Это включает:
Новые цифровые расширения также были добавлены в сотрудничестве с коммерческими компаниями. Это включает:
Пользователи также могут создавать свои собственные расширения для Scratch 3.0 с помощью JavaScript . [14]
Scratch 3.0 - это полностью новая кодовая база на основе JavaScript, состоящая из нескольких компонентов, таких как «Scratch-GUI», теперь основанная на библиотеке от Blockly , [15] «Scratch-VM», которая интерпретирует код, и «Scratch-Render, "движок рендеринга. [16] Скретч-блоки сделаны с использованием Blockly. [17]
Scratch используется в самых разных условиях: в школах, музеях , библиотеках , общественных центрах и дома. [18] [19] [9] Хотя целевая группа Scratch - это школьники от 8 до 16 лет, [20] его используют все возрасты, включая педагогов и родителей. Этот широкий охват создал множество окружающих сообществ, как физических, так и цифровых. [8] В апреле 2020 года рейтинг мировых языков программирования Tiobe включил Scratch в первую двадцатку. По данным Tiobe, на Scratch написано 50 миллионов проектов, и каждый месяц добавляется миллион новых проектов. [21]
Scratch используется в качестве вводного языка, потому что создание интересных программ относительно легко, а полученные навыки можно применить к другим языкам программирования, таким как Python и Java .
Scratch предназначен не только для создания игр. Используя предоставленные визуальные эффекты, программисты могут создавать анимацию, текст, рассказы, музыку и многое другое. Уже существует множество программ, которые студенты могут использовать для изучения математики, истории и даже фотографии. Scratch позволяет учителям создавать концептуальные и наглядные уроки и задания в научной лаборатории с анимацией, которая помогает визуализировать сложные концепции. В рамках социальных наук преподаватели могут создавать викторины, игры и учебные пособия с интерактивными элементами. Использование Scratch позволяет молодым людям понять логику программирования и научиться творчески строить и сотрудничать. [22]
Скретч преподается в более чем 800 школах и 70 колледжах организации DAV в Индии и по всему миру. [23] [24]
В высшем образовании Scratch используется в первую неделю вводного курса информатики CS50 Гарвардского университета . [25] [26]
На Scratch участники могут делиться своими проектами и получать отзывы. Проекты можно загружать прямо из среды разработки на веб-сайт Scratch, и любой член сообщества может загрузить полный исходный код для изучения или ремикса в новые проекты. [27] [28] Участники также могут создавать студии проектов, комментировать, отмечать, добавлять в избранное и «любить» проекты других, подписываться на других участников, чтобы видеть их проекты и деятельность, а также обмениваться идеями. Проекты варьируются от игр до анимаций и практических инструментов. Кроме того, для поощрения создания и обмена среди пользователей веб-сайт часто устанавливает задачи «Scratch Design Studio». [29]
Команда MIT Scratch Team работает над тем, чтобы это сообщество поддерживало дружелюбную и уважительную среду для всех людей. [30] [31]
У преподавателей есть собственное онлайн-сообщество под названием ScratchEd, разработанное и поддерживаемое Гарвардской высшей школой образования. В этом сообществе преподаватели Scratch делятся историями, обмениваются ресурсами и задают вопросы. [32]
Scratch Wiki - это вспомогательный ресурс для Scratch, его веб-сайта, истории и явлений, связанных с ним. Хотя он поддерживается Scratch Team (разработчиками Scratch), он в первую очередь написан Scratcher (пользователи Scratch) для получения информации о программе и веб-сайте. [33] Он доступен на en.scratch-wiki.info. [33]
И Scratch 2.0, и Scratch 3.0 имеют открытый исходный код на GitHub [34], и разработчики могут вносить свой вклад в Scratch. [35]
Преподаватели Scratch могут собираться лично на собраниях Scratch Educator. На этих встречах преподаватели Scratch учатся друг у друга и обмениваются идеями и стратегиями, поддерживающими вычислительное творчество. [36]
Ежегодная «Неделя царапин», ранее известная как «День царапин», объявляется ежегодно в мае. Членам сообщества рекомендуется провести мероприятие в этот день или в этот день, большое или маленькое, в честь Scratch. Эти мероприятия проводятся по всему миру, и их список можно найти на веб-сайте Scratch Day. Scratch Week - это серия, посвященная деятельности Scratch на веб-сайте Scratch. [37]
В 2003 году Митчел Резник , Ясмин Кафаи и Джон Маеда были награждены грантом Национального научного фонда на разработку новой среды программирования, позволяющей детям выражать себя с помощью кода. [38] В MIT Media Lab «S Пожизненный детский сад группа, во главе с Mitchel Резник, в сотрудничестве с командой Ясмин Кафай по адресу UCLA работал в тесном сотрудничестве с компьютерных клубов в Бостоне и Лос - Анджелесе , чтобы разработать Царапины, заземляющий его дизайн в практике и социальной динамики эти внешкольные молодежные центры. [38]Он начинался как базовый язык программирования, без обозначенных категорий и зеленого флага. [39] Подобно AgentSheets [40] Scratch использовал концепции тактильного программирования, позже известного как программирование на основе блоков. Scratch был создан с целью научить детей программировать. [39]
Философия Scratch поощряет совместное использование, повторное использование и комбинирование кода, как указано в слогане команды «Представь, запрограммируй, поделись». [41] Пользователи могут создавать свои собственные проекты или « ремикшировать » чужой проект. Проекты, созданные и переработанные с помощью Scratch, находятся под лицензией Creative Commons Attribution-Share Alike License . [42] Scratch автоматически отдает должное пользователю, создавшему исходный проект и программу в верхней части. [9]
Scratch был разработан на основе постоянного взаимодействия с молодежью и персоналом компьютерных клубов. Использование Scratch at Computer Clubhouses послужило образцом для других внешкольных центров, демонстрирующим, как неформальная учебная среда может способствовать развитию технологической беглости. [43]
Scratch 2.0 был выпущен 9 мая 2013 года. [11] Обновление изменило внешний вид сайта и включило как онлайн-редактор проекта, так и автономный редактор. [44] Пользовательские блоки теперь можно было определять в проектах, а также ряд других улучшений. [45] Автономный редактор Scratch 2.0 можно было загрузить для Windows, Mac и Linux прямо с веб-сайта Scratch, хотя позже поддержка Linux была прекращена. Неофициальную мобильную версию нужно было скачать с форумов Scratch. [46] [47]
Scratch 3.0 был впервые анонсирован Scratch Team в 2016 году. В период с этого момента по январь 2018 года было выпущено несколько общедоступных альфа-версий, после чего были выпущены предварительные бета-версии. [48] Бета-версия Scratch 3.0 была выпущена 1 августа 2018 г. [49] для использования в большинстве браузеров; за заметным исключением Internet Explorer . [50]
Scratch 3.0, первая версия выпуска 3.x, была выпущена 2 января 2019 г. [51]
В Scratch 1.4 для хранения проектов использовался файл * .sb. [52]
Файл * .sb разделен на четыре части:
Scratch 2.0 использует формат файла * .sb2. Это zip-файлы, содержащие файл .json, а также содержимое проекта Scratch, включая звуки (хранящиеся как .wav) и изображения (сохраненные как .png). [53] Каждый тип файла, за исключением project.json, хранится в виде числа, начиная с 0 и считая с каждым дополнительным файлом. Файл изображения с меткой «0.png» всегда представляет собой белое изображение размером 480x360, но «0.wav» по-прежнему будет самым ранним не удаленным файлом.
Экспериментальная версия ScratchX использовала формат файла .sbx. [54]
Scratch 3.0 использует формат * .sb3, который очень похож на * .sb2, [55] с одним отличием - звук.
Хотя на основном веб-сайте Scratch сейчас работает только текущая версия (Scratch 3.0), автономные редакторы для Scratch 2.0 (и более ранней версии Scratch 1.4) по-прежнему доступны для загрузки [56] и могут использоваться для создания и запуска игр локально. [ необходима цитата ] [57] Из программы запуска Scratch 2.0 все еще можно загружать проекты, которые сразу же конвертируются в Scratch 3.0 при загрузке на основной сайт. [58] Существует также автономная версия Scratch 3.0.
Редактор Scratch 1.4 и ниже был написан на Squeak . [59] Его онлайн-программа просмотра проектов была написана на Java , а позже был добавлен проигрыватель, написанный на Adobe Flash . [60] Scratch 2.0 полагался на Adobe Flash для онлайн-версии и Adobe AIR для автономного редактора. Они вышли из моды [61], и Adobe прекратила их поддержку в конце 2020 года [62].
В Scratch 2.0 область рабочей области находится слева, палитра блоков программирования - посередине, область кодирования - справа. Расширения находятся в разделе палитры «Больше блоков». [7]
Палитра блоков в Scratch 2.0 состоит из отдельных разделов, которые нельзя прокручивать от одного к другому; в таблице ниже показаны различные разделы:
Категория | Примечания | Категория | Примечания | |||
---|---|---|---|---|---|---|
Движение | Перемещает и меняет положение спрайтов | События | Обработчики событий | |||
Выглядит | Управляет визуальными эффектами спрайта. | Контроль | Условные выражения и циклы | |||
Звук | Аудио файлы , последовательности | Зондирование | Взаимодействие со спрайтами | |||
Ручка | Рисуем на холсте | Операторы | Математические операторы | |||
Данные | Переменные и массивы | Больше блоков | Функции, возвращаемое значение всегда void |
Scratch 2.0 изменил способ импорта звуков, поэтому многие звуки Scratch 1.4 перестали работать. (Файл проекта изменен с * .sb на * .sb2).
В Scratch 2.0 все расширения были аппаратными.
Scratch использует программирование, управляемое событиями, с несколькими активными объектами, называемыми спрайтами . [11] Спрайты могут быть нарисованы в виде векторной или растровой графики с нуля в простом редакторе, который является частью Scratch, или могут быть импортированы из внешних источников. Scratch 3.0 поддерживает только одномерные массивы , известные как «списки», а также поддерживаются скаляры и строки с плавающей запятой , но с ограниченными возможностями манипулирования строками. Существует резкий контраст между мощными мультимедийными функциями и стилем многопоточного программирования и довольно ограниченными возможностями языка программирования Scratch.
Scratch 2.0 не рассматривает процедуры как первоклассные структуры и имеет ограниченные возможности файлового ввода-вывода с помощью Scratch 2.0 Extension Protocol, экспериментальной функции расширения, которая позволяет взаимодействовать между Scratch 2.0 и другими программами. [63] Протокол расширения позволяет взаимодействовать с аппаратными платами, такими как Lego Mindstorms [64] или Arduino . [65] Scratch 2.0 был реализован на ActionScript , параллельно с ним разрабатывается экспериментальный интерпретатор на основе JavaScript. [66]
Scratch 1.4 был основан на Squeak, который основан на Smalltalk -80. [59] Ряд производных Scratch [67], называемых Scratch-модификациями, был создан с использованием исходного кода Scratch 1.4. Эти программы представляют собой вариант Scratch, которые обычно включают несколько дополнительных блоков или изменений в графическом интерфейсе . [68]
Более продвинутый язык визуального программирования, вдохновленный Scratch, - Snap ! , включающий процедуры первого класса (их математические основы называются также лямбда-исчислением ), списки первого класса (включая списки списков) и действительно объектно-ориентированные спрайты первого класса с наследованием прототипов, а также вложенные спрайты, которые не являются частью Scratch. [69] Беги ! (ранее «BYOB») был разработан Йенсом Мёнигом [70] [71] с документацией, предоставленной Брайаном Харви [72] [73] из Калифорнийского университета в Беркли.и использовался для преподавания вводного курса «Красота и радость вычислений» по CS для студентов, не специализирующихся на CS. [74] Оба они были членами Scratch Team до создания «Snap ! ». [75] [7]
В июле 2014 года был выпущен ScratchJr для iPad , а в 2016 году - ScratchJr для Android. Несмотря на то, что он в значительной степени вдохновлен Скретчем и совместно с Митчем Резником, он, тем не менее, представляет собой полностью переработанный текст, предназначенный для детей младшего возраста - ориентированный на детей в возрасте от 5 до 8 лет [76]
В этом разделе слишком много ссылок на первоисточники . ( Ноябрь 2021 г. ) |
TurboWarp - это модификация Scratch (Mod) с возможностью компилировать проекты в JavaScript, чтобы они работали быстрее 30 FPS, до 60 FPS. [77] [78] Примечательно то, что у него есть возможность загружать пользовательские расширения (библиотеки) для Scratch по URL-адресу. [79] [80]
В августе 2020 года GreatFire объявила, что правительство Китая заблокировало доступ к сайту Scratch. В то время было подсчитано, что им пользовались более трех миллионов человек в Китае. [81] [82] Позже государственное китайское издание заявило, что Scratch представил «унизительный, фальшивый и клеветнический контент о Китае». Издание сослалось на тот факт, что Макао , Гонконг и Тайвань были указаны в качестве стран на веб-сайте. [81] [83]
|title=
( справка )