目錄
這兩天在 GitHub 上有一個開源隔天即破千顆星星的新專案 smol developer,又掀起生成式 AI 應用在程式開發上的新一波討論。在工程師社群中,玩過 smol developer 的人,幾乎都覺得它比 AutoGPT 更好用。所以 smol developer 是什麼? 它跟 AutoGPT 有什麼不同? 工程師可以如何用它來加速完成開發工作?
在往下讀之前,推薦大家直接看 demo 影片,看完會更懂下面的分析在講什麼。在 demo 中,透過一個指令,smol developer 直接幫忙寫出一個 Google Chrome 的插件,非常驚人!
特點一:極致發揮 10 萬 token 數的強大
前幾天號稱 ChatGPT 最強競爭對手之一的 Anthropic Claude 發表了 10 萬 token 數的上下文,而 smol developer 善用了這點,進一步做到過去做不到的事。在過去幾個月,已經有許多人拿 ChatGPT 來幫忙寫程式,但多半都只是一個函式,或一個元件;透過 10 萬 token 數,smol developer 可以幫忙直接寫一個完整的應用程式,而不只是一小段程式碼。
特點二:足夠聚焦的場景,帶來整合性更好的體驗
AutoGPT 是以通用的使用場景出發,而且目前的介面受限於命令行介面,所以實際在用沒有真的那麼方便 (AutoGPT 團隊目前正在開發 GUI,期待之後的發表)。但 smol developer 因為聚焦在程式開發的場景,搭配程式碼編輯器,用起來非常方便。
特點三:人機協作而非全自動化
smol developer 在開源專案中提到其定位是 Your own personal junior developer,意即他的存在目的不是取代工程師,而是讓你有多個初階工程師的幫手。比起 AutoGPT 指令下完後就全由 AI 下去思考與執行,smol developer 的做法是,讓你當資深工程師,而它當你的幫手,所以互動起來會是它的初步產出後,你要幫忙做 code review,然後再進一步下 prompt 去讓它優化成果。
實際玩了一下 smol developer,真的就像有了幾個初階工程師,能幫忙生出完整但不盡完美的產出,但在稍微調整一下後,就能有不錯的成果。讀到這邊,你可能會想雖然 smol developer 是人機協作,不是全自動化取代人類,但這仍意味著「初階工程師」將被取代,未來一個資深的全端工程師搭配數個 smol developer (或其他 LLM 輔助開發工具),不就可以直接頂替一個開發團隊?
你不是第一個這樣想的人。前幾個月前哈佛大學電腦科學系教授 Matt Welsh 就在 ACM 上分享這個觀點。他認為傳統的「寫程式」將在未來滅絕。 讀到這你可能心裡會想「哪來又一個在販賣恐懼、唯恐天下不亂的名嘴」,不過並非如此,雖然他認為人類寫程式這件事會滅絕,但沒有說工程師會因此不再被需要,只是會有另一波演化。為什麼他會這樣說? 他看待寫程式的觀點又為何,導致他覺得人類不再需要寫程式? 讓我們先從他的背景開始說起。
Matt Welsh 畢業於加州大學柏克萊分校博士班,是前哈佛大學電腦科學系的教授,他還在哈佛當教授時,臉書的創辦人祖克柏是他課堂中的學生。在 2010 年他離開哈佛,轉往業界發展,在 Google 當到首席工程師 (Principal Engineer)。當年辭掉哈佛的教授工作時,在學界與業界都掀起一陣討論,也有不少媒體報導,畢竟世上有多少人恨不得能讀哈佛,更不用說當哈佛教授,但他卻選擇辭去,由此可見他有著與一般人不太同的觀點。
回到談論寫程式這件事,不像那些不懂程式卻跟風亂喊 AI 將取代工程師的技術門外漢;在電腦科學與程式領域上,Matt Welsh 有超過十年的學術經歷,也累積超過十年的業界歷練,所以當他說「寫程式這件事將要滅絕」,他不是隨口說說。更具體一點來說,他認為會滅絕的「寫程式」,是指傳統由人用程式語言撰寫程式這件事會滅絕。
所謂的寫程式,不論是底層由 0 跟 1 來編寫的機器語言,或是 Python 這類幾乎像是英語的高階語言,在做的事情不外乎是在對機器下指令,讓機器做到你想做的事情。 然而隨著大型語言模型、生成式 AI 時代來臨,人類與機器溝通的媒介,可以不再是程式語言,而是可以自然語言來跟機器溝通,而程式碼將轉由機器來寫。
假如程式碼由機器來寫,難道工程師都要失業了嗎? 非也非也。Matt Welsh 認為在機器寫程式的時代下,兩種技能會特別重要,一個是產品經理的技能,換句話說能夠清楚表達需求;另一個是 code review 的技能,意即能給予機器產出的程式反饋,進而生出更高品質成果。把這兩點加起來看,簡單來說,未來的好工程師,要有能當 AI 老師的能力。
其實這件事早已不是新聞,假如你對工程師的職涯發展有一定了解,基本上越往上升的工程師,越少時間花在寫程式上面,越多時間會在需求釐清、技術規劃,以及給予初階工程師反饋。這也是為什麼在工程師面試,越資深的工程師面試,越會著重在系統設計、行為面試,而不是程式碼的實作。而隨著 AI 時代到來,好的資深工程師會越能彰顯其價值。
總的來說,人用程式語言寫程式這件,看起來不久將來的確可能消失。而工程師的工作內容會大幅往資深移動。因此,假如你現在還是初階工程師,得要加速往資深邁進了!