Computing has evolved from large mainframe computers that were expensive and centralized, to more distributed personal computers and networks. This evolution has been driven by decreasing costs from innovations like microprocessors, Ethernet networking, and cloud/utility computing. Software has also grown more complex, moving from simple programs to interconnected applications and services.