Pidgin has a number of design goals that we consider our philosophy. For example:
We believe that once all your accounts are configured in Pidgin, it shouldn’t matter what protocol or service is being used when messaging a contact. The purpose of using Pidgin is to communicate; the communication itself is more important than the gritty details of how it’s happening. This is exemplified as “I want to talk to John” versus “I want to talk to John on his XMPP account at jabber.org.” It’s our belief that “I want to talk to John” is our users' expectation, and we aim to make Pidgin that simple.
Pidgin, as a project, has overarching goals for the future of the project:
The main protocol-related goal for the Pidgin project is to remove support for the proprietary services from the libpurple source code and have them as separate plugins. This protects the core project from some legal issues and allows much faster response to protocol-level changes if the owners of a given service make changes that break the plugin. There is no specific timeline to do this; we simply aim to do it at some point in the future.