ChatGpt的出現,前端真的已死?

前端小智發表於2023-04-04
本文首發於微信公眾號:大遷世界, 我的微信:qq449245884,我會第一時間和你分享前端行業趨勢,學習途徑等等。
更多開源作品請看 GitHub https://github.com/qq449245884/xiaozhi ,包含一線大廠面試完整考點、資料以及我的系列文章。

在過去的幾個月裡,我與許多職業初期的開發者交談,他們對人工智慧越來越感到焦慮。他們看到了像GPT-4這樣的工具越來越令人印象深刻的演示,並擔心當他們熟練掌握HTML/CSS/JS時,就沒有工作機會了。

這種情緒現在充斥在Twitter上:

image.png

我完全不同意這種觀點。我認為web開發者的工作不會消失。而且,我對網上傳播的恐慌、不安和懷疑感到非常厭煩。

所以,在這篇部落格文章中,我將分享我的假設,事情會發生變化,但並不像人們所說的那麼可怕。

再來一次

CSS 語言首次釋出於 1996 年,在 Internet Explorer 3 中問世。在兩年內,第一個“無程式碼”網站構建器 Homestead 上線了。

Homestead 讓人們可以在不編寫一行程式碼的情況下構建自定義網頁:

image.png

自從一開始,就有人擔心 Web 開發人員會被某種新技術取代。在 2000 年代,這種擔憂指向了 WordPress。在 2010 年代,是 Webflow。在 2020 年代初,是“無程式碼”工具。

從某種程度上說,Web 開發人員已經被取代了!如今,如果一家當地的麵包店、牙醫或藝術家需要一個網站,他們可能不會僱傭開發人員,花費數萬美元從頭開始建立一個網站。他們會選擇使用 SquareSpace,找到喜歡的模板,並每月花費 20 美元。

然而,Web 開發人員依然存在。

上週,OpenAI 展示了 GPT-4。這個展示中有一個相當令人印象深刻的演示:GPT-4 可以將手繪的網站草圖轉換為功能完善的網站,甚至包括一點 JS 來連線 “Reveal Punchline”的按鈕。

image.png

這是非常了不起的,我認為這對於原型設計具有很大的潛力……但我們要明確的是:幾十年來,我們並不需要 Web 開發人員來構建這類頁面。這個 HTML 文件與現今前端開發人員編寫的程式碼之間存在著巨大的差異。

展望未來

到目前為止,我所看到的大部分演示都相當有限:一個簡單的 HTML 頁面或一個單一的 JavaScript 函式。這些是單個開發人員在一個下午就能完成的事情。

但這些只是初期階段!如果事物以相同的速度繼續加速,那麼它將能夠在幾年內構建整個應用程式,對吧?

我在 LLM(GPT-4)方面遠非專家,但我確實在高層次上了解它們是如何運作的。

從根本上講,LLM 是超強大的文字預測器。給定一個提示,它們會使用機器學習嘗試找出跟在提示後最可能的一組字元。

像 OpenAI 這樣的公司花費大量時間和精力調整模型以改善輸出。一大批人類標註者對模型的輸出進行“評分”,模型隨之學習和演進。

LLM無法驗證其假設或檢驗其假說。它們無法確認自己說的話是對還是錯。它們在玩機率遊戲,並估計這個字元序列似乎與提示中的字元序列相容。

有時,回答中的部分內容是荒謬的。OpenAI團隊將這些稱為“幻覺”。

隨著技術的改進,我們可以期待一些粗糙的邊緣得到打磨,但從根本上講,總會存在一定程度的不準確性。這些工具根本沒有任何客觀驗證其回答的機制。

因此,準確性會提高,但永遠不會完美。如果我們談論讓Web開發者失業,這是個問題。如果你不是程式設計師,你將無法判斷哪些部分是準確的,無法發現幻覺。

但等等,在GPT-4演示中,我們看到AI是如何糾正自己的錯誤的!複製/貼上錯誤資訊,它將找到並修復問題。

但是,不是所有的幻覺都會導致異常。例如,我最近使用GPT-4生成一個React的<Modal>元件,雖然輸出的質量令人驚訝地好,但它在可訪問性方面仍然犯了一些錯誤。建立應用的人可能不會注意到這些問題,但終端使用者肯定會注意到!

那麼程式碼中的安全漏洞呢?當事情出現嚴重錯誤時,誰應該負責?

再多說一點:生成一個50行的HTML文件和生成一個生產就緒的Web應用之間有著巨大的差距。像這個部落格這樣的小型JS應用有大約65,000行程式碼,分佈在900多個檔案中。這還不包括書面內容,僅包括JavaScript和TypeScript。

即使準確率達到95%,這也將難以除錯。這就像開發人員花幾個月時間構建一個龐大的專案,但從未實際嘗試執行任何程式碼,直到它100%完成。這簡直是噩夢。

AI並不神奇。它僅僅和其訓練資料一樣好。程式碼片段遍佈網際網路,通常是通用的。相比之下,每個程式碼庫都是獨一無二的。很少有大型開原始碼庫。AI如何學會構建大型實際專案?

我們非常快地接近一個非開發者可以坐下來與聊天機器人一起快速完成一個小型獨立專案的時代,這是現在人們使用像Webflow這樣的工具來構建的。這太棒了!

但是我認為我們離主要科技公司解僱開發人員並用提示工程師替代他們還有很長的路要走。在我看來,有幾個潛在的難以解決的問題阻礙了這一願景成為現實。

增強,而非取代

從這篇文章中,你可能不知道我實際上對AI非常樂觀。?

我認為最有可能的情況是,像GPT-4這樣的工具會整合到開發者工具中,用來增強有技能的開發者所能做的事情。

木匠沒有被電動工具取代,會計師沒有被電子表格取代,攝影師沒有被數位相機/智慧手機*取代,我認為開發者也不會被LLM取代。

我曾經想過,也許開發者工作的總量會減少;畢竟,如果每個開發者的效率都大大提高,我們不是需要更少的開發者嗎?

並非必然。目前,軟體開發者的需求遠遠大於供應。在我曾經工作的每家公司,我們都有很多想做的事情,但受到了開發者數量的限制。

如果開發者突然變得效率提高兩倍會發生什麼?更多的錯誤將被修復,更多的功能將被實現,更多的利潤將被創造。有很多事情要做,所以我們不會讓開發者失業。

我實際上認為這可能會增加開發者工作的總量。

今天,有很多公司根本不僱傭軟體開發者。我曾在一家名為Konrad Group的公司工作,這家公司為其他公司(其中許多是家喻戶曉的品牌)開發網路應用。因為開發成本很高,所以他們將開發需求外包,而不是內部僱傭開發者。

這些財富500強公司是根據當前軟體開發成本來進行計算的。讓我們假設一些數字:假設他們需要4個開發者,每個人年薪15萬美元,總共60萬美元/年。對他們來說,支付50萬美元讓代理商來管理這個專案會更有意義。但是,如果LLM真的能提高開發者的生產力,他們也許只需要僱傭2個年薪15萬美元的開發者來完成同樣的工作。突然之間,這個計算變得更具吸引力了!

讓我明確一點:我不是經濟學家,這些都是猜測。我並不是說我知道事實會如何發展。我想說的是,這不是一個既定的結論,這對我們來說是不利的。沒有人知道這會如何發展,我已經厭倦了那些認為最糟糕的情況已經成為定局的人。

我們並非唯一在進行這種討論的人

艾倫·布萊斯(Aaron Blaise)是一位資深動畫師和插畫師。他在迪士尼工作了近20年,為《美女與野獸》(1991年)、《阿拉丁》(1992年)、《風中奇緣》(1995年)等經典迪士尼電影做出了貢獻。

幾周前,他在YouTube上釋出了一段影片:迪士尼動畫師對AI動畫的反應。在閱讀了這篇部落格文章之後,他的觀點對你來說可能會很熟悉:他並不認為這些工具是威脅,而是認為它們會提高動畫師的生產力,並帶來更多的動畫師工作。

現在,數十個行業的藝術家和知識工作者都在進行同樣的討論。人們擔心他們的工作即將被像GPT-4、DALL-E 2和Midjourney這樣的AI所取代。

GPT-4能在模擬律師資格考試中取得前10%的成績。許多律師也在進行這些相同的討論

我個人的信仰是,大多數在職專業人士會找到方法將這項技術整合到他們的工作流程中,提高他們的生產力和價值。某些任務可能會交給AI來完成,但很少有工作會被取代。

但是,如果我錯了,LLM真的可以完全取代軟體開發者呢?如果是這樣的話,我懷疑LLM將取代絕大多數知識工作者。

這不是一種可以透過轉行避免的巨大影響。沒有一個更高的領域可以避免。因此,與其試圖押注未來會帶來什麼,為什麼不關注你熱衷的事物,你感興趣的事物,以及你擅長的事物呢?

使用LLM來幫助你學習

我從一些人那裡聽說,ChatGPT在學習技術技能方面非常有幫助。如果你在教程中對某個內容感到困惑,你可以請AI為你解釋!

對我來說,這是一個非常有趣的用例。從本質上講,ChatGPT就像一個程式設計夥伴,可以幫助你理解你不懂的東西。你可以向它提出具體問題並得到具體答案。

但我認為你需要小心。使用這種工具來幫助你學習有正確和錯誤的方法。

錯誤的方法是把它當作GPS導航。當我需要開車去某個地方時,我會把地址輸入GPS,然後無條件地遵循它的指示。雖然我通常會到達目的地,但這並不需要我付出任何心智努力。結果,我的方向感完全消失了。現在,如果沒有合成的聲音告訴我該怎麼做,我就無法去任何地方。

與其把它當作GPS,我建議你把它當作你是陪審團的成員,而LLM是被告,站在證人席上。

你會聽他們說什麼,但不會把它當作事實。你會保持懷疑,並對每個字都進行批判性思考。

與其盲目地複製/貼上ChatGPT生成的程式碼,不如逐行瀏覽,確保你瞭解其中的含義。向它請教。對於看似可疑的事情,請使用權威來源(如官方文件)進行核實。請記住,LLM具有100%的自信,但並非100%準確。

如果你遵循這種策略,我認為LLM會提供很多價值。

渴望成為開發者的人的一條資訊

我想寫這篇部落格文章的原因,是特別針對那些正在學習web開發的人,他們感到焦慮和沮喪,覺得在整個領域即將被淘汰的情況下,花費所有的時間/精力學習這些技能是沒有意義的。

我不能保證事情會一直保持不變。我確實懷疑AI會對我們的工作方式產生影響。我從2007年開始嘗試使用HTML/CSS/JS,從那時起,事情發生了很大變化。開發者一直需要適應,與技術共同進化。

但到目前為止,我看到的一切都沒有表明我們的工作岌岌可危。我嘗試想象,如果非開發者能夠在不瞭解網路技術的情況下構建整個Web應用程式,情況會是什麼樣子?即使未來的GPT版本不再產生那麼多的幻覺,我也想出了很多為什麼這樣做行不通的原因。

我可能是錯的。我沒有水晶球?。就我所知,太陽明天可能會爆炸。但我真的不認為我們正處在web開發人員被取代的邊緣。我擔心很多潛在的開發者因為這個原因而放慢了腳步。

我不希望你在5年後回顧,如果軟體開發人員的需求更加旺盛,後悔你停止追求夢想。

總結

這篇文章的作者Josh W Comeau討論了人工智慧,尤其是類似GPT-4的大型語言模型(LLM)對前端開發的影響。作者認為,儘管這些模型具有強大的生成程式碼能力,但它們無法完全取代前端開發人員。他提到了幾個關鍵點:

LLMs不能驗證它們的假設或測試假設,無法確認生成的程式碼是否完全正確。
LLMs可能產生“幻覺”或錯誤,需要開發人員進行修復和調整。
當生成大型專案時,這些模型的準確性可能會下降,導致難以除錯的問題。
安全性和責任問題仍然需要開發人員的專業知識。
作者相信,LLMs最終將成為開發人員的輔助工具,提高他們的生產力,而不是取代他們。這些工具可以被視為一種協作夥伴,幫助開發人員解決問題和學習新技能。然而,他建議謹慎使用這些工具,並始終以批判性思維來評估其輸出。

儘管AI技術正在不斷髮展,但作者認為前端開發者的工作並不處於被取代的風險之中。他鼓勵那些正在學習Web開發的人繼續努力,不要因為擔憂未來而放棄追求夢想。

程式碼部署後可能存在的BUG沒法實時知道,事後為了解決這些BUG,花了大量的時間進行log 除錯,這邊順便給大家推薦一個好用的BUG監控工具 Fundebug

原文: https://www.joshwcomeau.com/blog/the-end-of-frontend-developm...

交流

有夢想,有乾貨,微信搜尋 【大遷世界】 關注這個在凌晨還在刷碗的刷碗智。

本文 GitHub https://github.com/qq449245884/xiaozhi 已收錄,有一線大廠面試完整考點、資料以及我的系列文章。

相關文章