- 萬物皆計算:科學奇才的探索之旅
- (美)斯蒂芬·沃爾弗拉姆
- 1531字
- 2024-12-12 17:45:06
1.7 電影拍攝歷程
我這一生中有很多時間花費在了大型項目上,我總是對所有領域的大型項目是怎么組織的充滿好奇。我是那種看電影會一直看完片尾鳴謝名單的人,所以對我來說,可以近距離觀察《降臨》的拍攝過程是一件很有趣的事情。
從規模上來說,拍攝一部像《降臨》一樣的電影是一個與發布 Wolfram 語言的大版本更新一樣的項目。二者之間有很多類似的地方,當然也有很多不同。它們都包含了各種想法和創新,都需要許多種不同的技能,都需要在最終把東西有條理地耦合到一起,完成一個產品。
有時候我會覺得電影制作者的工作比我們軟件開發人員的稍稍容易一些,畢竟他們只是做一個給人看的東西,而在軟件領域,尤其是在做語言設計的時候,我們要做的是給不同的人提供無限種可能的使用方法,包括我們自己都沒有想到的方法。當然,在軟件開發中,你總是可以通過發布新版本來逐漸改進,而電影的制作則是一次定型。
在人力資源方面,軟件開發絕對要比制作《降臨》這樣的電影容易。在良好管理下的程序員們會有相對固定的工作節奏,所以他們可以數年如一日地在穩定的團隊中持續工作。在制作像《降臨》這樣的電影時,通常會有一隊人,彼此從未謀面,每個人在項目里工作一小段時間。這種工作方式居然奏效,這對我來說真是不可思議。不過我猜想在多年的發展中,電影工業中的很多步驟已經變得標準化了,所以一個人可以在一項任務上工作一兩周,然后順利交接給其他人。
我這一生中曾經領導發布了數十個大的軟件版本。人們可能會認為,到現在為止我已經到達了一種境界,發布一個大的軟件版本對我來說已經變成一個平靜、簡單的流程了。但從來就不是這樣?;蛟S這是因為我們一直在嘗試做一些創新的東西,又或許這就是這類項目的特性。不過,我發現讓一個項目達到我期待的質量水準需要異乎尋常的個人熱情。是的,至少在我們公司是這樣的,項目中總是有一些極其有才華的人。但是不知怎的,總會發生出乎意料的事情,把所有工作整合到一起通常需要花費非常多的精力、注意力和推動力。
有時候,我會想象這個過程其實也有一點點像制作一部電影。事實上,在 Mathematica 的早年版本中,我們甚至曾經用過“軟件鳴謝”,這看起來非常像電影的鳴謝名單,不過其中貢獻者的頭銜是我給他們安上的(“首席軟件包開發者”“表達式格式定義專家”“首席字體設計師”……)。但是在十多年之后,區分每個人對不同版本補丁的貢獻這件事變得過于復雜,所以我們不得不放棄這種軟件鳴謝。然而,有一陣我曾經想過,我們是不是可以有“殺青宴”(wrap party)這樣的活動,就跟電影行業一樣。但是不知怎的,每當既定的聚會時間來臨的時候,總會有嚴重的軟件質量問題出現,所以那些核心開發人員不得不去解決這些問題而不能來參加聚會。
軟件開發,或者至少是軟件語言的開發,與電影制作有一些結構上的類似。人們都是從一個劇本 / 一個目標產品的總體說明開始的,然后試著去制作它。隨后,不可避免地,到最后大家看著做出來的東西,會意識到需要對原先的規范說明做一些改動。在像《降臨》這樣的電影制作中,它被稱為后期制作;在軟件開發中,它被稱為開發流程的迭代。
看到《降臨》的劇本和我對劇本提出的建議對整個電影的制作的影響,我覺得很有意思。這提醒了我,至少在做軟件設計的時候,一切應該越來越簡單。我曾經對影片中的對白提出過一些具體的建議:“你不應該說(埃米 · 亞當斯的角色)微積分不及格,以她超強的分析能力是不會的?!薄澳悴粦撜f飛船來自一百萬光年之外,那已經超出銀河系了,應該說一萬億英里之外?!边@些建議會被采納。而事情隨后變得更簡單了,人們會用最簡要的方式就核心想法進行溝通。我并沒有看到所有的步驟(盡管這應該也非常有趣),但是這些結果讓我想到在軟件設計中做過無數次的事情:把所有能簡化的都簡化,讓每一件事變得盡量清晰和最小化。