幾年前我碰到 PHP 之父 Rasmus Lerdorf 。我問他,身為工程師跟寫程式有什麼意義?他對我說了一個故事:
2003 年,斯里蘭卡發生了強震,百廢待舉。當地一個年輕人組成的團隊,用 PHP 寫了一套救護系統,緩解了當時的救援困境。這套系統的原始碼最後被放在 GitHub 上開源出去,讓未來有需要的人可以直接複製使用。
誰想過一個程式語言能救人?一份開源專案能救命?這是 Laravel 台灣社群發起人范聖佑第一次體悟到自己使用了要十年的程式語言 PHP,也有超出日復一日接案寫網頁的價值跟意義。
范聖佑是得寬科技公司的共同創辦人,也是「Laravel 台灣」社群的發起人。Laravel 是使用 PHP 語言所發展出來的一套 Web 應用框架(Web framework),台灣不少知名網站都在使用,例如 KKday、癮科技及關鍵評論網。2010 年范聖佑與搭檔 Allen 成立得寬科技,當時他為公司開啟了一項政策,仿效 Google 員工能有 20% 的時間在做工作以外的 side-project,允許員工花些時間經營社群,他的同事一頭栽入 DevOps(Development and operations)之中,而范聖佑決心奉獻給 Laravel 台灣這個社群。
從 2013 年至今, Laravel 台灣已邁入第五個年頭,從一開始區區 50 人茁壯成長到現在 7,300 人( Facebook 社團人數)。每月有著規模不等的實體活動在線下串接人群,線上則是靠著「Laravel 道場」網站連線各種教材資源及開源專案。2017 年,台灣第一屆 LaravelConf Taiwan 登場,有 300 人參與,2018 年 7 月剛結束的第二屆年會人數再創高峰,突破 500 人。
那些年,啟蒙我們的電腦課與電腦老師
范聖佑並非科班出身的工程師,大學讀印刷系,碩士專攻多媒體應用,在創辦得寬科技前,他曾在兩家網路公司擔任過 UI 設計師。范聖佑的經歷看不太出與寫程式的直接關聯,也不免讓人好奇是什麼因緣際會使他「入坑」工程師的世界,甚至經營起 Laravel 社群?這一問,勾起了他國中時期的電腦課記憶。
以今日的角度來看,網路跟電腦很理所當然的是我們生活的一部分,但回推十幾二十年前,它還未被寫入現代人的 DNA,而許多人的網路記憶,都來自於學校一週不過一兩次的電腦課。范聖佑回憶,那個年代學校裡真正會電腦的人不多,但當時有一位 IT 職員(後來成為該校的電腦老師),掌握了幾乎整個學校 IT 系統的骨幹。下課後,范聖佑會巴著他問東問西,放學後,他會帶范聖佑去參加電腦展。這位老師對網路與電腦世界暸若指掌,而且對待學生極有耐心。
范聖佑永遠記得,他曾經打電話給老師,一問就是三小時。在沒有截圖跟共享螢幕的那個年代,他的電腦功力就是這樣透過兩邊的傳聲筒,一個指令、一個步驟,靠著老師無止境的耐心延續下去,也造就了現在願意投入大量時間在 PHP 教學上的聖佑。
當年學生愛跑光華商場買零件、玩組裝、弄超頻,老師卻提醒他「軟體才是未來的重點」,應該多思考自己可以用軟體做什麼、解決什麼問題。
范聖佑說老師是啟蒙者,而我認為老師是引領范聖佑入門電腦世界的另一種傳教士。
因為不服輸,所以選擇 Laravel
2013 年得寬科技面臨轉型,從客戶型態到使用的程式語言都考慮汰換。當時使用的 CodeIgniter(PHP 的另一套 Web 應用框架)框架因版本長年未更新,無法再支撐客戶專案所需的現代化需求,辦公室每日瀰漫著寫程式不順暢的焦躁。
夥伴 Allen 一句「要抱怨可以,那你也要想辦法解決。」迫使范聖佑向外尋覓解決方案,勤跑各大社群,參考了 JavaScript、Node.js 跟 Ruby 等語言。個性直接且思考跳躍的他當時受到 Ruby 的吸引,他回憶:Web 2.0 的時候很多新創公司都使用 Ruby,是個很潮的語言,加上 Rails 框架豎立了一種典範,能在 15 分鐘之內做出會動的網站,很是吸引人。
當時他滿腦都是華麗的 Ruby。但導入新語言的成本太高,夥伴 Allen 提醒要對症下藥才能真正解決現況,同時考量到接案客戶大宗仍以 PHP 為主,范聖佑只好忍住衝動,再次栽入研究中,從熟悉的 PHP 框架中找答案。最後找了「長得最像 Rails【註 1】」的 Laravel 框架。
Laravel 當時在國外正紅,但台灣使用的並不多。考量到技術需要交流、也要拓展使用 Laravel 的客戶群,所以興起了創立社群的念頭。但這些都只是表層滿足技術與商業需求,真正讓范聖佑不計勞動代價全心全意投入社群發展的,是一股要「改變現狀」的傻人傻勁:由於 PHP 的設計初衷訴求簡單,非經專業訓練的人也能輕易上手,許多工程師太過依賴 PHP 簡易與直覺的特性,造成實作成果品質不佳,最終讓外界對於 PHP 工程師的專業度感到疑慮。
范聖佑坦然接受「非科班」出身的身份,但絕不接受自己無法用 PHP 做出好成績。一股不服輸的情緒逼出了天真但又強韌的願景 — — 就是希望教大家用 PHP 做好產品,用 Laravel 框架把專案寫好。如果能用 PHP 跟 Laravel 做出好成果,這樣的「典範」或許有天也能翻轉 PHP 的形象。
然而,經營社團並不容易,尤其 2013 年那時台灣使用 Laravel 的人數不多,不用說建立社群,連去哪裡找人都不知道;想要整理一本案例集給客戶看,也都找不到真正使用 Laravel 的產品。一切都得從零開始。
初期最令人沮喪的就是別人的冷漠以待,大家總是反問:Laravel 關我什麼事?我用其他框架用得好好的幹嘛換?用 Laravel 可以幹嘛?但真正的困難在於絕大多數的人根本沒聽過 Laravel ,在說服他人嘗試使用前,還得耐心的解釋、去教。曾經他與社群班底參加研討會,班底很沮喪的表示,今天跟他人分享 Laravel 經驗大家卻都很陌生,而這個活動的場合還是 PHP 自己的年會。 自己的圈子都很少人聽過 Laravel,是要怎麼推?
范聖佑回憶,那段時間 Laravel 道場積極規劃諸如讀書會這樣的小活動,以小醞釀更大的力量,慢慢將人群固定凝聚起來。從 2013 年開始創立 Laravel 社群,雖然人數已從一開始區區 50 人成長到現在的 7,300 多人,但成長曲線不是一直都順利往上走的。頭兩年在達到 1,000 人後開始停滯,等待爆發性成長的時間漫長到讓人感覺難以呼吸。然而,回想當年啟蒙范聖佑的電腦老師,如果他都能隔著自己看不到的螢幕,一字一句帶領范聖佑探索電腦世界,那麼或許耐心真的能衝破限制。
唯有事必躬親,才能傳承經驗
當然范聖佑也不是沒想過要放棄,2017 年 Laravel 社群擁有約 5,000 人數量時,醞釀已久的首屆 LaravelConf Taiwan 終於要登場,范聖佑此時每天卻都想著要放棄,質疑自己究竟為何做這些。不只各種大小瑣事接應不暇,為了因應年中的年會,上半年度其他社群固有的小活動(讀書會、討論會)也都停擺。第一次操刀上百人規模的活動,每件事都是第一次做,每天都在爆炸,每天都是戰場。
但 LaravelConf Taiwan 是一個里程碑:經營社群這麼久,必須要做出一個具指標性的活動,這不只是對會員的交代,也是自我的期許,同時也希望能夠對外釋放「台灣也可以辦框架的年會」的訊息。許多志工無法在上班日支援的事項,他選擇事必躬親,每個流程都要自己跑過一遍,因為唯有如此,未來才能夠親自將經驗傳承下去。每一次的里程碑,都是在挑戰自己的能力。
當初在決定發起社群時,范聖佑就已經規劃了一個「台灣 Laravel 生態圈」藍圖,當時規劃的順序是:先有社群、再有社群活動,接著舉辦年會、架設 Larvel 道場網站,最後來點開源專案。當初規劃的如今皆一一部署完畢。
我問他看得到辦 Laravel 社群的盡頭嗎?他笑笑說感受到自己也老了,無法保證是否還有再下個五年,但他的目標是讓整個生態圈變的「有機」,未來換人接手時,這個社團也能自轉、永續的發展下去。
「每個人都有機會成為別人的英雄。」
沒有人知道一個技術社群真正變成永續需要多久時間,但可以確定的是范聖佑這幾年的投入,確實已創造出價值:回到專訪一開始 Rasmus Lerdorf 的故事,將用 PHP 寫成的救護系統放上 GitHub 向外開源,讓全世界因災害有其需求的地區與單位都能夠靠著原始碼複製系統 — — 這樣的故事也在 Laravel 台灣社群周邊發生。
2017 年,來自彰化和東國小的王姓資訊組長上完范聖佑的 Laravel 課程,返校後導入 Laravel 框架,翻新了學校的網站與校務系統,之後把「和東國小全球資訊網」及「和東國小資訊教學網」原始碼公佈在 GitHub 上,供其他學校參考。
「住在台北的人很難想像中南部的教育資源差距有多大。」范聖佑認為,這位資訊組長做的事的價值遠大於幫自己的學校翻新官網,而是要讓每個人,甚至每個處在資源不對等地區的機構,都有機會透過開源接到幫助。
如果說 Rasmus Lerdorf 因創造 PHP 而成為使用這個語言的人的英雄典範,那麼推廣 Laravel 的范聖佑就是這位王資訊組長的某種英雄典範,最後,這些來上課的學校老師們,也有機會像和東國小的王資訊組長一樣,成為別人的英雄典範。
【註 1】 Rails 是使用 Ruby 語言所發展出來的一套 Web 應用框架。
本文依 CC 創用姓名標示 - 非商業性 - 相同方式分享 4.0 國際釋出