I do not only want to list problems and talk bad, but like to mention the well made things, too.
It is simple. The already usable core fits into a few KByte of binary code. It allows every kind of extension using the means of the language itself, actively supports these extension.
The Inter IC Bus, a.k.a. I-square-C, makes most out of 2 bidirectional digital lines. It allows even multi-master operation, has nearly no timing requirements, is as simple as possible while implementing all the nice things it provides.
Most of the time it is used with a single master only, I know very well. It has strong competition by e.g. SPI (there are multiple meanings of SPI), which needs less silicon for implementation, if multi-master is not needed, and you can afford to have 3 or even more lines for communication.
Small Computer Systems Interface. Like I2C, it follows the "All Are Equal" principle, and has a lot of margin for use well beyond the limits of its specification.
Although seldom used that way at that time, a Harddisk can backup itself to another media like tape, or the tape can actively backup the harddisk, or just another party on the bus can handle this operation, instead of the Host computer.
Of course, the competition AT-Bus / IDE / ATA, now known as parallel ATA (PATA) has been and is a simpler means to just connect a harddisk to a computer. Anyway, ATA has been too limited. For good reason ATAPI (ATA packet interface) has been introduced later, which basically is same command based communication like SCSI used long before.
Author: Harun Scheutzow
Last change: 2011-06-25