semifor / net-twitter-lite

A lighter weight (non-Moose) Perl interface to the Twitter API
Other
26 stars 11 forks source link

Why separate class for API v1.1 from one for v1? #8

Closed shibayu36 closed 11 years ago

shibayu36 commented 11 years ago

I found Net::Twitter::Lite update for API v1.1, but I wonder why you separate class for API v1.1 from one for v1.

Twitter says in https://dev.twitter.com/blog/planning-for-api-v1-retirement

When API v1 is finally retired, all authenticated and unauthenticated requests to API v1 will return a HTTP 410 Gone status. 

So I think you can remove v1 interface and support v1.1 in lib/Net/Twitter/Lite.pm.

semifor commented 11 years ago

Two reasons:

1. Backwards compatibility

By installing Net::Twitter::Lite (or any other module), your code shouldn't suddenly start behaving differently. I strive, when at all possible, to make each release backwards compatible with prior releases. This allows you to install the update, then add new features and functionality to your own code, at your own pace.

Twitter API v1.1 is semantically different than v1. Some methods (most, actually) work without change. But some are substantially different. And some methods that existed in v1 are missing entirely from v1.1.

2. Backwards compatibility

Twitter adopted a new API. They call it v1.1. Other sites like http:://identi.ca also use the Twitter API. They may not adopt Twitter API v1.1. And if they do, they may not adopt it on the same schedule as Twitter. If you wrote software that uses Net::Twitter::Lite to interface with a site that did not adopt the Twitter API v1.1, your code should not suddenly stop working or behave differently because you upgrade Net::Twitter::Lite.

So, I chose to provide support for both Twitter API v1 and Twitter API v1.1, and only require a code change for those who specifically chose to use the v1.1 API. After all, users of v1.1 will likely have to make many more changes than the two line change required to use a different module name.

Hope that answers your question satisfactorily.

shibayu36 commented 11 years ago

well, thanks for your reply.