1) El multiproceso es extremadamente difícil, y desafortunadamente la forma en que presentaste esta idea implica que estás subestimando lo difícil que es.
En este momento, suena como si simplemente estuvieras "agregando hilos" al idioma y preocupándote de cómo hacerlo correcto y tener un desempeño posterior. En particular:
si dos tareas intentan acceder a una variable al mismo tiempo, se marca como atómica y compiten por acceder.
...
Estoy de acuerdo en que las variables atómicas no resolverán todo, pero trabajar en una solución para el problema de sincronización es mi próximo objetivo.
Agregar subprocesos a Javascript sin una "solución para el problema de sincronización" sería como agregar enteros a Javascript sin una "solución para el problema de la suma". Es tan fundamental para la naturaleza del problema que, básicamente, no tiene sentido discutir si vale la pena agregar el multihilo sin una solución específica en mente, sin importar lo mal que lo deseemos.
Además, hacer que todas las variables sean atómicas es el tipo de cosa que probablemente haga que un programa de subprocesos múltiples sea
peor que su contraparte de un solo hilo, lo que hace que sea aún más importante probar el desempeño en programas más realistas y mira si estás ganando algo o no.
Tampoco me queda claro si está intentando mantener los hilos ocultos para el programador de node.js o si planea exponerlos en algún momento, creando un nuevo dialecto de Javascript para la programación de múltiples subprocesos. Ambas opciones son potencialmente interesantes, pero parece que aún no has decidido a cuál te diriges.
Por lo tanto, en este momento, le está pidiendo a los programadores que consideren cambiar de un entorno de un solo hilo a un nuevo entorno multihilo que no tiene solución para el problema de sincronización y no hay pruebas de que mejore el rendimiento en el mundo real, y aparentemente no hay un plan para resolverlo. esas cuestiones.
Probablemente por eso la gente no te toma en serio.
2) La simplicidad y robustez del bucle de evento único es una ventaja de enorme .
Los programadores de Javascript saben que el lenguaje Javascript es "seguro" frente a las condiciones de la carrera y otros errores extremadamente insidiosos que afectan a toda la programación multiproceso genuina. El hecho de que necesiten argumentos sólidos para convencerlos de que renuncien a la seguridad no los hace con una mentalidad cerrada, sino que los hace responsables.
A menos que pueda mantener esa seguridad, cualquier persona que quiera cambiar a un nodo multiproceso.js probablemente sería mejor que cambie a un lenguaje como Go que está diseñado desde cero para aplicaciones de multiproceso.
3) Javascript ya es compatible con "subprocesos en segundo plano" (WebWorkers) y programación asíncrona sin exponer directamente la gestión de subprocesos al programador.
Esas funciones ya resuelven muchos de los casos de uso comunes que afectan a los programadores de Javascript en el mundo real, sin renunciar a la seguridad del bucle de un solo evento.
¿Tiene algún caso de uso específico en mente que estas características no resuelven y que los programadores de Javascript desean una solución? Si es así, sería una buena idea presentar su node.js multiproceso en el contexto de ese caso de uso específico.
P.S. ¿Qué me convencería a yo para intentar cambiar a una implementación de node.js multiproceso?
Escriba un programa no trivial en Javascript / node.js que piense que se beneficiaría de un multihilo genuino. Realice pruebas de rendimiento en este programa de ejemplo en el nodo normal y en su nodo multiproceso. Demuéstrame que tu versión mejora en gran medida el rendimiento en tiempo de ejecución, la capacidad de respuesta y el uso de múltiples núcleos, sin introducir errores ni inestabilidad.
Una vez que hayas hecho eso, creo que verás gente mucho más interesada en esta idea.