Re: Friends and Groups for BuddyPress 1.3
Saying that friends would be “deprecated” maybe was a bad idea.
The friends component is basically done, and doesn’t need much more development, because it’s a means to an end, and a dead one in my opinion. You add someone as a friend, they accept, now you’re friends. But that doesn’t actually mean you’re really friends, nor does it make BuddyPress function differently when viewing other users. Not to say you can’t build custom functions around the “if we’re friends do this, if not do this” way of doing things, but that involves template switches and chopping up code for 1 specific type of relationship with no depth or scope or ability to reuse or repurpose.
It will come to a point where we either build out the friends component with an API that lets “friends” tag each other, categorize each other, and plugin to it (like groups already has, think “friends calendar” functionality,) or we use what’s already here, eliminate duplicate code and functionality, and add a few extra brain cells to the groups component.
The best way to explain why I think this is a good idea (from all perspectives) is that it gives the group component more or less flexibility, by giving it a range that it can reach based on what the site admin allows, and what the user allows, from within an API that already exists.
Real world example: Go to testbp.org and create a group. A group about what? Well, BuddyPress obviously, since that’s what the website is about. What if I don’t want the people in that group to talk to each other, but I just want to group users together that I’ve met in real life? Or at WordCamps? I can’t… They’re not my friends, they’re not colleagues or really even acquaintances, but I met them and want to stay connected somehow. I make a group called “Met at WordCamp”, I check the “User Group” option, I don’t create a forum because they don’t need to talk to each other through me, I add the people I met, and I made a group of people. Now, if I want to talk to all of them at once, I use the activity stream and since they’re all in that group, they get it on their feed and they can all reply to that stream item.
It’s a way to isolate people you already know, and put them in a box for later. BuddyPress already does a wonderful job of making sure you have access to all sorts of information, from people, blogs, groups, and friends. What about when I want to start narrowing down all that information and isolating it into what I think I want to see, and who I want to talk to? That’s what this would/could/should do.
And if your site needs the friends functionality exactly the way it is, it would still be available in exactly the same way it is now, with the same database structure and code and filters and everything else. Only you would need to install it as a separate BuddyPress “add in” like what will happen with the wire component for 1.2.
Maz, I get that “friends” is a very simple 1 to 1 relationship that makes data management easy, but it’s also severely limited in the functionality that it provides. If we grow out the friends component, it would only be to include more group like functionality anyway, right?
At the end of the day my feelings won’t be hurt if the idea gets voted down, so keep pouring on the feedback and brainstorming. It’s been a really great discussion so far and I’m pumped that everyone’s this interested and passionate about the idea.