

人们经常问我们:“什么是视觉和基于文本的编程语言? 它们之间有什么区别? 为什么我们作为一家公司选择教孩子们像Scratch这样的基于视觉的编程语言,而不是从基于文本的语言开始呢?”
我们之所以选择让孩子开始使用基于视觉的编程语言,而不是基于文本的编程语言,有很多原因,但是在我们进入过多的细节之前,让我们先将其放回原处,并确保每个人都与时俱进关于我们将在本文中使用的术语。 首先,您想知道一个程序是一组指令,它们在运行时会执行某些操作。 从数独求解器到Hello World程序(Hello World程序)(从新的编程语言开始,程序员往往会编写的经典程序),可以是任何东西。
编程语言是一种形式语言,用于编写各种不同的指令,以使程序可以执行您想要的操作。 有许多不同种类的编程语言,每种编程语言都有其自己的特定用途。 术语和语法因语言而异,但是概念实际上与我们的日常语言没有什么不同。 就像“Quéhay de nuevo?”(西班牙语),“ Hurärläget?”(瑞典语)和“ What’s up?”(英语)一样,都具有相同的基本含义,所以也呼应“ Hello World! ” (PHP), 打印(“ Hello world!”) (Python),并放入“ Hello world!”(Ruby) 。 这些说明中的任何一条都会在屏幕上显示“ Hello world!”字样。
大多数编程语言都是基于文本的,但是也有很多基于视觉的编程语言。 基于视觉的编程语言是一种允许您操纵视觉元素(例如,拖放块)以创建程序的语言,而基于文本的编程语言则需要您编写一行和几行代码来构成一个程序。 我将通过向您展示Hello World程序在Scratch(基于视觉的编程语言)和C ++(基于文本的编程语言)中的外观来说明它们之间的一般差异。


Scratch(左)和C ++(右)中的Hello World程序示例。
您可能已经知道为什么我们更喜欢让孩子开始使用像Scratch这样的基于视觉的编程语言,而不是其他选择。 让我们来看看一些主要原因:
1.可读性
对于刚开始编程的人来说,Scratch更具可读性。 Scratch上的图块往往更加简单明了,即使您一生中从未接触过或看到Scratch,也很容易猜测这些图块的作用。
对于C ++示例,立即了解正在发生的事情并不容易。 您可能会看一下代码块,然后对自己说:“什么是iostream? 这些有趣的符号都是什么,它们是什么意思? main()是什么?”它不像Scratch那样简单。


考虑上面用Scratch(左)和C ++(右)编写的程序……哪一个更容易阅读?
2.易于使用
在Scratch中创建程序的方式是将带有预先编写的指令的现有块拖在一起。 因此,例如,如果您要打印等式3 + 5的结果,则可以通过在Scratch中执行以下操作来实现:


第一步:显示“ 3 + 5 is…”文本2秒钟
第二块:显示计算结果3 + 5 2秒
在C ++中,执行相同操作的程序更可能看起来像这样:


不是那么简单,是吗? 对于初次使用编码的人来说,使用它肯定不是那么容易!
3.技术知识
当您使用基于文本的语言进行编程时,首先建立基本的编程概念知识非常重要。 特别是如果您想教自己其他编程语言,则从中学习的页面或所咨询的论坛都倾向于使用程序员的术语-因此,如果您不知道循环,布尔值或阵列是,您可能会陷入一个痛苦的小世界。 对于像C ++这样稍微复杂的编程语言,在深入之前,您应该了解标头,库,函数,动态内存管理等等。 但是这些话是什么意思? 我应该如何理解这些陌生的新概念? 我如何向一个8岁的孩子解释这些概念?
使用Scratch,您不希望知道这些概念的一半,更不用说如何区分一种类型的积木了! 例如,您可能会在Scratch中使用宏块的时间编码,使用布尔块甚至没有意识到! (有趣的事实:布尔值是一个真值,即一条评估结果为true或false的语句;在Scratch中,您可以将其与盒子上的三角形末端区别开来。)


从头开始一些布尔块!
4.打字
不难发现,基于文本的编程语言中涉及的打字更多。 只需看一下Hello World程序的C ++示例—它需要129个字符才能在屏幕上打印两个小词!
大量输入会带来很多错误,包括:
- Typos:大笑您想要的-一个错字就有可能破坏您的整个程序!
- 混合特殊字符:与错别字相同,单个错误字符可能会使程序无法正常运行。 注意不要使用“:”代替“;”或“ ”代替“()”! 有一个很大的不同。
现在,我们在这里详细介绍一些细节:
- 是的,Scratch是人们没有任何经验的入门入门的好方法,但是并非所有基于视觉的编程语言都是相同的! Scratch恰好针对入门编码的人员。
- 是的,您可以使用Scratch做一些令人印象深刻的事情,但是它不能替代大多数基于文本的语言可以做的事情。 您将无法使用Scratch制作次佳的构图软件或下一个社交媒体平台。 可以将其看作是垫脚石:在这里,您可以开发真正重要的东西-扎实的程序员逻辑-无需接触所有多余的技术知识,也不必担心在检查每行代码的同时查看它您正在调试,只是为了确保没有打字错误。
那么,这篇文章的主要内容是什么? 我们在课堂上教Scratch,因为这是开发与编程相关的重要技能的好方法,例如逻辑和调试,而不必成为所有技术专家的专家,也不必花费60年的时间您所做的所有错别字。 当然,您不能使用它来编写下一个Sibelius或Facebook,但这是进入广阔而美好的编码世界的绝妙垫脚石。
如果您想了解Scratch与基于文本的编程语言之间的更多区别,请查看本文档,其中@CodeClubRik发了推文-http://bit.ly/2tfOyYv! 它显示了一些Scratch块及其等效的Python。
最初在这里发布