Blockly

维基百科,自由的百科全书
跳到导航 跳到搜索

Blockly 是一款运行在网页客户端的 JavaScript 程式库,目的是用来打造视觉化程式设计语言,且同时附带编辑器。它是一项由谷歌根据 Apache2.0 许可的开放源码专案。常见被应用在网页浏览器中,视觉上与 Scratch 差不多。Blockly 也可于 AndriodiOS 中运行,但无法获得网页浏览器的全部特性。

Blockly 是使用能在网页上拖拉并相互连接的视觉化方块,使得程式码的撰写更加容易,并且可以产生 JavaScript,PythonPHP 或 Dart 等原代码。它也可以定制产生任何含有文字的电脑语言。[1]

历史[编辑]

Blockly 的发展始于 2011 年夏天,首次是在 2012 年的 Maker Faire 公开发布。Blockly 最初是为了替代 App Inventor 的 OpenBlocks 所设计的。[2] Neil Fraser 负责启动这个计画,并且与 Quynh Neutron、Ellen Spertus 以及 Mark Friedman 一同为主要贡献者。

使用者介面[编辑]

Blockly 编辑器的预设使用者介面是由工具箱(toolbox)、工作区(workspace),工具箱内有可用的程式方块,使用者可拖拉出(从"工具箱")方块,并且在工作区进行安排。工作区还包括在预设情况下,一个缩放图示和一个用来删除程式方块的垃圾桶。[3] 特别的是,这个编辑器允许程式方块被开发者启用或是限制某些功能。

订制化[编辑]

Blockly 包括一组通用功能的程式方块,但可以通过订制化以增加更多的程式方块。新的程式方块需要一组定义方块的数据以及方块逻辑的程式码产生器。方块定义数据决定了方块的外观(使用者介面)而产生器负责产生被翻译对象的程式码。方块定义与程式码产生器可以被放在 Javascript 中,或者可以利用 Block Factory,这是一种用来产生新的方块的工具,其原理是利用方块来产生新方块的相关数据;让创建新的方块更加容易。

应用[编辑]

Blockly 被使用在一些著名的计画中,其中包括:

  • 麻省理工学院的 App Inventor,用来创造应用程序。[4]
  • Blockly Games 是一套教育性质的电脑游戏,教导程式设计的概念,如回圈与条件分支。[5][6]
  • Code.org 教入门级的程式设计,已经有数以百万计的学生在他们的 Hour of Code 计画中了。[7]
  • 来自 Code For Life 的 Rapid Router,教导小学生程式设计的概念。[8]
  • RoboBlockly,一款以网页为操作基底的机器人模拟环境,用来教导程式设计与数学。
  • Verge3D 利用 Blockly 作为 WebGL 的脚本环境 (被称为拼图)。[9]
  • Wonder Workshop,用在控制他们的 Dot and Dash 教育机器人。[10]

功能[编辑]

  • 基于网页为操作基底来使用 SVG,而不是使用 Flash
  • 可完全客户端运行的 JavaScript
  • 支持主要的网络浏览器包括:Chrome, FirefoxSafari,Opera,IE
  • 支持行动载具,如 安卓 以及 iOS
  • 支持许多程式设计架构,包括变数,函数, 阵列等
  • 支持最小型别检查,是一种弱型别的程式语言
  • 订制化方块扩展容易。借由使用 Block Factory 让 Blockly 打造 Blockly
  • 可生成干净的代码[11]
  • 可单步执行代码以进行追踪和除错[12]
  • 已经翻译50种以上的语言[13]
  • 支持从左到右或者从右到左的文字显示 [14]

参考文献[编辑]

  1. ^ Google's Blockly Teaches You to Create Apps. NBC Bay Area. 
  2. ^ Google Groups. Groups.google.com. [16 January 2018]. 
  3. ^ Google Blockly - A Graphical Language with a Difference. I-programmer. 
  4. ^ MIT App Inventor 2. MIT. 
  5. ^ Google Introduces Kids to Coding Through Blockly Games Project. EWeek. 
  6. ^ Blockly: Maze Archives - BrainPOP Educators. BrainPop. 
  7. ^ Translate Code.org. Code.org. 
  8. ^ Rapid Router. Ocado Technology. 
  9. ^ Verge3D 1.0.2 Brings Instant Web Publishing, New Puzzles and More!. Soft8Soft. 
  10. ^ Wonder Workshop Blockly. Wonder Workshop. 
  11. ^ Blockly Demo. Blockly-demo.appspot.com. [16 January 2018]. 
  12. ^ Blockly Demo: JS Interpreter. Blockly-demo.appspot.com. [16 January 2018]. 
  13. ^ Localisation statistics for the Blockly core module. Translatewiki.net. [16 January 2018]. 
  14. ^ Blockly Demo: RTL. Blockly-demo.appspot.com. [16 January 2018]. 

外部连结[编辑]