Hay espacio para esto, pero no funcionaría de la manera que estás describiendo.
Como sugiere, había una suposición hecha en los primeros días de las computadoras que persiste hasta nuestros días.
Una suposición fue que, matemáticamente, una máquina universal de Turing (computadora) con 8 cintas (8 canales pci) no puede resolver matemáticamente nada más que una que tenga una sola cinta, que no era necesario hacerlas de esa manera. Un UTM con 8 cabezales de lectura (núcleos) no puede resolver matemáticamente nada más que uno que tenga un solo núcleo, por lo que no fue necesario hacerlo de esa manera. Esto persistió durante mucho tiempo en el diseño de nuestra computadora. Que abrir más ancho de banda no significaba resolver mejores problemas. Sí, cuesta más hacerlos de esta manera, pero podríamos haberlos hecho más de esta manera todo el tiempo.
Dado que los compiladores y los lenguajes de programación se centraron en que solo haya un procesador para cada proceso de forma predeterminada, no hay implementaciones de lenguaje de programación de uso común donde la concurrencia sea la predeterminada. Todos los lenguajes de programación imperativos se basan en la idea de que cada declaración tiene una secuencia de ejecución bien definida, incluso cuando realmente no importa. Por extensión, la mayoría de los programadores también piensan de esta manera.
Hay un par donde la concurrencia a menudo se sugiere como una optimización. Lenguajes más notablemente funcionales. En los lenguajes funcionales, declara qué funciones producen dada una entrada y la deja al compilador para sacar conclusiones sobre lo que puede suceder simultáneamente. Sin embargo, ningún compilador ha sido optimizado para abordar fácilmente los procesadores de 1024 núcleos porque no existen, porque son demasiado caros.
Otro problema inicial que parece haber persistido hasta hoy fue el problema de los filósofos de la comida. La forma en que se formuló el problema original, solo tenía una solución; Usted numera los recursos y los filósofos necesitan primero tomar el recurso con el número más bajo. Esto se convirtió en nuestra base para los mecanismos de bloqueo modernos que gobiernan la forma en que los procesadores se comunican entre sí y reservan el uso de recursos dentro de una computadora, como un disco duro. Sin embargo, más recientemente, eliminamos la restricción que dice que los filósofos (núcleos) no podían hablar entre ellos. En cambio, si se hablaran entre sí con semántica de mensajes, podría formular una forma de hablar para que, incluso si las personas hablaran una encima de la otra, todos estarían de acuerdo con quién obtiene los recursos.
Sospecho que en el futuro cercano, con todos trabajando en estos problemas, los límites que estamos encontrando actualmente; límites físicos de cuán rápido pueden viajar los electrones en un tiempo dado; tendrá suficientes soluciones y los lenguajes de programación se pondrán al día de manera similar.
Sin embargo, parece ser bastante difícil lograr que nuevos programadores se interesen en Haskell y Erlang a través de JavaScript. Entonces, probablemente pasará un tiempo antes de que veamos un cambio significativo en el lado humano de la informática.