Компания Google представила новый визуальный язык программирования Blockly


Компания Google выпустила новый визуальный язык программирования Google Blockly, который позволяет создавать программы без ввода каких-либо символов или текста, манипулируя только набором типовых логических блоков, соединение которых, напоминающее составление пазла, позволяет реализовывать заданную алгоритмическую функциональность. Технически этот визуальный язык реализован на JavaScript и позволяет составлять программы прямо в браузере, просто перетаскивая и компонуя в логические цепочки блоки, после чего такая программа может быть скомпилирована в более традиционный целевой язык, такой как JavaScript, Dart или Python. Код проекта распространяется под лицензией Apache.

Источником вдохновения для Blockly послужил похожий проект AppInventor, изначально развиваемый для платформы Android. При этом сам AppInventor в свою очередь был вдохновлен языком Scratch. Существует альтернативная разработка Scratch, которую принципиально сделал открытым Калифорнийский университет в Беркли (University of California at Berkeley) – это Snap (также известный как Build Your Own Blocks).

От других языков визуального программирования, которых насчитывается около сотни, Blockly отличается двумя принципиальными моментами. Во-первых, это сильный акцент на визуальной составляющей разработки; по аналогии с высокоуровневыми языками предложено называть подобный тип языков "сильно-визуальными". Такой подход востребован для новых сенсорных устройств, где ввод традиционного текста затруднён, кроме того такая форма программирования, как показывает опыт, имеет гораздо более легкий порог вхождения, в частности, программы на Google Blockly составляют даже дети.

Второй принципиальный момент – это возможность кросс-компиляции в традиционные языки программирования, что создает условия для реализации самых разных подходов по дальнейшему развитию проекта. Например, отдельные части программы могут очень быстро создаваться на Google Blockly, затем после компиляции, например в Python, исходный код такой программы может быть доработан уже на Python, или даже вставлен в уже готовый проект в целях его расширения. В последнем случае приводится пример создания на Google Blockly расширения к Gmail для обеспечения фильтрации писем.

Google считает, что это типовой случай в современном программировании, например при написании некоего расширения к офисному пакеты около 90% кода реализует "полезную логику", а 10% - просто код сопряжения этого расширения с API хост-программы. Google считает, что в таком случае очень удобно быстро “собрать” собственно логику приложения на Google Blockly, тогда как весь более низкоуровневый код работы с API – дописать уже на Python или Dart.