ChatGPT的出現(xiàn),前端真的已死?
在過去的幾個月里,我與許多職業(yè)初期的開發(fā)者交談,他們對人工智能越來越感到焦慮。他們看到了像GPT-4這樣的工具越來越令人印象深刻的演示,并擔心當他們熟練掌握HTML/CSS/JS時,就沒有工作機會了。
這種情緒現(xiàn)在充斥在Twitter上:
我完全不同意這種觀點。我認為web開發(fā)者的工作不會消失。而且,我對網(wǎng)上傳播的恐慌、不安和懷疑感到非常厭煩。
所以,在這篇博客文章中,我將分享我的假設,事情會發(fā)生變化,但并不像人們所說的那么可怕。
再來一次
CSS 語言首次發(fā)布于 1996 年,在 Internet Explorer 3 中問世。在兩年內(nèi),第一個“無代碼”網(wǎng)站構建器 Homestead 上線了。
Homestead 讓人們可以在不編寫一行代碼的情況下構建自定義網(wǎng)頁:
自從一開始,就有人擔心 Web 開發(fā)人員會被某種新技術取代。在 2000 年代,這種擔憂指向了 WordPress。在 2010 年代,是 Webflow。在 2020 年代初,是“無代碼”工具。
從某種程度上說,Web 開發(fā)人員已經(jīng)被取代了!如今,如果一家當?shù)氐拿姘辍⒀泪t(yī)或藝術家需要一個網(wǎng)站,他們可能不會雇傭開發(fā)人員,花費數(shù)萬美元從頭開始建立一個網(wǎng)站。他們會選擇使用 SquareSpace,找到喜歡的模板,并每月花費 20 美元。
然而,Web 開發(fā)人員依然存在。
上周,OpenAI 展示了 GPT-4。這個展示中有一個相當令人印象深刻的演示:GPT-4 可以將手繪的網(wǎng)站草圖轉(zhuǎn)換為功能完善的網(wǎng)站,甚至包括一點 JS 來連接 “Reveal Punchline”的按鈕。
這是非常了不起的,我認為這對于原型設計具有很大的潛力……但我們要明確的是:幾十年來,我們并不需要 Web 開發(fā)人員來構建這類頁面。這個 HTML 文檔與現(xiàn)今前端開發(fā)人員編寫的代碼之間存在著巨大的差異。
展望未來
到目前為止,我所看到的大部分演示都相當有限:一個簡單的 HTML 頁面或一個單一的 JavaScript 函數(shù)。這些是單個開發(fā)人員在一個下午就能完成的事情。
但這些只是初期階段!如果事物以相同的速度繼續(xù)加速,那么它將能夠在幾年內(nèi)構建整個應用程序,對吧?
我在 LLM(GPT-4)方面遠非專家,但我確實在高層次上了解它們是如何運作的。
從根本上講,LLM 是超強大的文本預測器。給定一個提示,它們會使用機器學習嘗試找出跟在提示后最可能的一組字符。
像 OpenAI 這樣的公司花費大量時間和精力調(diào)整模型以改善輸出。一大批人類標注者對模型的輸出進行“評分”,模型隨之學習和演進。
LLM無法驗證其假設或檢驗其假說。它們無法確認自己說的話是對還是錯。它們在玩概率游戲,并估計這個字符序列似乎與提示中的字符序列相容。
有時,回答中的部分內(nèi)容是荒謬的。OpenAI團隊將這些稱為“幻覺”。
隨著技術的改進,我們可以期待一些粗糙的邊緣得到打磨,但從根本上講,總會存在一定程度的不準確性。這些工具根本沒有任何客觀驗證其回答的機制。
因此,準確性會提高,但永遠不會完美。如果我們談論讓Web開發(fā)者失業(yè),這是個問題。如果你不是程序員,你將無法判斷哪些部分是準確的,無法發(fā)現(xiàn)幻覺。
但等等,在GPT-4演示中,我們看到AI是如何糾正自己的錯誤的!復制/粘貼錯誤信息,它將找到并修復問題。
但是,不是所有的幻覺都會導致異常。例如,我最近使用GPT-4生成一個React的組件,雖然輸出的質(zhì)量令人驚訝地好,但它在可訪問性方面仍然犯了一些錯誤。創(chuàng)建應用的人可能不會注意到這些問題,但最終用戶肯定會注意到!
那么代碼中的安全漏洞呢?當事情出現(xiàn)嚴重錯誤時,誰應該負責?
再多說一點:生成一個50行的HTML文檔和生成一個生產(chǎn)就緒的Web應用之間有著巨大的差距。像這個博客這樣的小型JS應用有大約65,000行代碼,分布在900多個文件中。這還不包括書面內(nèi)容,僅包括JavaScript和TypeScript。
即使準確率達到95%,這也將難以調(diào)試。這就像開發(fā)人員花幾個月時間構建一個龐大的項目,但從未實際嘗試運行任何代碼,直到它100%完成。這簡直是噩夢。
AI并不神奇。它僅僅和其訓練數(shù)據(jù)一樣好。代碼片段遍布互聯(lián)網(wǎng),通常是通用的。相比之下,每個代碼庫都是獨一無二的。很少有大型開源代碼庫。AI如何學會構建大型實際項目?
我們非常快地接近一個非開發(fā)者可以坐下來與聊天機器人一起快速完成一個小型獨立項目的時代,這是現(xiàn)在人們使用像Webflow這樣的工具來構建的。這太棒了!
但是我認為我們離主要科技公司解雇開發(fā)人員并用提示工程師替代他們還有很長的路要走。在我看來,有幾個潛在的難以解決的問題阻礙了這一愿景成為現(xiàn)實。
增強,而非取代
從這篇文章中,你可能不知道我實際上對AI非常樂觀。??
我認為最有可能的情況是,像GPT-4這樣的工具會整合到開發(fā)者工具中,用來增強有技能的開發(fā)者所能做的事情。
木匠沒有被電動工具取代,會計師沒有被電子表格取代,攝影師沒有被數(shù)碼相機/智能手機*取代,我認為開發(fā)者也不會被LLM取代。
我曾經(jīng)想過,也許開發(fā)者工作的總量會減少;畢竟,如果每個開發(fā)者的效率都大大提高,我們不是需要更少的開發(fā)者嗎?
并非必然。目前,軟件開發(fā)者的需求遠遠大于供應。在我曾經(jīng)工作的每家公司,我們都有很多想做的事情,但受到了開發(fā)者數(shù)量的限制。
如果開發(fā)者突然變得效率提高兩倍會發(fā)生什么?更多的錯誤將被修復,更多的功能將被實現(xiàn),更多的利潤將被創(chuàng)造。有很多事情要做,所以我們不會讓開發(fā)者失業(yè)。
我實際上認為這可能會增加開發(fā)者工作的總量。
今天,有很多公司根本不雇傭軟件開發(fā)者。我曾在一家名為Konrad Group的公司工作,這家公司為其他公司(其中許多是家喻戶曉的品牌)開發(fā)網(wǎng)絡應用。因為開發(fā)成本很高,所以他們將開發(fā)需求外包,而不是內(nèi)部雇傭開發(fā)者。
這些財富500強公司是根據(jù)當前軟件開發(fā)成本來進行計算的。讓我們假設一些數(shù)字:假設他們需要4個開發(fā)者,每個人年薪15萬美元,總共60萬美元/年。對他們來說,支付50萬美元讓代理商來管理這個項目會更有意義。但是,如果LLM真的能提高開發(fā)者的生產(chǎn)力,他們也許只需要雇傭2個年薪15萬美元的開發(fā)者來完成同樣的工作。突然之間,這個計算變得更具吸引力了!
讓我明確一點:我不是經(jīng)濟學家,這些都是猜測。我并不是說我知道事實會如何發(fā)展。我想說的是,這不是一個既定的結論,這對我們來說是不利的。沒有人知道這會如何發(fā)展,我已經(jīng)厭倦了那些認為最糟糕的情況已經(jīng)成為定局的人。
我們并非唯一在進行這種討論的人
艾倫·布萊斯(Aaron Blaise)是一位資深動畫師和插畫師。他在迪士尼工作了近20年,為《美女與野獸》(1991年)、《阿拉丁》(1992年)、《風中奇緣》(1995年)等經(jīng)典迪士尼電影做出了貢獻。
幾周前,他在YouTube上發(fā)布了一段視頻:迪士尼動畫師對AI動畫的反應。在閱讀了這篇博客文章之后,他的觀點對你來說可能會很熟悉:他并不認為這些工具是威脅,而是認為它們會提高動畫師的生產(chǎn)力,并帶來更多的動畫師工作。
現(xiàn)在,數(shù)十個行業(yè)的藝術家和知識工作者都在進行同樣的討論。人們擔心他們的工作即將被像GPT-4、DALL-E 2和Midjourney這樣的AI所取代。
GPT-4能在模擬律師資格考試中取得前10%的成績。許多律師也在進行這些相同的討論。
我個人的信仰是,大多數(shù)在職專業(yè)人士會找到方法將這項技術整合到他們的工作流程中,提高他們的生產(chǎn)力和價值。某些任務可能會交給AI來完成,但很少有工作會被取代。
但是,如果我錯了,LLM真的可以完全取代軟件開發(fā)者呢?如果是這樣的話,我懷疑LLM將取代絕大多數(shù)知識工作者。
這不是一種可以通過轉(zhuǎn)行避免的巨大影響。沒有一個更高的領域可以避免。因此,與其試圖押注未來會帶來什么,為什么不關注你熱衷的事物,你感興趣的事物,以及你擅長的事物呢?
使用LLM來幫助你學習
我從一些人那里聽說,ChatGPT在學習技術技能方面非常有幫助。如果你在教程中對某個內(nèi)容感到困惑,你可以請AI為你解釋!
對我來說,這是一個非常有趣的用例。從本質(zhì)上講,ChatGPT就像一個編程伙伴,可以幫助你理解你不懂的東西。你可以向它提出具體問題并得到具體答案。
但我認為你需要小心。使用這種工具來幫助你學習有正確和錯誤的方法。
錯誤的方法是把它當作GPS導航。當我需要開車去某個地方時,我會把地址輸入GPS,然后無條件地遵循它的指示。雖然我通常會到達目的地,但這并不需要我付出任何心智努力。結果,我的方向感完全消失了?,F(xiàn)在,如果沒有合成的聲音告訴我該怎么做,我就無法去任何地方。
與其把它當作GPS,我建議你把它當作你是陪審團的成員,而LLM是被告,站在證人席上。
你會聽他們說什么,但不會把它當作事實。你會保持懷疑,并對每個字都進行批判性思考。
與其盲目地復制/粘貼ChatGPT生成的代碼,不如逐行瀏覽,確保你了解其中的含義。向它請教。對于看似可疑的事情,請使用權威來源(如官方文檔)進行核實。請記住,LLM具有100%的自信,但并非100%準確。
如果你遵循這種策略,我認為LLM會提供很多價值。
渴望成為開發(fā)者的人的一條信息
我想寫這篇博客文章的原因,是特別針對那些正在學習web開發(fā)的人,他們感到焦慮和沮喪,覺得在整個領域即將被淘汰的情況下,花費所有的時間/精力學習這些技能是沒有意義的。
我不能保證事情會一直保持不變。我確實懷疑AI會對我們的工作方式產(chǎn)生影響。我從2007年開始嘗試使用HTML/CSS/JS,從那時起,事情發(fā)生了很大變化。開發(fā)者一直需要適應,與技術共同進化。
但到目前為止,我看到的一切都沒有表明我們的工作岌岌可危。我嘗試想象,如果非開發(fā)者能夠在不了解網(wǎng)絡技術的情況下構建整個Web應用程序,情況會是什么樣子?即使未來的GPT版本不再產(chǎn)生那么多的幻覺,我也想出了很多為什么這樣做行不通的原因。
我可能是錯的。我沒有水晶球??。就我所知,太陽明天可能會爆炸。但我真的不認為我們正處在web開發(fā)人員被取代的邊緣。我擔心很多潛在的開發(fā)者因為這個原因而放慢了腳步。
我不希望你在5年后回顧,如果軟件開發(fā)人員的需求更加旺盛,后悔你停止追求夢想。
總結
這篇文章的作者Josh W Comeau討論了人工智能,尤其是類似GPT-4的大型語言模型(LLM)對前端開發(fā)的影響。作者認為,盡管這些模型具有強大的生成代碼能力,但它們無法完全取代前端開發(fā)人員。他提到了幾個關鍵點:
LLMs不能驗證它們的假設或測試假設,無法確認生成的代碼是否完全正確。 LLMs可能產(chǎn)生“幻覺”或錯誤,需要開發(fā)人員進行修復和調(diào)整。 當生成大型項目時,這些模型的準確性可能會下降,導致難以調(diào)試的問題。 安全性和責任問題仍然需要開發(fā)人員的專業(yè)知識。 作者相信,LLMs最終將成為開發(fā)人員的輔助工具,提高他們的生產(chǎn)力,而不是取代他們。這些工具可以被視為一種協(xié)作伙伴,幫助開發(fā)人員解決問題和學習新技能。然而,他建議謹慎使用這些工具,并始終以批判性思維來評估其輸出。
盡管AI技術正在不斷發(fā)展,但作者認為前端開發(fā)者的工作并不處于被取代的風險之中。他鼓勵那些正在學習Web開發(fā)的人繼續(xù)努力,不要因為擔憂未來而放棄追求夢想。
本文轉(zhuǎn)載自微信公眾號「大遷世界」,可以通過以下二維碼關注。轉(zhuǎn)載本文請聯(lián)系大遷世界公眾號。