Re: [閒聊]遊戲開發者抱怨現在程式碼誇張膨脹「可能有99%的內容都是

作者: wei115 (ㄎㄎ)   2022-07-03 21:00:39
※ 引述《pl132 (pl132)》之銘言:
: 遊戲開發者Cliffski抱怨現在程式碼誇張膨脹「可能有99%的內容都是垃圾」
: https://tinyurl.com/229o8zbm
: 作為一名從事獨立遊戲設計和程式業務的開發者,克裡夫斯基(Cliffski)在一篇文章中
: 吐槽道 —— 這年頭的「程式碼膨脹」,已經到了令人髮指的地步。
: 他以自己常使用的一個雲端備份服務為例來說明,這個由某個大公司提供的雲端備份工具
: ,基本上提供的服務就是指向本地端硬碟上的一個資料夾,然後把內容複製到一個遠端伺
: 服器上。而上傳到伺服器時,大公司可能需要做一些與資料庫管理有關的事情,例如給這
: 一堆上傳的檔案分配一個名稱,並驗證誰下載了它。
: 「這是一家大公司,所以他們有大的程式,而且可能經常被駭客攻擊,所以需要一些安全
: 保障,也需要一些驗證,以確保在我上傳和他們接收檔之間沒有被篡改過。我明白這一點
: 。」他表示。「但基本上這個程度的目的就是列舉一些文件,讀取它們,上傳它們,然後
: 關閉連接,並提供一個日誌檔,說明是否成功,如果不成功,出了什麼問題。事實上,我
: 自己也從頭開始寫過這樣的程式碼,使用wininet API和伺服器上的php與MySQL資料庫對
: 話。與企業級的東西相比,我的東西可能沒有那麼強大,但它確實可以做到。」
: 不過他表示,今天他所使用的這個大公司提供的上傳工具,檔案大小共有230MB,裡頭有
: 2700個不同的檔案,就為了管理這個過程。
: 他表示這說明了現在的應用程式,已經超越了「臃腫」可以形容的程度,程式檔案的膨脹
: 已經變成「完全的、徹底的、明顯的荒謬和瘋狂」。
: 一個普通的程式設計師都可以編寫一個同樣功能的程式,它的程式碼量小到只有這個應用
: 程式的 1/20,足以將文件安全、快速地上傳到伺服器。甚至可以是一個單獨的 .exe 可
: 執行文件,無需成百上千的動態鏈接庫(DLL)。
: 不僅可行,而且簡單、可靠、高效、易於調試。只需稍微努力那麼一下,它就會起到切實
: 的作用。
: 那麼,現在的程式碼為什麼會變得這麼大而臃腫呢?
: 「我見過不少程式員在幹這種爛活,我知曉這種情況是怎麼發生的。」他表示,越來越多
: 程式設計師不去研究通過底層的高效程式碼來完成工作,且許多人甚至從未寫過所謂的好
: 程式碼。很多人往往就是引用DLL函示庫,需要什麼就去找什麼。
: 「我可以斷言,在你的電腦中許多應用程式,99.9%的程式碼是絕對無用的,甚至從來沒
: 有被執行過。它只是在那裡,在一套多達65個檔案的DLL函示庫中,這只是因為某個程式
: 設計師想做一些微不足道的事情,比如保存一個點陣圖,但他們不想從底層來寫這個程式
: ,所以他們導入了一整桶臃腫的垃圾來實現它。」
: 舉個例子,當年一個僅 64Kb 的《Elite》遊戲,就包含了龐大的星系、3D 太空戰鬥、職
: 業發展系統、交易、以及數千顆可供探索的行星。
: 誠然,現如今電腦速度已經快到可以忽略程式的臃腫。但是在你使用電腦時,正在懷疑自
: 己到底有沒有點下去按鈕的這半秒鐘時間裡,頻率動輒數 GHz 的處理器世界裡,早已過
: 去了數十億年。我們浪費了個人計算機 99% 的算力和能耗,就為了這些垃圾程式。
: 想像一下,在你急著想要在檔案總管中快速搜尋某個檔案的時候,工作管理員卻在那搞一
: 堆廢話,如果你查一下後台,竟有102 個程序在忙碌著,天知道他們在幹什麼!
: 或許正因如此,我們才在幾乎沒有幹任何事情的情況下,你發現你去年才買的機器,今年
: 就「老了」。
: 你甚至需要每年都換一部新手機、新電視,以執行那些臃腫不堪的串流媒體 App —— 只
: 因為它們依賴執行的程式碼是如此糟糕!
: 他表示他非常懷唸過去程式的黃金時代,程式員們對記憶體和 CPU 的限制瞭如指掌。如
: 今,我們已經被迫生活在了一個效率極其低下、但浪費又如此誇張的泥潭裡。
沒辦法
摩爾定律告訴我們,每18個月電晶體數量增加一倍
而電晶體數量和電腦性能有一定關聯
程式寫再好有什麼用?開發週期一長,你節省的性能馬上就被摩爾定律幹過去
反而快速開發不管性能的,已經搶佔了市場,然後性能問題也隨著設備更新被解決
不過最近幾年,隨著製程越來越接近物理極限 摩爾定律有失效的趨勢
還有提升CPU IPC的技巧都用的差不多了
現在程式越來越不能亂寫了,至少最基本的多執行緒要用上,還有GPU加速之類的
作者: orze04 (orz)   2022-07-03 21:08:00
除非像GTA5那種智障載入的錯誤https://tinyurl.com/4yakxude

Links booklink

Contact Us: admin [ a t ] ucptt.com