1)マルチスレッドは非常に困難です。残念ながら、これまでこのアイデアを提示してきた方法は、その難しさを厳しく過小評価していることを意味します。
現時点では、単に言語に「スレッドを追加」し、後でそれを修正してパフォーマンスを向上させる方法を心配しているように思えます。特に:
2つのタスクが同時に変数にアクセスしようとすると、アトミックとしてマークされ、アクセスを求めて競合します。
...
アトミック変数がすべてを解決するわけではないことに同意しますが、同期問題の解決に取り組むことが私の次の目標です。
「同期の問題の解決策」なしでJavascriptにスレッドを追加することは、「追加の問題の解決策」なしでJavascriptに整数を追加するようなものです。それは問題の性質にとって非常に基本的であるため、どれほどひどく望むとしても、特定のソリューションを念頭に置いてマルチスレッドを追加する価値があるかどうかを議論することさえ基本的に意味がありません。
さらに、すべての変数をアトミックにすることは、マルチスレッドプログラムのパフォーマンスをシングルスレッド対応のものよりも悪化させる可能性が高い種類のことです。これにより、より現実的なプログラムで実際にパフォーマンスをテストし、何かを得ているかどうかを確認することがさらに重要になります。
また、node.jsプログラマーからスレッドを非表示にしようとしているのか、ある時点でスレッドを公開して、マルチスレッドプログラミング用のJavascriptの新しい方言を効果的に作成しようとしているのかどうかもわかりません。どちらのオプションも興味深い可能性がありますが、どちらを目指しているかまだ決めていないようです。
そのため、現時点では、プログラマーに、シングルスレッド環境から、同期の問題の解決策も実際のパフォーマンスを改善する証拠もないまったく新しいマルチスレッド環境への切り替えを検討するように求めています。
それはおそらく人々があなたを真剣に受け止めない理由です。
2)シングルイベントループのシンプルさと堅牢性は、大きな利点です。
Javascriptプログラマーは、Javascript言語が、すべての真のマルチスレッドプログラミングを悩ませている競合状態やその他の非常に潜んでいるバグから「安全」であることを知っています。彼らが安全を放棄するよう説得するために彼らが強い議論を必要とするという事実は、彼らを閉ざされたものにするのではなく、彼らを責任があるものにします。
その安全性をどうにか維持できない限り、マルチスレッドのnode.jsに切り替えたいと思う人は誰でも、マルチスレッドアプリケーション用にゼロから設計されたGoのような言語に切り替える方が良いでしょう。
3)Javascriptは、スレッド管理をプログラマに直接公開することなく、「バックグラウンドスレッド」(WebWorkers)と非同期プログラミングを既にサポートしています。
これらの機能は、単一のイベントループの安全性をあきらめることなく、現実世界のJavascriptプログラマに影響を与える一般的なユースケースの多くを既に解決しています。
これらの機能では解決できないことや、Javascriptプログラマーが解決策を求めていることを念頭に置いた特定のユースケースはありますか?その場合、その特定のユースケースのコンテキストでマルチスレッドnode.jsを提示することをお勧めします。
PSとは何でしょう説得私をマルチスレッドNode.jsの実装への切り替えをしようとしますか?
Javascript / node.jsで、本物のマルチスレッド化の恩恵を受けると思われる重要なプログラムを作成します。通常のノードとマルチスレッドノードで、このサンプルプログラムのパフォーマンステストを実行します。お使いのバージョンが、バグや不安定性を導入することなく、ランタイムのパフォーマンス、応答性、および複数コアの使用を大幅に改善することを示してください。
それができたら、このアイデアにもっと多くの人が興味を持つようになると思います。