Когда-то давно, после первого знакомства с Google Blockly, я опрометчиво посчитал его копией Scratch (известной среды визуального программирования, созданной в Массачусетском Технологическом Институте). Но затем я решил присмотреться к Blockly повнимательнее и осознал:
• насколько неверной была моя первичная оценка языка;
• насколько сложно уловить различия между Scratch и Blockly, лишь бегло взглянув на них.
Сейчас я постараюсь загладить свою вину перед Blockly...
Замечание: по сути, Blockly – это один из компонентов Scratch. Если вы хотите создать Scratch-подобный продукт, стоит начать с Blockly.
По сути, среда Scratch состоит из нескольких компонентов:
Все три компонента собраны в единую среду разработки, в которой можно создавать Scratch-программы на основе объектов-спрайтов. Вот что можно делать с помощью Scratch.
Для сравнения, в Blockly есть только первый компонент (и немного второго) из вышеприведенного списка. Blockly не содержит пользовательского интерфейса, где виден результат запущенного кода. Но в приложениях Blockly присутствует этот недостающий компонент, и поэтому они очень похожи на Scratch. В приложениях, как правило, среда программирования решает какой-то определенный класс задач: такими задачами, например, являются выход из лабиринта или решение головоломки, а не работа с объектами-спрайтами.
Проведем аналогию с машинами. Scratch – это полностью рабочий автомобиль, а Blockly является двигателем. То есть вы сможете построить автомобиль с помощью Blockly (пример – это как раз вышеуказанные приложения), но самостоятельно он не поедет.
Это происходит потому, что Blockly в действительности является библиотекой для создания среды визуального программирования, которую можно использовать в веб-приложениях.
Когда я только познакомился с Blockly, я упустил из виду эту важную деталь. Но потратив время на изучение Blockly и создав на нем простое приложение, мне всё стало ясно.
Так может перестать сравнивать эти два настолько разных языка?
Перечислю, для каких целей подходят Blockly и Scratch.
Если вы хотите познакомить детей с программированием, лучше использовать Scratch. У Scratch более функциональная визуальная среда, чем у любого из приложений Blockly. К тому же у Scratch уже есть целая система обучающих материалов и большое сообщество пользователей и преподавателей. Сфера его применения в детских образовательных учреждениях – различная проектная, кружковая деятельность; но, к сожалению, Scratch плохо вписывается в российскую классно-урочную систему. Здесь гораздо лучше подходит Blockly.
Blockly стоит выбрать, если есть необходимость в создании среды визуального программирования. У Blockly есть важное преимущество – возможность масштабирования кода. Blockly может компилировать код в различные языки программирования: JavaScript, PHP, Dart или Python. Вы сможете также создать собственную библиотеку визуальных элементов, которая будет удовлетворять вашим потребностям.