> By contrast, the 737 Max had two separate computers.
The 737 Flight Control Computer (FCC) system has dual-dual redundancy. The 737 contains two FCCs that each contains two processors running independently. In the event the two processors in one FCC ever disagree that FCC shuts down. If the FCC that shuts down was the active one then the secondary FCC takes over. This system provides at least as much hardware redundancy as a three-way voting system.
A key problem with the initial MCAS implementation wasn't the lack of CPU redundancy but the lack of sensor redundancy. Each FCC was programmed to accept only one AOA sensor's input. In the event of erroneous AOA input to the active FCC there was no way for the system to detect the error.
MCAS as initially implemented also represented a very significant shift in the role of the pilot vs the computer. The 737 is an old air-frame that is fundamentally controlled by steel cables and pulleys. The Pilot has full authority over the aircraft and the computers are best seen as "pilots aids". MCAS inverted this expectation by inserting a new software component that had nearly unlimited authority over the pilot.
Contrast this with Airbus where the computer is responsible for flying the plane under the authority of the pilot. Under "normal law" on an Airbus the pilot has no direct control over any flight surfaces. The pilots commands are simply one input to the computer, but the computer ultimately decides what to do.
From the traditional Boeing 737 engineering point of view, having full redundancy on all systems wasn't necessary because the pilot is the one flying the plane and if one of the systems misbehaves the pilot could just turn it off. From an Airbus engineering point of view, having full redundancy on everything is critical because the computer is flying the plane.