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和編程貓各自的優劣,之後我還會寫出大量的這種對比性文章,供同窗們參考。