The world's two most common types of barcodes are the Universal Product Code and the European Article Number. The former was designed first and is most commonly in use in the United States; the latter, in the rest of the world. Lots of misconceptions exist concerning the difference between these two codes, which do look different; confusion was compounded by the fact that for many years retail scanners in the U.S. were unable to read EAN codes. In truth, there is no real difference between the UPC and EAN codes, which were both designed by George J. Laurer--only differences in how they are displayed and how they are used.
The UPC code was the first common product barcode, designed in 1973. The primary version of UPC, UPC-A, is a 13-digit code: 10 digits to represent the individual product, an 11 digit that acts as a check code, and two extra digits that are used to catalog items within a system, not always used at all, and almost never printed in human-readable form. ("Human-readable" here means the numbers printed around or below the barcode, as distinct from the machine-readable numbers represented by the bars themselves.) Because of this, UPC-A is often described and thought of as an 11- or even 10-digit code. There are several variants of UPC, including the common UPC-E, which encodes the 13 digits of UPC in a much smaller space for use on products without room for the full barcode.
EAN is the "European version" of the barcode, designed in 1976. Like UPC-A, the EAN is a 13-digit code, but the code as printed displays all 13 numbers in human-readable format, often leading people to believe it has more digits than UPC-A. Ten digits are used for product identification, one as a check code, and two as a country code identifying the country where the product was stamped for retail. (This was necessary in the EAN code because, unlike the UPC, it was designed to apply to many different countries.) EAN only has one variant -- EAN-8, a compressed version of the standard EAN.
It's often not understood that UPC and EAN barcodes are fundamentally identical--they contain the same number of digits, encode those digits in the same way, and use them for the same things. The two digits used for the country code in an EAN barcode are either abandoned in a UPC or used to specify the United States. Furthermore, since 2005, all scanners at retail locations have been required to read both UPC and EAN codes--so now there is not even an effective compatibility difference between the two. The primary difference now is visual, and only manifests to humans: the two codes display different sets of human-readable digits. The content in the bars themselves is identical.