Why don't computers use the same architecture?
Why aren't all cars identical? Wouldn't that make easier to build and repair them?

There are big and small cars, cheap and expensive cars, fast gas guzzlers and slow energy savers… And similarly there are many different types of computers.

Here are a few criteria that influence the architecture of a computer. Optimizing for some of the criteria will have a cost against some other criteria.


Speed to execute sequences of integer operations
Speed to execute sequences of floating-point operations
Speed to execute sequential computations that require a lot of memory
Speed to make parallelizable integer computations
Speed to make parallelizable floating-point computations
Speed to make parallelizable memory-intensive computations
Power consumption when idle
Peak power consumption
Ability to scale power consumption according to the amount of computation at a given time
Special-purpose computations (graphics processing, cryptography, digital signal processing, …)
Volume
Design cost
Per-unit manufacturing cost for large amounts
Per-unit manufacturing cost for small amounts
Possibility to connect many peripherals
Ability to execute tasks in real time, i.e. fine control over the execution time of each operation (e.g. to control a physical object)
Isolation between tasks (for robustness and security)


This is of course not an exhaustive list. In practice, you'll find architectures that find a few sweet spots, optimizing for some criteria at the expense of others.

Here are a few examples of different compromises.


Intel x86 processors tend to be very good at raw speed for sequential execution of pure computation and memory accesses. ARM tend to be less fast, but consume less power, which is a large part of why x86 is so common on computers that are plugged into the mains while ARM is prevalent on computers that almost always run on battery such as mobile phones.
GPU are very good at executing many tasks in parallel, which is well-suited to drawing images that consist of millions of pixels. But they're bad at accessing lots of memory in random ways, so they don't make good general-purpose processors.
An MMU translates memory addresses used by programs into memory addresses used by the hardware. This allows the operating system to execute programs each in their own address space, so that they don't interfere with each other. This means that each memory access can take a variable amount of time, though, which is why most processors designed for real-time systems don't have an MMU.
FPGA are extremely flexible processors — you can reconfigure them to optimize them for whatever computation you want to do today. But they aren't cheap.


Add to that historical factors. Designing a new processor architecture takes years of effort by teams of hundreds or thousands of highly-trained engineers, and changing architectures involves rewriting a lot of software, so it doesn't happen often. So just like you can have different car models from different manufacturers that have the same strengths and weaknesses, you can have different processor architectures from different manufacturers that vie for the same applications.