Щелчок ! (язык программирования)
![]() Щелчок ! Логотип | |
Парадигма | объектно-ориентированный , образовательный , событийно-ориентированный |
---|---|
Разработано | Брайан Харви и Йенс Мёниг |
Разработчик | Йенс Мёниг |
Впервые появился | 2011 год |
Стабильная версия | 9.2.17 / 24 апреля 2024 г [1] |
Дисциплина набора текста | динамичный |
Язык реализации | Морфический.js [2] (написано на JavaScript ); [Примечание 1] |
ТЫ | Кросс-платформенный |
Лицензия | АГПЛ |
Расширения имен файлов | .xml (Привязка ! ) |
Веб-сайт | щелчок |
Под влиянием | |
Скретч , Схема , Логотип , Smalltalk , APL | |
Под влиянием | |
BeetleBlocks, NetsBlox, Dragme IDE, Turtlestitch |
Щелчок ! графический язык программирования на основе блоков (ранее Build Your Own Blocks) — это бесплатный образовательный и онлайн-сообщество. Snap позволяет учащимся исследовать, создавать и смешивать интерактивные анимации, игры, истории и многое другое, одновременно изучая математические и вычислительные идеи. Вдохновленный Scratch , Snap ! имеет множество расширенных функций. Снап ! редактор и программы, созданные в нем, представляют собой веб-приложения , которые запускаются в браузере (например, Scratch 3 ), не требуя установки . [Примечание 2] Он построен на основе Morphic.js , [2] Морфический графический интерфейс, написанный Йенсом Мёнигом как «средний уровень» между Snap! сам по себе и «голый» JavaScript.
Пользовательский интерфейс
[ редактировать ]В Snap ! , экран состоит из трех столбцов изменяемого размера, содержащих пять областей: селектор группы блоков (верхняя часть левого столбца), палитра блоков (левый столбец), основная область (средний столбец) и область сцены (верхняя часть правого столбца). с селектором спрайтов (также называемым загоном спрайтов), под которым отображаются миниатюры спрайтов. [Примечание 3]
В области сцены с интерактивным изменением размера отображаются графические результаты выполнения сценариев в области сценариев и/или при двойном интерактивном щелчке по отдельным блокам в любой палитре. Отдельные блоки можно перетаскивать из палитры в область скриптов, чтобы связать их с выбранным спрайтом.
Категория | Примечания | Категория | Примечания | ||
---|---|---|---|---|---|
Движение | Перемещает и поворачивает спрайты | Контроль | Если высказывания, события, петлевые структуры, сцены, ООП, metaprogramming | ||
выглядит | Контролирует видимость, костюмы и продукция | зондирование | Обнаружение всех попаданий в спрайты и пользовательский ввод | ||
Звук | Воспроизводит аудиофайлы и программируемый секвенсорный звук | Операторы | Математические, текстовые и логические операторы; лямбда | ||
Ручка | Пишите, рисуйте или штамп на сцене | Переменные | Переменные, списки, включая списки списков, списки блоков и т. д. |

Щелчок !' Блоки разделены на восемь групп: «Движение», «Вид», «Звук», «Перо», «Управление», «Обнаружение», «Операторы» и «Переменные». Расположение этих групп в селекторе групп блоков показано в таблице ниже.
В центральной области могут отображаться сценарии, костюмы/декорации или звуки, связанные с выбранным спрайтом. То, что отображается в этой области, зависит от выбранной вкладки.
Функции
[ редактировать ]Наиболее важные функции Snap ! предлагает, но не Scratch, включает в себя:
- Выражения, использующие анонимные функции, представленные блоком внутри серого кольца, имеющие один или несколько пустых слотов/аргументов, которые заполняются «функцией более высокого порядка» (той, которая вызывает анонимную). (Их теоретическая основа информатики — это первоклассные функции , которые, в свою очередь, имеют лямбда-исчисление в качестве еще более абстрактной и математической основы)
- Списки первого класса (включая списки списков/массивов )
- Спрайты первого класса (или, другими словами, прототипно-ориентированное бесклассовое объектное программирование на основе экземпляров )
- «Гиперблоки»: функции, естественной областью которых являются скаляры (текст или числа), расширенные для приема списков в качестве входных данных и применения базовой функции к скалярам в списке или подсписке.
- Вложенные спрайты
- Кодификация Snap ! программы на текстовые языки, такие как Python , JavaScript, C и т. д.
- Метапрограммирование , рефлексия и макросы
Талисман
[ редактировать ]
Алонсо, талисман Snap ! , носит имя Алонзо Чёрча , изобретателя модели вычислений, в которой универсальная функция, представленная лямбда-выражением, может создавать любое поведение функции, вызывая ее сама на себя в различных комбинациях. Талисман представляет собой модифицированную версию Гобо из Scratch , созданную с разрешения команды Scratch. Поскольку работа Алонсо Чёрча называется лямбда-исчислением , волосы талисмана имеют форму греческой буквы лямбда .
Блоки специального назначения (библиотеки)
[ редактировать ]Расширенные наборы блоков можно найти в Snap ! библиотеки, такие как библиотека «streams» , которая позволяет создавать полную бесконечную последовательность Фибоначчи , например, используя специальные блоки («поток», «показать поток», «хвост потока» и «map () поверх поток') из библиотеки.
Доступно множество других библиотек, таких как библиотека «списков утилит», библиотека «слов, предложений», библиотека «итераций», библиотека «анимации», библиотека «распределения частот», библиотека «вычислений звука», библиотека «столбчатых диаграмм», библиотека «карты мира», библиотека «цветов и мелков», библиотека «строков и многострочного ввода», библиотека «распараллеливания» и т. д. для других специальных целей.
Ограничения
[ редактировать ]Хотя само программное обеспечение не имеет особых ограничений, оно имеет некоторые ограничения.
К ним относятся следующие:
- Нет собственных облачных переменных
- 10 МБ Максимальный размер файла для загрузки — (только Snap ! Cloud)
- Пользователям приходится вручную включать Javascript при загрузке проекта.
История
[ редактировать ]Веб-приложение Snap ! и более старая версия BYOB для настольных компьютеров были разработаны Йенсом Мёнигом для Windows , OS X и Linux. [3] с дизайнерскими идеями и документацией, предоставленными Брайаном Харви [4] из Калифорнийского университета в Беркли и использовались для преподавания вводного курса по информатике (CS) «Красота и радость вычислений» для студентов, не изучающих компьютерные науки. [5] Йенс был членом команды Scratch до создания Snap! . [6] BYOB по-прежнему доступен для скачивания.
Лицензия
[ редактировать ]Исходный код Snap ! имеет лицензию GNU Affero General Public License (AGPL) и размещен на GitHub . [7] Код более ранней версии 3.x для настольных компьютеров доступен по лицензии, которая позволяет вносить изменения только для некоммерческого использования, и его можно загрузить с веб-сайта Калифорнийского университета в Беркли. [8] или CNET сайт download.com и страницу загрузки TechTracker. [9] [10]
Платформы
[ редактировать ]Щелчок! работает в основных веб-браузерах на устройствах Windows , iOS , MacOS и Linux .
Поддерживаемые веб-браузеры, такие как
- Firefox
- Chrome (и большинство браузеров на базе Chromium).
- Опера GX
- Microsoft Край
- Сафари
Выполнение
[ редактировать ]Щелчок ! построен на основе Morphic.js , [2] Морфический графический интерфейс, который служит «средним слоем» между Snap! сам по себе и «голый» JavaScript. Он использует (API) HTML5 Canvas интерфейс прикладного программирования .
Все, что видно в Snap ! сами являются морфами, т.е. все кнопки, ползунки, диалоговые окна, меню, поля ввода, рендеринг текста, мигающие курсоры и т. д. создаются с помощью morphic.js, а не с использованием элементов HTML DOM. Щелчок! кэширует формы спрайтов , поэтому спрайт не нужно перерисовывать на новом элементе Canvas каждый раз, когда мышь перемещается над его ограничивающей рамкой. Однако он не кэширует блоки. Вместо этого он управляет внутренней частью C-образных блоков через механизм морфических «отверстий».
Все взаимодействие с пользователем инициируется событиями, которые передаются от корневого элемента «мир» к его подморфам. Удаление морфа приводит к тому, что он становится встроенным в новый морф «владельца» («родителя»). В Morphic предпочтительный способ запуска анимации — зарегистрировать ее в мире, добавив в очередь анимации мира. Мир выполняет каждую зарегистрированную анимацию один раз за цикл отображения независимо от механизма морфического шага.
Признание
[ редактировать ]Щелчок ! был признан Logo Foundation, [11] и рассмотрен в интернет-журнале для программистов. [12] По состоянию на декабрь 2014 года 100 средних школ Нью-Йорка (Нью-Йорк) представили курс «Красота и радость вычислений» Калифорнийского университета в Беркли в качестве нового курса AP «Принципы компьютерных наук» с использованием Snap ! . [13] Йенс и Брайан получили награду за лидерство в образовании Национального саммита технологических лидеров (NTLS) 2020 года за жизненные достижения, частично основанные на Snap ! .
Примечания
[ редактировать ]- ^ BYOB был написан на языке Squeak .
- ^ BYOB, Snap ! Предшественник был модификацией Scratch и мог экспортировать проекты как исполняемые файлы Windows .
- ^ Как был организован экран версии до 2.0 Scratch.
Ссылки
[ редактировать ]- ^ "jmoenig/Привязка" . Гитхаб . Проверено 17 мая 2024 г.
- ^ Перейти обратно: а б с Мёниг, Йенс. "морфик.js" . Гитхаб . Проверено 7 июня 2023 г.
- ^ «Скретч — представь, запрограммируй, поделись» . Scratch.mit.edu . Проверено 21 мая 2017 г.
- ^ «Домашняя страница Брайана Харви ( [электронная почта защищена] )» . люди.eecs.berkeley.edu/~bh / . Проверено 19 января 2019 г.
- ^ «UC Berkeley EECS — CS10: красота и радость вычислений — осень 2011 г.» . inst.eecs.berkeley.edu . Проверено 21 мая 2017 г.
- ^ «Отношения с командой Scratch — Политика — Форумы Snap!» . forum.snap.berkeley.edu . Архивировано из оригинала 2 января 2020 г.
- ^ "jmoenig/Привязка" . Гитхаб . Проверено 21 мая 2017 г.
- ^ «Привязка! (Создайте свои собственные блоки) 4.0» . snap.berkeley.edu . Проверено 21 мая 2017 г.
- ^ от CNET TechTracker. BYOB для Windows CNET Download.com и страница загрузки
- ^ CNET Download.com и TechTracker BYOB для Mac Страница загрузки
- ^ «История логотипа» . el.media.mit.edu . Проверено 21 мая 2017 г.
- ^ Ну и дела, Сью. «Visual Language Snap! Выпущена версия 4.0» . i-programmer.info . Проверено 21 мая 2017 г.
- ^ «ФАКТИЧЕСКИЙ ЛИСТ: Новые обязательства по поддержке образования в области компьютерных наук» . obamawhitehouse.archives.gov . 8 декабря 2014 года . Проверено 20 января 2019 г.
Внешние ссылки
[ редактировать ]- Американские детские сайты
- Образовательные языки программирования
- Бесплатное образовательное программное обеспечение
- Педагогическая интегрированная среда развития
- Семейство языков программирования Smalltalk
- Программное обеспечение для разработки видеоигр
- Сообщества разработчиков программного обеспечения
- Языки визуального программирования
- IDE для видеоигр