Есть ли тенденции по созданию нормальных многопоточных решений (языков программирования) для веб-разработки?
Веб-воркеры не считаются, т.к. они не являются частью языка JavaScript. Я имею в виду именно нормальные решения, заточенные конкретно под многопоточность, с разделяемой памятью и т.п. Например, сейчас сложно представить, что две функции JS в одном пространстве будут выполняться по-настоящему параллельно и при этом иметь доступ к одним и тем же переменным.
Антон Швец, а что вас смущает? У вас, к примеру, 4 ядра, из которых сайт использует одно. Вам жалко 3 ядра что ли? При том, что они у вас простаивают. А так сайт загрузится быстрее (при наличии там задач на проц).
dollar, меня смущают сайты, которые для своей работы потребуют четырех ядер. Веб и так стал не в меру тяжелым, на старом компе полинтернета не работает уже.
А стоит завезти многопоточность они станут еще тяжелее, можно же.
Дмитрий Свиридов, прошу прощения, что не уточнил это. Мне казалось, что на бекенде выбор ничем не ограничен и это очевидно, а вот на клиенте - что есть, то есть.
Разве вопрос в языках? IMHO вопрос в платформе.
Какой браузер будет это выполнять?
Сейчас вот разные табы работают в разных процессах, то есть с разделяемой памятью и т.п. И на это ушло много лет..
Мне кажется, они работают в разных процессах не от хорошей жизни. Это сделано для безопасности. А цена этому - огромные объемы памяти, т.к. вкладка занимает минимум 25-30Мб, даже пустая без контента.
Насчет языка, вы частично правы. Вопрос, конечно, не в языке, а в технологии. Но так вышло, что язык завязан на технологию. Конечно, завязан не железно, и можно менять язык. Но может быть проще сделать другой язык. Что реально проще - не знаю. В моём вопросе упомянул про ЯП лишь в скобках, а основной акцент на слове "решения".
Nikolay Petyukh, если вы про нагрузку от JS, то табы и так не виснут в случае бесконечных циклов. А если про баги браузера и как следствие падения вкладок, то это как раз про безопасность, имхо. Будь табы в одном процессе, браузер бы занимал гораздо меньше памяти.
Saboteur, решений для многопоточного бэкенда - да, но какие из них НОРМАЛЬНЫЕ (как автор уточнил в формулировке вопроса), кроме java и .net? Go/Rust? Может быть, но пилить на них большие сайты очень долго и неудобно. ORM под го вменяемых нет (Gorm кажется удобной только на первый взгляд). Да и сам Go, как язык, весьма своеобразен, да и фреймворков реально хороших тоже нет. Берешь Gin/Gonic - и тут же начинаешь писать issues в Github, потому что то одно не работает, то другое (и дело вовсе не в кривых руках, уверяю Вас, просто сыровато все).
Дмитрий Свиридов, А чем конкретно не устраивает java/Go? Да хоть на С++ бэкенд можно пилить. Веб-серверов для организации многопоточности достаточно.
Я все еще склоняюсь к тому, что топикстартер имел ввиду именно фронтенд.