On 19 September 2014 16:15, Andrew Barnert firstname.lastname@example.org wrote:
There's more to it. Many of the most important packages are doing something that didn't have a category until they invented it. For example, what is BeautifulSoup exactly? Originally, IIRC, it was intended to be a more lenient HTML parser. But nowadays it doesn't even do the parsing itself; it drives a stdlib or other third-party parser. It's sort-of a better (than what?) DOM interface for HTML and XML, which is something no one realized they needed until it existed. If the Python community had the kind of less-fanciful, easier-to-find, specific names that, say, perl has, what would it be called? HTML::Parsers::TagSoupParser?
Also, the boring names tend to mean that, when there _is_ an obvious category, the first entrant stakes out the best name, and everyone else ends up with just less-felicitous variants of the same name. The fact that SleekXMPP and Wokkel replaced Jabberpy as the most popular XMPP libraries means that it's pretty easy for me to recommend SleekXMPP over Jabberpy. In another language, you have to tell people to use libXMPPClient or XMPPLib instead of libXMPP.
I wasn't trying to say that "boring" names were better - far from it, quirky names are part of the Python culture. But there isn't anything stopping Beautiful Soup adding keywords like "html parser scraping" or something like that. The trick is picking keywords that people will search for, which is often hard (and that's probably why the keyword metadata is underused). Having a registry of commonly-used keywords, and a user interface that means you don't have to go online and search when you're writing your app, might help. Think of something like Stack Overflow's auto-completed tags.
I don't have any good solutions here, I just think it *should* be possible for the author of Beautiful Soup to make it clear to potential users that it might be what they are looking for when they think of <insert relevant task here>. As somebody said earlier in this thread, think of it as search engine optimisation for projects.