Scratch是MIT專門為小孩子學習程式開發出來的,最開始是在Squeak(Smalltalk)上發展的。大概因為Squeak有Etoy一個類似Scratch的環境。
發展Etoy的是CS大神Alan Kay,這30年來他也是專注在小孩學習程式上。剛好有人問為什麼不用Smalltak而要用Etoy來教小孩程式。
https://www.quora.com/What-does-Alan-Kay-think-of-using-either-Squeak-or-Pharo-as-the-first-language-for-introducing-programming
https://bit.ly/3jdCGvA
Google 翻譯
幫助某人學習某些東西是UI的一種深層次問題,它必須從UI中的第一個單詞開始。
我認為該過程與教授樂器非常相似(我曾經做過),並且一開始可以做的最好的事情就是讓他們做他們可以做的最小的“真實演奏”。這是什麼取決於他們是誰以及儀器的性質。這與蒂姆·加爾維(Tim Gallwey)的“網球內部比賽”中的“反彈”想法非常相似。他的觀點是“開始打網球”主要是“追球”,所以問題是如何讓一個絕對的初學者立即“擊球”,其中90%或更多。
換句話說,您想要組織事物,以便學習者以一種“低級中級”的方式開始,而繞過“初學者”的困惑和恐懼的動作。
對於9歲以上的孩子來說,一個很好的開端是使用Etoys和“繪製汽車並駕駛它”的第一個項目,並進行一對一學習。在大約20分鐘內,完成了一些非常有趣的事情,並且學習了大約30件事,這些知識涉及:對象,代碼,變量,循環,多個進程等。
用戶界面以及教學和用戶界面中有很多考慮因素,但是如果您只想選擇一個重點來幫助設計,則應該是“減少認知負擔”。一種方法是使用屏幕空間來增強初學者的短期記憶,並向他們顯示所有成分,並有足夠的空間處理所有成分。
Squeak(和我認為的Pharo)的標準UI對於已經知道如何編程並想要創建中大型系統的專業程序員來說,井井有條。屏幕的使用方向比我為初學者所選擇的要大得多。
我認為在幾乎所有情況下,大多數語言對於初學者來說都存在較弱的界面。用戶界面最重要的原則之一是“不要讓最終用戶因為您的懶惰或無能而受苦”,因此需要進行一些實際工作才能為初學者創造一個不錯的入門環境。
最重要的是,我認為在學習編程時,有很多實際重要的事情需要深入理解,所有其他障礙都應該通過使教學語言成為首次使用來消除。它可能真的很強大,但它必須在嘗試學習的人們的思維空間中。