Net:: vs WWW:: vs WebService::
(This blog post will serve as a document that I point to for people to read when I suggest people renaming their third-party-API modules [although not necessarily always from Net:: to WWW:: or WebService::]. I'm currently on a Questhub quest that does exactly this.)
Perl being a glue language, people write many modules to connect to third-party API services. These days, most public API services are web-based. What namespace should you pick for your module?
Quoted from said guide: "The Net namespace is one of the most abused namespaces out there. Originally designed as a home for the code that knows how to talk various defined network protocols, such as FTP, HTTP, NNTP, and so on, people started using it for code that merely used the network without knowing anything about it. Modules that interact with websites use the network, but they aren't about the network, and they have much better homes in WWW or WebService. If you are implementing a network protocol rather than an application protocol, then Net might be for you. Otherwise, it isn't."
In short, you probably shouldn't use Net:: for your third-party API module due to its mixed nature. But, as with some people who said that the Net:: namespace is beyond salvation, I no longer suggest that people who currently use Net:: to rename her module to WWW:: or WebService::. And besides, the abovementioned guide is old. People's usage of names evolves over time. Net:: is convenient after all, which is why people keep using it.
I used to prefer WWW:: because it's shorter than WebService::, but after a recent discussion with Neil Bowers, and seeing the other existing WWW:: modules like:
WWW::Mechanize WWW::Scripter WWW::Robot WWW::Scraper::* WWW::Curl
I'm now slightly leaning to WebService::. The WWW namespace is for general modules related to the World Wide Web, while third-party API module to web service can perhaps use WebService::.
I recommend you to use this namespace. But take notice of the casing, it's WebService not Webservice (capital letter S). There's currently one module using Webservice and I'm suggesting that it be renamed to WebService.
Use whatever is sensible, and be consistent. Or, draw your own conclusion :-)