花一個下午瀏覽 OpenGradient 的公開倉庫,而不是它的主頁。你會發現一個營銷文案從未提到的規律:公司並不會把一切都用同一種語言寫完。核心網絡節點使用的是 Go。開發者 SDK——大多數構建者真正會在自己的項目裏引入的東西——使用的是 Python。支付中介服務和區塊瀏覽器前端則都使用 TypeScript。
這並不是因爲不同工程師各自偏好導致的偶然,至少當你注意到每個部分實際上是爲誰準備的時,它讀起來並不像“隨便拼在一起”。對於需要在高負載下快速運行並儘量保持簡單的基礎設施來說,Go 是很合理的選擇——這正是共識節點全天所必須做到的。Python 是機器學習圈子的默認語言:OpenGradient 最需要它真正被採納、讓人開始調用模型的正是那些人。TypeScript 則是網頁和應用開發者的語言——他們會接觸區塊瀏覽器前端,或把支付邏輯接入到自己的產品裏。
合在一起,決定的就不是“爲一切尋找最好的單一語言”,而是“使用這部分內容的人已經懂哪種語言”。一個以 Python 爲主的 SDK 會降低門檻,讓從未在現實中碰過 Go 的 ML 研究者也能上手。一個 TypeScript 的瀏覽器,讓前端開發者擴展起來比用 Go 的那種更容易。
權衡在內部,而不是外部。維護一個多語言(polyglot)的技術棧意味着團隊需要在至少 3 種不同語言生態裏都感到得心應手,而不是把專長集中在單一方向上;當引入一名新工程師時,也需要先問清他實際會碰到棧的哪一部分,然後才決定哪項技能更重要。OpenGradient 看起來認爲:如果每個組件都能在各自的受衆已經熟悉的地方滿足他們,而不是要求所有人先學習同一個公司的標準,那麼付出這種成本是值得的。
@OpenGradient $OPG #opg $VELVET $LAB
這並不是因爲不同工程師各自偏好導致的偶然,至少當你注意到每個部分實際上是爲誰準備的時,它讀起來並不像“隨便拼在一起”。對於需要在高負載下快速運行並儘量保持簡單的基礎設施來說,Go 是很合理的選擇——這正是共識節點全天所必須做到的。Python 是機器學習圈子的默認語言:OpenGradient 最需要它真正被採納、讓人開始調用模型的正是那些人。TypeScript 則是網頁和應用開發者的語言——他們會接觸區塊瀏覽器前端,或把支付邏輯接入到自己的產品裏。
合在一起,決定的就不是“爲一切尋找最好的單一語言”,而是“使用這部分內容的人已經懂哪種語言”。一個以 Python 爲主的 SDK 會降低門檻,讓從未在現實中碰過 Go 的 ML 研究者也能上手。一個 TypeScript 的瀏覽器,讓前端開發者擴展起來比用 Go 的那種更容易。
權衡在內部,而不是外部。維護一個多語言(polyglot)的技術棧意味着團隊需要在至少 3 種不同語言生態裏都感到得心應手,而不是把專長集中在單一方向上;當引入一名新工程師時,也需要先問清他實際會碰到棧的哪一部分,然後才決定哪項技能更重要。OpenGradient 看起來認爲:如果每個組件都能在各自的受衆已經熟悉的地方滿足他們,而不是要求所有人先學習同一個公司的標準,那麼付出這種成本是值得的。
@OpenGradient $OPG #opg $VELVET $LAB