Scratch
編程範型 | 指令式,事件驅動 |
---|---|
設計者 | Mitchel Resnick、Andrés Monroy-Hernández |
實作者 | 麻省理工媒體實驗室 終身幼稚園組 |
面市時間 | 2006 |
目前版本 |
|
型態系統 | 動態 |
實作語言 | Squeak(v1.4前) Actionscript(v2.0) HTML5 (v3.0) |
作業系統 | Mac OS X、Windows、Linux |
許可證 | 開放原始碼GPLv2和封閉性軟體 |
副檔名 | .sb、.sprite(v1.4前) .sb2、.sprite2(v2.0) .sb3、.sprite3(v3.0) |
網站 | scratch |
主要實作產品 | |
Scratch | |
啟發語言 | |
Logo、Smalltalk、HyperCard、 StarLogo、AgentSheets、Etoys |
Scratch是麻省理工媒體實驗室終身幼稚園組開發的一套以積木塊為基礎的視覺化程式設計語言開發平台,於150多個國家和地區發行,並提供60多種語言版本。Scratch由Mitchel Resnick和Andrés Monroy-Hernández創立。
Scratch最初可安裝在Mac OS X、Windows、Linux的平台上;2.0改使用ActionScript編制,3.0改使用HTML5編制,並可執行於瀏覽器。
Scratch原始碼完全開放,只有橘色貓咪的象徵圖案和Scratch名稱受著作權保護[2]。
主旨
[編輯]Scratch讓程式設計語言初學者不需先學習語言語法便能設計專案。開發者期望通過學習製作Scratch,啟發和激勵使用者在愉快的環境下經由操作(如設計互動故事、多人遊戲)去學習程式設計、數學和計算知識,同時獲得創造性的思考、邏輯編程和協同工作的體驗。
概覽
[編輯]Scratch測試由麻省理工媒體實驗室終身幼稚園組於2006年發布[3]。
Scratch適用於全年齡層使用者。即便使用者從未學過程式設計,通過拖曳預先設定好的積木式程式模件,堆疊出指令,設定或控制角色及背景的行動和變化,從而完成程式撰寫[4][5]。
Scratch的1.x版本用Squeak編寫,從2.0開始改為ActionScript,自3.0後使用HTML5。Scratch 可安裝其發行的應用程式進行離線編輯。其中,1.x及2.0版本需要flash外掛程式,3.0則不需要使用。
介面與功能
[編輯]Scratch開發平台的使用者介面分為四部分:程式模件列表,程式設計平台,預覽窗口和角色列表。
在1.4版本中,程式模件列表將其分為8類:動作、外觀、聲音、畫筆、控制、偵測、運算、變數。2.0版本中,有動作、外觀、聲音、畫筆、變數、事件、控制、偵測、運算子和邏輯運算,更多模組。3.0版本中,有動作、外觀、聲音、事件、控制、偵測、運算子和變數(雲端變數)、函式積木等,另外可以通過擴充功能增加更多模組,有畫筆、攝影機等,還能連接遊戲手把。程式模件各有不同的顏色和形狀,以便辨識。
Scratch利用「廣播」功能實現事件驅動,協調各個子程式的執行。Scratch能提前匯入圖片、音訊素材,支援一維陣列,以功能封裝的方式簡化了角色碰撞檢測功能。Scratch不易出現導致程式完全無法執行的嚴重錯誤。
主要不足:Scratch沒有針對電腦檔案的輸入/輸出功能,不支援多維度表格序列的嵌入,自訂子程式不支援設定形式參數也不支援設定返回值,無法進行角色的局部碰撞檢測,缺少並行控制,不方便進行邏輯條件的複雜組合,除錯困難。
使用者社群
[編輯]Scratch被學校、博物館[6]、社區中心等用作教學和展示。例如,香港青年協會經常舉辦Scratch體驗活動,以推動學生自由發揮創意[7][8][9]。Scratch亦附設不同的語言介面,方便了很多他國的玩家。[10]此外,Scratch-TW (頁面存檔備份,存於網際網路檔案館)則蒐集了Scratch相關的線上資源、介紹影片、創意程設思維教材 (頁面存檔備份,存於網際網路檔案館)[11],並增加了簡體中文和繁體中文,以便香港、澳門和台灣的使用者之使用與推廣。均一教育平台 (頁面存檔備份,存於網際網路檔案館)也製作了一系列Scratch 3.0基礎課程 (頁面存檔備份,存於網際網路檔案館),免費開放令教師、家長與學生能線上自學Scratch。
線上社群
[編輯]Scratch設立了一個線上社群,其口號為「想像·編程·分享」,分享和創意是Scratch最重要的理念[12]。
Scratch最終成品並非原始碼,而是所有角色的行為和結合。使用者可以將原始檔上傳至線上社群以供分享。線上社群的成員可以自由下載該專案的原始碼,來研究該專案的結構[13][14]。除此之外,各成員可自由評論、標籤和「讚」不同的專案以及發表和分享意見。
線上社群中有不同類型的專案,範圍包括遊戲、動畫、簡報和聊天機器人。所有專案都以創用CC的特許方式發佈,也可透過JavaScript播放。線上社群每月都有著一百萬點擊率,且擁有74,734,356名註冊成員,以及超過八千二百二十六萬份作品在線上社群上分享(截至2021年8月6日)[15]。該線上社群隨後開設了不同網頁,如ScratchEd和ScratchJR等,以促進各使用者的交流。[16][17]
雲端平台
[編輯]自Scratch 2.0版本起,Scratch團隊搭建了一個網站以供使用者們線上上傳專案,以及預覽他人的專案。[18]
衍生軟體
[編輯]Scratch有衍生出其它軟體[19],例如Turbowarp、 Snap![20]、ClipCC 、scratch X等。
爭議
[編輯]2020年8月,有多家台灣玩家暗爽,並將「香港」「澳門」「台灣」與「中國」並列劃入「國家」一欄一事鬧大。並引導導平台中的開放論壇上有部分使用者上傳的反中共言論,包括港獨、台獨、「借中美貿易摩擦抹黑中方」等言論。[21]當時,Scratch官網、論壇和wiki已被中國大陸防火長城封鎖,在中國大陸無法正常訪問,僅能以離線版本編程。[22]中國大陸使用者製作了多個鏡像網站,鏡像Scratch社群全部或部分內容,如scratch-bar/asdm,提供了scratch電腦版安裝套件每周鏡像。[23][24]
截至2024年9月28日前,scratch研發出了專門給中國人們的專獨於的網站Scratch wiki(scratch-wiki.info)。
另見
[編輯]參考資料
[編輯]- ^ Scratch 3.0 is here!. [2019年1月2日].
- ^ 存档副本. [2020-06-22]. (原始內容存檔於2020-06-26).
- ^ 麻省理工大學; Mitchel Resnick, John Maloney, Andres Monroy-Hernandez, Natalie Rusk, Evelyn Eastmond, Amon Millner, Jay Silver, Eric Rosenbaum, Karen Brennan, Amos Blanton, Brian Silverman, Paula Bonta, Yasmin Kafai, Kylie Peppler. Scratch: imagine, program, share. 麻省理工大學. [25 May 2007]. (原始內容存檔於2012-06-26).
- ^ Scratch - Imagine, Program, Share. scratch.mit.edu. [2018-11-20]. (原始內容存檔於2018-11-18).
- ^ Scratch: Programming for All (頁面存檔備份,存於網際網路檔案館). Resnick, M., Maloney, J., Monroy-Hernandez, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., Kafai, Y. (2009). Scratch: Programming for All. Communications of the ACM, November 2009
- ^ Bricolage. [2018-11-20]. (原始內容存檔於2013-04-03).
- ^ 青年協會. Scratch創意體驗學習活動 ─ IVE Tsing Yi. 2011-08-19 [2012-06-26]. (原始內容存檔於2015-04-02) (中文(香港)).
- ^ 青年協會. Scratch Day Hong Kong 2010 – 記者現場報導. 2010-05-26 [2012-06-26]. (原始內容存檔於2015-04-02) (中文(香港)).
- ^ 青年協會. LEAD @ e-zone科技創意夏令營2011. 2011-08-16 [2012-06-26]. (原始內容存檔於2015-04-02) (中文(香港)).
- ^ Scratch - About. scratch.mit.edu. [2020-05-02]. (原始內容存檔於2011-02-22).
- ^ Chung, Karen Brennan, Christan Balch, Michelle. Creative Computing. scratched.gse.harvard.edu. [2016-07-25]. (原始內容存檔於2019-07-24).
- ^ 存档副本. [2017-08-10]. (原始內容存檔於2011-02-22).
- ^ Monroy-Hernández, A., Hill, B. M., González-Rivero, J., boyd, d. (2011) Computers Can't Give Credit: How Automatic Attribution Falls Short in an Online Remixing Community. In Proceedings of the 29th International Conference on Human Factors in Computing Systems (CHI '11)[永久失效連結]
- ^ Hill, B.M, Monroy-Hernández, A., Olson, K.R. (2010) Responses to remixing on a social media sharing website. In AAAI International Conference on Weblogs and Social Media (ICWSM '10). [2012-06-26]. (原始內容存檔於2012-10-12).
- ^ Scratch usage statistics. [2021-08-06]. (原始內容存檔於2021-08-06).
- ^ 存档副本. [2010-07-28]. (原始內容存檔於2011-07-06).
- ^ ScratchEd. scratched.media.mit.edu. [2018-11-20]. (原始內容存檔於2014-01-22).
- ^ Scratch - Imagine, Program, Share. scratch.mit.edu. [2018-11-20]. (原始內容存檔於2018-11-16).
- ^ Blocks - Scratch Wiki. wiki.scratch.mit.edu. [2018-11-20]. (原始內容存檔於2011-09-02).
- ^ Snap! (Build Your Own Blocks) 4.2. byob.berkeley.edu. [2018-11-20]. (原始內容存檔於2010-08-23).
- ^ 丁君朋. 未来网评:开放的中国不“排外”,但必须要“排毒”. 未來網 (中國少年先鋒隊). 2020-08-11 [2020-08-28]. (原始內容存檔於2020-09-05) (中文(中國大陸)).
- ^ 林伊人. 少儿编程平台Scratch被曝辱华 行业人士:应大力发展本土计算机编程语言. 中國網. 2020-08-21 [2020-08-23]. (原始內容存檔於2020-08-22) (中文(中國大陸)).
- ^ scratch-bar/asdm, Scratch Bar Open Source, 2024-09-25 [2024-09-28]
- ^ Auto Scratch Desktop Mirror. scratch-bar.github.io. [2024-09-28].
外部連結
[編輯]- 官方網站 (英文)
- 离线版编辑器下载. Scratch官方網站. [2019年1月22日]. (原始內容存檔於2019年4月6日) (英語及中文).
- Scratch Wiki (頁面存檔備份,存於網際網路檔案館) (英文)
- Scratch图书推荐. scratch-wiki.info. [2019年1月22日]. (原始內容存檔於2019年1月23日) (英語).
- "The MagPi Team". Learn to Code with Scratch [學習用Scratch編代碼] (pdf). 樹莓派官方網站. [2019年1月22日]. (原始內容存檔 (PDF)於2019年2月19日) (英語).
- 台灣宜蘭縣線上版 (繁體中文)
- Scratch的X(前Twitter)帳戶 (英文)