Blockly是一个完全可视化的模块化编程网站,属于图形化编程语言。
2012年6月,Google发布了完全可视化的编程语言Google Blockly,类似MIT的儿童编程语言Scratch, 你可以通过类似玩乐高玩具的方式用一块块图形对象构建出应用程序。每个图形对象都是代码块,你可以将它们拼接起来,创造出简单功能,然后将一个个简单功能组合起来,构建出一个程序。整个过程只需要鼠标的拖曳,不需要键盘敲击。类似Google最近放弃的App Inventor,不清楚Blockly与App Inventor或Scratch有何联系。
Blockly一种在网页上运行的图形化编程语言。使用者以拖拽拼图的方式开发出应用程序。不需要任何的代码编写。例如:
Blockly编程示例
效果演示:走迷宫 – 使用Blockly语言破解迷宫路径。
代码转换 – 把Blockly代码转换成JavaScript, Dart, Python 或 XML 代码。
RTL – Blockly语言中right-to-left模式中的效果(阿拉伯语和希伯来语习惯).
Blockly语言2012年还处于技术探讨阶段,希望开发人员使用Blockly,给予反馈,想出新的能使用它的地方,所有的代码都是开源的。
Blockly是为应用程序添加可视代码编辑器的应用。Blockly编辑器使用卡合的图形块(后文称图形块为积木,像乐高积木一样,使用者可以自由搭配积木)来表示代码概念,如变量,逻辑表达式,循环等。它使得用户可以不必关注语法细节就能直接按照编程原则进行编程。图形块形式的编程易于初级用户或年龄较小的学生熟悉编程,利用图形块的编程方式,理解编程,实现创意!
Blockly的优势不在于定义界面有哪些功能积木,重要的是可灵活定义积木块,自由搭配积木块,使一堆卡合的积木块翻译出一种通用的XML语言,运算出相应的结果。
界面整体称为工作空间,主要分为三个区域,分类区、积木区、脚本区
Blockly初始时,将分类XML转化为分类区和积木区,生成Workspace,运行时,将脚本区中的积木组,转成对应的代码段,然后转成可执行的高级编程语言,获得结果。
Blockly由JavaScript编写,利用Google的closure-library技术实现,使用npm进行包管理,gulp进行代码打包生成。Blockly源码地址 。
另外npm build打包时会生成4类文件blockly_compressed.js、blockly_uncompressed.js、blocks_compressed.js、[language]-compressed.js,blockly文件为核心代码文件,blocks文件为Blocks积木代码文件,[language]文件为积木对应的高级语言代码文件。
Blockly Demo例子可以直观的感受Blockly使用方法,从Workspace的生成(toolbox、fixed、resizable等),到积木组的执行(interpreter、code等),再到积木的制作(graph、blockfactory等),具体使用方式可参考Blockly的开发者文档。
Blockly引入了playground例子,后期Scratch每一个模块都是使用playground为例子,playground例子包含了项目绝大部分功能。
左侧即为Blockly比较重要的特性,每一项都可以触发Workspace事件,使用不同的方式相应。
LTR:控制分类或的对齐线在Workspace左侧还是右侧对其;
Categories:显示不同的分类;
Start:控制分类在Workspace上下左右侧显示;
Classic:Workspace的主题;
Export/Import: 脚本区的脚本导入导出xml;
To [language]:脚本区的脚本生成对应高级语言代码;
Stress test:使用不同的方式生成积木代码,显示先脚本区;
Log event:Workspace的事件日志记录器,勾选后,控制台将会打印事件日志;
在越来越丰富的可视化编程环境中,Blockly仅仅是其中的一个,Blockly不是所有应用程序的解决方案。以下是一些您可能会发现有用的其他可视化编辑器:
好在Blockly是Google出品,社区非常强大,在前几年Google开发者大会上都有体积Blockly,而使用广泛的少儿编程软件Scratch3.0,基于Blockly重写,Scratch是一款面向低龄的图形化编程软件,作品百万,社区大佬众多,而且在中国,占有绝大部分的市场空间。
4. Blockly优势
下面列举几个Blockly的优势: