技术开发 频道

高校力证:基于block的编程语言更完美!

  【IT168 资讯】如果你编过或者曾经看过基于block的编程语言,例如Scratch,你可能会有一些印象。最直接的印象是它不是用来编程的,看起来简直就像儿戏一样。另一方面,如果你尝试过教学式编程语言,则可能会更好地思考基于block的编程语言。最近,一项新的研究表明,它们比你想象的更好。

  由于看起来更像是小孩子的游戏而不是编程语言,所以很多程序员可能很难采取block语言。其实,你可以做任何有用的事情!如果,你去看一下用这类编程语言编写的程序,你就能了解它的乐趣所在了。

  来自麻省理工学院CSAIL,Alabama大学、华盛顿大学和威尔斯利学院的David Bau、Jeff Gray、Caitlin Kelleher、Josh Sheldon和Franklyn Turbak的一项新研究提供了一些证据,证明基于block的编程语言比传统的基于文本的语言更有优势:

  我们相信block语言的可学习性来自于如何解决以下三大学习障碍:

  学习编程词汇很难。block简化了这个问题,因为选择一个block比记住一个单词要容易得多:blocks依赖于识别而不是记忆。

  代码很难使用,因为它为新的程序员提供了很高的认知负担。block通过分块代码将认知负载减少到最少数量的有意义的元素。

  组装代码容易出错。通过提供约束的结构直接操纵(例如,两个不兼容的没有连接的概念),block帮助用户汇编代码而基本没有错误。

  这对初学者来说非常棒,但一旦开始写真实程序就会暴露出一些缺点。例如,使用block输入简单的算术表达式比简单的输入更难,做一些小的改变也更难。

  研究人员观察到,可视化编程语言的粘度比文本编码更高,因为它们变得更小。

  除了粘度,与文本编程语言相比,block环境可能具有其他几个可用性方面的缺点:

  低密度:block比等效文本代码在屏幕上占用更多的空间。

  搜索和导航:找到并导航到2D工作区中的block程序的相关部分可能是具有挑战性的,只有其中的一部分是可见的。

  源代码控制:协作和版本控制系统很难在没有文本表示的情况下使用。

  这些问题的解决方案是使用block操作的文本样式条目或双向的文本/块模式之间切换。

高校力证:基于block的编程语言更完美!

  Greenfoot的Stride编辑器将把用于表达级别的文本编辑与用于更高级别程序结构的拖放块相结合。

高校力证:基于block的编程语言更完美!

  Pencil Code提供块和文本之间的双向切换。该切换模式允许用户使用块学习,并用文本快速编辑。

  本文提供了一些例子,但遗漏的是最近微软公布的MakeCode,它的特点是模块与微处理器之间的模式切换:Minecraft等。

  统一块和文本的两种方法之间存在折衷。虽然双模式编辑器可以直接支持JavaScript或Java等传统文本语法的学习,但它们也会产生语法错误的认知开销,这些语法错误只能在文本模式下引入。对多个协调视图的可视化研究表明,提供多个视图的好处是可与视图之间切换所产生的认知开销相平衡。

  单模式结构化编辑器具有无语法错误的概念模型的优点,因为正在编辑的主要对象是抽象语法树。然而,为了保持一致性,其他文本编辑可能需要特殊的编辑命令。这些限制提高了编辑粘度,并且可能会增加认知障碍。

  Block代码编辑器的使用不仅使语言更容易。例如,通过使用Blockly等工具包,程序员可以实现拖放配置设置应用程序和其他实用程序。他们制作了一个很好的自由格式的用户界面。

高校力证:基于block的编程语言更完美!

  最后送所有程序员一句话:

  编程的艺术是原始的人机交互,它仍然有许多未解决的可用性挑战。程序员仍然可以做更多的工作来使所有程序可用。

0
相关文章