Blockly

Блоклі (англ. Blockly) - це бібліотека для створення середовища візуального програмування , яка може бути вбудована в будь-який веб-застосунок. Блоклі містить графічний редактор, що дає змогу складати програми з блоків, і генератори коду для підготовки виконання програми в веб-середовищі[2][3].

Blockly
Тип Library
Автор(и) Нейл Фрейзер, Куін Нейтрон, Еллен Спертус, Марк Фрідман
Розробник Google, MIT
Перший випуск травень 2012 (2012-05)
Стабільний випуск 1.20190215.0 (15 лютого, 2019 (2019-02-15))
Версії Q4 2020 (17 грудня 2020)[1]
Репозиторій github.com/google/blockly
Нестабільний випуск 1.20190419.0 (19 квітня, 2019 (2019-04-19))
Платформа веб-браузер
Операційна система Android, iOS
Мова програмування JavaScript
Розмір 150 KБ
Доступні мови English  (50)
Ліцензія Apache 2.0
Вебсайт developers.google.com/blockly

 Blockly у Вікісховищі

Особливості

Розробляється і підтримується компанією Google з 2012 року. Вільно поширюється разом c вихідним кодом за ліцензією Apache 2.0.

Цільовою аудиторією проєкту є програмісти, що розробляють веб-застосунки, що включають Блоклі, в основному для навчальних цілей.

Для створення програм користувач повинен переміщувати графічні блоки, не вдаючись до набору текстів, за винятком введення значень констант. Візуальне програмування на Блоклі звільняє користувача від контролю за правильністю синтаксису програми, що є великою підмогою на стадії початкового навчання користувача програмування.

У разі розміщення веб-застосунка з Блоклі на Google App Engine користувачеві доступно збереження створеної програми в «хмарі» Google з можливим доступом до програми інших користувачів.

Відкриті і безкоштовні вихідні тексти, документованість інтерфейсів Блоклі, інтернаціоналізація проекту залучає до Блоклі програмістів, що розробляють застосунки, що включають Блоклі. В результаті число кінцевих користувачів Блоклі становить десятки мільйонів[4].

Інтернаціоналізація

Блоклі з самого початку орієнтований на інтернаціоналізацію, ядро Блоклі переведено на десятки мов, включаючи українську[5]. Для полегшення перекладу на інші мови проєкту Блоклі розробниками відкрито відповідний розділ на вікі-платформі Translatewiki.net[6] [7].

Історія

Безпосереднім попередником Блоклі автори називають систему App Inventor. App Inventor, в свою чергу, як і багато інших систем цього класу, зобов'язаний своєю появою успіху відомої системи Скретч. Ніл Фрейзер (англ. Neil Fraser) написав Блоклі для заміни використовуваної в AppInventor бібліотеки OpenBlocks[8].

Реалізація

Блоклі реалізований як бібліотека файлів мовою JavaScript . Блоклі може вбудовуватися в веб-застосунок[9]. Є можливість розширення візуальної мови Блоклі шляхом визначення нових блоків, що містять задання форми цього блоку (і шляхів динамічної її зміни) і програмного коду, що генерується цим блоком[10].

Блоклі виконується на клієнтській стороні, тобто, може використовуватися без веб-сервера.

Графічний редактор Блоклі

Графічний редактор Блоклі оперує двома видами об'єктів: блоками і вставками.

Блоки представляють в мові оператори, процедури, функції, виклики процедур. Вставки служать для оформлення констант, виразів і виклику функцій. Складання програми графічним редактором схоже на процес збору розрізаної на частини головоломки. Після складання програми можна викликати генератор коду і виконати згенерований код в середовищі веб-застосунку, що включає Блоклі.

Графічний редактор здійснює частковий контроль над типами, не дозволяючи в елементарних ситуація надавати змінним значення невідповідного типу.

Мова Блоклі

Набір керуючих конструкцій в ядрі Блоклі традиційний для процедурних мов програмування: це кілька видів циклів і умовних операторів.

Блоклі дозволяє створювати процедури і функції з параметрами.

У мову вбудований досить розвинений набір алгебраїчних і тригонометричних функцій, підтримується повноцінний набір логічних виразів.

Мова містить набір процедур для роботи з текстом і списками.

Всі змінні Блоклі глобальні.

Блоклі працює з наступними типами даних: числа, рядки, булеві значення. Контроль типів здійснюється частково: редактор не дозволяє використовувати вставки там, де вони не підходять за типом, але в більш складних конструкціях невідповідність типів можлива.

Вбудоване введення і виведення значень величин у Блоклі представляє тільки елементарні можливості введення з клавіатури і виведення окремих виразів в спливаючому вікні.

Генератори коду Блоклі

Блоклі включає набір генераторів коду на наступні мови: JavaScript, Python, Dart. Результат роботи генераторів може бути доступний користувачеві через графічний інтерфейс. Ця можливість дає змогу використовувати Блоклі під час навчання промисловим мовам програмування.

Програми, що використовують Блоклі

Прикладом використання Blockly є такі навчальні програми, як Blockly Games[11][12].

Організація code.org[13] розробила на базі Блоклі ряд курсів для початкового навчання програмуванню. Ці курси користуються в світі великою популярністю, особливо під час кампанії «Hour of Code» («Час коду»)[14].

Інша онлайн школа програмування, Made with Code[15] - орієнтована на дівчаток[16]. У цей проєкт компанія Google вклала 50 млн доларів[12].

Сучасні версії App Inventor використовують Блоклі як редактор візуальних програм.

BlocklyDuino[17] - графічний редактор для програмування контролерів Arduino, популярних в навчальній і аматорській робототехніці.

LearnToMod[18]  - комерційне розширення Minecraft, дає змогу створювати користувачам свої власні модифікації гри, використовуючи для цього Blockly або чистий JavaScript .

Verge3D - браузерний 3D-рушій, що експортує сцени безпосередньо зі стандартних редакторів (Autodesk 3ds Max, Blender), з можливістю додавання інтерактивних сценаріїв за допомогою Puzzles - розширення Блоклі[19].

Порівняння з аналогічними системами

У класі програмного забезпечення для початкового навчання програмуванню Блоклі доречно порівнювати з системою Скретч[20].

Педагоги успішно використовують додатки Блоклі для заходів з популяризації програмування серед школярів .

Серед візуальних мов програмування для навчання поширені курси на базі Блоклі, створені некомерційною організацією code.org[13].

Примітки

  1. Release Q4 2020 · google/blockly — 2020.
  2. Metz, Cade (1 червня 2012). Google Blockly Lets You Hack With No Keyboard. Wired. ISSN 1059-1028. Процитовано 26 квітня 2020.
  3. Google's Blockly puts visual programming in the browser - The H Open: News and Features. www.h-online.com. Процитовано 26 квітня 2020.
  4. Година коду: приєднуйтесь до руху. Code.org. Процитовано 26 квітня 2020.
  5. Semionenkov_Blockly2.pdf. Google Docs. Процитовано 26 квітня 2020.
  6. Translating:Blockly — translatewiki.net. translatewiki.net. Процитовано 26 квітня 2020.
  7. Translating | Blockly. Google Developers (англ.). Процитовано 26 квітня 2020.
  8. Google Групи. groups.google.com. Процитовано 26 квітня 2020.
  9. Get Started | Blockly. Google Developers (англ.). Процитовано 26 квітня 2020.
  10. Custom Blocks | Blockly. Google Developers (англ.). Процитовано 26 квітня 2020.
  11. https://blockly-games.appspot.com/. blockly-games.appspot.com. Процитовано 26 квітня 2020.
  12. http://www.eweek.com/it-management/google-introduces-kids-to-coding-through-blockly-games-project.html.
  13. Вивчайте інформатику. Змінюйте світ.. Code.org. Процитовано 26 квітня 2020.
  14. Code.org Launches Code Studio, A Toolset And Curriculum For Teaching Kids Programming. TechCrunch (амер.). Процитовано 26 квітня 2020.
  15. www.madewithcode.com. www.madewithcode.com. Процитовано 26 квітня 2020.
  16. Google's Made with Code encourages girls to embrace computer science. Engadget (англ.). Процитовано 26 квітня 2020.
  17. http://www.gasolin.idv.tw/public/blockly/demos/blocklyduino/index.html.
  18. Mod Minecraft & Learn Code - LearnToMod Software. LearnToMod (англ.). Процитовано 26 квітня 2020.
  19. Verge3D: an artist-friendly toolkit for 3D web experiences. Soft8Soft (амер.). Процитовано 26 квітня 2020.
  20. Сообщество учителей Intel Education Galaxy -> Чему можно научиться с помощью Blockly и Сode?. web.archive.org. 26 грудня 2014. Процитовано 26 квітня 2020.

Література

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.