推廣 Clojure 的策略
推廣程式語言,與經營 two-sided market business 有相似之處。
大約在 2017 年左右,我學會了 Clojure 。兩年後,我從軟體工程師的幻想中醒來,發現「推廣這項技術,非常困難。」困難的原因跟 two-sided market business 的啟動有點像:『對於企業主來講,他們不想採用 Clojure ,因為怕不好找人;對於一般人來講,他們不想學 Clojure ,因為怕找不到工作。』
我只好自嘲:『所以我找不到老闆,收不到弟子』。
然而,這樣的情況並非台灣獨有。在海外,『如何推廣 Clojure 』的問題,也有許多的討論。有資料佐證的論點是:程式語言若要在業界占有一席之地,至少需要滿足以下兩個前提之一:
殺手級應用:有某個應用情境,恰好就是非這個語言不可,直接帶動該語言的需求。
大公司支持:語言的推廣背後有大企業進行推動,有源源不絕的資源。
台灣的推廣挑戰與可能性
仔細分析上述前提之後,我發現,在台灣推廣 Clojure ,在某些特定條件下,這兩個前提其實也有可能被滿足。
1. 殺手級應用:可回溯時間的資料庫
Clojure 的殺手級應用已經存在,那就是 Datomic,該資料庫提供了『可回溯時間的查詢』 (time traversal query) 功能,這是一個其它關聯式資料庫非常難以在維持向後相容性的前提之下打造的新功能。此一功能在一些需要強調資料完整性與時間維度的產業,例如金融、醫療、電商等領域,極度有價值。
2. 大公司支持:函式庫與訊號
大公司支持通常意味著以下兩點:
足夠的函式庫 (library) 支援:Clojure 由於已經很多年了,現在已經擁有豐富的函式庫。然而,即使是它剛開始的時候,由於是寄生在 JVM 上的語言,它也可以使用 JVM 生態系裡的任何函式庫。換言之,此一項條件已經被語言的設計者還有語言社群滿足得差不多了,並不需要我來對此做什麼特殊努力。
校園推廣與年輕人採用:校園推廣是程式語言滲透的重要一環。年輕人學習新程式語言的轉換成本相對低許多,若能透過低成本、自助式的教材讓他們認識 Clojure,他們的採用行為會成為一種有力的訊號,足以吸引本土的企業注意。
策略設計
基於上述分析,我的策略可以分為以下兩條路徑:
1. 對企業:以業務需求切入
持續拜訪企業主,針對他們的資料需求進行深度交流,特別是有關於歷史數據回溯的情況。透過推廣 Datomic 的應用,讓企業考慮先從小專案來進行嘗試。企業主要是為了使用 Datomic 來解決回溯資料的問題,就被迫使用了 Clojure 。
2. 對年輕人:設計可自學教材
設計一套接近完全自助式學習的教材,目的是讓年輕人可以低門檻地體驗這門語言的優勢。在 reddit 的網站上,有人分享過一些基於實務的經驗:「讓如同一張白紙完全不會 Clojure 的人,從零開始學習直擁有最低水準的生產力,在有資深工程師在旁輔導的前提下,大約需要 35~70 小時的時間。」
所以,教材會由以下三部分構成,想學習的人可以循序漸進前進。
『20 小時 Clojure 』這是互動式教材。設計成 20 小時,預計會有近 200 個練習題,這是參考 Josh Kaufman 的 20 小時理論。
專人免費協助學習者安裝開發環境。(專人就是我。)
一個從真實世界中抽取出來的簡化教學專案。
依序完成三項挑戰,粗估需要 70~100 小時,與一般的程式語言相比,Clojure 要入門困難得多。保守地估計的話,大概難上 3 倍,但是換得的生產力也有 3 倍以上。
結語
Clojure 的推廣,雖然面臨許多挑戰,但同時也存在著值得期待的可能性。透過聚焦企業的實際業務需求,例如 Datomic 在歷史數據回溯查詢的獨特價值,並結合針對年輕開發者的低門檻自學教材設計,可以同時啟動 two-sided market 的興趣與參與度。這不僅能幫助程式語言在台灣找到立足之地,還有機會在全球的 Clojure 社群注入更多活力。
雖然說我現在已經有少數幾位學生了,但是虛榮的我覺得這個數量遠遠不夠,因為我想要有青出於藍的學生。


