Scratch(全球少兒圖形化編程語言)
| Scratch | |
|---|---|
| 中文名 | Scratch |
| 英文名 | Scratch |
| 開發者 | 麻省理工學院(MIT)媒體實驗室終身幼兒園團隊 Scratch 基金會 |
| 首次發布 | 2007年5月15日[1] |
| 最新穩定版本 | Scratch 3.29.1 |
| 支持語言 | 70 余種 |
| 運行平台 | 網頁端、Windows、macOS、Android、iOS |
| 適用人群 | 8-16 歲青少年(全年齡段可用) |
| 全球用戶規模 | 超 1.3 億[2] |
| 當前版本系列 | 3.x.x[3] |
| 類型系統 | 動態 |
| 文件格式 | .sb、.sprite (v1.4前) .sb2、.sprite2 (v2.0) .sb3、.sprite3 (v3.0) |
| 官方網站 | scratch.mit.edu[1] |
| 原始碼倉庫 | github.com/scratchfoundation[4] |
Scratch(全球少兒圖形化編程語言)是由麻省理工學院(MIT)媒體實驗室終身幼兒園團隊開發,後由 Scratch 基金會獨立運營的免費圖形化編程語言,面向全球 8 至 16 歲青少年設計,同時支持全年齡段用戶使用[1]。該語言通過拖拽色彩分明的積木式代碼塊替代傳統文本代碼,讓零基礎用戶可以快速理解編程邏輯,創作互動故事、遊戲、動畫、音樂等數字作品,是目前全球應用最廣泛的少兒編程工具之一[5]。截至 2025 年,Scratch 平台全球用戶已突破 1.3 億,覆蓋 150 多個國家和地區發行,用戶累計創建項目超過 10 億個[2]。
Scratch編程語言的原始碼完全公開,並託管於GitHub平台[4]。該語言的標誌性橘色貓咪圖案以及「Scratch」這一名稱的字體設計均受到版權法的保護[2]。位於scratch.mit.edu的Scratch官方網站,其後端系統、基於DjangoBB構建的論壇,以及利用MediaWiki搭建的Scratch維基,並不屬於開源項目。
發展歷程
項目起源
Scratch 項目由麻省理工學院媒體實驗室的米切爾·雷斯尼克(Mitchel Resnick)教授及其帶領的 「終身幼兒園」 團隊於 2003 年啟動,項目的設計初衷是為了降低編程的學習門檻,讓兒童也能通過創作數字作品來學習編程思維,而非僅僅學習代碼語法[6]。團隊的靈感來源於此前樂高公司推出的 Mindstorms 機械人套裝,該產品首次將圖形化編程與實體機械人結合,讓團隊意識到圖形化編程在兒童教育中的巨大潛力[7]。
經過 4 年的研發,2007 年 5 月,Scratch 1.0 正式向公眾發布,首次推出了桌面端的編程環境,讓兒童可以通過下載安裝的方式使用該工具[8]。
運營主體變更
在發布後的十餘年裏,Scratch 一直由麻省理工學院媒體實驗室負責開發與運營。隨着項目的全球普及,為了更好地推動項目的長期發展,2019 年,Scratch 項目正式轉入 Scratch 基金會獨立運營,基金會負責後續的版本迭代、社區維護以及全球教育推廣工作[9]。
設計理念
Scratch 的核心設計哲學是 「低門檻,高天花板,寬牆壁」(Low Floor, High Ceiling, Wide Walls)[6]:
- 低門檻:通過積木式的拖拽操作,消除了文本編程中語法錯誤的門檻,讓零基礎的兒童也能快速上手,在短時間內完成自己的第一個作品。
- 高天花板:工具並非僅面向入門用戶,其支持變量、函數、克隆、消息廣播等高級編程概念,用戶可以創作複雜的遊戲、模擬程序甚至人工智能相關的作品,滿足用戶從入門到進階的學習需求。
- 寬牆壁:Scratch 不限制用戶的創作方向,用戶可以創作遊戲、動畫、故事、音樂、藝術作品、模擬實驗等多種類型的內容,鼓勵用戶跨學科的創作與學習。
功能特點
積木式編程體系
Scratch 最核心的特點就是積木式的編程體系,所有的編程邏輯都被封裝為不同顏色、不同形狀的積木塊,用戶只需要將積木塊拖拽到編輯區進行拼接,就可以完成程序的編寫,無需輸入任何文本代碼,也不會出現語法錯誤[5]。
這些積木塊按照功能被分為不同的類別,包括運動、外觀、聲音、事件、控制、偵測、運算、變量、自製積木等,覆蓋了順序、循環、條件判斷、事件驅動等核心編程邏輯。
圖 1: Scratch 3.0 編輯器界面,左側為積木塊分類區域,中間為代碼編輯區,右側為舞台與角色管理區
多媒體創作支持
Scratch 內置了完整的多媒體創作工具,用戶可以自行繪製角色與背景,也可以導入外部的圖片、聲音、視頻素材,還可以使用內置的聲音編輯器錄製與編輯音頻,讓用戶可以完整地完成一個多媒體作品的創作,無需依賴其他工具[5]。
跨平台與擴展支持
Scratch 3.0 版本之後,基於 HTML5 技術重構了整個編輯器,實現了全平台的適配,用戶可以在現代瀏覽器中直接使用在線編輯器,也可以下載桌面端客戶端,同時還支持在平板、手機等流動裝置上使用對應的 App 進行創作[10]。
此外,Scratch 還支持擴展功能,用戶可以通過擴展模塊連接外部的硬件設備,比如 micro:bit、樂高機械人等,實現從數字創作到物理世界的交互,也可以接入人工智能相關的擴展,實現語音識別、文字識別等 AI 功能[9]。
版本迭代
1.x 版本
Scratch 1.x 系列是 Scratch 的初代版本,基於 Smalltalk 語言開發,僅提供桌面端的安裝程序,這一版本奠定了 Scratch 積木式編程的基礎框架,初步建立了在線社區,讓用戶可以分享自己的作品[9]。
2.0 版本
2013 年,Scratch 2.0 正式發布,該版本基於 Flash 技術開發,首次推出了在線編輯器,用戶無需下載安裝就可以在瀏覽器中直接創作,同時也保留了離線的桌面端版本。這一版本新增了自製積木、雲變量等功能,進一步提升了創作的能力[8]。
3.0 版本
2019 年 1 月 2 日,Scratch 3.0 正式發布,這是 Scratch 的一次重大技術升級,放棄了 Flash 技術,轉而使用 HTML5 與 JavaScript 進行重構,解決了 Flash 逐漸被淘汰的問題,同時實現了移動端的適配,讓用戶可以在平板等設備上使用 Scratch[10]。該版本還新增了大量的新積木、新角色素材,重構了聲音編輯器,並且引入了擴展功能體系,支持更多的硬件與 AI 能力。截至 2025 年,3.x 系列仍然是 Scratch 的主流穩定版本,持續進行小版本的更新與優化。
4.0 版本規劃
2025 年,Scratch 基金會宣布將推進 Scratch 4.0 版本的開發,計劃重構在線社區功能,並且引入創新性的 AI 工具,幫助用戶更好地進行創作,進一步降低創作的門檻,同時提升社區的互動體驗[2]。
社區生態
Scratch 不僅是一個編程工具,同時也是全球最大的兒童創作社區,用戶在完成自己的作品之後,可以將作品上傳到 Scratch 的在線社區,與全球的用戶分享,其他用戶可以對作品進行評論、點讚,還可以 「remix」(二次創作)他人的作品,在原有作品的基礎上進行修改與創新,形成了開放的創作生態[5]。
截至 2025 年,社區內的用戶累計創建的項目已經超過 10 億個,涵蓋了遊戲、動畫、故事、模擬實驗等多種類型,其中遊戲類作品佔比超過 70%,是社區中最受歡迎的作品類型[7]。
教育應用
Scratch 目前已經被全球超過 200 個國家和地區引入到中小學的編程教育中,成為少兒編程教育的標準工具之一[6]。通過 Scratch,學生可以在創作的過程中學習計算思維、邏輯思維,同時鍛煉解決問題的能力、創造力與協作能力。
同時,Scratch 也支持跨學科的教學,教師可以將 Scratch 融入到數學、藝術、語文、科學等多個學科的教學中,比如通過 Scratch 製作數學題的互動演示,或者製作語文課文的動畫故事,幫助學生更好地理解學科知識,實現知識的融會貫通[11]。
影響與評價
Scratch 的出現極大地推動了全球少兒編程教育的普及,其積木式編程的設計思路也成為了後續大量少兒編程工具的參考標準,帶動了整個圖形化編程教育領域的發展。
學術研究表明,Scratch 能夠有效提升兒童的計算思維能力、問題解決能力,同時能夠激發兒童的學習興趣與創造力,在兒童編程教育中具有顯著的效果[11]。截至目前,Scratch 已經成為全球應用最廣泛、影響力最大的少兒編程工具,幫助數以億計的兒童開啟了編程的學習之路。
衍生軟件
Scratch程序有派生出其它軟件[12],例如Snap!,Turbowarp(將Scratch項目轉換為JavaScript以優化性能),02Engine,Bilup,clipcc(增強了擴展系統、高質量筆、舞台布局等)、Gandi和AstraEditor等。
參考文獻
- ↑ 1.0 1.1 1.2 Scratch Wiki. Scratch
- ↑ 2.0 2.1 2.2 2.3 少兒編程網. Scratch 全球用戶破 1.3 億 新一代 4.0 版本即將到來
- ↑ Scratch 3.0 is here!, 2019
- ↑ 4.0 4.1 github.com
- ↑ 5.0 5.1 5.2 5.3 Scratch. FAQ
- ↑ 6.0 6.1 6.2 36 氪. Scratch:解碼少兒編程的過去、現在與未來
- ↑ 7.0 7.1 小碼王。圖形化趣味編程 (scratch 編程)
- ↑ 8.0 8.1 快懂百科. Scratch [簡易圖形化編程工具]
- ↑ 9.0 9.1 9.2 CSDN 博客. scratch 簡介_scratch3.30.5
- ↑ 10.0 10.1 Scratch. Discuss Scratch 常見問答
- ↑ 11.0 11.1 孫立會,周丹華。國際兒童編程教育研究現狀與行動路徑. 《開放教育研究》,2019
- ↑ Blocks - Scratch Wiki