I think the best way is the syntax you feel more comfortable with.
I like the old joining syntax using the where clause but alot of people like the new syntax, I believe because of readability especially on outer joins where it shows in regular text that you are performing a LEFT or RIGHT join.
There is no performance difference that I am aware of but I could be wrong.
cgyrob is correct. In general for simple joins there is no performance difference. If you have larger complicated queries with several filters and joins or subqueries, strictly for readability it would be better to use the proper JOIN syntax so the filters and join conditions can easily be separated.
Keep in mind you can not do FULL OUTER JOINS in MySQL (I'm not sure if you can in version 6. I haven't upgraded yet). But there are work arounds. =)
If you're in one of those predicaments where cls.__private attributes just aren't enough since they can easily be accessed through inst._cls__private, and you need something a little more secure, here's ...