Everywhere I encounter either asyncronous (ripple counter) binary counters or syncronous ones, the application uses JK flip flops with the J and K inputs tied together, such as described here:
From my understanding this reduces the functionality of the JK flip flop to that of a D type flip flop, so why not just use D-type flip flops? I've seen SIPO shift registers constructed form D type flip flops and not JK ones, so I'm a little confused why this seems to be convention.