Блокли
Блокли (англ. Blockly) — библиотека для создания среды визуального программирования, которую можно встроить в различные веб-приложения. Блокли включает графический редактор для составления программ из блоков и генераторы кода для исполнения программы в среде веб-приложения[2][3].
Что важно знать
| Блокли | |
|---|---|
| Тип | визуальное программирование, язык программирования и библиотека функций |
| Авторы | Нил Фрейзер, Эллен Спертус, Марк Фридман |
| Разработчик | |
| Написана на | JavaScript |
| Первый выпуск | 2012 |
| Аппаратная платформа | Web |
| Последняя версия |
|
| Репозиторий | github.com/google/blockly |
| Лицензия | Apache 2.0 |
| Сайт | developers.google.com/… (англ.) |
Особенности
Блокли разрабатывается и поддерживается компанией Google с 2012 года. Библиотека свободно распространяется вместе с исходным кодом по лицензии Apache 2.0.
Основной аудиторией проекта являются программисты, разрабатывающие веб-приложения с использованием Блокли, в том числе для образовательных целей.
Программы создаются с помощью графических блоков, при этом не требуется набирать текстовый код (за исключением ввода констант). Такой подход избавляет пользователя от ошибок синтаксиса, что облегчает обучение программированию на начальных этапах.
При использовании Блокли в веб-приложении на Google App Engine возможно облачное хранение созданных программ и совместный доступ других пользователей.
Открытые исходные тексты, хорошо документированные интерфейсы и межъязыковая поддержка делают Блокли популярным среди разработчиков подобных решений. По оценкам, аудитория Блокли составляет десятки миллионов пользователей[4].
Интернационализация
Блокли изначально ориентирован на интернационализацию: ядро библиотеки переведено на десятки языков, включая русский[5]. Для упрощения перевода на другие языки для Блокли и Blockly Games открыт соответствующий раздел на вики-платформе Translatewiki.net[6][7].
История
Непосредственным предшественником Блокли считается система App Inventor, которая, как и многие другие решения этого класса, вдохновлена успехом Скретча. Нил Фрейзер (Neil Fraser) разработал Блокли для замены библиотеки OpenBlocks, использовавшейся в App Inventor[8]; в этом качестве она используется по сей день.
Блокли был выпущен в 2012 году.
Авторы: Нил Фрейзер, при участии Эллен Спертус (Ellen Spertus) и Марка Фридмана (Mark Friedman).
Что касается релизов, Блокли не ориентирован на версии с долгосрочной поддержкой: по состоянию на 2014 год продукт обновлялся непрерывно и последняя версия была доступна на GitHub.
Реализация
Блокли реализован как библиотека файлов на языке JavaScript. Библиотеку можно интегрировать в веб-приложение[9]. Поддерживается расширение визуального языка за счёт определения новых блоков, включая их форму, динамику и программируемый код, генерируемый этими блоками[10].
Работа Блокли осуществляется на клиентской стороне, поэтому возможно использование без отдельного веб-сервера.
Графический редактор Блокли
Графический редактор Блокли работает с двумя видами объектов: блоками и вставками.
Блоки представлены в виде операторов, управляющих конструкций, процедур и функций. Вставки используются для указания констант, выражений и вызова функций. Процесс составления программы напоминает сборку мозаики из элементов. После завершения составления пользователь может сгенерировать программный код и выполнить его в среде веб-приложения с Блокли.
Редактор обеспечивает частичный контроль типов, не позволяя использовать блоки несовместимых типов в простых ситуациях.
Язык Блокли
Основные управляющие конструкции языка Блокли типичны для процедурных языков — различные виды циклов и условные операторы.
Доступно создание процедур и функций с параметрами.
Встроен набор алгебраических, тригонометрических и логических функций.
Язык поддерживает работу с текстом и списками.
Все переменные в Блокли являются глобальными.
Поддерживаются типы данных: числа, строки, логические значения, цвета. Контроль типов частичный: редактор не принимает блоки с несовместимым типом в простых случаях, но в сложных конструкциях возможны ошибки типов.
Ввод и вывод сведены к элементарному вводу с клавиатуры и выводу выражений во всплывающем окне.
Генераторы кода Блокли
По состоянию на 2014 год библиотека содержала генераторы кода для JavaScript, Python, Dart. Получаемый код доступен пользователю через графический интерфейс, что позволяет использовать Блокли для обучения промышленным языкам программирования.
Приложения, использующие Блокли
Примером применения Блокли служит обучающее приложение Blockly Games (в русскоязычной версии — «Игры для будущих программистов»)[11][12].
Организация code.org[13] реализовала ряд курсов для начального обучения программированию на базе Блокли. Эти курсы на протяжении многих лет пользуются популярностью, особенно в рамках кампании «Hour of Code» («Час кода»)[14]. По состоянию на 2014 год курсы частично русифицированы.
Онлайн-школа Made with Code[15] ориентирована на девочек[16]; в проект компания Google инвестировала 50 миллионов долларов[12].
Современные версии App Inventor используют Блокли как редактор визуальных программ. На сайте проекта Blockly представлены ссылки на ряд других обучающих игр и веб-приложений[17].
BlocklyDuino[18] — графический редактор для программирования контроллеров Arduino, популярных в образовательной и любительской робототехнике.
LearnToMod[19] — коммерческое расширение для Minecraft, позволяющее создавать пользовательские модификации на Blockly или чистом JavaScript[20].
Verge3D — браузерный 3D-движок, экспортирующий сцены из редакторов (Autodesk 3ds Max, Blender) и поддерживающий подключение интерактивных сценариев через Puzzles — расширение Блокли[21].
Сравнение с аналогичными системами
Среди программ для обучения программированию на русском языке Блокли обычно сравнивают с также русифицированной системой Скретч. По отзывам педагогов, приложения на Блокли нередко лучше интегрируются в образовательный процесс[22].
Педагоги активно используют Блокли для популяризации программирования среди школьников[23].
В англоязычных странах количество языков визуального программирования гораздо больше, но благодаря успеху курсов на базе Блокли, создаваемых некоммерческой организацией code.org[24], Блокли также занимает заметное место в образовательной сфере.
Примечания
Литература
- Sam Patterson. Ch. 5. Blockly-Based App Programming. Why Blockly // Programming in the Primary Grades: Beyond the Hour of Code : [англ.]. — Rowman & Littlefield, 2016-03-21. — P. 35—48. — ISBN 9781475825459.
Ссылки
- Официальный сайт
- GitHub-репозиторий Блокли
- Игры Блокли (GitHub) (рабочее веб-приложение, Инструкции для локальной установки)
- Демонстрационные примеры использования Блокли
- Blockly.Ru. Программирование на Blockly — Blockly Programming. Дата обращения: 9 апреля 2016.
- Сообщество Blockly в Google+ («Учимся с Google»)
- Чему можно научиться с помощью Blockly и Code? НОВАТОР (13 мая 2014).


