I hope this is the last time this question gets asked on this forum.
Though hopper has been out for much longer than bninja, I can guarantee you that bninja will be kicking its ass really soon (if not already). IIRC Hopper doesn't even work on Windows, it's mainly built for OS X though it's doable to play with it on Linux as well.
Bninja is cross-platform and its static analysis features are much more advanced and clean imo. There are times where hopper barely even recognizes libc functions which is ridiculous (I have to admit that this can happen with bninja too when it comes to static binaries but rarely).
Bninja has also a really cool API as well, whose possibilities are endless. The only "advantage" hopper has over bninja is its dynamic analysis instrumentation. Bninja is purely designed for static analysis and symbolic execution. I have managed just fine with bninja thus far and I'd recommend it to anyone.
I guess we'll be waiting for a Hopper fanboy in the comments until you decide.
Note that there are plenty of usage examples online revolving around bninja's and hopper's capabilities. It's better to see for yourself than ask for opinions imo. After all, it kinda stresses me out the fact that my opinion can probably affect you on making a 90-100$ investment.