Blockly против Scratch | Статьи | Blockly.Ru

Когда-то давно, после первого знакомства с Google Blockly, я опрометчиво посчитал его копией Scratch (известной среды визуального программирования, созданной в Массачусетском Технологическом Институте). Но затем я решил присмотреться к Blockly повнимательнее и осознал:
• насколько неверной была моя первичная оценка языка;
• насколько сложно уловить различия между Scratch и Blockly, лишь бегло взглянув на них.

Сейчас я постараюсь загладить свою вину перед Blockly...

Замечание: по сути, Blockly – это один из компонентов Scratch. Если вы хотите создать Scratch-подобный продукт, стоит начать с Blockly.

Scratch

По сути, среда Scratch состоит из нескольких компонентов:
1. Визуальный редактор, который представляет собой набор графических блоков определенной формы. Благодаря этому редактору, одни блоки Scratch соединяются с другими.
2. Интерпретатор, генерирующий и запускающий код программы, собранной из графических блоков. Этот компонент не имеет визуального представления, он скрыт от пользователей.
3. Пользовательский интерфейс. В нем можно увидеть результат работы вашей программы.

Все три компонента собраны в единую среду разработки, в которой можно создавать 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. Вы сможете также создать собственную библиотеку визуальных элементов, которая будет удовлетворять вашим потребностям.