1) Multithreading ist extrem schwierig, und leider impliziert die Art und Weise, wie Sie diese Idee bisher präsentiert haben, dass Sie die Schwierigkeit stark unterschätzen.
Im Moment klingt es so, als würden Sie der Sprache einfach "Threads hinzufügen" und sich Gedanken darüber machen, wie Sie sie später korrekt und performant machen können. Speziell:
Wenn zwei Tasks gleichzeitig versuchen, auf eine Variable zuzugreifen, wird sie als atomar markiert und sie konkurrieren um den Zugriff.
...
Ich bin damit einverstanden, dass atomare Variablen nicht alles lösen, aber das nächste Ziel ist es, an einer Lösung für das Synchronisationsproblem zu arbeiten.
Das Hinzufügen von Threads zu Javascript ohne "Lösung für das Synchronisationsproblem" entspricht dem Hinzufügen von Ganzzahlen zu Javascript ohne "Lösung für das Additionsproblem". Es ist so grundlegend für die Natur des Problems, dass es im Grunde keinen Grund gibt, darüber zu diskutieren, ob Multithreading ohne eine bestimmte Lösung hinzugefügt werden sollte, egal wie dringend wir es wollen.
Wenn Sie alle Variablen atomar machen, ist die Leistung eines Multithread-Programms wahrscheinlich schlechter als die eines Singlethread-Programms. Umso wichtiger ist es, die Leistung in realistischeren Programmen zu testen und festzustellen, ob Sie etwas gewinnen oder nicht.
Mir ist auch nicht klar, ob Sie versuchen, Threads vor dem Programmierer von node.js zu verbergen, oder ob Sie sie irgendwann verfügbar machen möchten, um effektiv einen neuen Dialekt von Javascript für Multithread-Programmierung zu erstellen. Beide Optionen sind möglicherweise interessant, aber es scheint, als hätten Sie sich noch nicht einmal entschieden, welche Sie anstreben.
Im Moment bitten Sie Programmierer, in Erwägung zu ziehen, von einer Singlethread-Umgebung zu einer brandneuen Multithread-Umgebung zu wechseln, die keine Lösung für das Synchronisationsproblem und keine Beweise für eine Verbesserung der realen Leistung bietet und anscheinend keinen Plan zur Lösung dieser Probleme hat.
Das ist wahrscheinlich der Grund, warum die Leute dich nicht ernst nehmen.
2) Die Einfachheit und Robustheit der Einzelereignisschleife ist ein großer Vorteil.
Javascript-Programmierer wissen, dass die Javascript-Sprache vor den Rennbedingungen und anderen extrem heimtückischen Fehlern, die die gesamte Multithread-Programmierung plagen, "sicher" ist. Die Tatsache, dass sie starke Argumente brauchen, um davon zu überzeugen, dass Sicherheit aufgegeben werden muss, macht sie nicht verschlossen, sondern verantwortlich.
Sofern Sie diese Sicherheit nicht irgendwie aufrechterhalten können, ist es für alle, die auf einen Multithread-Node.js umsteigen möchten, wahrscheinlich besser, auf eine Sprache wie Go umzuschalten, die von Grund auf für Multithread-Anwendungen entwickelt wurde.
3) Javascript unterstützt bereits "Hintergrundthreads" (WebWorkers) und asynchrone Programmierung, ohne das Thread-Management direkt dem Programmierer zugänglich zu machen.
Diese Funktionen lösen bereits viele der üblichen Anwendungsfälle, die JavaScript-Programmierer in der realen Welt betreffen, ohne die Sicherheit der Einzelereignisschleife aufzugeben.
Haben Sie spezielle Anwendungsfälle, für die diese Funktionen keine Lösung bieten und für die Javascript-Programmierer eine Lösung suchen? In diesem Fall ist es eine gute Idee, die Datei node.js mit mehreren Threads im Kontext dieses speziellen Anwendungsfalls zu präsentieren.
PS Was würde mich überzeugen , auf eine Multithread-Implementierung von node.js umzusteigen?
Schreiben Sie ein nicht triviales Programm in Javascript / node.js, von dem Sie glauben, dass es von echtem Multithreading profitiert. Führen Sie Leistungstests für dieses Beispielprogramm auf dem normalen Knoten und Ihrem Multithread-Knoten durch. Zeigen Sie mir, dass Ihre Version die Laufzeitleistung, die Reaktionsfähigkeit und die Verwendung mehrerer Kerne erheblich verbessert, ohne dass Fehler oder Instabilitäten auftreten.
Sobald Sie das getan haben, werden Sie wahrscheinlich Leute sehen, die sich viel mehr für diese Idee interessieren.