Компания Google представила разработанный ею новый язык программирования Blockly. Новая разработка Google дает возможность разработчику создавать приложения, не набирая никакого кода. Для создания программы придется использовать только типовые логические блоки, которые необходимо складывать подобно пазлу согласно необходимому алгоритму.
Технически Blockly реализован на JavaScript, что позволяет разрабатывать приложение непосредственно в веб-браузере, компонуя блоки в логические цепочки путем простого их перетаскивания мышкой. После такой компоновки предусмотрена компиляция программы в традиционные JavaScript, Python и Dart. Лицензия на проект принадлежит Apache.
Вдохновил компанию Google на создание этого языка аналогичный, разработанный для Android, проект AppInventor. При этом, в основу самого AppInventor легли визуальные языки Scratch, и созданная специалистами Калифорнийского университета в Беркли его альтернатива – Snap, более известный под названием Build Your Own Blocks.
Из сотни подобных визуальных языков для разработки программ, Blockly выделяется, прежде всего, двумя принципиальными отличиями. Во-первых, в Blockly основной акцент сделан на визуализацию разработки приложений, что подчеркивает его ориентацию на сенсорные устройства, на которых вводить текст не совсем удобно. Кроме того, сильная визуализация Blockly обеспечивает ему легкий порог вхождения, позволяя разобраться с ним даже ребенку.
Во-вторых, важным отличительным моментом является указанная выше способность выполнить кросс-компиляцию в другие языки, что позволяет развивать проект в дальнейшем. Например, отдельные составляющие программы могут быть легко и быстро созданы на Blockly, а в дальнейшем, после компиляции в тот же Python, могут дорабатываться на нем или вставляться в уже готовый проект. При этом Google отмечает, что сегодня, при разработке какого-либо приложения, например расширения к офисным пакетам, только десятая часть кода отвечает за сопряжение расширения с API-хостом приложения. Весь остальной код приходится на «полезную логику», которую очень удобно, и главное быстро, можно создать на Blockly, который затем доработать для взаимодействия с API на Python.
Единственным существующим минусом Blockly является невозможность разработки на нем больших программ. Основной областью применения языка являются создание небольших сервисных скриптов, со сложной логикой и неоднократно вложенными логическими и циклическими блоками. Кроме того, специалисты Google говорят о возможном расширении в ближайшее время семантики Blockly, что поставит его на один уровень с уже существующими языками программирования, перейдя от образа обучающего языка к современному мультиплатформенному языку. Скорее всего, именно из-за планируемого расширения Blockly в нем не используется упаковка логики в применяемые сегодня условно-символические схемы.
Как уже упоминалось, разработка программы ведется непосредственно в браузере. Все промежуточные результаты работы можно сохранить в XML-файле, а затем при необходимости загрузить его. Помимо циклов и ветвлений Blockly поддерживает также и рекурсию. В ближайшее время будут добавлены элементы отладки, работа с курсором, возможность генерации кода для Arduino-устройств. Кроме того, планируется реализация таких элементов программирования, как вызов обработчика в случае возникновения определенных изменений и ситуаций, передача значений процедур и функций. Также предусмотрена доработка документации по этому языку, а также возможность копирования-вставки логических блоков (их массивов).
Говоря о целях разработки Blockly, один из его авторов Neil Fraser отметил, что их задача была в том, чтобы сделать программирование доступным для более широкого круга лиц, а не только небольшой касте программистов.
Tip top stuff. I'll expect more now.