當前位置: 妍妍網 > 碼農

GitHub CEO 直言:編程已重生,GitHub 軟體開發者數量將超十億!

2024-05-28碼農

文 | 王啟隆

出品丨AI 科技大本營(ID:rgznai100)

今年四月, GitHub CEO Thomas Dohmke 在 TED 2024 演講提供了關於人類創造力、編程及人工智慧(AI)交叉領域如何改變軟體開發領域的深刻見解。

Thomas Dohmke 在 TED 演講上 用幽默風趣的語言把這三年 AIGC 技術引起的創意革命,完整地介紹給在場的各界人士。

  • 「樂高童年」 Dohmke 先是 以樂高玩具( LEGO )為例,指出其簡單易上手的特點如何激發無限創意,進而提出 GitHub 的願景——構建一個平台,讓開發者能 無障礙地用程式碼將靈感變現

    他重申了 GitHub 作為促進開發者協作、降低計畫大小限制、使軟體開發觸手可及的平台角色。

  • 編程的傳統壁壘 :長久以來,復雜的程式語言成為多數人涉足軟體開發的高墻。 ChatGPT 覆寫規則:2022 年底 ChatGPT 的橫空出世,以其理解並以人類語言互動的能力,徹底翻新了軟體制造的版圖。

    從 1940 年代的 Plankalkül 到 1950 年代的 COBOL ,再到 1991 年的 Python,盡管程式語言不斷前進演化,但依然讓人感覺 遙不可及

  • Copilot 的登場 :OpenAI 的 GPT-3 驅動的 GitHub Copilot 登場,作為 AI 輔助編程工具,它預判並補全程式碼,極大提升了開發者效率,使編程門檻大大降低。 ChatGPT 和 Copilot 背後的大 語言模型,經海量人類知識訓練,跨越了人機溝通的鴻溝,實作了多語言的自由轉換。

    Copilot 使 人類語言編程、自然語言編程 成為可能,如同軟體開發史上的又一次啟蒙運動,將技術創造的權利交給了每一個人。

  • Copilot 的自然語言互動 :Copilot Chat 的釋出,讓開發者能即時提問並獲取帶有解釋的程式碼,再次簡化了編碼流程。

    Dohmke 是德國人,所以他用德語語音指令的演示證明了 Copilot 支持多語言交流的能力, 讓全球孩童也能輕松嘗試編程 。此外,GitHub 新推出的 Copilot Workspace,則讓使用者可以用自然語言描述任務,AI 自動將其轉譯為程式碼並部署,為創意到產品的轉化開辟了新徑……

  • 雙語字幕視訊奉上:

    以下為演講全文:

    你知道嗎,我其實是那種成年後依然熱愛玩 樂高 的成年人之一。

    早在 80 年代,我在柏林長大時,我就很喜歡它們,至今我仍然熱愛它們。如今,我會在周六下午和我的孩子們一起搭建樂高積木。我對樂高的熱愛之所以能持久不衰,原因很簡單,那就是 樂高是一個幾乎零門檻的創意實作工具

    現在,我不僅是一位「樂高爸爸」,我還是 GitHub 的 CEO。

    如果你不了解 GitHub,你可以把它想象成編程的家園。那裏匯聚了所有的軟體開發者,也就是我們社會中的首席「書呆子」(chief nerds)們,他們在一起協作。 我們的使命之一就是盡可能地讓每位開發者用程式碼構建大大小小的想法變得簡單。

    但與樂高不同的是,對大多數人來說,構建軟體的過程感覺令人望而生畏。這一切在 2022 年底 ChatGPT 出現後開始發生變化 。如今,我們生活在一個智慧機器與我們相互理解的世界裏,這一切都歸功於語言。而這一點將永遠改變我們創造軟體的方式。

    迄今為止,為了創造軟體,你必須是一名專業的軟體開發者。你必須理解、說出和解釋一種高度復雜的,有時甚至是毫無意義的機器語言——我們稱之為程式碼。 現代程式碼對大多數普通人來說仍然像是象形文字。

    這裏有一個例子。這是 20 世紀 40 年代初的,世界上第一個電腦程式語言,叫做 Plankalkül 。它為今天我們使用的現代程式碼奠定了基礎。

    正如你所見,就是一堆數位、一些圓圈,還有幾個肥碩無比的大括弧。這裏面並沒有太多的人性化元素,對吧?

    快進大約 20 年,來到程式語言 COBOL 的時代。COBOL 是在艾森豪時期發明的,但它至今仍是許多大型金融機構的重要語言。華爾街、你的儲蓄帳戶、你的信用卡,如今都依賴於它執行。

    我們可以從中看到一些熟悉的詞匯,但從結構上講,我認為這對大多數人來說仍不容易理解。

    再快進 30 年,到 1991 年, Python 誕生了,它是人工智慧時代最流行的程式語言之一。八十年間,我們從圓圈,到括弧,再到英文片段,然而, 機器語言仍遠未達到人類語言的直觀性

    但到了 2020 年 6 月,我們得以提前接觸到 OpenAI 的大語言模型,當時稱為 GPT-3。那時正值疫情,我們都處於封鎖狀態。我記得我們是一起在視訊通話中,將隨機的編程練習輸入這個原始模型。然後,就像魔法一樣, 它在最初幾次嘗試中就解決了 93% 的問題

    我們意識到自己手中擁有的是非凡之物,所以迅速推出了一款新穎的開發者工具: GitHub Copilot 。這是一款能夠預測並完成軟體開發者程式碼的人工智慧助手。

    Copilot 現已成為全球采用最廣泛的 AI 開發者工具。 編程的時代已經重生

    但這一突破的可能性遠不止於這些商業成果,因為驅動 ChatGPT 和 Copilot 的大語言模型是在龐大的人類資訊庫上進行訓練的。它們理解和解釋幾乎所有的人類語言,所有主要的人類語言。它們似乎能理解我們。 我們成功實作了人類語言與機器語言的新融合 借助 Copilot,任何人現在都能透過單一的書面提示,用任何人類語言構建軟體。

    告別那些繁瑣的括弧和圓圈吧!

    這是自軟體開發誕生以來,技術上最深刻的突破。

    今天, GitHub 上有超過 1 億開發者。這大約是全世界人口的 1% ,這個數位會上下浮動。我認為這個數位即將爆發,我想在接下來的演示中為你展示原因。

    一切始於最初的 Copilot,或者我們稱之為原始版 Copilot,它實際上只是在編輯器中預測和完成程式碼,而你可以把編輯器看作是開發者版的 Google Docs。

    當你開啟一個文件並面對空白頁時,會萌生一種感覺:「我到底想做什麽?」

    我前面提到了樂高,那我們就在網頁上搭建一個 3D 樂高積木吧。開發者們通常會怎麽做呢?他們會開始敲擊鍵盤,比如我可以在一個 JavaScript 檔中輸入程式碼,編寫一個函式來建立樂高積木。

    你看到的這段灰色文字,我們稱之為「幽靈文本」(ghostText),這些內容透過大語言模型生成。

    只需按下 Tab 鍵並回車,就能得到另一個建議,比如建立一個樂高積木塔。

    但我想先直接寫一個函式,就叫「繪制樂高積木」,Copilot 會立即提供 幽靈文本作為建議。

    如果我對這裏顯示的內容感到滿意,我就會更深入地編寫和理解程式碼,我可以直接接受這個建議。開發者們非常喜歡這一點,對吧?因為這樣他們就不必自己寫十行程式碼,或是從網上復制貼上了。他們可以直接在編輯器中正確獲取這些內容,保持這種流暢的工作狀態。

    原始版 Copilot 的問題是,它沒有提供給我與之互動的方式。我無法向它提問,也不能指示它做不同的事情。

    所以,去年我們推出了一個新功能, Copilot Chat ,你可以把它想象成你編輯器中的 ChatGPT。所以我可以在側資訊看板開啟它,現在我可以告訴它為我建立一個帶有 3D 樂高積木的整個網頁。

    類似於 ChatGPT,它會流式傳輸響應,不僅只給我一些程式碼,實際上還會給我一份解釋。當它開始編寫程式碼時,你可以看到解釋那段程式碼作用的註釋,這段註釋使用了一個名為 3JS 的開源庫。

    於是你就能從這兒看出點門道來: Copilot 可以賦能所有的開發者和那些想學編程的人

    而這一切結束時,還會有一份總結性的註釋。我們可以檢查那段程式碼,或將它復制到我的檔中。 但我還想向你展示一些其他的東西 —— 你可能已經見過這個小麥克風圖示。我們實際上可以用它來與 Copilot 對話,我想用德語詢問它,編輯器左側的那段程式碼是做什麽的。

    [Dohmke 講了幾句德語]

    然後,Copilot 用德語回應了我答案

    我可以大致轉譯一下它的回答:「是的,當然,這段 JavaScript 程式碼定義了一個名為'Draw Lego brick'的函式。」

    你明白了嗎? 現在,無論是住在柏林、孟買還是裏約的六歲小孩,都可以獨自探索編程,無需父母在身邊,甚至不需要有技術背景。

    當然,還需要你們自己去琢磨如何將這一切整合起來,對吧?這裏面涉及很多技術性的東西。比方說我有程式碼需要在機器上叠代,就得弄清楚如何將這個部署到雲端,以便與朋友分享。

    這就是我現在搭建的樂高積木:

    它是一個旋轉得很流暢的積木,我實際上可以用滑鼠來轉動它。呈現了反向凸點和很棒的光影效果,我甚至可以放大和縮小這個積木。現在,我不想再做這些開發工作了,我只想直接將我的創意轉化為現實。因此,在舞台上,我將首次向你們展示,我們稱之為 Copilot Workspace 的新產品,它正是為此而生。

    上面是我的工作區,裏面已經沒有編輯器了。我只需要輸入任務,比方說把我的樂高積木放在這裏。 接下來,我想將樂高積木擴充套件成一個樂高屋,按照樂高屋的形狀堆疊積木。我也可以用德語或其他語言進行操作,但目前,我們還是堅持用英語。

    我可以保存我的任務,然後,Copilot Workspace 會分析我已有的內容,並描述它向我提出的建議。基本上,它可以將我的請求重新構架成一個計劃或規範,而 一切都用自然語言完成 —— 當然,它使用了一些檔名,但至少你不會看到程式碼。所有內容都是用英語描述的,我可以進入頁面進行編輯,並修改任何一條內容,如果我覺得計劃不完全符合我的預期,我還可以往下添加另一個計畫。我可以更進一步,生成一個計劃,然後 AI 代理會遍歷我已有的所有檔,並確定我需要如何修改這些檔,或是確認我是否需要向我的倉庫添加檔。

    根據它的判斷,它想要添加一個建立樂高屋的功能,並在之後呼叫建立樂高屋。我覺得這看起來不錯,讓我們實施這個計劃。

    現在,Copilot 利用我的任務、我的規格說明、我的計劃來為我編寫程式碼。兩個 公共的 Lego.js 檔 被排入佇列,然後我的程式碼就已經寫好了,我甚至不需要觸碰程式碼 —— 我甚至不需要知道程式碼是什麽!

    按下即時預覽按鈕,積木從天而降,我就得到了我想要的樂高房子。

    這一切都是即時的。這就是程式碼的力量。 這就是將我的創造力,透過自然語言流式傳輸到現實中的力量

    最後,讓我謝謝 Copilot。因為你必須一直對人工智慧保持友善。

    你剛剛看到的,是三年內的三次飛躍。 這三次飛躍對電腦編程可及性的進步,比我們過去 100 年所取得的還要多 。還記得我說的世界上 1% 的人口是開發者嗎?現在你可以看到這將如何改變。目前,Copilot Workspace 可能仍是一個開發者工具,但不久的將來,這類開發者工具將成為主流。因為 從現在開始,每個人,無論他們說哪種語言,都將擁有與機器對話的能力 。現在,說好人類語言就是你開始電腦編程所需的唯一技能。這將引發全球範圍內軟體開發者的激增,並重塑我們全球經濟的地理格局

    因此,我認為到 2030 年,甚至可能更早,GitHub 上的軟體開發者數量將超過十億。想象一下那個場景:全球 10% 的人口不僅將掌控電腦,但也將能夠像騎自由車一樣輕松地創造軟體。這將催生人類創造力的新文藝復興,以軟體為媒介。現在,在座的任何人此刻都可能靈光一現。一個網站、一個應用程式、一款酷炫的電腦遊戲、一首驚艷的歌曲,甚至可能是某種疾病的治愈方法。

    例如,去年,在幾周的時間裏,我開發了一款套用,記錄了我一生中乘坐的所有航班。

    我知道你在想什麽,這真是個超級書呆子才能想到的主意。但沒錯,我確實喜歡制作這類東西。在人工智慧的幫助下,現在我可以在喝完一杯酒之前,用英語或德語完成這樣的創作。

    不久之後,這裏的每個人都能做到這一點。大家可以一起成為書呆子了。

    這並不意味著每個人都會成為專業的軟體開發者,甚至也不意味著他們應該如此。 專業軟體開發者的職業不會消失,對於那些設計和維護世界上最大軟體系統的人才,需求將始終存在 。我們每天都在向越來越復雜的系統中添加數百萬行程式碼,但這些程式碼幾乎只是在維持現有系統的執行

    就像世界上任何基礎設施一樣,我們需要真正的專家來維護和更新它們。這裏的重點不是「會」或「應該」。而是任何人都可以,只因我們擁有的最強大的系統,任何人類語言,現在都與機器語言融合了 —— 並且很快, 構建軟體將變得如同堆砌樂高積木一樣簡單和愉快。

    采訪環節

    采訪者

    天吶。擁有十億開發者讓 GitHub 聽起來更像 YouTube 和 TikTok,而不是它現在的樣子。這真是超級令人興奮。

    剛才的演講非常精彩, 但有一 個問題我必須得提,這或許是「房間裏的大象」 —— 是個 大家顯而易見卻未被直接觸及的重點 。你提到開發者仍然主導一切,也說了我們三年內經歷了三次飛躍。那稍微快進一下, 你認為人類是否還需要參與其中,還是這些 AI 系統能夠自主構建和維護軟體?

    Thomas Dohmke

    我通常會這麽思考和談論這個問題:我們取「程式碼領航員」( Copilot )這個名字是有原因的。因為 我們需要一個「領航員」( pilot )。我們需要一個有創造力、能決定做什麽的「領航員」( pilot )。

    這有點像樂高積木。你需要將這個大問題分解成小問題,分解成小的構建模組,為此,你需要一個系統思考者,需要一個人來弄清楚 "我是在構建一個 銷售點系統 嗎?""我是在開發一個 iPhone 套用嗎?""我是在制作一款炫酷的電腦遊戲嗎?""我是在打造下一個 Facebook 嗎?"…… 這些都是截然不同的系統。

    現在,這些構建模組的規模將會增長。 今天,它可能只是幾行程式碼,或者整個檔。未來,它可能是一個完整的子系統 。所以我肩上的工作會減輕,但我仍然會在最上層負責整個大型系統。正如我前面演講提到的,我們今天仍在執行 60 年代的 COBOL 系統,所以我們還有很多工作要做。因此,我們將負責在更高層次的抽象上協調這些系統。

    演講原視訊連結: https://www.ted.com/talks/thomas_dohmke_with_ai_anyone_can_be_a_coder_now

    推薦閱讀: