Durante as três primeiras décadas da era do computador, o principal desafio era desenvolver um hardware que reduzisse o custo de processamento e armazenagem de dados. Ao longo da década de 80, avanços na microeletrônica resultaram em maior poder de computação a um custo cada vez mais baixo. Podemos dizer que o “poder da computação” foi o impulso da tecnologia para os dias atuais, pois começaram os desenvolvimentos para os PCs. Isso resultou o desenvolvimento de aplicações mais voltadas para a apresentação (aparência) dos sistemas. A evolução das máquinas acompanhava a evolução das linguagens. Hoje, o problema é diferente. O principal desafio após os anos 90 foi melhorar a qualidade da máquina reduzindo os custos de soluções baseadas em computador e, sobretudo, evoluindo para soluções que são implementadas com softwares.
O poder de um computador mainframe da década de 80 agora está à disposição em uma loja de departamento. A assombrosa capacidade de processamento e armazenagem do moderno hardware representa um grande potencial de computação.
O software é o mecanismo que possibilita ao usuário aproveitar e dar vazão a esse potencial. Evoluiu tanto o hardware quanto o software, um puxando o outro. A cada atualização de software e a cada nova aplicação, exige-se muito mais do hardware. É um ciclo de crescimento que não tem fim.