1) Il multithreading è estremamente difficile, e sfortunatamente il modo in cui hai presentato questa idea finora implica che stai sottovalutando gravemente quanto sia dura.
Al momento, sembra che tu stia semplicemente "aggiungendo discussioni" al linguaggio e ti preoccupi di come renderlo corretto e performante in seguito. In particolare:
se due attività tentano di accedere contemporaneamente a una variabile, questa viene contrassegnata come atomica e si contendono l'accesso.
...
Sono d'accordo che le variabili atomiche non risolveranno tutto, ma lavorare su una soluzione per il problema di sincronizzazione è il mio prossimo obiettivo.
Aggiungere thread a Javascript senza una "soluzione per il problema di sincronizzazione" sarebbe come aggiungere numeri interi a Javascript senza una "soluzione per il problema dell'aggiunta". È così fondamentale per la natura del problema che praticamente non ha nemmeno senso discutere se valga la pena aggiungere il multithreading senza una soluzione specifica in mente, non importa quanto potremmo volerlo.
Inoltre, rendere atomiche tutte le variabili è il genere di cose che probabilmente farà sì che un programma multithread abbia prestazioni peggiori rispetto alla sua controparte single-threaded, il che rende ancora più importante testare effettivamente le prestazioni su programmi più realistici e vedere se stai guadagnando qualcosa o meno.
Inoltre, non mi è chiaro se stai cercando di tenere nascosti i thread dal programmatore node.js o se hai intenzione di esporli ad un certo punto, creando effettivamente un nuovo dialetto di Javascript per la programmazione multithread. Entrambe le opzioni sono potenzialmente interessanti, ma sembra che tu non abbia ancora deciso quale stai puntando.
Quindi, al momento, stai chiedendo ai programmatori di prendere in considerazione il passaggio da un ambiente a thread singolo a un ambiente multithread nuovo di zecca che non ha soluzione per il problema di sincronizzazione e nessuna prova che migliora le prestazioni del mondo reale e apparentemente non ha alcun piano per risolvere tali problemi.
Questo è probabilmente il motivo per cui le persone non ti prendono sul serio.
2) La semplicità e la robustezza del singolo loop di eventi è un enorme vantaggio.
I programmatori Javascript sanno che il linguaggio Javascript è "sicuro" dalle condizioni di gara e da altri bug estremamente insidiosi che affliggono tutta la programmazione realmente multithread. Il fatto che abbiano bisogno di argomenti forti per convincerli a rinunciare al fatto che la sicurezza non li rende di mentalità chiusa, li rende responsabili.
A meno che tu non riesca in qualche modo a mantenere quella sicurezza, chiunque voglia passare a un nodo multithread.js probabilmente starebbe meglio passare a una lingua come Go progettata da zero per le applicazioni multithread.
3) Javascript supporta già i "thread in background" (WebWorkers) e la programmazione asincrona senza esporre direttamente la gestione dei thread al programmatore.
Queste funzionalità risolvono già molti dei casi d'uso comuni che interessano i programmatori Javascript nel mondo reale, senza rinunciare alla sicurezza del singolo loop di eventi.
Hai in mente casi d'uso specifici che queste funzionalità non risolvono e per cui i programmatori Javascript vogliono una soluzione? In tal caso, sarebbe una buona idea presentare il tuo node.js multithread nel contesto di quel caso d'uso specifico.
PS Cosa mi convincerebbe a provare a passare a un'implementazione node.js multithread?
Scrivi un programma non banale in Javascript / node.js che pensi possa trarre vantaggio da un vero multithreading. Eseguire test delle prestazioni su questo programma di esempio nel nodo normale e nel nodo multithread. Dimostrami che la tua versione migliora in modo significativo le prestazioni di runtime, la reattività e l'utilizzo di più core, senza introdurre alcun bug o instabilità.
Una volta che lo hai fatto, penso che vedrai le persone molto più interessate a questa idea.