家裡孩子最近開始學編程,於是向身邊老師諮詢了圖形化編程的一些常識,自己也做了功課。結果發現網上許多帖子跟老師說的實際情況不符,很多信息還停留在兩三年前。
都2020年了,少兒編程又是變化非常快的一個行業。所幸把自己這兩周搜集到的信息整理出來,供大家參考,免得很多家長還停留在過時的印象裡。也希望更多更專業的老師們能參與討論,幫助更新行業的相關信息。
一、 為什麼不建議直接學scratch或者makecode
如果你跟我一樣,是剛剛接觸這個領域的家長,那你最先聽到的很可能也是scratch和makecode這兩款軟體。一個是MIT開發,一個是微軟開發,大公司,老品牌,全球都在用。
這兩款軟體在全球範圍內得到認可,一定是靠譜的,但為什麼在中國不是很普及,老師更喜歡用國內廠商的一些軟體呢?
我得到的答案是:這兩款軟體雖然各有所長,但各自的短板也很明顯。
具體體現在:
makecode支持micro:bit,但對arduino支持性有限;
Scratch有豐富的動畫舞臺展示編程效果,適合低年級初學者,但需要一直連接主控板,不能將程序上傳至主控板進行更多硬體操作,對高年級學生不適用;
Makecode則剛好相反,只能將程序燒錄進主控板或者通過模擬器觀察程序效果,不能通過動畫舞臺展示實時看到編程結果,對初學者不友好。
相比之下,國內的軟體通過整合這兩款軟體的優勢,取長補短,更符合國內學習習慣。
二、同樣基於scratch/makecode,國內各種軟體怎麼選
知道了scratch之後,再去做調研的時候,我又聽到像mixly、mBlock、KittenBlock、Mind+這些軟體的名字。這些國產軟體有一個共同點,都是基於scratch或者makecode開發。
那他們各自有什麼優缺點呢?
我專門搜集了網上的各種測評,整理如下。
我在知乎上找到一篇帖子,作者是科技學堂創始人老劉,帖子發布於2017年1月,裡面很多信息過時了,不過開頭對比Mixly、ArduBlock、S4A的部分可以了解下:
"Mixly是一款基於Blockly的免費開源的圖形化Arduino編程軟體,由北京師範大學教育學部創客教育實驗室傅騫教授團隊開發。同樣為Arduino圖形化編程工具,國內我們常見的還有ArduBlock和S4A(Scratch for Arduino)。前一陣,因為要舉辦一場Arduino入門培訓活動,我們特地將三者做了一下比較。
一條原因就先把S4A從備選工具中排除出去:無法脫機運行。Scratch最初軟體設計時,並未考慮與硬體的通信,S4A的出現讓Scratch可以通過串口與Arduino通信,而通信則意味著S4A全程充當的是信息中轉。我們希望給初學者選擇一個功能相對更專業的工具,因此先放棄S4A。
再詳細對比一下Mixly和ArduBlock。
無論從功能的專業性還是豐富性,Mixly都勝出。"
好了,說結論,根據老劉嚴謹的論證,Mixly、ArduBlock、S4A這三款軟體對比的時候,選Mixly就對了。
知乎上還有另一篇比較火的帖子,有129個人贊同。作者是"開源硬體實驗室知乎專欄",也發表於2017年初,不過比上面那篇提到的軟體更豐富一些:
"4. mBlock
適合年齡段:8歲以上
軟體功能完善度 ★★★★☆
使用體驗 ★★★★☆
支持硬體種類 ★★
更新速度 ★★★
配套教程 ★★★★
mBlock由國內Makeblock創客工場出品,基於Scratch開原始碼修改而來,界面和使用體驗OK,是最接近原版Scratch風格的。另外支持查看圖形化模塊對應的代碼,適合孩子慢慢的過渡到代碼編程。最近貌似開放了第三方模塊的支持,已經看到一些第三方模塊可以用mBlock編程。配套自己產品的教程相對豐富。
5.好好搭搭
適合年齡段:8歲以上
軟體功能完善度 ★★★★☆
使用體驗 ★★★★☆
支持硬體種類 ★★★★
更新速度 ★★★
配套教程 ★★★★
好好搭搭來自杭州好搭團隊開發的在線編程平臺,也是只需要打開瀏覽器,基於Scratch開原始碼修改而來,實現了雲編譯功能。在Scratch Day活動每天高訪問量下,平臺依然穩定好用。好好搭搭支持Scratch動畫編程、Arduino硬體編程和其它一些第三方硬體,方便孩子從動畫編程無縫過渡到硬體編程上。也可以查看圖形化模塊對應的代碼,配套教程豐富,網站定期也會推出一些很有影響力的活動,適合小學低年級以上。唯一的不足是目前網站的UI設計還不夠完美,不過聽說已經在開始優化這一方面了,讓我們拭目以待吧。
6. Mixly
適合年齡段:12歲以上
軟體功能完善度 ★★★★☆
使用體驗 ★★★★☆
支持硬體種類 ★★★★
更新速度 ★★★★
配套教程 ★★★
Mixly來自北師大傅騫團隊開發,基於Google Blockly核心,支持大部分Arduino硬體,第三方也可以自己製作庫文件。軟體更新迭代頻繁,一直在優化。軟體使用體驗很好,也可以查看圖形化模塊對應的代碼,配套教程豐富,適合小學高年級以上,唯一不足是編譯的速度有點慢。
7. KenRobot
適合年齡段:12歲以上
軟體功能完善度 ★★★
使用體驗 ★★★★☆
支持硬體種類 ★
更新速度 ★★★
配套教程 ★
由90後工程師李時念及來自前百度的工程師團隊,用時約半年開發完成。該平臺沒有採用Blockly和Scratch框架,軟體使用體驗和界面設計OK,有圖形化編程和代碼編程兩種版本,適合不同需求,支持arduino硬體,目前只有Arduino UNO可以用,其它硬體估計很快就會更新上來,配套教程還不夠完善,適合小學高年級及以上。"
從作者給出的評分可以看出,在跟mBlock、好好搭搭、KenRobot比較時,Mixly依然是更有優勢的那個。
所以,2017年的時候,國內各種圖形化編程軟體相比較,Mixly勝出。
不過,上述信息都來自3年前,孩子老師告訴我,現在Mixly也老了,在行業裡也到了被後浪推的階段。
後浪有哪些?
孩子老師告訴我三個名字:Kittenblock、Mind+、mPython。
我又百度了一些信息,其中Kittenblock、mPython的資料不多,只有官網上的簡單介紹,Mind+在線上論壇有幾篇比較詳細的測評貼:
"Kittenblock是小喵科技推出的機器人編程軟體,採用模塊化積木編程方式編程,支持MicroBit、MiniLFR、Arduino、Dobot、Tello等設備的編程和燒錄。Kittenblock的可視化編程界面,可以讓零基礎的用戶快速學習,可以輕鬆對機器人進行編程操作。"
"mPython是盛思技術團隊在BBC官方原版PythonEditor基礎上、拓展開發的應用軟體。可以進行可視化代碼編程,有hex、python、blockly三種代碼讀寫等功能。"
幾篇提到Mind+的帖子中,有一篇是一位老師把Mind+和Mixly做了直接對比:
"最近看到微信群裡面大家都在推薦用Mind+編程,據說是Scratch3.0的還支持很多硬體,作為一個創客老師,我決定試試看。我當前正在用米思齊教編程,支持的硬體非常豐富,不過感覺學生上手還是稍微有點難度,不過學生基本都有一些scratch的基礎,正好試一下看看這個軟體如何。"
他得出的結論是:
"基於Scratch。2、支持三大主控板。3、支持海量傳感器。4、支持python代碼編程。
使用上來說,跟Scratch的界面何操作方法基本相同,也有快速入門的視頻和教程,上手完全沒有難度。當然對於一個玩硬體的老師來說,印象最深的是支持的硬體種類非常豐富,應該是我見過的在scratch平臺上支持硬體最豐富的軟體了吧,還有一些語音識別這種功能,玩法比較豐富。缺點的話我覺得軟體功能有點太多,所以有許多界面和模式以及隱藏功能,可能會被搞暈,期待後續能做的更好吧。"
我拿著這篇帖子又去問了自己孩子老師,他基本認同,他給我的信息是,"前兩年帶學生去參賽,現場大部分用的都是Mixly,今年去的時候,大部分都換成Mind+了,行業變化還是很快的。"
為什麼呢?
老師向我詳細介紹了這些軟體的發展始末,簡單講就是:
Mixly基於blockly開發,程式語言更加原始,類似於把代碼一一對應成圖形化模塊,學生用起來並不比直接學習代碼簡單;
Mind+基於Scratch,更易上手,對學生可能接觸到的程式語言進行了階梯式劃分,簡單的模塊很容易找到,複雜的模塊入口更深,同時結合makecode,保留了高階能力,讓學生有一個由淺入深的學習過程。
老師還順帶對比了Kittenblock和mPython:
Kittenblock不支持國內老師習慣用的掌控板,mPython基於基於makecode,但也像makecode一樣沒有實時模式,不能通過動畫舞臺看到實時效果。
三、結論,供參考
總的來說,經過調研我發現,2020年國內常見圖形化編程軟體主要有:編程貓、Mind+、mBlock、Mixly、Kittenblock和mPython。
其中根據知乎作者"開源硬體實驗室知乎專欄"和科技學堂創始人老劉的觀點,Mixly在三年前更有優勢,在支持硬體方面比mBlock更豐富,但相比當今其他軟體在語言設置上對初學者不太友好。
根據我向學校老師諮詢的結果:2020年比較常用的軟體中,Mind+是參賽學生用的比較多的圖形化編程軟體,特點是基於Scratch,支持的平臺和硬體多;編程貓也很熱門,特點是內容豐富有趣,相對偏向5年級以下學生,支持的硬體相對少一些。