🗼 AI 的巴別塔

有幸拜讀此文:https://blog.senko.net/code-was-never-the-hard-part-is-an-insult-to-all-programmers

全篇文章整體照顧了所有人的感受、肯定了幾乎所有職場角色的重要性。身為工程師,我對複雜度一事有自己的看法。

餘暉下的巨構

我們假設它推論正確:「軟體只會越來越複雜」、「軟體永遠需要維護」(Software will be getting more complex. Software will always need maintenance.)兩組命題都成立。

事實上,人類早已在建造超過單一個體所能理解的軟體。

那樣子的軟體,就像是巴別塔一般:高聳入雲,隨著高度增加,添磚加瓦就越來越困難。

我們使用的方法,大致可以稱作分工。

一種是空間上的分工。同一時間,不同工程師負責不同的模組、服務與層級,沒有人需要掌握整套系統,只需要理解自己負責的部分,以及與其他部分交接的介面。

另一種則是時間上的分工。一套軟體可以活得比任何一位工程師待在專案裡的時間都久。程式碼、文件、測試、版本紀錄與介面,把前人的理解留下來,讓後來的人能在不重新理解一切的情況下繼續添磚加瓦。

換句話說,我們從來沒有真正解決人類認知能力有限這件事。我們只是透過分工、抽象與紀錄,把一座沒有人看得完整的塔,一層一層地蓋了起來。

但這個方法本身是否也有極限?

誰是添磚人?

如果有一天,連人類工程組織透過分工所能有效協調與承擔的複雜度,都追不上塔本身呢?

如果軟體複雜度真的能持續增長,那麼至少存在一個可能的極限:系統複雜度超過人類工程團隊可直接掌握的範圍,以現有的人類分工機制也不足以可靠地修改它,那維護主體就未必還能只是假定為人類。

如果有一天軟體複雜度抵達這個臨界點,那我們今天對軟體工程中「好」與「壞」的判斷,有多少其實是在適應人類認知能力,而不是軟體本身的必然性?

巴別塔的天際線

我們一路假設巴別塔可以無限增高。但如果這座塔存在的唯一目的,是滿足住在地面上的人,那事情就變得奇怪了。

人能感受、理解、記憶、享受與使用的狀態都有物理邊界。至少從這個意義上說,人類的需求不可能擁有真正無限的承載空間。

假如有一天,一隻「上帝之手」已經能調節人的身體、感官、神經狀態與偏好,使一個人所有可被滿足的需求都得到滿足,那麼下一層塔究竟是為誰蓋的?我們失去了繼續蓋塔的理由,這也許就是為人類需求而存在的軟體,其必要複雜度的上限。

然而,是「人類已無法維護」這一層先到,還是「人類已沒有足夠的新需求值得繼續堆高」這一層先到,我就不得而知了。

如果 AI 永遠只是工具,那麼有限的人類可能構成需求複雜度的最終上界。如果有一天 AI 本身成為需求的主體,那就是另一回事了。屆時,巴別塔也許真的會繼續往上蓋。只是住在塔裡的,未必還是我們。