如何看待 WWDC 2016 上推出的 Swift Playgrounds?


剛剛看完WWDC Introducing Swift Playgrounds,驚喜連連。果然Keynote只是冰山一角,重點都在Session

1. 不是遊戲不是遊戲不是遊戲!

剛發布許多人說應該就是個教小孩入門編程的遊戲,沒什麼用。我甚至覺得有「小霸王學習機,哪裡不會點哪裡」的即視感。

然而Swift Playgrounds沒那麼簡單,他根本不是個遊戲APP。

所有Xcode中(用Swift 3)生成的 .playground 文件都能直接運行在Swift Playground中,而且支持iCloud,airdrop等等。也就是說上下班地鐵無聊用ipad寫寫代碼是完全沒有問題的,或者換句話說,所有playground的使用場景,都適用於iPad的Swift Playgrounds

2. 他是威力加強版iBooks

再說回來Keynote上的那個遊戲,其實是Swift Playgrounds的新的文件格式——Book

擴展名是 .playgroundbook。

上圖是內部文件結構。

可以看到其本質是一本電子書,有內容,章節目錄。同時他是一本可以互動,遊戲,Coding,看到運行結果的書。而且開發者可以隨心所欲寫自己的書!

也就是說上到專業程序員下到9歲小女孩,全年齡適用,不同的書給不同需求的人用。類似http://w3chools.com的無數在線教程就可以搬到Swift Playgrounds里了有木有。搞不好Apple以後會發布Swift Playgrounds版的The Swift Programming Language?

另外啟動Swift Playgrounds首先看到的是和iBooks一樣一樣的書架界面,手慢沒截到圖,稍後更新上來

---截圖來啦---

這是Keynote中展示的界面,「海量電子書供你選擇」

第二個tab,是不是原版拷貝iBooks?

重點補充:

每一頁,每一章節,甚至整本書都是可以重置的。換句話說用戶在playgroundbook里做的任何操作都可以一鍵還原

另外,在iPad Swift Playgrounds中,對文檔的任何改變都不會影響源文件(Contents),而是被存到edit文件夾中, 當你用Xcode或其他編輯器打開文件,edit文件夾是不存在的。

這也是上面提到的resettable的實現機制。

3. It can do more

Playgrounds可以使用完整的(?)iOS SDK

現場演示了在Playgrounds中用CoreBluetooth控制一個球狀小機器人滾動,變色,引來一片掌聲。。。

另一個demo生成了一小片3D的陸地+水, 用到了GameKit, SpriteKit, CoreGraphics, UIKit。難不成以後能在Playgrounds里做出個Minecraft?

4. 有趣的小細節

代碼補全做到了軟鍵盤上方以及主屏幕下方

可以看到每一行的執行結果都會在右側圖形化顯示,如果是圖片,還可以點擊放大,甚至直接拖進代碼編輯器里變得更大(只是展示,不會影響代碼)

顏色會在代碼里被轉換為色塊,點擊顯示色盤來選色。這些應該都是為了方便小盆宇們。

串講的小哥真是可愛

總結

驚喜連連的一個產品,除了軟鍵盤的天生劣勢(做demo的時候小哥一直在用外接鍵盤, 後來解釋是為了不讓軟鍵盤擋住屏幕太多)。

功能足夠強大,iPad能做的事情又多了好多。

可能會引領電子書閱讀的新潮流?引用發布會常用語:

等不及看到開發者們用Swift Playgrounds做出酷酷的作品了!


整場發布會看下來, Swift Playgrounds 最有意思。

以前我看過 Bret Victor 的一些視頻。

  • Bret Victor - Inventing on Principle
  • Bret Victor - Media for Thinking The Unthinkable
  • Bret Victor - Stop Drawing Dead Fish
  • Bret Victor - The Future of Programming

這一些視頻強調了視覺化,實時反饋的作用。有興趣的話,可以搜索 Bret Victor 的名字,還可以找到更多視頻和文章。

Bret Victor 之前在蘋果工作過。我不知道 Swift Playgrounds 的開發者有沒有受到 Bret Victor 的啟發。但無論怎樣,Swift Playgrounds 正將這種思路實踐於 Swift 的啟蒙教學。這種思路一直小範圍內存在,只是沒有普及到大眾。蘋果假如可以將其普及開來,對社會也是貢獻。

對於蘋果公司來說,普及 Swift 語言,讓 Swift 成為孩子和大眾的編程母語,這自然很重要。我們都知道母語對個人的影響很大,以後這些孩子成長為開發者,會對編程母語有天然的親近。

而從社會編程教學角度,這種視覺化的實時反饋,更是意義重大。我上大學,學校教編程的時候,對著一個黑乎乎的窗口,沒有視覺反饋,絕大部分的人還沒有體會到編程的樂趣,就被嚇跑了。並且終身保留編程無趣的印象,以後連嘗試也不會。

Swift Playgrounds 想讓孩子和大眾知道,編程並非是冷冰冰,而可以充滿樂趣的。只要達到這種啟蒙作用,無論是否學會具體的循環分支,也不是很重要了。只要感覺到樂趣,不排斥,不懷疑自己是否可以學會編程,其它一切就自然水到渠成。就算以後不做編程的工作,至少知道編程大概是什麼,知道了就不會害怕。

將 「Swift Playgrounds」 拆開,"Swift" 自然重要,而更有社會意義的是"Playgrounds"。

2016.06.17 更新

----------

看完 WWDC 的 Introducing Swift Playgrounds。這個 App 比我想像中更強大。

編程教育需要教程,這些教程怎麼來呢?需要工具來創作的。拿 iBooks 為例,iBooks 可以用來看書,而 iBooks Author 可以創作 iBooks 書籍。Swift Playgrounds 可以用來播放編程教程。但我還不清楚這個教程的創作,是有另外的工具,還是可以直接在 Swift Playgrounds 這個 App 上創作。

Swift Playgrounds 教程(你也可以叫成電子書),是完全互動的,可以分章節,可以設置些謎題讓讀者解決。在 WWDC 發布會上演示的萌萌撿金幣這個互動遊戲,僅僅是一本書。再次強調,發布會上所演示的東西,僅僅是書,而不是這個 App 本身。這個 App 可以調用 iPad 上面的硬體設備,可以用 iOS 的 SDK。

以後使用 Swift Playgrounds,剛開始玩玩別人創作出的教程,順便學習編程。進階後可以使用單頁的 Playgrounds 的練習一下編程概念和語法,更高級的可以創作自己的 Playgrounds 書籍,給更多的人來看。


這個Playground根本不是一個只能給小孩子用的教育工具!

Playground on iPad支持所有的iOS SDK!

支持UIKit

支持SpriteKit

也就是說,任何人都可以用它來做App的原型,然後可以在Mac上繼續!


今天凌晨的WWDC可謂精彩紛呈,各個系統的功能補全、生態系統內的協同合作、iMessage的發力等等都看到了蘋果也不是在停下歇腳,也在學習最新的行業形勢、在其中找到自己的位置並發揮自身的優勢。但發布會的最後幾分鐘所發布的小app:Swift Playground背後所藏著的意義,卻讓之前的一切都顯得不那麼重要,甚至黯淡無光。

蘋果自從發布了swift語言就一直在完善swift和開發工具來讓它更好地為蘋果開發社區服務。這個語言簡單易懂,特別是拋棄了很多舊語言已經過時的特性(語法層面),也加入了很多現代高級語言的新元素,讓更多的人能更快上手iOS或者OS X編程。但其根本還是一個蘋果自產自銷的編程語言:無法給別的生態系統任何的影響和幫助。只有蘋果社區的開發者才會學swift,也只有在蘋果的產品上才能用swift寫的軟體(至少現在是這樣)。

而今天發布的Swift Playground則讓swift站在了更高的位置:用這個富圖形化的、所見即所得的、弱課程化的工具,去啟發小孩子學習編程。說到編程,很多人的第一反應出的標籤會是「碼農」、高科技、邏輯、數學,對於專業編程人員會有高薪、高地位、高壓力,甚至易猝死等等想法。而說到學編程,很多人又會擺擺手說「太困難」、「理解不了」、「不是我的菜」等等理由而拒絕或放棄。

然而作為一門其實已經出現超過半個世紀的技能,編程本身又從10101、進化到彙編語言、進化到了懂英語的人都能大致理解的高級語言,如java、C語言等等。而如今Python、swift等等這些從語法層面上更容易理解的語言出現了之後,普通人理解編程的門檻已經到了歷史最低,而日常工作中,很多事情已經離不開電腦和軟體、離不開機器來幫人們處理事情,否則可能效率要降低一千倍一萬倍。當這些問題在工作中出現時,有多少問題卡在了「不會編程」上?卡在了「公司的技術忙不過來」上?卡在了「今天做不完不行」而熬夜加班上?其實很多問題,用很簡單的語言、寫一些很簡單的腳本和輸入輸出,就不僅能今天完成這項任務,以後類似的任務可能也能一勞永逸的解決。

問題在於:為什麼不學?為什麼沒學?

為什麼不學的問題出在兩點:編程本身比較抽象,對於對邏輯和數學接觸較少的人群來說比較難以理解編程中很多絕對嚴謹的邏輯和映射;學習編程的目的性不夠明確。

對於前者,已經有很多簡單易懂的編程課程在網路上出現,只要肯學,相信難度不是問題。而對於學習編程的目的,大多數人目前仍認為編程是程序員的工作、我學編程沒有用或者不會用到、如果不當程序員就不需要學編程等等。而當出現如上文出現的情景時,也想不到編程能夠解決這樣的問題,只能熬夜苦戰身心疲憊。如果說在一段時間內抽出一些時間和精力,來學一學基礎編程(根本不需要專業,只學一門高級語言的基本用法就完全可以),我相信很多問題在日後會大不一樣。

至於為什麼沒學的問題,很多時候不是我們能左右的。21世紀前絕大多數人(不光中國,國外也好不到哪去)家裡是沒有電腦的,更別談計算機教育了。進入工作崗位之後又很難抽出時間去學習編程。但在今天這個時代,小孩子從小接受計算機文化的熏陶、每天捧著智能手機iPad上網看東西,他們對於這些東西遠比我們小時候要容易接觸的多:這些東西是如何運行的?而我們當時可能是在知識體系成熟後又接觸了計算機,再學這個,這是質的區別。

這時候就是諸如Swift Playground這種app的高明之處了。它們在iPad上運行、高度圖形化、以淺顯易懂的方式教會小孩子們什麼是編程,編程能做什麼等等。為什麼在iPad上運行很重要?有孩子的朋友可以問問家裡小於10歲的孩子,他們聽沒聽過什麼叫windows?但是他們一定聽過iPad。說不定再過若干年什麼叫滑鼠鍵盤小孩子們都不知道了,只知道觸摸屏、語音輸入等等。所以讓小孩子們用他們最熟悉、最樂於使用的設備來學習在他們長大的社會可能必備的技能,簡直是再自然不過的事情了。

到這裡大家就能懂蘋果推出Swift Playground的用意了吧。如果再想想蘋果對於iPad的教育市場的大力推動、蘋果為何推出屬於自己的語言swift、為什麼要急於推出iPad Pro等等問題,Swift Playground正如點睛之筆,點在了蘋果的心坎上——未來。蘋果寄希望於通過Swift Playground及其後續可能推出的一系列動作,加強青少年的編程教育,同時使用的是由蘋果推出的設備和語言,這些孩子將來可能不會從事技術工作、可能不再使用蘋果的產品,但是由swift開蒙的編程技巧卻深深印在他們心裡。這是蘋果規劃的自己的未來,為自己將來20年30年奠定的發展基礎,也是為全社會的編程教育做出了屬於蘋果的貢獻。

最後附上蘋果對編程教育的宣傳頁面Everyone Can Code,有興趣的同學可以看一下。


-

前兩天,有人問我,「我想學編程,請問第一步應該從哪裡入門」

我第一反應是,「先學好英語」

然後心裡同時冒出來幾個問題,「先學基礎?太枯燥了吧。先從寫了能看到反饋的,有趣一點的東西開始吧。」「開發環境怎麼搭?Windows?裝 linux 虛擬機?如果用的是 Mac 就輕鬆多了……」「選啥語言呢?C?Java?Python?先從裝 IDE 開始么……還是用 text editor?Terminal 怎麼辦?」

怎麼說呢,雖然這些問題都是遲早要學會的,但是要跟一個初學者說從哪裡開始,他在真正寫代碼之前可能就要先走一公里遠。

我也曾經考慮過,會不會推薦Swift 作為新人的第一個語言呢?我大概是處於保守支持的態度吧。

Swift playground 可能也並不是那麼有用,可是拿起來就能寫,能學,有反饋這種特性,包括 Mac 上的 Xcode,也是完全一站式體驗,在新手友好方面是很有優勢的。

如果有一天 iPad 上能有 Xcode 了……那就又是另一番景象了。

-


佩服蘋果的遠見。最近幾個版本的系統變化我不想評價,但是 Swift Playground 是正確的產品。

我下載了現有的課程做了一下。現在的兩份課程的教學順序、引導、實時反饋等方面,十分接近我理想中的編程教育模式,也符合一般人的認知模式,可以看出蘋果是真的思考過如何教編程的。就這一點而言,蘋果這兩份課程比國內那些「變數條件循環函數指針」標準套路,毫無教學思路只知把所有知識流水帳式地寫寫完(還不一定寫對)的 21 天系列至少領先五十年。

就這個預覽版系統(iOS 10 Beta1)預裝的版本而言,它還有很多缺陷,比如模型精度太低,性能不行,以及一些小 Bug。另外一個能執行任意代碼的系統 app 也會帶來一些潛在的安全問題,不過不清楚這個東西的內部實現機制,不好下定論。


熬夜看完發布會。從watch新的界面設置、七倍速度到mac的siri再到微信版iMessage,這些巨大的進步一步步點燃、催發了一個果粉、ios開發興趣者的激情。

apple最後再利用Swift Playgrounds,將持續兩個小時的激情引爆(因為我是一個swift初學者,ios開發興趣者)。證明了寫代碼還能這麼有趣、好玩。視頻中展示了一個for in循環,讓我不禁在屏幕前笑了出來(學會的第一個循環語句啊!)。

演示中的app界面還有很多空白的框架,apple肯定會不斷更新章節和改進課程的。只是類似三選一的那種「選擇輸入」的方式,讓人有一些失望。我覺得編程的標準教育方式就應該是:藍牙鍵盤,空白背景,自己無限想像的空間,趣味展示。如果只是不斷地做選擇題和趣味小怪物觀賞,只能培養小程序員對swift一個大概的印象,通過這種形式Swift Playgrounds要變成養成一個開發大手的培養基是遠遠不夠的。儘管Swift Playgrounds足夠驚艷。

多補充一點,看到apple在Swift Playgrounds上花的心思的努力,估計ipad版Xcode應該近年來很難實現了。從編程教育層面來說,Swift Playgrounds還是能滿足興趣者、初學者在碎片時光里提升或者保持學習swift的興趣的。

談到這裡就有了兩個問題。

1,如果一直都配備幽默可愛的動畫形象貫穿swift始終(在apple 美國官網上看到有關Swift Playgrounds的頁面展示了一些曲線課程(或許是其他循環語句繪圖?),同樣保有精緻的UI,十分可愛容易接受),課程設置難免有局限,如果打破局限(改變Swift Playgrounds如今這種趣味形式變成xcode中Playground直觀的表格和數據),Swift Playgrounds這種「吸引低年齡段編程興趣者」的路線會受到動搖。

可以預見有不少年紀小的開發者通過那個可愛小怪物和紅寶石進入swift以及編程領域大門,可是突然從一節課開始,怪物和寶石不見了,而是滿屏表格和數據。難度激增,趣味減少,他們會不會慢慢喪失學習的興趣和對swift的信心。

這個我沒有可以引用的理論依據,但是我是一個狂熱的自學愛好者,從電影編劇到影視後期我都堅持自學,自己探索。我深知一個好的自學課程就應該循序漸進,不繁不簡,詳略得當(為何要在一個美國編程適普教育App下談自學,是因為國內教育機構無法有效利用此類App,之後會談到)。

Swift Playgrounds要成為一個好的引導年紀小的開發者入門引導甚至到「簡單、中級語法指導」的同時在課程設置上就要避免斷層(自學面對很多渠道的同時,就怕一個渠道或者網站好好地突然這節課看不懂了),讓學習者感受到落差感和難度激增的挫敗感。

所以第一個最大的問題就是,swift是一個好的語言,apple創造它,瞭然它的前世今生。但是apple卻不一定能在中國App使用者中把Swift Playgrounds這個故事講得完整動聽,流暢自然。我相信這是教育門類、人類學習習慣和swift結合的難題(因為美國是課程,有老師學習機構引導)。

2,多選一的答題類別不一定能收到好的學習效果。代碼語句記憶,代碼精簡寫法等等問題是這個三選一帶給Swift Playgrounds的一個重要問題。同時因為闖關編程的設置,很少有人會回過頭來再通關一遍加深印象。一遍就過、手動輸入的比重太少,難免產生放下ipad拿出紙一個都寫不出來的程序員。這個問題總結來說就是各方面Swift Playgrounds都不能很好地培養程序員,只能培養一個興趣。

結合問題1,這個興趣能存在多久,會不會被自己的課程設置扼殺,還是興趣如何升華,動手做項目工程都是對一個App內容質量極大的考驗。

以上的思考和問題都建立在自學的基礎上,畢竟中國的學習者很難在近年接觸到「低年齡編程培養」,大有可能是編程爸媽、編程世家帶著孩子玩玩看看,或者是一些年紀偏小的ipad使用者不明就裡的玩具。

不過話說回來,swift的誕生真的是零基礎編程的福音。Swift Playgrounds是swift必然需要經過的路程,只是最終是突破局限成就教育史上的里程碑,還是完成了初級目標「吸引更多潛在開發者進入swift這個坑」,還需要時間來見證。

不過我一定充滿期待。

此回答的基礎建立在中國學習者和中國編程政策環境下的思考,不適用美國教育機構使用此類App的成效和結果(因為Swift Playgrounds就是響應美帝政策,推廣swift的必然產物,成功是必然~)。

知乎首答,感謝觀看。


關鍵詞是next generation,從現場反響來看當今的開發者沒有興趣。


一步大棋,走進中小學,影響一代人。

加上swift在iOS和macOS平台的天然優勢,以及開源後的可能性,準備安利身邊想學編程的設計師和小朋友用swift了(替換processing、python等)。


讓我想到了這個網站

CodeCombat - Learn how to code by playing a game


最新進展:

看了下session408的ppt,問題解決了

感覺iOS全家桶都能用,簡直是輕量級Xcode嘛

昨天更新了iOS10,嘗試了一下。結果因為不支持import XCPlayground 模塊,自定義的view並不能在live view預覽中繪製。希望好心人指點一下。

---------------------------------------------------------------

意義是iPad終於能像10年前的文曲星一樣用自帶的GVBasic開啟少年們的編程之旅.


自Steve Jobs起,蘋果即會用「One More Thing」來壓軸發布重量級產品。在今年蘋果全球開發者大會(WWDC)上,再次出現了「One More Thing」產品。由蘋果CEO Tim Cook親自上台發布了一款名為「Swift Playgrounds」的編程教學軟體。

為何一款針對青少年編程的App會受到如此重視?這和蘋果的企業文化,以及青少年編程的戰略地位不無關係。

事實上,在全球範圍內青少年編程正在成為一種新的趨勢。特別是在美國,以計算機編程為代表的科技工程教育(又稱STEM教育)已經成為國策。美國政府正在花大力氣推動編程普及化。包括奧巴馬總統和他自己的孩子都參加了編程學習。而佛羅里達州甚至在全美第一個通過立法,允許高中學生用程序開發語言替代傳統外語,並計算相應學分。

據最新數據統計,在新增的工作崗位中,和計算機相關的職業已經成為增長速度最快的領域。而且這種趨勢在不斷加強。未來世界的整個社會和經濟中,由計算機控制的流程會越來越多。工作不再是白領與藍領的區別,而是編程與被編程。要麼按照計算機設置的流程工作,要麼您自己掌握編程技術,能夠控制計算機!

對未來一代人而言,社會不僅意味著人與人之間的關係,更意味著人與機器之間的互動,掌握編程技術將使年輕一代未來能夠掌握與機器交流的「語言」。目前看來,不僅是計算機行業,其他行業的高級人才都需要一定的編程能力。

而蘋果公司新發明的Swift語言又是最適合青少年編程學習的語言之一。作為一款最新的開發語言,Swift開發語言性能強大,同時語法又超級簡單,非常適合用於教學。在蘋果這款新發布的Swift編程教學軟體中,學生既可以通過拖拉完成編程,也可以使用蘋果專門設計的Swift版 Quick Type軟鍵盤輸入代碼,實時看到結果。整個軟體中的教學項目又都是非常漂亮的動畫遊戲,非常適合小朋友學習。

對年齡更大的學生,還可以在mac電腦上使用蘋果專門的一套開發工具包Xcode去學習開發真正的商業級軟體。一套稱為「Code Genius」的Swift面授課程體系目前非常流行。蘋果上海的官方授權培訓中心:環球培訓(universal.training)已經引進這套課程體系。學習者或家長可以至環球培訓的網站申請免費的課程介紹資料。

對蘋果公司而言,學校教育一直是他們的傳統優勢領域。蘋果公司相信科技具有改變課堂的力量。致力於教育的理念早已融入蘋果公司的DNA中,也是其企業文化的重要組成部分之一。對蘋果而言,「Swift Playgrounds」是一款連接編程語言和學校教育的軟體。而對年輕一代而言,Swift開發語言也可能是他們打開未來之門和發掘自己編程天賦的鑰匙。

原文來自網易:ó?Swiftó???òyμ??àéù?ê±à3ì?à?μêD3?_í?ò×?ìóy


當時我看到免費下載時默默吐槽了一下

你得先有台iPad

然後你會想要一台Mac

這兩個都有了為什麼不買台iPhone

有Apple Watch會更配哦……

然後順利開拓小學生市場$_$


年輕人的第一種編程語言。


作為一個外行 我以為翻譯是泰勒斯威夫特跳廣場舞 擦


八零後用文曲星Basic學編程;

零零後有了iPad Swift Playgrounds。


編程從娃娃抓起,蘋果狂推 swift,就得不斷降低門檻……,這是個不錯的嘗試


從面向對象編程變成面向兒童編程


本次WWDC,Swift Playgrounds確實是我意料之外,但又一直希望出現的東西。

這讓我想起來第一次在文曲星上用GV Basic寫代碼的日子……我記得我寫了一個電子寵物作弊器,輕輕一點自動變天使貓。

說真的,macOS Sierra、iOS之類的和這個相比都不重要。如果把計算機技術看成英語,那大部分人只是能聽能說的文盲。編程像打字一樣,應該是人人都會的技能。如果蘋果能借Swift Playgrounds培育一批優秀的開發者,不單單是能深刻影響IT業界,而且我覺得有可能改寫計算機教育乃至整個基礎教育。


微軟的我的世界教育版中的紅石電路算嗎?


推薦閱讀:

為什麼安卓不採用墓碑機制?
Windows Phone 7 系統的使用體驗,相對 Android 和 iOS 來說,有哪些優劣之處?
為什麼安卓不採用推送(push notification)這種優雅,省資源的通知方式呢?
iOS 8.1.2 到 iOS 8.1.3 有什麼變化?升級好不好?
安卓的通知系統和iOS的比較?

TAG:iOS | 蘋果公司AppleInc | Swift語言 | WWDC2016 |