Google 公布一種 Google 開發者內部所使用的資料交換格式:Protocol Buffers;Protocol Buffers 是一種開放原始碼資料描述語言,與它的表親 XML 相比,Protocol Buffers 具備了更簡單、更小、更快的特性。
Google 開放原始碼程式主管 Chris DiBona 表示,我們在編碼時幾乎都會利用需要能夠穿透網路或是儲存在磁碟中的結構性資訊,而我們認為,Protocol Buffers 對於其他人或許也會很有用,所以我們決定把它公布出來,成為開放原始碼軟體。
Google 軟體工程師 Kenton Varda 認為,Google 陸陸續續使用了上千種不一樣的資料格式,大部分都是結構性的,而非 flat;在為這些資料格式編碼時,利用 XML 編寫會過於龐大,因此 Google 開發了 Protocol Buffers 。
Kenton Varda 比較了 Protocol Buffers 與 IDL(Interface Description Language),兩者最大的差異就是複雜性。「Protocol Buffers 最大的優勢就是簡單化,」Kenton Varda 說,Protocol Buffers 藉著一種簡單的列表-記錄 (lists-and-records) 模式,去解決一些主要的問題,我們相信我們創造一個很有力,但不肥大,且快速 (至少比 XML 快上許多) 的格式。 Google 宣稱,Protocol Buffers 比 XML 檔案小 3 到 10 倍,在語法分析上可以快上 20 到 100 倍。
XML 對於檔案 (file),如文本文件 (text-document),仍然是比較好的選擇,因為 XML 是一種以人可閱讀 (human-readable ) 、人可編輯 (human-editable) 為目的所開發出來的;而 Protocol Buffer 則需要一個原始檔案訊息定義,才能被了解。
Google 目前已經提供 Protocol Buffers 免費下載,包括完整的資料源使碼針對 Java 、 Python 、 C++的 Protocol Buffers 編譯器 (compiler) 。
