重點摘要#

  • 電腦技術的演進使得多語言程式設計(polyglot programming)重新興起
  • 基於文字的協議(如 REST、SOAP)讓異質開發比以往更加可行
  • 架構師現在不僅能選擇正確的語言,更能選擇正確的典範
  • 技術壁壘正在崩塌,擁抱多樣性是現代架構的趨勢

詳細內容#

電腦技術的自然演進帶來了架構師可用工具的重要變化。這些變化引發了對多語言程式設計(polyglot programming)的重新關注——在一個軟體系統中使用多種核心語言。

多語言程式設計不是新概念#

過去就有先例:前端用 Visual Basic、後端用 C++ 編寫的 COM 物件。這種架構本質上是各取所長——利用不同語言在其巔峰時期的優勢。

是什麼推動了這波復興?#

技術標準與不斷增長的頻寬和計算資源共同推動了基於文字的協議的可行性。遠端互操作性從 XML/SOAP Web 服務開始,持續演進為 RESTful 架構風格以及 Atom、XMPP 等協議。

這一代的新技術為異質開發創造了更廣闊的機會,因為 payload 是通用的格式化文字,可被任何語言生成和消費。

從正確的語言到正確的典範#

架構師現在可以組合特定的、強大的工具,從「使用正確的語言」進步到「使用正確的典範」:

  • 有些程式語言是物件導向的
  • 有些是函數式的
  • 有些擅長並行處理
  • 某些典範完美匹配特定的問題或領域

今天,我們可以將看似不協調的工具混搭成優雅的解決方案,這在過去是不可能的。

你作為架構師的工作變得更具挑戰性,因為技術壁壘正在崩塌。擁抱這一點,跳出現有技術棧思考,利用新的多樣性——異質性是贏家

— By Edward Garson