Blockly 让代码学习更轻松

目前还没有读者喜欢这个。
Freer than free, opener than open: The fight for the learning management systems

Opensource.com

Blockly 是许多在线教程背后的引擎,这些教程用于向所有年龄段的人们介绍编程。在本文中,我们采访了 Blockly 开发团队的 Neil Fraser,了解了团队的观点和愿景。

Interview Q&A

我们在哪里见过 Blockly?

最近几个月,我们看到了大量旨在让所有年龄段的人们参与计算机编程的活动。例如,编程一小时 组织了超过 7 万个全球活动,并已被超过 9500 万人尝试过,从 小学生到国家元首

Code.org 提供了 免费在线教程,任何人都可以几分钟内尝试。那些尝试过其中任何一个教程的人,例如 Flappy Bird 是我的最爱,都会看到画布上有一些代码块,我们可以像乐高积木一样将它们拼接在一起。

创建这些可视化代码块的平台是 Blockly,一个开源库,主要由 Google 工程师开发,并接受了来自社区中 许多其他人 的贡献,并托管在这个 Github 仓库 中。

[标题:Blockly 首页的截图]

Neil Fraser picture

Neil,请您介绍一下自己,Blockly 是如何开始的,以及您是如何参与到这个项目中的。

App Inventor 是 Google 的一个项目,它允许新手程序员为 Android 手机创建应用程序。它使用了图形化编程,易于学习且使用有趣。不幸的是,UI 是用 Java 编写的,这使得非技术用户安装和运行它成为一场噩梦。我以使用 JavaScript 构建棘手的东西而闻名,因此 App Inventor 团队请我帮忙。目标很简单,就是将他们的 UI 移植到 JavaScript,以便它可以在浏览器中运行,从而消除用户安装任何东西的需求。

在项目进行了几个月后,App Inventor 被取消了,项目的代码 转移到了 MIT。我相信我的新 UI 的潜力,并拒绝让它放弃。所以我采取了唯一可用的选择,用光了我所有累积的假期。每天我都来办公室工作。两个月后,我能够进行演示。我的经理们印象深刻,启动了 Blockly 项目,并追溯性地还给了我假期。这又是一个我热爱 Google 的例子。

这段历史的结果是,Blockly 不仅仅是一个项目的 UI;它是一个可以放入任何项目的库。现在有数百个教育、企业和业余项目都在使用 Blockly。

很高兴看到 Blockly 在计算机编程非正规教育中产生了巨大的影响。Blockly 确实是一个教程构建工具包,并且让网站创建他们自己的 编程教程 变得容易得多。您能否详细介绍一下 Blockly 社区与使用它构建教程的组织之间的互动?

Blockly 在我们的开发者新闻组中拥有非常活跃的社区。持续不断地有 pull requests 被提供,并且很多人互相帮助。偶尔,我们会瞥见开发者们使用 Blockly 的意想不到的方向。当我们收到关于程序中超过 10,000 个代码块的性能问题的错误报告时,我们只能挠头,想知道他们到底在做什么。

但在大多数情况下,我们很少有机会看到其他开发者实际在构建什么。通常,当我从新闻媒体上读到新的 Blockly 应用程序发布或美国总统使用了它时,我才会发现。

Code.org 中的教程是针对初学者的,因此它们呈现了一个简化的界面。Blockly 可以做 更多的事情,包括类型检查、代码生成(用于 Javascript、Python、Dart 和其他语言)、代码编辑 和调试,正如您的 演示 中所展示的那样。您如何看待在完整的计算机编程课程中使用 Blockly?例如,在高中水平,或大学水平的编程入门课程?

新的程序员同时在与两个难题作斗争:语法难题和逻辑难题。Blockly 消除了语法难题,在 Blockly 中不可能犯语法错误。学生可以完全专注于条件语句、循环、变量和其他核心概念背后的逻辑,而无需担心不平衡的括号或遗漏的分号。

然而,我们认为,一旦理解了逻辑基础知识,学生就应该迁移到传统的基于文本的语言。Blockly Games 就是一个例子,它在每个关卡的最后都会显示学生创建的生成代码。Blockly Games 还在课程的结尾处温和地引导学生从代码块转向基于文本的编程。我们不希望学生使用基于代码块的编程超过必要的时间。没有人会因为他们有三年的 Blockly 经验而找到工作。

您的目标受众是广泛的国际受众。您能否详细介绍一下将 Blockly 翻译成 40 多种语言的努力,以及社区中的人们如何帮助这些工作?

世界上 94% 的非英语母语人士很难记住字母 'R'、'E'、'P'、'E'、'A'、'T' 以这样的顺序排列会使某些事情发生不止一次。想象一下,在学习编码的同时,还必须记住 'كرر' 或 'عودة'。诚然,只有几十个单词需要记住,但被强迫这样做,再加上理解逻辑的斗争,是一个额外的障碍。

将 Blockly 翻译成母语可以让人们将语言障碍推迟到掌握编程概念之后。我们非常感谢人们通过提交翻译提供的帮助。令人惊叹的是,看到越南五年级的学生跳入 Blockly 并开始自己摸索,而无需老师的指导。

Blockly 的许多设计决策似乎都是为了接触尽可能多的受众。例如,完全作为 Javascript 客户端运行(无需服务器),作为一个小的紧凑型库,支持平板电脑和触摸屏,并考虑到可访问性。与此同时,必须做出一些艰难的选择,例如放弃旧的浏览器版本,以便能够集中精力。做出这些决策的过程是什么?

大多数新学生对编程没有特别的兴趣。我们大约有 20 秒的时间来吸引他们,否则他们就会感到无聊,然后跑去玩电子游戏。每个入门障碍(安装 Java,或下载速度慢,或学习英语,或混乱的 UI)都代表着大量受众的流失。我们依靠指标、用户研究和开发者社区的反馈来识别和消除这些障碍。

Blockly 被描述为入门毒品。它很容易尝试,它会让人上瘾,并且它会将用户推向更难的东西。可能不是最讨人喜欢的类比,但在某种程度上是准确的。

您对 Blockly 的未来有什么愿景,开源社区如何提供帮助?

Google 将继续增强 Blockly 环境,添加新功能,例如用于多用户项目的实时协作,或用于大型项目的 Google 地图式缩放,或用于盲人用户的键盘控制。但 Google 的贡献现在变得次要了。Blockly 的未来已经被外部开发者接管。他们是那些 fork 它、扩展它并在教育、家庭自动化、机器人技术和数据可视化中使用它的人。他们是将它翻译成 40 多种语言(包括克林贡语)的人。他们是将基于 Blockly 的应用程序送到世界各地学生手中的人。我为开发者社区所从事的工作感到无比自豪。

初学者入门
开源

关于如何开始参与开源的文章合集

标签
User profile image.
Luis Ibáñez 在芝加哥的 Google Inc. 担任高级软件工程师。

4 条评论

当我刚开始学习编码时,我使用过 Google App Inventor 一段时间,我喜欢它的简洁性。当我发现他们要放弃它时,我感到很失望,但我很高兴听到有人继续这项工作。当我在使用 Max/MSP(另一种可视化编程语言)时,我学习了 OOP 的基础知识,而 App Inventor 对我来说是将这些知识桥接到基于文本的语言的好方法。

很棒的文章,Luis!我喜欢阅读这篇文章,并且已经看到许多学生在使用现在我知道正在运行 Blockly 的网站。

这看起来完全像 MIT 的 Scratch。谷歌看到适合复制 Scratch 而不注明出处,这真令人失望。

感谢您指出与 Scratch 的相似之处。

这确实不是巧合。

可视化编程范式 [https://en.wikipedia.org/wiki/Visual_programming_language] 已经存在了几十年。自 20 世纪 80 年代中期以来,我们在计算机图形系统中就有了可视化编程。例如 1985 年的 PICT 和 PROGRAPH,以及 1986 年的 BLOX。自 20 世纪 80 年代初期以来,我们在数据处理和电子领域也看到了 LabVIEW。

在 20 世纪 90 年代初期,我们有在 VAX 和 Sun Sparc 工作站上运行的 IDL,以及在 Silicon Graphics 机器上运行的 Open Inventor;以及 IBM 用于数据分析的 OpenDX。

在 20 世纪 90 年代中期,我们有用于数据处理的 SIMULINK (Matlab)。在教育领域,Alice 和 Etoys 在 20 世纪 90 年代后期提供了可视化块编程。

到 21 世纪初期,我们还在 NXT LEGO Mindstorms 上为机器人技术和 Blender 为计算机图形提供了可视化块编程。

用于动画的精灵角色早在 20 世纪 80 年代初期就已用于 Vic 20 和 Commodore 64。控制角色移动可以追溯到 20 世纪 60 年代后期的 Turtle Graphics 和 Logo 编程语言。

...等等...

如今,多种可视化编程界面之间外观的相似性,是我们从该领域 40 多年的探索中共同学到的有效经验的自然结果。

完整的归因链可能应该追溯到 1968 年 Douglas Engelbart 的“所有演示之母”。 [https://en.wikipedia.org/wiki/The_Mother_of_All_Demos]

这个练习强化了开源思维的一个原则

“我们建立在前人的基础上。”

这在视频系列中得到了出色地呈现

“万物皆混音”
http://everythingisaremix.info/watch-the-series/

这可能就是本杰明·富兰克林和托马斯·杰斐逊热衷于让思想不受所有权限制地流动的原因,以便它们能够进化、成熟并结出果实,使每个人受益。

回复 ,评论者:不是 Google 的产品 (未验证)

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.