《程式碼本色》作者Daniel Shiffman:藝術家也程式設計(圖靈訪談)
Daniel Shiffman是紐約大學Tisch藝術學院助理藝術教授,“程式碼本色”便是其主講課程之一。他在耶魯大學獲得了數學與哲學學士學位和互動通訊的碩士學位。多年來,他一直用Processing這門藝術家友好型開源語言開發教程、教學示例和程式碼庫,擁有豐富的演算法和應用教學經驗。他以自己教授的一門名為“計算媒體導論”的課程內容為基礎,撰寫了Learning Processing,這本書廣受讀者好評。Daniel在Kickstarter上集資出版了他的第二本書《程式碼本色:用程式設計模擬自然系統》,他集合了多年開發和教學經驗,希望藉由此書讓大家真正瞭解如何用程式碼模擬自然現象。
問:為什麼Processing被譽為是對藝術家最友好的語言?和其他語言相比它有什麼特點?
Processing是由Casey Reas和Ben Fry創造的,他們因為工作和教學的原因想要創造這樣一個工具。Processing是我用著最舒服的程式語言和開發環境,我很喜歡用它來工作。
另外,Processing不僅有全面的繪圖API,也有詳盡的文件、示例、以及學習資源。它是免費開源的,並且非常適合初學者,它的開發者社群很活躍。Processing在互動裝置和資料視覺化方面都有很多應用。線上展覽https://processing.org/exhibition/是一個能看到激動人心的作品的地方。
對很多人來說,Processing或許是他們學習的第一門程式語言。我希望通過Processing用一種友好的方式闡述模擬自然系統的原理。
問:Processing似乎比其他模擬軟體要小很多,它的優勢在哪裡?Processing為什麼可以成功模擬自然系統?
在模擬方面,Processing並沒有什麼特別之處。我使用Processing是因為它對初學者很友好,也支援繪圖和動畫功能,而且它構建在Java之上,可以為互動專案帶來更多的可擴充套件性。
問:《程式碼本色:用程式設計模擬自然系統》這本書是怎麼來的?
我在ITP教授一門名為“計算媒體導論”的課。在這門課中,學生主要學習一些程式設計基礎知識(變數、條件語句、迴圈、物件和陣列等)。除此之外,他們還學習如何使用基本元素(影像、畫素、計算機視覺、組網、資料和3D等)開發互動式應用。課程內容以我之前寫的入門書Learning Processing為主,而本書是Learning Processing的續篇。一旦你掌握了程式設計基礎並且接觸了形形色色的應用場景,接下來很可能就是深入研究某個特定的方向。舉個例子,你可以專注於計算機視覺(比如閱讀Greg Borenstein寫的Making Things See等書)。當然,本書的內容只是眾多發展方向之一,它只是延續了Learning Processing,展示了Processing語言在演算法和模擬方面的更高階程式設計技術。
問:當你在KickStarter上為《程式碼本色》募集資金的時候,有沒有發生什麼有趣的事?
對於我來說,這是一次很好的體驗。有觀眾在等待這本書並且願意為早期草稿提供寶貴意見,我真是受寵若驚。這樣的過程也推進了整個撰寫的程式。
問:前面提到Processing是一種對藝術家很友好的語言,那麼《程式碼本色》是一本關於藝術和設計的書嗎?
不是。儘管我們的工作結果都是視覺上可見的事物(用Processing開發的演示動畫),但也僅僅是用簡單的圖形和色彩做出的演示,我們真正專注的是它們背後的演算法和相關程式設計技術。然而,我還是希望藝術工作者和設計師們能將本書中的知識融入工作實踐,創造一些真正新穎有趣的作品。
問:自然系統設計是否可以為遊戲設計提供靈感?這兩者之間有哪些共通之處?
最明顯的聯絡就在於物理模擬。很多遊戲創造的場景都是現實物理世界的反映,模擬技術的應用很廣泛。
在《程式碼本色》中我們會涉及物理學和生物學的個別話題,但不會從嚴謹的學術層面進行研究。相反,我們會簡單探討某些科學原理,只攫取我們需要的那一部分內容,並根據它們構建相關的示例程式。
問:寫作《程式碼本色》中的示例程式碼是否需要數學知識?閱讀這本書之前需要掌握什麼樣的基礎知識?
我盡力讓這本書對初學者更友好,儘可能減少對數學預備知識的要求。讀者只要對代數有一個基本的理解就足夠了。在這本書中,我從零開始講解了向量以及其他數學問題。
讀懂本書的前提條件是:你上過一學期的Processing程式設計課(並且熟悉物件導向程式設計)。這並不是說如果你學的是其他語言和開發環境就讀不懂本書,關鍵是你必須學過程式設計。
問:越來越多的人開始對Processing感興趣,一些有程式設計經驗的人急切地想改變Processing的開發環境。對於他們你有什麼樣的建議?
你可以在https://github.com/processing/processingand或http://forum.processing.org/two/上分享你的專案,答案,或者問問題,歡迎大家為Processing的開發出力!
問:計算機的創造力是獨立的嗎?計算機藝術作品的作者是程式設計師還是程式?
這是個很棒的問題,這也是之所以程式生成藝術是一個有趣話題的重要原因。我認為這個問題最終不是關於計算機的。Sol LeWitt(美國藝術家,藝術研究上包括概念藝術和極少主義)的作品創作過程就是他寫下規則,然後由其他人動手完成。這裡面誰是藝術家?什麼是藝術?有獨特創造力的計算機還不存在,至少我沒有見過,但是很多藝術家都在這個方向上努力。Heather Dewey Hagborg的作品“驚奇的記憶(Suprious Memories)”探討的就是這個問題。http://www.deweyhagborg.com/spurious/
問:計算機真的為藝術帶來了新的聲音嗎?我們對於藝術和創造力的理解是否因為科技而改變?
我認為計算機確實為藝術帶來了新的血液。最明顯的一點莫過於速度和自動化。我相信如果有些藝術家不是因為自己和科技有著極其親密的關係,他們可能就不會在創造藝術作品上找到自己的熱情和天賦。一般來說,我們認為程式設計是為了完成一個特定概念而執行計劃的過程。但是我對“意識流”程式設計很感興趣——在你程式設計的時候讓精神遊蕩,是否會發現嶄新的想法和演算法呢?
更多精彩,加入圖靈訪談微信!
相關文章
- 《程式碼本色:用程式設計模擬自然系統》作者Daniel Shiffman訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- 譯後訪談《Scratch少兒趣味程式設計》作者阿部和廣(圖靈訪談)程式設計圖靈
- 《Erlang程式設計(第2版)》作者Joe Armstrong訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- 《JavaScript DOM程式設計藝術》作者談:原型程式碼與生產程式碼之間的矛盾JavaScript程式設計原型
- 《Java程式設計師修煉之道》作者Ben Evans訪談問題有獎徵集(圖靈訪談)Java程式設計師圖靈
- 程式設計藝術家之路程式設計
- 程式設計師和程式藝術家程式設計師
- 《Java 8函數語言程式設計》作者Richard Warburton訪談問題有獎徵集(圖靈訪談)Java函數程式設計圖靈
- 《計算機程式設計藝術》作者高德納計算機程式設計
- 《Python計算機視覺程式設計》作者Jan Erik Solem訪談問題有獎徵集(圖靈訪談)Python計算機視覺程式設計圖靈
- 談UIView Animation程式設計藝術UIView程式設計
- 再訪《Scratch少兒趣味程式設計》系列圖書作者阿部和廣、倉本大資(圖靈訪談)程式設計圖靈
- 《我的第一本程式設計書》作者平山尚,訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- @程式設計師鄒欣 訪談問題有獎徵集(圖靈訪談)程式設計師圖靈
- 惠新宸:我也曾經是“不適合”程式設計的人(圖靈訪談)程式設計圖靈
- 《機器學習》作者Peter Flach:好萊塢也借AI上頭條(圖靈訪談)機器學習AI圖靈
- 有獎 |《Lua設計與實現》作者codedump訪談話題徵集(圖靈訪談)圖靈
- 《CSS設計指南》作者Charles Wyke-Smith訪談問題有獎徵集(圖靈訪談)CSSMIT圖靈
- 《黑客與設計》作者David Kadavy訪談問題有獎徵集(圖靈訪談)黑客圖靈
- 再訪《Scratch少兒趣味程式設計》系列圖書作者阿部和廣、倉本大資訪談問題有獎徵集(圖靈訪談)程式設計圖靈
- [英]專訪《寫給大家看的設計書》作者Robin Williams(圖靈訪談)圖靈
- 池建強:我的人生超程式設計(圖靈訪談)程式設計圖靈
- 圖靈社群--程式設計師的家圖靈程式設計師
- Flash遊戲開發專家Gary Rosenzweig:先成為程式設計師,再做AS程式設計師(圖靈訪談)遊戲開發ROS程式設計師圖靈
- 《物聯網設計》作者Adrian McEwen訪談問題有獎徵集(圖靈訪談)圖靈
- 《程式設計師必讀之軟體架構》作者Simon Brown:架構師與程式設計師的區別(圖靈訪談)程式設計師架構圖靈
- 雲風:一個程式設計的自由人(圖靈訪談)程式設計圖靈
- 《程式設計師程式設計藝術》程式設計師
- 《學習響應式設計》作者Clarissa Peterson訪談問題有獎徵集(圖靈訪談)圖靈
- 優秀的程式設計師就像藝術家?程式設計師
- 松本行弘:程式碼的未來(圖靈訪談)圖靈
- 專訪《AngularJS 2權威教程》作者Nate Murray:程式碼更像圖表,需要多維度把握(圖靈訪談)AngularJS圖靈
- 《第一行程式碼》作者郭霖:從Java程式設計師到Android開發者的第一步(圖靈訪談)行程Java程式設計師Android圖靈
- 《機器學習》作者Peter Flach訪談問題有獎徵集(圖靈訪談)機器學習圖靈
- 程式設計,不止有程式碼,還有藝術程式設計
- 《Java 8函數語言程式設計》作者Richard Warbourton:Java的亮點不是語言本身(圖靈訪談)Java函數程式設計圖靈
- 《Android惡意程式碼分析與滲透測試》作者趙涏元訪談問題有獎徵集(圖靈訪談)Android圖靈
- 《演算法圖解》作者Adit Bhargava訪談問題徵集(圖靈訪談)演算法圖解圖靈