Компания Google разработала новый визуальный язык программирования Google Blockly, который позволяет создавать программы без ввода каких-либо символов или текста, манипулируя только набором типовых логических блоков. Соединение подобных блоков напоминает составление пазла, позволяя реализовывать желаемый алгоритм.
Визуальный язык Blockly реализован на JavaScript и позволяет составлять программы прямо в браузере, просто перетаскивая и компонуя в логические цепочки блоки, после чего такая программа может быть скомпилирована в целевой язык, такой как JavaScript, Dart или Python. Код проекта распространяется под лицензией Apache.
От других языков визуального программирования Blockly отличается двумя принципиальными моментами. Во-первых, это сильный акцент на визуальной составляющей разработки (по аналогии с высокоуровневыми языками предложено называть подобный тип языков «сильновизуальными»). Подобный подход удобен при использовании сенсорных устройств, где ввод традиционного текста затруднён.
Второй принципиальный момент – это возможность кросс-компиляции в «традиционные» языки программирования, что расширяет возможности для дальнейшего развития проекта. Например, отдельные части программы могут очень быстро создаваться на Google Blockly, затем после компиляции, например в Python, исходный код такой программы может быть доработан уже на Python, или даже вставлен в уже готовый проект в целях его расширения. В Google считают, что это типовой случай в современном программировании, например при написании некоего расширения к офисному пакеты около 90% кода реализует «полезную логику», а 10% - просто код сопряжения этого расширения с API хост-программы. Google считает, что в таком случае очень удобно быстро собрать логику приложения на Google Blockly, тогда как весь более низкоуровневый код работы с API – дописать уже на Python или Dart.
Временное ограничение языка – создание небольших сервисных скриптов, содержащих сложную логику и многократно вложенные логические и циклические конструкции, которые, по мнению специалистов Google, проще составлять именно на Google Blockly.
В следующих версиях Google Blockly планируется существенно расширить его семантику, что сделает его возможности сопоставимыми с традиционными языками программирования.
Программирование на Google Blockly осуществляется непосредственно в браузере, в процессе разработки программы её промежуточные результаты сохраняются и вновь загружаются в формате XML. Google Blockly поддерживает не только обычные циклы и ветвления, но и рекурсию. В ближайшее время планируется реализовать: элементы отладки, поддержку мобильных устройств, работу с курсором для лучшего удобства работы, генерацию кода для устройств на базе аппаратной платформы Arduino. Будут добавлены простейшие элементы событийно-ориентированного программирования – вызов обработчиков при возникновении определенных ситуаций или изменений.
Планируется существенно улучшить документацию, одновременно добавив множество новых блоков, а также реализовать возможность передачи параметров в процедуры и функции. Над логическими блоками (или сразу массивом из блоков) будет обеспечен набор визуальных операций drag & drop, cut, copy и paste.
|