1) Багатопоточна редакція надзвичайно важка, і, на жаль, те, що ви представили цю ідею дотепер, означає, що ви сильно занижуєте, наскільки це важко.
На даний момент це здається, що ви просто "додаєте теми" до мови та переживаєте, як зробити її правильнішою та ефективнішою пізніше. Зокрема:
якщо дві задачі намагаються отримати доступ до змінної одночасно, вона стає позначеною атомною, і вони претендують на доступ.
...
Я згоден, що атомні змінні не вирішать усе, але робота над вирішенням проблеми синхронізації - моя наступна мета.
Додавання потоків до Javascript без "рішення проблеми синхронізації" було б як додавання цілих чисел до Javascript без "рішення проблеми додавання". Це настільки принципово для природи проблеми, що в принципі немає сенсу навіть обговорювати, чи варто багатопотокове читання додавати без конкретного рішення на увазі, як би сильно ми цього не хотіли.
Крім того, зробити всі змінні атомними - це та річ, яка може змусити багатопоточну програму працювати гірше, ніж її однопоточний аналог, що робить ще важливішим фактично перевірити продуктивність на більш реалістичних програмах і побачити, чи отримуєте ви щось чи ні.
Мені також не зрозуміло, чи намагаєтесь ви зберегти теми прихованими від програміста node.js, чи плануєте викрити їх у якийсь момент, ефективно створивши новий діалект Javascript для багатопотокового програмування. Обидва варіанти є потенційно цікавими, але здається, ви ще навіть не вирішили, на який саме ви прагнете.
Тож на даний момент ви просите програмістів розглянути можливість переходу з однопоточного середовища на абсолютно нове багатопотокове середовище, яке не має рішення для проблеми синхронізації та жодних доказів, що покращує продуктивність у реальному світі та, здається, не планує вирішити ці проблеми.
Напевно, тому люди не сприймають вас серйозно.
2) Простота та надійність циклу одиночних подій є величезною перевагою.
Програмісти Javascript знають, що мова Javascript "безпечна" від перегонових умов та інших надзвичайно підступних помилок, які страждають від усіх справді багатопотокових програм. Те, що їм потрібні вагомі аргументи, щоб переконати їх відмовитись від того, що безпека не робить їх замкнутими, це робить їх відповідальними.
Якщо ви не зможете якось зберегти цю безпеку, будь-кому, хто, можливо, захоче перейти на багатопотоковий node.js, мабуть, буде краще перейти на таку мову, як Go, розроблена з нуля для багатопотокових програм.
3) Javascript вже підтримує "фонові потоки" (WebWorkers) та асинхронне програмування, не піддаючи програмісту безпосередньо управління потоками.
Ці функції вже вирішують багато випадків поширеного використання, які впливають на програмістів Javascript у реальному світі, не відмовляючись від безпеки єдиного циклу подій.
Чи є у вас якісь конкретні випадки використання на увазі, що ці функції не вирішуються і що програмісти Javascript хочуть вирішити? Якщо так, то було б хорошою ідеєю представити ваш багатопотоковий node.js в контексті конкретного випадку використання.
PS Що переконало б мене спробувати перейти до багатопотокової реалізації node.js?
Напишіть нетривіальну програму в Javascript / node.js, яку, на вашу думку, виграєте від справжньої багатопотокової роботи. Зробіть тести на ефективність для цієї зразкової програми у звичайному вузлі та вашому багатопотоковому вузлі. Покажіть мені, що ваша версія значно покращує продуктивність, швидкість реагування та використання декількох ядер, не вводячи жодних помилок чи нестабільності.
Після того, як ви це зробите, я думаю, ви побачите людей набагато більше зацікавлених у цій ідеї.