Snap! (язык программирования)
Snap! (англ. щелчок, ранее назывался Build Your Own Blocks или BYOB[1]) — бесплатный, основанный на блоках и браузере образовательный язык визуального программирования, позволяющий начинающим программистам создавать интерактивные анимации, компьютерные игры, сценарии и многое другое с изучением математических и вычислительных идей.[2]
Snap! | |
---|---|
Семантика | событийно-ориентированная |
Класс языка | графический, учебный |
Тип исполнения | интерпретатор |
Появился в | 2011 |
Автор | Брайан Кейт Харви |
Разработчик | Jens Mönig |
Расширение файлов |
.ypr, .ysp (BYOB); .xml (Snap!) |
Выпуск |
|
Система типов | динамическая |
Испытал влияние | Скретч, Smalltalk, Scheme и Лого |
Повлиял на | BeetleBlocks, Snapi, Dragme IDE |
Лицензия | AGPL |
Сайт | snap.berkeley.edu, byob.berkeley.edu |
ОС | Windows, MacOS, HTML5 (кросс-платформенный) |
Медиафайлы на Викискладе |
Разработчики языка: Брайан Кейт Харви — вдохновитель идеи и Дженс Дженс Мёниг.
Пользовательский интерфейс
В Snap! экран организован в трех изменяемых по размеру столбцах, содержащих пять областей: селектор (выбор) групп блоков (вверху левой колонки), палитра блоков (левая колонка), основная область (средняя колонка) и сценическая область (вверху правой колонки) с набором спрайтов, под которым отображаются миниатюры спрайтов.
Спрайты, которые будут участвовать в сценарии, создаются с помощью встроенного простого графического редактора или выбираются двойным щелчком мыши из уже существующих в каталоге. Отдельные блоки можно перетаскивать из палитры на область сценариев, которая будет ассоциироваться с выбранным спрайтом.
Блоки разделены на восемь групп: Движение, Внешность, Звук, Перо, Управление, Сенсоры, Операторы и Переменные.
В основной области могут быть показаны сценарии, костюмы или звуки, связанные с выбранным спрайтом. То, что показывает основная область, зависит от выбранной вкладки.
Особенности языка
К наиболее важным функциям, предлагаемым в Snap!, но не включённым в Scratch, относятся:
- выражения, использующие "вложенные функции", состоящие из одной или нескольких "анонимных функций", каждая из которых представлена блоком, имеющим один или несколько пустых слотов/параметров, которые ожидают заполнения результатами выполнения "функцией более высокого порядка" (той, которая вызывает анонимную). Применение лямбда-функции;
- списки (включая списки списков);
- спрайты первого класса (другими словами, прототипно-ориентированное бесклассовое программирование на базе экземпляров);
- вложенные спрайты;
- кодификация программ Snap! для основных языков, таких как Python, JavaScript, C и др.
Лицензионная политика
Исходный код Snap! распространяется под лицензией Affero General Public License (AGPL) и размещен на GitHub[3]. Более ранняя, настольная версия 3.x, доступна по лицензии, которая допускает модификацию только для некоммерческого использования и может быть загружена с сайта UC Berkeley или со страниц загрузки CNET's[4][5] и TechTracker.
Платформа
Сам Snap! реализован на языке JavaScript с использованием интерфейса прикладного программирования (API) HTML5 Canvas, благодаря чему проекты могут исполняться на основных веб-браузерах на устройствах под управлением операционных систем Windows, iOS, OS X и Linux.
Интересные факты
Существует проект, с помощью которого можно создавать исполняемые приложения для Windows и MacOs из проектов Snap.[6]
Создание проектов возможно на 44 языках, включая русский.
Примечания
- SNAP! (Build Your Own Blocks) (англ.). Berkeley. — Язык ранее носил название BYOB. Дата обращения: 25 декабря 2020.
- UC Berkeley EECS | CS10 : The Beauty and Joy of Computing | Fall 2011 (англ.). inst.eecs.berkeley.edu. Дата обращения: 25 декабря 2020.
- Jens Mönig. jmoenig/Snap. — 2020-12-24.
- BYOB (Build Your Own Blocks) (англ.). Download.com. — Загрузка версии для Windows. Дата обращения: 25 декабря 2020.
- BYOB (Build Your Own Blocks) (англ.). Download.com. — Загрузка версии для MacOs. Дата обращения: 25 декабря 2020.
- Adrian Hintze. adrian-hintze/Snapp. — 2020-12-22.
Ссылки
- Snap! Build Your Own Blocks (англ.). — Официальный сайт языка. Дата обращения: 25 декабря 2020.
- Jens Mönig, Brian Harvey. Snap! Build Your Own Blocks (англ.). github. — Официальный сайт языка. Дата обращения: 25 декабря 2020.
Источники
- Brian Harvey, Jens Mönig. Официальный релиз 6.5.0 = SNAP!Reference Manual. — Jens Mönig and Brian Harvey, 2020. — 150 с.
- Virginia King, Lee Ryall. Книга кода = The Coding Book. — Invent the World, 2018. — 192 с. — ISBN 9781488909924.
- Joachim Wedekind. Искусство кода: искусство программирования на Snap! = Codierte Kunst: Kunst programmieren mit Snap!. — Joachim Wedekind, 2018.
- Eckart Modrow. Computer Science with Snap! = Computer Science with Snap!. — emu-online Scheden, 2018. — 2017 с.