Scratch与编程猫都仅支持普通变量与列表(至关于数组)两种类型。可是,具体使用过程当中,发现两者仍是各有利弊。
对于基本的列表操做,例如建立,初始化,增删改查,咱们且不论。本短文中主要分析在大数据量状况下,两个软件各自的管理方案及各自存在的问题。
另外一方面,Scratch与编程猫都提供了对消息广播的支持——这与这些软件的事件驱动编程及多线程编程支持是分不开的。可是,这方面Scratch设计上存在明显的仓促,而编程猫则略胜一筹。详见下文。编程
本文测试软件都是使用上述两个软件的离线版本,且都是最新版本:Scratch 3.6和编程猫源码编辑器KITTEN 3.4.26。小程序
Scratch的列表支持
在建立列表后,支持轻松地添加初始数据,经过如图所示的后面“+”号或者干脆输入一项后按回车键便可。
另一个很强大的支持是支持文本数据的导入与导出,见下图:数组
固然,文本文件(.txt 、.csv、 .tsv)中的数据是要按规律排列的。当文本内容达到三五十行之后,这种功能的提供就太及时了。对于青少年编程中,加入适当的文件编程知识是很是必要的。多线程
第一,不支持上面的直接按回车添加新数据。
第二,根本不支持存储在文本中大量数据的导入与导出!这一点实在不太友好!架构
窃觉得:编程猫既然定位之一是全国青少年编程等级考试与比赛,应当在开发环境中所有包含Scratch如今的支持(再适当扩展,以体现出更强大的功能)。由于许多青少年编程等级考试内容是要求参赛者很是熟练Scratch的各类细节支持的,而若是编程猫的功能与Scratch交叉——而不是包含关系,将对学编程猫的考生是一种误导(例如,某考生在使用编程猫时可能轻松实现某种编程,可是使用Scratch时却捉襟见肘,甚至是无所适从,那么麻烦大了)!框架
Scratch在“事件”类积木组中提供了消息相关的积木支持命令,以下图所示:编辑器
编程猫也是在“事件”类积木组中提供了消息相关的积木支持命令,以下图所示:ide
乍看起来,好像支持同样!?但其实,仍是有一个很大差距的。测试
例如一个小程序中使用20条以上消息进行多线程通信管理,那么,如何统一管理这些消息,既高效又不易出现错误呢?大数据
在使用Scratch编程的最开始遇到上述问题时,我天然想到能不能使用列表来管理这些消息?
【问题1】建立列表是没有问题的,如存储“消息一、消息二、消息3......“。
【问题2】广播消息方面,也没有问题!你们注意,在Scratch中‘椭圆’形状的积木都是表明变量积木;所以,即便在广播消息时不能直接广播列表中的消息文本,可是能够借助于一个中间变量实现,以下图所示:
这里的代码不用解释了吧,你们必定可以理解。
可是,广播的问题解决得满意了,消息接收又如何呢?再往下看。
【问题3】注意Scratch中提供的”当接收到......“这一块积木,它接收到的内容根本不是使用变量类型积木表达的!只能从其中的下拉列表框中选择固定的文本消息或者新建一条固定消息!所以,前面使用列表来管理大量消息的办法几乎做废了!答案是:对于大量的消息,Scratch只能一条一条手动接收!
至此,细心的朋友可能已经看出编程猫的优点了。的确,由于编程猫发送与接收消息积木块都提供了变量支持,因此,对于使用列表管理大量消息的问题,编程猫的管理效率是明显比Scratch要高得多的。
实践证实,Scratch以其出击早、”极度保守“(确保软件的稳固性)的软件设计策略与世界性的各类宣传活动赢得了全世界范围青少年编程者与家长的青睐。而编程猫做为基于Scratch核心框架并深度二次开发出的佼佼者,极大程度地抛弃了Scratch的许多不足的同时进一步扩展了Scratch架构功能,在今天的中国少儿编程市场基本处于领头羊位置,可是,问题仍是不少的——仅仅是从软件开发支持方面看。
本文仅仅从两个功能点上对比分析了Scratch和编程猫各自的优劣,之后我还会写出大量的这种对比性文章,供同窗们参考。