Pidgin

**Pidgin**（前稱 **Gaim**）是一個跨平台的即時通訊使用者端，使用 GNU 通用公眾授權條款發佈。這款軟體支援多個現時常用的即時通訊協定，讓使用者可以用同一個軟體登入不同的即時通訊服務。

截至 2007 年，Pidgin 約有三百萬名使用者。

## 功能

Pidgin 支援多個作業系統，包括 Windows 和其他類 Unix 系統，例如 Linux、BSD 和 AmigaOS。軟體本身支援 NSS，為支援客戶端和伺服器之間加密通信的協定提供基礎。除此之外，使用者可以安裝外掛程式來得到更多功能。

Pidgin 包含了一般即時通信軟體的功能，例如分頁聊天窗口、聯絡人名單、檔案傳輸、聊天記錄的功能。

使用者可以選擇是否開啟分頁聊天窗口功能，聊天窗口也提供按鈕給使用者修改訊息的格式，例如變成粗體或者把文字改變為橙色。

使用者可以在「Buddy List」添加聯絡人（在 Pidgin 裏叫「Buddy」）或者其他 IRC 頻道。使用多個協定的聯絡人可以被歸入同一個聯絡人處理，使用者更可以為他們設定暱稱。

使用者可以通過「Buddy Pounces」，使 Pidgin 在某些特定的條件進行預先設定好的操作，例如「在朋友 Chris Wong 上線時向他發送『你好！』。

Pidgin 也支援檔案傳輸，各種功能包括暫停、續傳、取消。所有的傳輸皆可在同一個視窗管理。然而，使用 MSN 協定傳輸檔案的時候，所有資料都經 MSN 的伺服器轉發，並非點對點傳輸，結果傳輸速度十分慢。一個 Google Summer of Code 專案希望在 2007 年解決這一個問題。

其他功能包括可自訂的哏圖示、拼字檢查等。.

### 協定支援

#### 官方開發

* .NET Messenger Service
* Bonjour（蘋果公司的 Zeroconf）
* Gadu-Gadu
* Internet Relay Chat
* XMPP ( Facebook Chat, ...)
* MySpaceIM
* Novell GroupWise
* OSCAR（AIM、ICQ、.Mac）
* Sametime
* SILC
* Session Initiation Protocol（SIP）
* Yahoo! Messenger
* Zephyr

#### 第三方開發

* Internet CB (ICB) Network
* Napster
* NateOn
* QQ
* SNPP
* Skype
* Tlen
* WinMX
* Xfire
* 飛信

### 加密傳輸

Pidgin 可以透過安裝不留記錄組件（OTR）和 Pidgin-Encryption 來實作加密傳輸功能。

## 歷史

這個應用程式本來由 Mark Spencer，一名奧本大學的二年級學生，所編寫。程式雛型為一款以 Linux 上的 GTK + 工具開發的 AOL 即時通訊客戶端。那時候，它的名字是 **GAIM**（_GTK+ AOL 即時通訊_）。這項工作並不是由逆向工程來完成，而是透過 AOL 在網站上發佈的技術檔案來開發。而事實上，一些 AOL 的員工也曾經協助 GAIM 的開發工作。在此之後，GAIM 陸續加入對其他即時通訊協定的支援。

Pidgin 的開發者然後開始分離核心代碼；將負責通訊部份與圖形使用者介面部份分開。完成分離後，開發者將有可能以自己的圖形程式庫編寫自己的客戶端介面。分離後的核心程式庫將被稱為「libpurple」（原稱「libgaim」）；這個程式庫已被 Adium 與 Proteus 這些客戶端使用。

而新版也解決了以往登入 Yahoo! Messenger 時，中文顯示亂碼的問題（需修改帳號設定中的編碼為 UTF-8）。

### 名字爭議

由於 AOL 的抗議，開發團隊把名字中的「AIM」改為小寫－**Gaim**。但隨著 AOL 即時通訊日漸受歡迎，AOL 把「AIM」一詞注冊作為商標，之後，AOL 和 Gaim 開發人員之間展開一段長時間的法律訴訟。

在 2007 年 4 月 6 日，開發團隊宣佈他們和 AOL 的最終協定：_Gaim_ 改名為 _Pidgin_，_libgaim_ 改名為 _libpurple_，而 _gaim-text_ 變為 _finch_。開發團隊之所以選取「Pidgin」是因為這個字能夠表達不同語言的使用者能共同溝通的概念。另一方面「Pigeon」是一種受歡迎的獵鳥和傳信鴿。至於「purple」取自「IM **pr**otocol **pl**ugin」（即時通訊協定外掛程式）。

由於法律問題，2.0 版本一直被凍結在 beta 開發階段。在事件得圓滿的解決後，團隊宣佈正式版 Pidgin 2.0.0 大約會在 2007 年 4 月 8 日起的兩星期內發佈。然而，Pidgin 2.0.0 最後未能如期推出。4 月 22 日開發團隊解釋問題在於未能處理好用作存放使用者資料的資料夾－「.gaim」的名稱問題。

第一次以「Pidgin」來命名的版本 2.0.0 最終在 2007 年 5 月 3 日正式發佈，並以全新的圖形設計示人。

## 批評

* 由於部份專利通訊協定是使用逆向工程來開發，Pidgin 和有關官方客戶端在功能上會有所出入。
* 密碼是儲存在一個未經加密的純文字檔案中。任何人只要有權限打開有關檔案，即可得知密碼。開發者認為因為 Pidgin 是一個開源的軟體，任何人都可以得知加密的密碼用的鑰匙，所以加密有關檔案是沒有意義的。）一個 Google Summer of Code 2008 專案正嘗試透過 libpurple 經由第三方的密碼庫讀取密碼（例如 GNOME Keyring、Kwallet，或 Apple 鑰匙串存取）
* 2.6 之前的 Pidgin 版本並不支援任何形式的視訊或者語音對話。開發人員正考慮加入有關功能。曾經有人打算同步開發 **gaim-vv** 函式庫，但最後開發者宣佈放棄 2.6 及之後的 Pidgin 雖然支援語音 / 影片聊天但只能在 Linux/Mac OS X 上使用，並不支援 Windows。
* 在更換佈景主題的時候，隨 Pidgin 安裝的 GTK + 有時會和 GIMP 發生衝突。不過後來發現與 GIMP 的錯誤有關，而非設定檔的問題。
* Pidgin 未有自己的佈景主題系統，但是它的姊妹計劃「Adium」卻有。另一方面，GTK+ 有時會提供一個「Theme Selector」給使用者使用。
* MSN 協定不支援讀取或設定官方版本擁有的「個人訊息」功能，使用者須要安裝第三方外掛程式來達成有關功能。在 2007 年 7 月 13 日，其中一名開發人員約翰在他的部落格上表示，經過開發團隊多年的努力，2.5.0 版本將採用 MSNP15，屆時 Pidgin 就能夠支援「離線訊息」、「個人訊息」等官方版本已經擁有的功能。
* 2.4 版本之後，使用者再無法自行改變文字輸入欄位的高度，而是根據已輸入資料的多少來自動調節，最多至視窗大小的一半。部份使用者認為這是一個煩人的功能。

## 相關產品

* Adium 和 Proteus 都是使用 libpurple 為基礎的 Mac OS X 多協定即時訊息客戶端。
* ScatterChat 是一個基於 Pidgin 的加密即時訊息客戶端。
* Meebo 使用 libpurple 開發網頁式即時訊息服務客戶端。
* OpenWengo 是以 SIP 為基礎的 VoIP 客戶端，支援即時訊息。
* PhoneGaim 是以 SIP 為基礎的 VoIP 客戶端，同樣以 GPL 發佈。
* Carrier 是一個以開發官方版本缺乏的功能為目標的分支。

## 參考文獻

## 外部連結

* Pidgin 官方網站 \*\* Planet Pidgin（頁面存檔備份，存於網際網路檔案館）（官方開發團隊的部落格）
  * Pidgin 計劃（頁面存檔備份，存於網際網路檔案館）（SourceForge 上的專案頁）

## 參見

* Empathy—— 可視作 Pidgin 的繼任
* 即時通訊軟體列表、即時通訊軟體比較
* 即時通訊協定比較
* XMPP 協定的客戶端軟體列表