如果想學怎麼寫程式,現在應該從哪裡開始?
我的建議是:想一個 project,然後開始解決一路上遇到的各種麻煩。
買書或看線上課,對我來說很容易中途放棄。老實說,單純寫習題真的很無聊,而且感覺永遠學不完。恐怕只有少數人,能鑽入程式碼與演算法的世界;做自己用得上的工具或遊戲,對大多數人會更有動力繼續。
Replit 也深通這點。Replit 在 2023 年 4 月 B 輪募資 $9740 萬美元,估值 $11.6 億美元,正式成為獨角獸。創立的使命,是希望讓大家能一面學習程式,一面與人協作、做出產品。
程式初學者,可以在清單裡選一個感興趣的專案(小遊戲、部落格或 AI 小工具),照教學寫完並直接上線。也可以跟其他人共同參與一份專案,並把作品發表到社群上。
不過,Replit 現在已經遠遠不只是程式教學。Replit 的核心產品,是線上的程式碼編輯器,讓人們不需要設定一堆環境與安裝套件,用手機也能寫程式,還可以多人協作。
Replit 是如何從程式教育,轉型成線上編輯器與部署環境,並因這波 AI 浪潮而受益?
這或許要歸功於創辦人 Amjad Masad 的遠見。早在 2015 年的 pitch deck,他就清楚闡明 Replit 將會「打造社群與 AI 輔助的介面,模糊學習與開發軟體的界線。」
利用 AI 輔助學習與開發,如今看起來非常合理;但在八年前預見,這就不是容易的事了。
比方說,Y Combinator 當年也沒看出來——他們一共拒絕 Replit 三次。經過一番曲折離奇的過程,Replit 才在 2018 年加入 YC W18。
創立之前:約旦移民 Amjad Masad 的美國夢
Replit 創立於 2016 年,但核心的產品早在 2011 年就開始了。
創辦人 Amjad Masad 出生於約旦。12 歲就開始寫程式,因為家裡沒電腦,他只能到網咖把程式碼印出來研讀。長大後,他在 Yahoo 約旦擔任軟體工程師。
此時他立下目標,要一年精通四種程式語言,而這需要大量練習。問題是,若沒有建於瀏覽器的編輯器,就很難利用零碎時間,隨時隨地練習。
於是,Amjad Masad 決定自己做一個。這就是 Replit 的開端。
Masad 將編輯器開源,並引起線上程式教育新創 Codecademy 的注意。他們起初用 Masad 的開源程式碼,一個月後則直接招募他成為第一位員工。Masad 因此得以離開約旦,搬到美國工作。
Codecademy 的創辦人理念與 Masad 一致,認為程式能力將是「新世代的讀寫能力」,希望讓更多人擁有寫程式的能力。這也影響 Replit 的願景:
「帶來下一代的十億位線上程式開發者。」(Bring the next billion software creators online.)
Masad 離職後加入 Facebook 待了三年,主要負責開發者工具,最知名的貢獻是 React Native。於此同時,他的開源 side project Replit 持續成長,他不得不面對一件事:
該辭職了。
Masad 其實並不想辭職創業。他自述,早期在新創當第一位員工的經驗,讓他見識到新創最好和最壞的一面。而當 Replit 不再只是個 side project,他試過:
- 把 Replit 變成 Facebook 內部專案(甚至還寫信給祖克柏,祖克柏沒回信)
- 試著跟另外兩間新創合併。但願景不一致,而且覺得對方野心太小
- 試著申請 Y Combinator,但連面試機會都沒有,一共被拒絕了三次
- 找一個外部 CEO,但找來的人都不相信這個願景,有些人覺得很蠢
其他人都不看好開源的線上程式碼編輯器。YC 投資人還直接回覆:這不是新創,只是個有趣的玩具。並建議他應該加入其他類似的公司。
最終,Masad 的老婆 Haya 認為兩人應該辭職創業。Masad 試著警告她:「做新創超痛苦,像是每天都在嚼玻璃。」但 Haya 堅持,一定會很好玩啦。
一年過後,Haya 說,還真沒想到會這麼痛苦。
作為移民,他們的代價是很高的。花這麼多年才取得綠卡跟積蓄,要是創業失敗,等於要重新來過。
曲折離奇加入 Y Combinator:運氣爆棚的開端?
Replit 早年募資不順。這不令人意外:免費線上程式碼編輯器沒有商業模式。
他們還是獲得了一筆種子輪,勉強活了下來。為了營利,做了讓電腦老師管理班級的軟體,只不過打入學校官僚既緩慢又痛苦,老師們有時甚至得自掏腰包。(我曾經做過美國教育科技市場,深有同感。)
此時,Sam Altman 突然在推特傳來訊息,想約 Masad 隔天在 Open AI 的辦公室。
(當年 Masad 寫部落格記錄這件事時,或許沒有注意到:Sam Altman 當時同時管理 Open AI 和 Y Combinator,但為什麼是約在 Open AI 而非 YC?)
孤軍奮戰多年,Masad 終於遇到另一個完全理解 Replit 願景的人。在 Sam Altman 介紹下,他與 Paul Graham 信件往來了兩個月。後者建議:把那個什麼班級管理軟體砍掉,專注在核心的編輯器與程式教育業務。
由於已經拿到投資,加上曾經被拒絕三次,他們一直猶豫有沒有必要申請 YC,當終於下定決心時,已經過了截止日期。但 Sam Altman 還是開放遲交,隔天就面試。
三次被拒,這次他們終於在準備不足、申請表亂寫的情況下,獲得面試機會。
面試官之一是 Michael Seibel(Twitch 共同創辦人)。他的第一個問題是:「你們為什麼要在申請表貼迷因?」
原來前一天,有個必要欄位是「影片」。Replit 沒有影片,於是他們決定貼上瑞克搖迷因。
瑞克搖
在各種意想不到的地方,突襲 Rick Astley 的招牌歌 Never Gonna Give You Up,是一種網路惡作劇迷因。
他們冷汗直流,因為 Michael Seibel 顯然不覺得幽默。
在 YC 招牌的高速連環問答結束後,Masad 和 Haya 走出會議室,覺得沒救了,因為自己竟然蠢到去貼迷因還自以為幽默(我同意這百分百是他們的錯)。但在搭 Uber 回家路上,他們接到電話通知錄取。
於是,他們走回 YC 大樓,那天正好是 W18 的第一天晚宴。而這段荒謬故事也成為 YC 的經典故事之一。
Replit 不只是編輯器:垂直整合軟體開發流程
Replit 解決了軟體開發中的三個問題:1. 開發環境 2. 軟體協作 3. 部署環境
首先是開發環境。對於程式新手,安裝開發環境本身就讓人卻步。
以 Node.js 為例,你需要先安裝 nvm,選一個 Node.js 版本安裝。之後要搞懂 npm、yarn 或 pnpm,選一個來用(我推薦 pnpm)。Node.js 在不同作業系統的行為又有點不一樣,尤其是 Windows,常遇到一些奇妙的問題。而以上的步驟,要是沒有處理好,就可能在電腦深處留下一堆佔據空間的垃圾檔案。
即使是老手,面對全新的電腦,安裝好全部的套件也是耗時的無聊工作。Replit 把開發環境處理好放上雲端服務,大幅降低開發者的啟動門檻。
然後是軟體協作。寫程式時,常會遇到很多問題,如果能有另一個人一起開發(pair programming),往往能更快指出自己的盲點。對新手來說,社群討論能加速學習曲線;不知道要開發什麼功能,也能從社群獲得靈感。
最後是部署,又一個討人厭的差事。繁雜的設定和不友善的 UI,一個手滑就會讓網站連不上,或留下潛在的安全性風險。對新手來說畏懼,對老手也很煩人。
Replit 讓人們寫完程式直接上線,對於只是想做小工具的人們來說太方便了。
每個 Replit 的專案,都直接是一台設定好資料庫、儲存空間、網路與開發環境的迷你電腦。你可以直接寫程式開發功能,而不是把時間花在點按鈕、打指令。
這三點正是軟體開發的上中下游。從策略層面,Replit 的創立過程是:選擇利基市場,並垂直整合。
我個人認為,「利基市場、垂直整合」也是新創公司成功最好的路徑。垂直整合可以發揮既有累積的優勢,也更好地服務使用者,一條龍解決從上到下面臨的問題。
這讓 Replit 成為獨特的存在。如同 Masad 在部落格所說:Replit 不是 IDE(整合開發環境)。他比喻,如果傳統的開發流程是桌上型電腦,Replit 就是 iPad。更靈活機動,能做到很多事,但當然也有限制。
Replit 是分享程式碼的工具,是用來建立社群。
Replit 是用於教育,是學習寫程式。
Replit 不是打造大型軟體,不是用於 legacy codebase。
Replit 是做 side-project 的工具,是用來放好玩的 app。
Replit 充分定義了使用情境:用來學習以及做些好玩的小 app。並發明了全新的開發流程:在瀏覽器直接開發並上線。
隨著年輕工程師們湧入,Replit 可能正在重塑未來軟體開發的樣貌。
指數成長曲線&轉移成本護城河
Replit 的主要使用者是年輕世代。這很自然,做程式教育起家,使用者大多會是年輕新手。但另一方面,也是很有效的護城河策略。
先前我曾經分析過,Vercel 的最大問題在於「沒有轉移成本護城河」。老練工程師們會為了加速開發使用 Vercel,但最終可能會因為逐漸升高的成本而離開。
當時我也分析,Vercel 最好的機會,是找到那些「非開發者」的用戶:
然而,Vercel 的現狀顯然與 WordPress 很不一樣。Vercel 的主要客戶是工程師,解決的痛點是部署困難;WordPress 的客戶,則包含了許多非開發者與企業——他們更願意付費解決技術問題。
(中略)
因此,我認為 Vercel 只剩下一條路:找到「非開發者」的用戶來打造護城河,避免 AWS 的競爭。
Vercel 需要學會如何跟非開發者對話,並且打造讓不會寫程式的人,都能好上手的使用流程。
而 Replit 從一開始就是這樣切入:讓不會寫程式的人們好上手。
新手開發者,如果都是在 Replit 上面學習程式,就很難離開——因為他們在 Replit 上,根本不會學到怎麼自己設定開發環境與部署。
Replit 的低進入門檻,也吸引了許多有產品思維,但缺乏開發能力的人們加入,例如 PM、設計師等。這些人有把產品做好並營利的能力,但通常不太能離開 Replit 建立好的環境。
Replit 藉由準確的 TA 挑選,打造了很高的轉移成本,因此迎來爆炸性的指數成長:
截至 2023 年 2 月,Replit 已經有 2000 萬名使用者。其中有一半是 18 歲以下。
新願景:讓 AI 輔助打造軟體產品
AI 浪潮還讓 Replit 迎來了幸運時刻。Replit 上的 AI 專案對比去年同期增加了 34 倍,大家都想學習跟打造 AI 產品。
Replit 有自己的 AI 輔助開發服務 Ghostwriter,背後是自己訓練的 AI 模型(一個 3B 參數 LLM 模型)。號稱效果更好,但比 GPT-3 快 10 倍、比 GPT-4 快 100 倍。
但這些單點的現象與 AI 工具,並不是 Replit 真正的優勢與機會。今年 6 月,Replit 發表一篇〈Replit AI 宣言〉,宣布 Replit 將會致力於打造 Artificial Developer Intelligence(ADI),由 AI Agent 來寫程式碼與打造產品。
憑什麼是 Replit 來做這件事?為什麼線上編輯器,會是 AI 開發的基本核心?
打個比方:Replit 的 AI 就像智慧家居,看得到整個專案的「家」長怎樣,知道所有家電擺在哪、格局如何,因此可以在需要時幫你自動開冷氣、鎖門、調整燈光亮度。
而其他輔助開發 AI,則只是聲控的智慧助理,使用者主動下指令時可以運作良好,但僅止於此,做不到更多。
目前的 AI 輔助開發如 Github Copilot,是嵌入在編輯器裡面,給出程式碼的建議。但如果想讓 AI 幫忙開發軟體產品,就必須串接資料庫、存取檔案、理解 API⋯⋯單單一個編輯器是不夠的,必須整合整套開發流程,讓 AI 有辦法存取到資料庫、檔案目錄、對外連網等等。
現行的各種 AI 輔助開發,因為「看不到」資料庫和其他檔案,也沒辦法聯網,所以自然無法準確給出建議,只能亂猜最常見的寫法。
Replit 過去幾年的垂直整合,在大型語言模型爆發的此刻成功發揮。這當然有一部份是運氣,另一部份,則可以歸功於 2015 年 Masad 就想以 AI 輔助學習與開發軟體的遠見。
Google 也在 2023 年八月推出瀏覽器開發環境 Project IDX,並結合其 AI 模型。兩者相比,Replit 有著明顯的領先優勢,協作、部署等整合也更完整。
Google 的優勢則在自己的雲端運算中心 Google Cloud Platform(GCP)。GCP 賠錢了 14 年,終於在 2023 年開始獲利。擁有資料中心,等同於往更上游整合,這會是未來 Replit 的一大劣勢。
一方有完整產品與年輕的未來使用者,另一方則掌握投資十多年的硬體資源。兩方的較勁才正要開始。(希望最後劇本不是 Google 收購 Replit 再關掉。)
回到 2018 年。Sam Altman 聯絡 Masad 時,是在 Open AI 的辦公室。兩者討論與盤算了什麼,我們當然不得而知,但這可能是個很有趣的時刻:
當年 Masad 說其他類似工具的野心太小,指的是不是他們沒能看出 AI 在軟體開發的可能性?
Sam Altman 以 Open AI CEO 的身份找 Masad,是否表示他也看到了線上編輯器,是 AI 輔助軟體開發的必備要素?
多元的商業模式&不夠專注的風險
Replit 也在 2022 年推出 Cycles 代幣,可以用於購買伺服器使用時間,或是提供賞金,讓其他開發者幫忙解決問題。(註:Cycles 並不是加密貨幣。)
Cycles 起初是 Replit 論壇裡的積分,只要得到 upvote(按讚)就可以賺取。Cycles 也可以「出金」,等於在論壇裡幫助人,真的可以獲得金錢報酬(不過手續費是超高的 25%)。
因此我們可以注意,Replit 實際上共存著多樣的商業模式:
- 訂閱:使用者要訂閱每月 $7 或 $20 美元的方案,才能使用私人專案、資料轉移、AI 幫手 Ghostwriter 等功能。
- Pay-as-you-go:耗費代幣 Cycles 來購買額外資源,如伺服器時間。
- Marketplace:可以提供賞金,外包讓其他開發者解決問題。
Masad 顯然是一個頭腦靈活的人,可以想出各種賺錢的方法。
但這也可能是缺點。每個商業模式,需要的能力都不同。例如,B2B 的業務開發,和 B2C 的銷售業務,需要的是截然不同的能力;經營一個 marketplace,需要的策略和思考方式,也和純粹的訂閱服務不同。
受限於有限的人力,對於新創來說,比較好的策略應該是專注在一種商業模式(也許最多兩種)。
訂閱的優點是每年穩定的現金,缺點則是因為定價有上限,天花板較低,能從每個客戶身上賺到的錢有限。
Pay-as-you-go 的上限很高,只要使用者狂開伺服器,就要付出大筆帳單;但缺點是不太穩定,每次購買都要重做一次決策,帳單暴漲也可能停止付費。
Replit 似乎在兩者間游移不定。他們曾經主打代幣,目前官網價格頁面,卻找不到代幣機制說明,只顯示訂閱的價格。但在一些官方部落格文章,又會把代幣機制當成特色大書特書。
多種商模間的猶豫,也展現在訂價策略上。Replit 在 2023 年初變相漲價,減少了入門款 Hacker 方案內容,並被使用者批評為「想強迫大家往 Cycles 靠攏」。
(我自己也不太喜歡這個策略——我認為他們應該勇敢漲價,而非縮水既有方案。)
事實上,我個人很被代幣模式吸引。代幣機制讓社群和核心產品結合,人們可以更投入在社群討論,再賺取代幣做自己的產品。
強化社群也是聰明的策略。社群有網路效應,讓長期投入的使用者們更離不開。一旦脫離 Replit 生態系,本來做好的部署都要重新開始(轉換成本),而且還沒有朋友可以問(網路效應)。
但不夠專注的人格特質,似乎在 Masad 創業早期就展現出來。為了生存,初期他們曾經做 API 和教室管理軟體。或許不專注是聰明的副作用?
而除了以上三種商業模式,Replit 還在 2021 年成立了 Replit Ventures,專門投資在 Replit 上成立的新創。(第四種商業模式!)
這可以視為另一次軟體開發的垂直整合:提供營運資金,以及 10 週的孵化計畫,幫助團隊把產品做出來。
對我而言,Replit Ventures 和代幣系統一樣,是很有想像空間的策略。成功的產品,最後很可能會從 Replit 搬家到更便宜的地方(如:AWS);但 Replit 仍然有辦法藉由投資這些新創,獲取可能的未來報酬。
問題是,早期投資的風險很高,回報卻很晚。Replit 有必要做這項業務嗎?甚至,Replit 自己撐得到投資回報那天嗎?
我很喜歡 Replit 的創業精神,但是同時開這麼多支線,讓人有點擔憂。特別是,他們將面對如 Google 這般強大的對手。
AI 為 Replit 帶來意料之外的成長,卻也吸引來森林的巨獸。Replit 的「多才多藝」,究竟能成功打造強壯的護城河,還是反而讓自己分心?Replit 就像開了很高的槓桿,風險與報酬都倍增;結果如何,自然是成者為王。