黑客 vs. 軟體工程師:對代理範式(Agentic Paradigm)的 Critique

在不斷演進的技術領域中,「軟體工程師」的定義正在發生轉變。對某些人來說,這是一個象徵專業聲望的頭銜;對其他人來說,這是一個企業標籤,日益將從業者與實際的寫程式工藝隔離開來。一位資深開發者的挑釁性文章探討了這種身份危機,認為產業向「代理範式」(agentic paradigm)——即由 AI agent 撰寫並管理程式碼——的衝刺,並非工程學的演進,而是對其的背離。

這種緊張關係凸顯了一個根本性的分歧:一方是將編碼視為需要可重現性和推理能力的嚴謹工藝的人,另一方則是優先考慮速度、KPI 和機率性輸出而非結構完整性的企業趨勢。

工藝精神的侵蝕

爭論的核心在於「黑客行為」(hacking,在原始的探索性意義上)與目前許多企業環境中所實踐的「軟體工程」之間的區別。原文作者認為,雖然他們在幾十年前被稱為「優秀的黑客」,但他們從未真正認同自己是軟體工程師——特別是當這個詞開始與缺乏嚴謹性聯繫在一起時。

程式碼中的真正工藝體現於對以下方面的承諾:

  • 可讀性與可理解性: 確保程式碼不僅具備功能性,而且對其他人類來說是可理解的。
  • 確定性輸出: 相信機器應該針對相同的輸入產生相同的輸出,避免非確定性 AI 生成所帶來的「流沙」感。
  • 結構完整性: 專注於 Inversion-of-Control、隔離測試,並避免「god objects」或為了短期便利而犧牲長期可維護性的混亂實作。

當這些價值觀為了「把事情做完」而被忽視時,結果往往是一個脆弱且難以推理的系統。作者指出,在許多現代職場中,擔心查詢性能或明確的介面,被視為一種不必要的干擾,而非高品質工作的核心要求。

「代理範式」與 AI 護城河

產業目前正推向「代理用戶流程」(agentic user flows)以及將 AI agent 整合到軟體開發生命週期(SDLC)的每一個步驟中。其承諾是,手寫程式碼最終將變得像 COBOL 一樣過時。然而,這種轉型引發了重大的技術與哲學疑慮。

一個主要的批判點在於介面的性質。用自然語言文本框取代結構化的選項,往往會在原本需要精確度的地方引入模糊性。此外,依賴本質上具有機率性的 LLM 來撰寫確定性的軟體,創造了一個根本性的悖論。

除了技術層面,還有一個關於「思考護城河」的更深層系統性擔憂。隨著 AI 領導者討論「廉價到無法計量的智能」,存在一種風險,即產業並非在增強人類智能,而是在用一個黑盒工具來取代問題解決的認知過程。這種轉變伴隨著關於知識產權盜竊以及用於訓練這些模型的集體剝削的倫理問題。

社群觀點

對這些觀點的反應是兩極分化的,反映了開發者社群中更廣泛的分歧。

支持黑客身份的理由

一些開發者在「黑客」標籤中找到了慰藉,將其視為對他們與技術關係更誠實的描述。對他們來說,編碼的樂趣在於重新利用工具並透過構建的過程來學習,而不是在企業階層中充當「機器中的齒輪」。

務實主義的辯論

相反地,一些人認為作者的立場是「悲傷發文」(grief-posting)或對完美的理想主義追求。從這個角度來看,客戶並不關心 TDD (Test-Driven Development)、SOLID 原則或「美觀」的程式碼;他們關心的是快速交付功能性產品。對於這些務實主義者來說,AI 的機率性本質是一種為了提高速度而值得做的權衡。

專業定義

一個有趣的附註是關於「工程師」的法律與專業定義。在加拿大等地區,「工程師」是一個具有法律責任的受保護頭銜。這凸顯了舊金山灣區對該詞彙的隨意使用,在那裡,該角色的職責很少能反映出傳統工程學學科中的專業問責制。

結論:黑客的定位在哪裡?

隨著產業向由 AI agent 主導的未來邁進,人類開發者的角色正在被重新定義。雖然產品工程師可能會更多地接觸到 AI 自動化,但對於那些「直接硬幹」(rawdog)程式碼的人——例如內核開發者和函式庫作者,他們確保數位世界的基礎保持穩定且具備推理能力——仍然存在著關鍵需求。

無論一個人稱自己為軟體工程師還是黑客,核心衝突仍然存在:我們是重視思考的過程與工藝的嚴謹性,還是滿足於讓機器管理複雜性,而我們我們只管 KPI?

Sources