首頁  >  文章  >  科技週邊  >  為什麼編寫有價值的軟體總是很困難

為什麼編寫有價值的軟體總是很困難

DDD
DDD轉載
2023-11-01 10:36:15962瀏覽

我對人工智慧在未來幾十年將如何改變程式設計行業很感興趣,但我對任何短期內充滿炒作的預測持批判態度。人工智慧無法創造出幾十年後仍然有價值的軟體。這仍然是一個真正難以解決的問題。它可以幫助我們提高效率,但在有效性方面表現不佳。

更準確地說,人工智慧是一項不可靠的工作。有效性是指建構正確的事物,即符合我們人類利益且不會傷害我們的事物。自動駕駛汽車的設計初衷是避免撞到其他車輛或行人,但其可靠性充其量只是勉強合格。指定安全措施相對容易,但實施上卻極為困難。而且,隨著自動駕駛汽車的數量不斷增加,每天都會有一些汽車在兩難之間做出生死的抉擇。機器需要在瞬間做出判斷,以確定對其他人類最有利的事情。它會爭辯說,許多人的需求比一個人的需求更重要。在涉及此類生死攸關的決定時,我們應該牢牢掌握主導權,塑造我們想要的未來。

目前的人工智慧在提高效率方面做得更好。它可以取代不同的方案,權衡其相對優缺點,並提出最優解決方案的組合建議。但隨著人工智慧變得越來越智能,我們就不應該再信任它來處理需要判斷的有爭議的話題。因為事情可能會變得很可怕。尼克·博斯特羅姆(Nick Bostrom)著名的回形針製造者就是一個有趣的思想實驗,它包含一個重要的警告:人工智慧將根據你的指示進行最佳化。如果它恰好是在製造回形針,並且它擁有無限的力量和無限的無私,它會剝奪整個星系的金屬來製造更多無用的文具。

即使人工智慧變得具有自我意識,無論是否有黑暗的議程,它仍然是外星的,從定義上來說也是如此(這體現在「人工智慧」這個詞中)。艾薩克·阿西莫夫(Isaac Asimov)預測,具有自主權的人類創造物應該有一些內建的安全措施。他的機器人三定律比世界上第一台電子計算機 ENIAC 早了三年。但他不可能預料到,邪惡的天才會透過偷偷摸摸的韌體升級,在「不傷害」原則中添加一些私人例外,就像在第一部《機械戰警》(RoboCop)電影中那樣。

讓我們停止對人工智慧的悲觀預測。我預測(我沒有投資於任何主要利益相關者)的是,程式設計藝術將轉變為清晰明確地表達您需求的藝術。開發人員將成為精通人工智慧的業務分析師,習慣使用終極高階程式語言(即英語)與人工智慧對話。人工智慧將始終建立可工作的軟體,如果我們幸運的話,它甚至會很有用。

可工作的軟體還不夠好

《敏捷宣言》呼籲使用可工作的軟體,這很奇怪嗎?就好像損壞的軟體曾經是一個可以接受的替代品一樣!要求提示產生的程式碼也有用且有價值,是不是太過分了?是的,這可能是要求太多了。可工作的軟體和有價值的軟體之間存在巨大差距,因為價值是無形且不可預測的。即使是完美的軟體也可能會因您自己的過失而失去其相關性,而且這種方式是任何升級都無法修復的。以下是一些例子。

這不是我第一次提到被遺忘的作業系統專案 Chandler。羅森伯格(Scott Rosenberg)2007 年出版的《夢想中的代碼》(Dreaming in Code)一書,精美地講述了 Chandler 1.0 版本的坎坷之路。這是一個持久的警示:即使有最好的意圖、一個由敬業的頂級開發人員組成的團隊和慷慨的贊助商,也不一定能保證成功。

Chandler 致力於成為 Microsoft Outlook 和 Exchange 的免費替代品。它承諾提供完全不同的使用者體驗,並將顛覆我們處理訊息、議程項目和待辦事項清單的方式。它將透過桌面應用程式實現這一點,並透過點對點協定進行通訊。權力歸於人民!

但團隊在其架構路線圖中犯了太多錯誤。就像伊卡洛斯(Icarus)一樣,他們飛得太靠近太陽。世界追上了他們。更強大的瀏覽器功能使得基於 Python 的桌面應用程式成為一個糟糕的選擇。

GWT 的意外過時

有時,即使是一個優秀的工具也會過時,因為其原有的獨特賣點不再具有吸引力。 Google Web Toolkit(GWT)在 2006 年提出了一個有力的主張。當時,桌上型電腦的效能已經足以支援瀏覽器作為應用程式平台。您可以不用安裝任何軟體來完成報稅。但當時瀏覽器相容性存在問題,尤其是拖放或雙擊等進階功能。 GWT 可讓您在同一專案中編寫後端和前端程式碼,並使用共用物件進行資料傳輸和驗證,然後將它們部署在單一的 Web 檔案中。 GWT 將 Java 編譯為 JavaScript,您甚至可以使用本機開發伺服器來偵錯客戶端 Java 程式碼。我很喜歡它,並從中賺了一些錢。

但編譯 GWT 程式碼非常耗時。瀏覽器供應商逐漸解決了相容性問題。 Angular 和 React 等前端平台迅速成熟。建構前端成為一項嚴肅的職業,這些開發人員似乎不排斥 JavaScript 作為程式設計平台。 GWT 已經失去了其相關性,人工智慧不可能預見或解決這個問題。問題不在於程式碼,而是它與周遭世界的不符。

堅持程式設計

當然,這些都不能阻止您編寫程式碼。嚴肅的軟體並不需要在商業上有效,也不需要有任何實際價值。我指的是業餘的開源軟體。我寫過一些我為之自豪的軟體,但它們沒有商業計劃、路線圖,也沒有其他動機,除了我自己的教育和樂趣。它在教會我新概念方面是有效的,但我對自己的產品並不感興趣。 GitHub 上有很多這樣的專案。我無意冒犯任何人。我只是根據個人經驗說話。程式設計本身並沒有錯,但這就像在一個永遠不會在觀眾面前表演的樂團中演奏一樣:很難堅持下去。

總結

人工智慧將在未來幾十年內對程式設計產業產生重大影響。但它不會取代人類開發人員。相反,它將使我們能夠建立更有效和有價值的軟體。但我們需要意識到人工智慧的局限性,並確保其用於善而不是惡。

以上是為什麼編寫有價值的軟體總是很困難的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:dzone.com。如有侵權,請聯絡admin@php.cn刪除