In the past few weeks, Google’s new social networking site, Google+, has been sweeping across the web (or at least certain circles of it.) A lot of skeptics have been complaining that Google+ seems to be a nerdy boys’ club. And admittedly, early adopters are, by and large, geeky guys (for what it’s worth, it was like that in the early days of Facebook too.)
Well, if the detractors are worried that Google+ is a little too geeky, I’m about to up the ante. I think there is one feature that Google+ could really use, even if 90% of users would never use it… at first. The circles feature of Google+ is very useful. It lets users divide their contacts into different groups for privacy and sharing settings. It’s very convenient, but if you want to get really specific, there is no easy way to do it besides adding people, or small groups one by one. Anyone geekier than me should already see where this is going; if Google+ wants to cement its status as the one social network to rule them all, then they need to support set operations with circles.
If you are not familiar with set operations, I don’t blame you. You probably lead a normal, productive life. Be grateful you don’t think of these sorts of things constantly, and wonder how the information about Google+ circles are stored on the backend. Indeed it is a heavy (geeky) burden I carry. If you are still interested in learning about set operations, feel free to read about them on Wikipedia.
I’ll give a brief overview of set operations here. Basically a set is a collection of unique elements (or objects) just like your circles of friends in Google+. Set operations allow you to combine these sets in interesting ways (similar to adding, subtracting, etc…) Google+ already lets you use one set operation (whether you know it or not!) When you add multiple circles (or individual people) to a post, you are using the union operator. Union lets you add all the unique members of individual sets into one new set. If your friend is in three of those circles (like he was a former roommate, co-worker, and also a member of your water polo team,) he doesn’t get the post three times. That’s because the union operation (and all set operations) guarantee that the resulting set will only contain one of each element (in this case, one copy of each of your friends who are supposed to be there.)
This is already super useful, but what if you wanted to have everyone from a circle except a couple of people (like planning a birthday party, or surprise anniversary party.) It might be useful to share a post with everyone in the family circle except your uncle and aunt. This is accomplished with the complement operation. Or what if you want to share a post with your good friends, who are also your co-workers (if they are just good friends, or just co-workers, they don’t need to see the post.) There is no reason
to make a new circle called “Good Friends AND Co-Workers,” but there is currently no way to share with just these people. The intersection set operator would let you do this without adjusting your existing circles or adding new ones.
Those are just the basics, but set operations could get very specific and precise, and also have the potential to be very useful. What makes them so useful is that the result of a set operation is itself a set that can be used in another operation. Thus you can string them together until you get exactly the set you want.
Maybe you don’t get as excited by the possibility of set operations as I do, but just imagine the possibilities! You could share a post with Your bowling friends, coworkers, church friends, and second cousins, unless any of those people are also classmates or ex-girlfriends but not both. Ok, so that may be a bit extreme, but here’s a more realistic example: Say you want to share some news with all your family except your nosy aunt (not that I have one… really!) There is no way to do this besides adding family members one by one. If you could just subtract the people you don’t want from individual posts, wouldn’t that be nice?
BONUS: Check out the follow-up post: More Google+ Set Operations