Tienes muchísima razón en lo de la capacidad. Sin embargo, no en cuanto a la masificación. Si le preguntamos a un individuo común, que nos diga que es una computadora, facilmente pensará en teclado, cpu, mouse y pantalla.
Sin embargo, los sistemas de cómputo más extendidos son los embebidos. Y estos ni siquiera tienen por que tener una interfaz humana. Como el chico que preguntaba hace poco si era factible hacer su propio servidor web. Por unos $50 USD puede construirse uno y el código no pasará de los 30Kb probablemente. No va a pesar más de 150 gramos. Pero no será nada como lo que decías de ¿"SetAndForget"?.
Hace algún tiempo hice una investigación sobre los procesadores, y me sorprendí mucho al encontrar que 55% del total de procesadores que se venden en el mundo son de 8 bits. Luego, los procesadores de 32 bits eran el 8% del total de los procesadores fabricados. Y el 2% de los procesadores de 32 Bits, se dedicaban a las PC's y servidores. No recuerdo exactamente la página pero estaba en el sitio de
http://www.embedded.com.
Pero la importancia de los procesadores para PC no está en las cantidades vendidas, sino en las ganancias obtenidas. Resulta que acaparan aprox. el 30% del total de las ganancias por ventas de semiconductores.
Sin embargo, resulta que aún cuando los procesadores embebidos son unas baratijas (desde unos $2 USD), se gana decentemente programando para ellos: de $25 a $100 USD por línea de código (fuente: Jack G. Ganssle en “The art of designing Embeded Systems”)...
Me gustaría ver que aquí en México me pagaran eso...
Como sea, programar para PC tiene ventajas. Por ejemplo, yo sé que tú detestas VB entre otras cosas por su gran capacidad para generar BloatWare. Pero ni al programador común de VB ni al usuario del programa le importa cuán grande es el ejecutable sino cuando no les cabe en un disco. En C++ o C un programador novato podría escribir código ineficiente pero funcional, pero tampoco importará, porque a la velocidad de una PC esos ciclos inútiles extras, son imperceptibles. De hecho esa ha sido la filosofía para crear programas desde hace mucho tiempo. Agregar más y más "funcionalidad", opciones, etc. aún cuando el usuario promedio no la necesite o ni se dé por enterado. Si el programa se vuelve pesado, no importa, confían en que el nuevo hardware que compre el usuario compensará el problema con mayor velocidad, mayor memoria o mayor bus de datos. Por eso me sorprendo y disfruto mucho de encontrar programadores-optimizadores obsesivos aún cuando ya no parece ser necesario generar el código más breve y rápido posible.
De este lado, cada Khz que aumente a la frecuencia del CPU cuesta energía, cada ciclo malgastado consume energía, que las baterías no duren lo suficiente, o que se produzca interferencia electromagnética, un mayor cristal, un mayor costo... Tratas siempre de apegarte a un estándar, pero cuando este estorba, Assembly. Lo malo, es que aprender los opcodes de varios procesadores de distintos fabricantes es... Misión imposible.