Hi,
* The history
There has been a _lot_ of confusion between User Relationships and FriendList.
Some background information: I created FriendList at a time when User Relationships had been abandoned by its maintainer for months. I considered taking over User Relationships. However, after looking at the source code, I realised that I wanted to come up with a simpler API design. Taking over User Relationship, and creating a V.2 version as a complete rewrite didn't seem like the right thing to do. So, I created FriendList.
Pretty much the night I completed it (I wrote it all in 48 hours), a new maintainer for User Relationships showed up.
Some drama happened (where a misinformed developer even threatened to kill FriendList), I talked to the User Relationship's new maintainer, and things were resolved. I realised one important thing: the complexity of User Relationships was there for a reason. It wasn't just "over-complex". It was more an "workflow-agnostic API". I changed my opinion on User Relationships, and saw how _some_ use cases would require more complexity.
* The differences
So, what's the answer to this question?
Well:
- User Relationships is a module based on an API that is more generic, and therefore more powerful.
- FriendList is based on a simple workflow: one-way relations which don't require approval, or two-way relationships that require approval and mutuality of friendship.
FriedList's workflow cannot be expanded. This means that you can't have, for example, one-way relationships with approval. Or two-way relationships without approval.
* The answer to the question
"It depends!"
It depends on what you're after. Have a look at the project's sub-modules. Look at their feature requests, bug lists, and the general issue list. Keep in mind FriendList's workflow limitation, based on its design. Then decide, and be merry! :-D
* Final apology
At first, I hadn't realised that User Relationship's approach, which was workflow-agnostic and therefore more complex, came with benefits. So, I bashed its design (API and DB). I still think there is room for improvement with its source code (although having spoken to Alex, its new maintainer, I think the codebase will improve quickly). However, my opinions were misinformed.
Comments
Comment #1
mercmobily commentedHi,
Also... Alex and I _will_ work together, sharing ideas and possibly code, whenever possible.
Merc.
Comment #2
alex.k commentedMerc, thanks for following up our discussion on the two projects' futures. I agree with this summary and think the addition of FriendList will enrich the Drupal social networking scene, not crowd it. Good luck with developing the project and have fun.
Alex.
Comment #3
toemaz commentedI hope that in both UR & FL project descriptions, users might could see what the differences are between both modules. Since you are both going separate ways, it's in both your interests to inform new users about the existence and the use cases of related modules. If not, both your issue queues might fill up with feature/support requests for things which is provided by one of the related modules.
So, I would really like to see a link from both project pages to this wiki page (http://groups.drupal.org/node/14625) which you both collaborate on to make it clear once and for all what the differences are and why somebody should choose for one or the other module. Pointing to this issue from your project page (I saw the link on FL) is pointless bc (i) users do not care about the (personal) history of these modules and (ii) since both modules will change, a wiki is more appropriate to report about changes instead of an issue.
Good luck to both of you and the adoption of your modules.
Comment #4
mercmobily commentedHi,
Toemaz, Friendist is still way too young for that.
Let's give it a month. When FriendList has:
* Views
* Rules
THEN it will be actually usable, it will gain a bit of an user base, and then it might be worthwhile bothering User Relationship's page with a link to me. Till then, I am the new kid in the block and I think FriendList needs to stay humble.
BUT! The wiki page will be _very_ important at that point! But let's get the modules ready -- then the comparison will make more sense.
Merc.
Comment #5
michelleThanks for writing this up. This makes it clear that I want to stick with UR. toemaz's wiki is a good idea, though, when you're ready so potential users have all the facts.
Michelle
Comment #6
mercmobily commentedHi Michelle,
OK, all good :-D
I am interested to know... which function do you need that FL doesn't support? This is out of curiosity!
Bye,
Merc.
Comment #7
michelleIt's not so much a function I need now as the potential for the future. If I'm going to move off of the ultra simple buddylist into one of these three much more complex API modules, I'm going to pick the one that offers the most flexibility. You came right out and said yours won't be as flexible as UR and I've heard too many things about B2 to even consider it, so that leaves UR at the forefront for me.
Michelle
Comment #8
mercmobily commentedHi,
OK
Merc.
Comment #9
Flying Drupalist commentedThis is a very important post. Thanks for being so informative.
Comment #10
mercmobily commentedHi,
No worries!
Merc.
Comment #11
armourymedia commentedThanks so much for the clarification and excellent collaborative effort. These two modules are too important to leave the community in the dark as to their direction, relationship (pardon the pun) and future. It would be helpful for each module's project page to reference the other.
Comment #12
mercmobily commentedHi,
Thanks Pasada. Once FriendList is production-ready (which will need to be soon), I will ask Alex, the User Relationship maintainer, to put a link to me. Till then, there is no real point.
Right now I am fighting Views and Rules. Ah.
Fun.
Merc.
Comment #13
mercmobily commentedHi,
This issue is closed. This is a preliminary post -- things are already changing, in that the only real limitation of FriendList seems to be that it doesn't allow one-way relationships that need approval -- and that can easily be implemented.
Once FriendList is complete, the best reference will be the Wiki with a feature matrix.
Bye,
Merc.
Comment #14
mercmobily commentedHi.
Since this issue was written, a lot has changed. FriendList has evolved into a 5000 line module, and it incorporates many features.
Some of the things I wrote in the original post no longer apply. Please refer to this Wiki table for a comprehensive comparison between the two:
http://groups.drupal.org/node/14625
Merc.
Comment #15
mercmobily commented