Closed shibayu36 closed 11 years ago
Two reasons:
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.
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.
well, thanks for your reply.
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
So I think you can remove v1 interface and support v1.1 in lib/Net/Twitter/Lite.pm.