![]()
文 | 王啟隆
出品 | CSDN(ID:CSDNnews)
投稿或尋求報道 | zhanghy@csdn.net
在計算機技術七十余年的演進史上,一個幽靈始終在行業上空徘徊——“程序員即將被機器取代”。
然而,這并非 ChatGPT 爆火后才出現的新近焦慮,而是貫穿整個信息時代、最具韌性的預言之一。
每當一項旨在簡化軟件開發、降低技術門檻的重大技術躍遷出現時,“程序員末日論”便會應聲而起,以不同的技術名義,在每一個時代向同一個職業宣判死刑。從 1950 年代編譯器的誕生,到今天大語言模型的崛起,歷史已經上演了整整八輪幾乎一模一樣的“替代”故事。
所以,讓我們一起追溯歷史上這八次主要的“程序員替代論”浪潮,看看程序員如何“死而復生”,探究程序員們“不死的秘密”。
![]()
自動化的黎明(1950 年代)
沒有顯示器,沒有鍵盤,更沒有我們熟悉的 IDE。
這個年代所謂的“程序員”,是一小群數學家和邏輯學家。他們的工作,是在一張張表格上手動填寫一長串令人費解的八進制碼,每一個數字都對應著機器的一條指令、一個內存地址。然后,這些編碼被送去穿孔,變成一疊厚厚的卡片。
約翰·巴克斯,后來 FORTRAN 語言的發明者,如此形容那段經歷。
“你必須像了解自己的掌紋一樣,了解 CPU 的每一個寄存器和指令集。任何一個微小的疏忽,比如一個內存地址寫錯,都可能導致程序崩潰。”
![]()
就在這個背景下,第一位“終結者”登場了。她是一位名叫格蕾絲·霍珀的海軍少將,一位計算機科學家。她提出了一個在當時聽起來近乎天真的想法:為什么我們不能用更接近自然英語的語言來編程呢?
她的愿景并非要用機器取代人,而是想讓更多的人能夠駕馭機器,特別是那些處理商業數據的普通職員,她認為這些人并不擅長操縱抽象的數學符號。當她首次提出這個想法時,立刻遭到了同行的嘲諷:“我很快就被告知,我不能這樣做,因為計算機不懂英語。”
但霍珀堅持了下來。她和她的團隊在 1952 年開發了 A-0 系統,這被認為是歷史上第一個編譯器。它的作用,就是把那些相對友好的、類似英語的指令,自動“翻譯”成機器能夠理解的二進制碼。
![]()
與此同時,在 IBM,約翰·巴克斯的團隊也在進行一場平行的革命。他們開發 FORTRAN 語言的目標非常明確:讓科學家和工程師能夠直接用他們熟悉的數學公式來編寫程序,從而擺脫對那一小撮“硬件專家”的依賴。
這兩項發明的出現,立刻引發了第一輪“程序員替代論”。人們相信,既然機器可以自動完成最困難的翻譯工作,那編程的門檻將不復存在,那些掌握著機器神秘知識的專家,自然也就沒有存在的必要了。
然而,歷史的走向出乎了所有人的意料。編譯器非但沒有終結程序員,反而催生了我們今天所熟知的、一個全新的、龐大的職業群體——“軟件程序員”。
![]()
它將開發者從與硬件寄存器搏斗的泥潭中解放出來,讓他們第一次可以集中精力去思考更高層次的問題——“我要解決什么問題”,而不是“我該如何指揮這臺機器”。一個過去需要耗費數周去編寫的核反應堆參數計算程序,用 FORTRAN 可能只需幾個小時。
軟件的應用成本急劇下降,應用范圍空前擴大。銀行、航空公司、制造企業……各行各業都開始涌現出對軟件的巨大需求。而這種需求的增長速度,遠遠超過了生產力提升所能“節省”的人力。
所謂的“替代”,第一次露出了它的真面目:它不是角色的消亡,而是角色定義的重塑。舊的、面向硬件的“編碼員”,被新的、面向應用的“程序員”所取代。
而整個行業的規模,爆炸式地增長了。
![]()
意大利面條仍然是意大利面條(1960-70 年代)
沒霍珀的夢想在60年代被推向了行業政策的高度。在美國國防部的主導下,COBOL(通用商業導向語言)誕生了。
它的設計哲學被貫徹得極為徹底:使用基礎的英語單詞,語法結構冗長得像一篇散文(比如用 MOVE X TO Y 來替代 Y = X),以期達到“自文檔化”的效果,讓非專業的管理人員也能輕松讀懂,甚至編寫程序。
這被視為解決日益嚴重的“軟件開發積壓”問題的終極方案。當時的設想是,如果業務經理能夠自己編寫或者至少修改程序,那對專業程序員的依賴自然會大大降低。
但現實很快給出了另一份答案。企業的業務經理們并沒有開始親自編寫公司的薪酬系統。恰恰相反,COBOL 的普及,催生了一個全新的、龐大的、且高度專業化的職業群體——COBOL 程序員。他們遍布在銀行、保險、政府等各個機構,成為了信息時代的第一代“碼農”。
人們痛苦地發現,語言的“可讀性”并不能消除邏輯的“復雜性”。一句流傳至今的俏皮話精準地概括了這一切:“意大利面條仍然是意大利面條。”
無論語法多么像英語,一個糟糕的、充滿了 GO TO 跳轉的程序,其邏輯依然像一盤攪亂的意大利面,難以理解和維護。
想象一下,一位在 80 年代入職的年輕程序員,他的工作是維護一個在 60 年代末上線的、擁有數百萬行代碼的銀行核心交易系統。他面對的挑戰,不再是機器的指令集,而是深埋在代碼深處、盤根錯節的業務規則。
這些規則可能是二十年來無數次政策調整、特殊客戶豁免、臨時補丁的層層疊加。代碼的原始作者早已退休,文檔缺失不全。他必須像一個考古學家一樣,從這些被稱為“屎山”的遺跡中,小心翼翼地挖掘出一段邏輯,修復一個 bug,同時祈禱不會因為自己的改動,而導致某個看似無關的模塊在午夜結算時崩潰。
這成了一項全新的、極具挑戰性的專業技能。
![]()
所謂的“簡化”,只是將困難從一個層面遷移到了另一個更高的層面。程序員的認知負擔,從“機器復雜性”轉向了“領域和應用復雜性”。
編程的困難并未被消除,它只是換了一副面孔。
![]()
你只需說“要什么”,而不用管“如何做”(1970-80 年代)
軟件積壓的問題愈演愈烈,業界開始尋求一次范式上的飛躍。第四代編程語言(4GL)應運而生,它的承諾極具誘惑力:從“過程式”編程轉向“聲明式”編程。
當時的宣傳話語充滿了樂觀主義。它們描繪出一幅生動的圖景:你不再需要像使用 COBOL 或 FORTRAN 那樣,一步步地告訴計算機“如何”完成任務(打開文件、循環讀取、判斷條件、寫入結果),你只需要簡單地聲明你“想要什么”結果。
![]()
比如,在一個報表生成器里,一個普通的辦公室文員,只需通過圖形界面“點擊幾下”,選擇需要的字段、過濾條件和排序方式,就能自動生成一份精美的銷售報表。
這種敘事被刻意包裝成對傳統 IT 部門的一種挑戰,直接推銷給那些對開發效率感到沮喪的業務經理。數據庫查詢語言 SQL 的誕生,也遵循著同樣的哲學,它最初的名字 SEQUEL,就是“結構化英語查詢語言”的縮寫,旨在為非程序員提供一種訪問和操作數據的直觀方式。
“程序員將被繞過”,這個論調再次響起。
然而,盡管市場聲勢浩大,4GL 最終并未實現其宏偉目標。它們在特定的領域,比如報表生成、數據查詢等場景取得了巨大成功。SQL 更是大獲全勝,成為了關系數據庫交互的事實標準。但 SQL 的成功也恰恰證明了 4GL 的局限性——它是一種強大的領域特定語言(Domain-Specific Language),而非能夠取代 C 或 COBOL 等通用語言的全能選手。
讓非開發者構建一個完整、復雜的企業系統的承諾,基本上未能兌現。現實情況是,那位辦公室文員確實可以快速生成報表,但他所查詢的那個龐大、穩定、安全的核心數據庫系統,依然是由一隊專業的數據庫管理員和程序員,使用C或PL/SQL等“過程式”語言,精心設計、構建和維護的。
這一輪浪潮,并未消滅程序員,而是催生了一類新的“混合型”角色。大量的業務分析師、數據分析師和其他領域的專業人士開始學習 SQL,不是為了成為全職的軟件工程師,而是為了增強他們自身的核心工作能力。與此同時,專業的程序員則必須學習并掌握 4GL 和 SQL,以便構建和集成那些“超級用戶”們所依賴的系統。
![]()
技術技能在整個組織內實現了分層,而非簡單的替代或消除。一個清晰的雙軌體系開始形成:“超級用戶”使用高層工具解決局部問題,而“專業開發者”則負責構建和維護底層的技術基礎設施。
![]()
“畫圖”就能編程的宏大幻想(1980-90 年代)
如果說 4GL 是對編程過程的簡化,那么計算機輔助軟件工程(CASE)工具,則體現了對整個軟件開發生命周期進行徹底改造的雄心。這是結構化設計方法論時代的頂峰,其敘事核心是將傳統工程學的嚴謹紀律引入當時仍被視為“手藝活”的軟件開發領域。
CASE 工具的終極承諾,就是“按圖拉程序,編碼 100% 自動化”。
這個理念聽起來無懈可擊:開發者不再需要直接編寫代碼,而是像建筑師畫藍圖一樣,使用上層 CASE 工具繪制出精確的實體關系圖、數據流圖、狀態轉換圖等一系列復雜的模型。然后,下層 CASE 工具會讀取這些完美的“藍圖”,自動生成完整、無錯、高效的應用程序代碼。
IBM 的 AD/Cycle 框架,Rational 公司的 Rational Rose 工具,這些當年的行業巨頭,都投入了巨資推廣這一愿景。它們的目標,是建立一座座“軟件工廠”,將軟件開發從一種充滿不確定性的創造性活動,轉變為一個可預測、可管理的工業化生產流程。在這個流程中,人的作用是定義模型,機器的作用是生成代碼。
然而,這場聲勢浩大的運動,最終在很大程度上以失敗告終。
這些大型 CASE 系統被證實非常昂貴、極其僵化,且使用起來困難又耗時。更致命的是,它們生成的代碼往往效率低下,且無法覆蓋所有復雜的業務邏輯。程序員仍然需要花費大量時間,去修補、優化自動生成的代碼,并手動編寫那些模型無法表達的“例外”邏輯。
這一輪失敗,深刻地揭示了軟件開發的內在本質。它雄辯地證明了,軟件開發中最核心的困難,從來就不是編寫代碼這一行為本身,而是精確、完整地定義需求這一智力活動。
![]()
CASE 工具只是將開發者肩上的負擔從“編寫形式化、無歧義的代碼”,轉移到了“繪制形式化、無歧義的圖表”。然而,為一個復雜的現實世界系統創建一套完美、完整且毫無二義性的圖表,其認知難度甚至超過了直接編寫代碼。它本質上只是換了一種語法形式的編程,并沒有消除最困難的部分——思考。
這場宏大幻想的破滅,讓行業第一次集體認識到:軟件開發的瓶頸,是認知性的,而非語法性的。
![]()
像搭積木一樣編程(1990 年代)
進入 90 年代,個人計算機(PC)的浪潮席卷了全球。Windows 系統的圖形界面取代了冰冷的命令行,鼠標點擊成為新的交互語言。
在這樣的背景下,一類全新的編程范式——快速應用開發(RAD)——橫空出世,其中最耀眼的明星,莫過于微軟的Visual Basic(VB)。
![]()
VB 帶來了一種革命性的體驗。編程不再是面對一個漆黑的屏幕,逐行輸入深奧的文本代碼。取而代之的,是一個可視化的設計界面。開發者可以像搭積木一樣,從工具箱里“拖拽”各種現成的控件——按鈕、文本框、下拉列表——到窗體上,然后“畫”出應用程序的用戶界面。每一個控件都封裝好了自己的行為和屬性,你只需為它們編寫少量的“事件處理”代碼,比如“當用戶點擊這個按鈕時,執行這段邏輯”。
![]()
VB 之父 Alan Cooper,看發量見實力
這種“所見即所得”的開發模式,極大地降低了編程門檻,并承諾能帶來驚人的生產力提升。它將編程能力賦予了遠超傳統程序員的更廣泛人群,包括企業里的技術愛好者、數據分析師,甚至一些膽大的部門經理,他們被稱為“超級用戶”(power users)。
VB 一經推出便大獲成功,在其鼎盛時期,全球有近 350 萬名 VB 開發者,數量是當時被視為“正統”的 C++ 程序員的十倍以上。
![]()
C++ 之父 Bjarne Stroustrup ,看發量也能見實力
這種巨大的成功,恰好與當時企業界盛行的 IT 部門“精簡規模”(downsizing)的趨勢不謀而合。在許多管理者看來,既然業務部門的“超級用戶”可以自己快速構建所需的應用,那么龐大而昂貴的中心化 IT 部門,似乎就顯得多余和低效了。
“拖拽組件即可完工,IT 部門將被裁減”,這個論調在當時的商業雜志和管理層會議中廣為流傳。
然而,現實的演進再次展現了它的復雜性。RAD 工具確實賦能了新一代的開發者,讓他們能夠快速構建出大量的、滿足部門級需求的客戶端/服務器應用程序。但這并未消除對使用 C++ 等“系統級”語言的程序員的需求。恰恰相反,它在行業內創造了一種新的、清晰的分工。
一個典型的場景是:一位 VB 程序員,正在使用一個功能強大的第三方圖表控件來展示銷售數據。他只需幾行代碼就能調用這個控件,設置一些參數,一個精美的圖表就呈現在用戶面前。但他可能并不知道,這個小小的圖表控件背后,是另一家軟件公司的 C++ 程序員們,耗費了數月甚至數年的時間,去解決圖形渲染的效率問題、處理復雜的坐標系轉換、優化內存占用,最終才將這一切封裝成一個簡單易用的“黑盒子”。
行業因此被清晰地劃分為兩個世界:應用開發者和系統開發者。
![]()
前者使用 VB、Delphi 等 RAD 工具,站在后者的肩膀上,快速地響應業務需求,構建用戶直接可見的應用;而后者,則使用 C++ 等更底層的語言,為前者打造那些可被拖拽、可被調用的高性能組件、核心算法庫、數據庫引擎以及操作系統本身。
程序員的角色再次被分層,而非被消除。更重要的是,RAD 的成功催生了一個繁榮的第三方組件市場。一個全新的軟件產業生態和一種新的程序員專長誕生了:“為程序員服務的程序員”,或者叫“工具構建者”。他們不直接服務于最終用戶,而是服務于其他程序員。
旨在簡化一部分人編程工作的技術,為另一部分人開辟了一個全新的、更為復雜的專業編程領域。
![]()
世界是平的,代碼是商品?(2000 年代)
21 世紀初,互聯網泡沫破滅的寒意尚未散去,企業開始瘋狂地削減成本。
與此同時,全球化的浪潮在寬帶網絡的推動下,以前所未有的速度席卷而來。在這樣的背景下,第六輪“程序員替代論”登場了。這一次,它的驅動力并非來自某一項具體的技術突破,而是源于深刻的經濟變革。
其核心敘事,由《紐約時報》專欄作家托馬斯·弗里德曼在其暢銷書《世界是平的》中得到了最經典的闡釋。
弗里德曼認為,個人電腦、光纖網絡和工作流軟件的融合,已經“抹平了”全球的競爭場地。在這一背景下,軟件開發,特別是那些被認為是常規和重復性的編碼工作,成了一種可以被“外包”(Outsourcing)到全球任何最具成本效益地方的“商品”。
![]()
這一論述在 IT 行業內部催生了一種新的分工理念:將高價值的“架構設計”和“客戶溝通”工作保留在美國、歐洲等發達國家(在岸),而將那些被認為是低價值的、機械的“編碼實現”工作,轉移到印度、中國等勞動力成本更低的國家(離岸)。
這種模式的根本驅動力是“勞動力套利”。一家美國公司在國內雇傭一名程序員的成本,可能是在印度雇傭五名程序員的成本。這種巨大的成本差異,對追求利潤最大化的企業來說,具有致命的吸引力。
一種帶有貶義的標簽開始流傳,將離岸的程序員稱為“代碼苦力”(code coolies),認為他們從事的是機械的、缺乏創造性的“代碼搬運”工作。
“國內只需保留少數頂尖架構師,編碼工作可以全部外包”,這成了當時許多企業高管深信不疑的信條。
離岸外包確實深刻地重塑了全球 IT 產業的結構。它加速了角色的分層,形成了在岸團隊(架構師、項目經理、業務顧問)和離岸團隊(實現、測試、維護)的合作模式。然而,它并未像恐慌者預言的那樣,摧毀發達國家的編程行業。更重要的是,這個過程以一種痛苦但有效的方式,讓整個行業重新認識了軟件開發的本質。
項目開始出現各種意想不到的問題。由于時區差異,一個簡單問題的澄清,往往需要等待一整個晚上。由于文化和語言的隔閡,在岸架構師精心設計的微妙細節,在傳遞給離岸團隊后,常常被誤解或簡化。項目的失敗率和意料之外的管理成本,遠高于最初的樂觀估計。
企業很快就認識到一個深刻的事實:在軟件開發中,最關鍵、最難以標準化和商品化的部分,并非編碼本身,而是溝通、協調和共享上下文。
![]()
一個優秀程序員的價值,遠不止于他能寫出沒有 bug 的代碼。更在于他能聽懂客戶話語中隱藏的真實需求,能向上級清晰地解釋一個技術決策的利弊,能和同事高效地協同解決一個復雜問題。這些所謂的“軟技能”,在這個全球化協作的時代,被證明是不可或缺的、處于核心地位的硬實力。它們無法被簡單地打包和外包。
這一輪由經濟力量驅動的“替代論”,最終并未替代程序員,而是倒逼整個行業重新評估了程序員的價值,將溝通、協作和業務理解等能力,提升到了前所未有的高度。
![]()
當業務員開始自己寫“程序”(2010 年代)
進入 21 世紀的第二個十年,隨著云計算和 SaaS(軟件即服務)模式的成熟,那個“讓終端用戶自己編程”的古老夢想,以一種全新的形式高調回歸。
低代碼/無代碼(Low-Code/No-Code, LCNC)平臺,如Mendix、OutSystems 和微軟的 Power Platform,成為了 4GL 和 RAD 工具承諾的現代繼承者。
這一次的敘事核心,是“公民開發者”(citizen developer)的崛起。
在以 Gartner 為代表的行業研究公司的積極推動下,一種新的愿景被廣泛傳播:企業中那些懂業務但不懂編程的員工,現在可以利用可視化的、拖拽式的 LCNC 平臺,自行構建和部署企業級應用,而幾乎無需編寫任何代碼。
比如,市場部經理可以自己搭建一個營銷活動管理應用,人力資源專員可以自己創建一個員工入職流程自動化工具。這些預測極為大膽,Gartner 曾預測,大型企業中的公民開發者數量將以 4:1 的比例超過專業開發者。
這聽起來像是對專業程序員的最終圍剿。如果連業務員都能自己開發應用了,那還要專業的 IT 部門和程序員做什么呢?
然而,現實的發展軌跡再次偏離了預言。
LCNC 平臺并未取代專業開發者,反而成為了 IT 部門解決一個長期頭痛問題的有力武器——管理“影子 IT”(Shadow IT)。
幾十年來,企業中一直存在著一個現象:當業務部門有一個緊急的需求,而 IT 部門的開發排期遙遙無期時,業務人員就會用手邊的一切工具來自己解決問題。其中最典型的,就是功能無比強大的 Excel。他們用 Excel 做數據管理、做項目跟蹤、做復雜的財務模型,甚至用 VBA 宏語言編寫出一些堪比小型軟件的“怪物表格”。這些自發的“影子 IT”雖然解決了燃眉之急,但也帶來了巨大的風險:數據不一致、安全漏洞、版本混亂,而且一旦創建者離職,這些“怪物表格”就成了無人能懂的“天書”。
LCNC 平臺恰好提供了一個兩全其美的解決方案。它為業務用戶提供了比 Excel 更強大、更規范、更直觀的可視化工具,讓他們可以安全地“自己動手,豐衣足食”;同時,又將整個開發過程置于 IT 部門可以批準、治理和保護的統一框架之內。IT 部門可以控制數據接口、設置權限、確保合規,從而將原本混亂、無序、充滿風險的自發過程,納入到正式的管理體系中。
![]()
“公民開發者”運動的本質,并非要取代專業開發者,而是 IT 部門主動賦權,以便更好地進行治理和控制。它代表了之前所有分層趨勢的最終明確化和正式化。
軟件開發行業至此已經正式承認并劃分出了不同層次的開發活動:“無代碼”專為純業務用戶設計;“低代碼”面向可以進行少量腳本編寫的“超級用戶”;而“專業代碼”(Pro-Code)則是傳統軟件工程師的領域。
![]()
回到現在(AI 來了!)
第八次,也是迄今為止最極端的一輪“替代論”浪潮之中。由大語言模型(LLM)驅動的生成式人工智能,引發的敘事不再是簡化或輔助,而是編碼本身的終結。
它帶來的沖擊是具體的、可感知的。
一位程序員可能剛剛花了一個小時,吭哧吭哧寫完一個復雜的正則表達式,而 ChatGPT 只用了三秒鐘;另一位程序員可能正為一個算法的實現細節苦思冥想,而 GitHub Copilot 已經給出了一個近乎完美的實現方案。這種體驗帶來的震撼,甚至夾雜著一絲恐懼,是前面七次浪潮都無法比擬的。
這次的影響力也非同凡響。硅谷的巨擘與學者們眾說紛紜,每一位都迫不及待給出了自己對 AI 編程和氛圍編程(Vibe Coding)的看法。
![]()
然而,任何一位在實際工作中深度使用 AI 編程工具的工程師,都會很快觸及其能力的邊界。AI 生成的代碼,常常缺乏對項目全局的上下文理解,它不知道這個函數背后的商業目標是什么,也無法預見這個改動可能對整個系統的其他部分產生什么連鎖反應。它在創造性和設計新穎架構方面表現不佳,其能力更多是基于海量訓練數據的“博聞強識”,而非真正的創新。
最嚴重的是,AI 生成的代碼常常包含細微的邏輯錯誤和重大的安全漏洞,比如不安全的數據庫查詢、權限控制疏忽等,這些都需要人類專家進行嚴格的審查和修復。
最終,對產品質量、安全性和可靠性承擔最終責任的,仍然是那位人類工程師。
![]()
回顧這八次浪潮,程序員的“不死”,源于一個簡單而深刻的邏輯:
每一次技術浪潮都帶來了一次抽象,將開發者從更底層的、更機械的勞動中解放出來。
而每一次解放,都極大地降低了軟件創新的成本,從而打開了軟件應用的新大陸,催生出遠超以往的、更宏大、更復雜的系統性需求。
這種新需求的增長速度,永遠快于生產力提升所“節省”的人力。
這是一個不斷向上攀登的循環。程序員的陣地一直在變,但他們從未離開戰場。
那些只會機械地將產品需求翻譯成代碼的“純粹編碼員”,他們的價值確實正在被 AI 迅速稀釋。但軟件工程師的恒久價值——深刻的業務理解、嚴謹的系統設計、批判性的思維能力,以及為最終結果負責的職業精神——從未像今天這樣稀缺和重要。
未來,“程序員末日論”還會和幽靈一樣繼續徘徊,它或許會換上我們今天無法想象的新馬甲。但不死的程序員們,其生命力正源于這種擁抱變化、直面挑戰,并在此過程中完成自身進化的能力。
AI 產品爆發,但你的痛點解決了嗎?
2025 全球產品經理大會
8 月 15–16 日
北京·威斯汀酒店
互聯網大廠、AI 創業公司、ToB/ToC 實戰一線的產品人
12 大專題分享,洞察趨勢、拆解路徑、對話未來。
立即掃碼領取大會PPT
搶占 AI 產品下一波紅利
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.