How do you read/write simultaneously? I really haven't done much with the SPI interface, so my knowledge is limited to a cursory look at the overview page and the shiftin/shiftout functions.ALL
SPI transfers are read+write. That's the way it works. On every clock pulse the chip outputs a bit and
That's why the SPI function to send a byte is called "transfer()", not "write()" (or whatever).
I think the i2c chip probably takes a bit less thought/planning, since you can essentially define and access each pin independently, much like the individual Arduino pins.
Saying that either one is "better" is silly. Both have their uses.
There's situations where I2C is better and situations where the shift registers (or SPI) is better.