Здорово! Молодцы! Жаль, что пока для западных ВКС приходится софт на Qt делать, потому что в РФ удалёнки почти нет и зп ниже плинтуса. С гораздо большей радостью делал бы софт для отечественной оборонки!
При использовании Deno разработчик больше не привязан к NPM.
И где же здесь удобство?! Если у пакета сотни зависимостей — все прописывать в import?!
В Deno можно использовать await где угодно, организуя таким образом ожидание поступления каких-нибудь результатов. Помещать await-конструкции в async-функции необязательно.
Итак, «Прасид Пай, Питер Абрахам: Реактивное программирование на С++». 323
…
В них довольно просто излагаются проблемы, возникающие при параллельном программировании, идет знакомство с простыми путями решения.
…
Бонусом идут описанные относительно простым языком нововведения C++17, C++14, C++11.
Вот за это спасибо: часто нужно простым и понятным языком.
Или например тредпул который берет раннаблы с булкой «надо ли удалять раннабл» (autoDelete), что приводит к рейсу, который описан в документации (кек). А всего-то надо передавать шаред_птр на раннабл — и булка не нужна и рейс уходит.
А можно по-русски пожалуйста и с примером в целях повышения образованности? :)
А вот мой код, который я напишу там-то (в executor-e) или тут-то (в коллбеке then() ) или еще где-то (например, в Promise.resolve()) — как он будет выполняться в уже имеющейся системе действий, которые скрыты от ваших глаз под капотом движка JS?
Ну кстати в теории же html + js по такой же схеме работают как и qml + js. И там и там язык разметки плюс клей из js.
"В теории", а на практике, когда скорости JS начинает не хватать — переносишь логику в C++ и всё начинает летать на порядок быстрее — проверял. Ну и "разметка" в QML — это нативные C++ объекты QML Items с аппаратным ускорением, так что они тоже сильно быстрее HTML.
Статья выше — это мусор или ты хочешь сказать, что JVM или HTML5 будут работать быстрее нативного кода C++/Qt? О чём здесь речь вообще?! Какие тебе цифры надо?
Что ты называешь "адеватным" сообществом? Ты хочешь сказать, что Java будет быстрее C++?! Даже комментаторы там признают, что C++ производительнее. Подтверждаю на собственном опыте: когда-то хотел сделать программу на Java но UI и расчёт ИНС тормозил на ней жутко — в 2-3 раза (хотя может надо было наплевать с прицелом на будущие перспективы и уровень зп ;) ) — сделал на C++/Qt.
С видео о HTML5 в комментариях и лайках вообще ни у кого вопросов не возникло. Чтобы спорить здесь надо быть полным неадекватом.
Ну спасибо! Поглядим подробнее на промисы. Вкупе с данной статьёй может сделать предмет понятным: https://habr.com/ru/post/479062/
Мы видим Promise в списке микрозадач. Когда Promise выполняется и вызывается метод then(), catch() или finally(), функция обратного вызова с методом добавляется в очередь микрозадач. Это означает, что коллбэк с методом не выполняется немедленно, что делает JS код асинхронным.
Т.е. Promise автоматом делает ЛЮБОЙ код асинхронным? Или без асинхронного вызова типа setTimeout() всё равно никакой асинхронности не будет?!
Т.е. функция-исполнитель ниже всегда будет асинхронной:
let promise = new Promise(function(resolve, reject) {
// функция-исполнитель (executor)
});
Или в неё нужно добавить что-то типа setTimeout():
let promise = new Promise(function(resolve, reject) {
// эта функция выполнится автоматически, при вызове new Promise
// через 1 секунду сигнализировать, что задача выполнена с результатом "done"
setTimeout(() => resolve("done"), 1000);
});
Посему для большинства приложений, где используется Qt, где нужна скорость или есть тяжёлые вычисления и нужна высокая скорость передачи данных ни Web ни Java ни вариант. Хотя Java много лучше будет конечно.
Qt очень редко нужен под Windows, чуть чаще под Mac и практически никогда под Linux.
Очень спорное утверждение: как раз чаще всего на Линуксе — это и IoT, и embedded (что чаще всего) и Qt Automotive. Про Андроид вообще молчу: количество сильно растёт. Все проекты, на которых я работал на Qt (медицина, инжернерно-технические, управление временем и т.п.) были кросс-платформенные. Вообще отказ от Qt был бы катастрофой и замена его на Web или C# в большинстве проектов просто нереальна!!! Вот например в таких: https://github.com/mavlink/qgroundcontrol/ Это бред!
К сожалению, Qt всё дальше отстает от апстрима С++.
Ну как раз апстрим взял то, что в Qt было очень давно: variant, future, thread, smart-pointers и многое другое.
На дворе 2к20й а людям всё ещё надо доказывать что smart-pointer'ы это хорошо и правильно (и нет, в Qt6 их не будет, будем как в 90х делать parent-child на raw-поинтерах).
QPointer, QAtomicPointer, QSharedPointer and QWeakPointer — не то?! См. вики: https://wiki.qt.io/Smart_Pointers. Появились гораздо раньше, чем аналоги в C++!
Здорово! Молодцы! Жаль, что пока для западных ВКС приходится софт на Qt делать, потому что в РФ удалёнки почти нет и зп ниже плинтуса. С гораздо большей радостью делал бы софт для отечественной оборонки!
И где же здесь удобство?! Если у пакета сотни зависимостей — все прописывать в
import
?!А вот это очень полезно!
Вот за это спасибо: часто нужно простым и понятным языком.
Тоже на Qt сижу с 2002-го где-то :)
Ну у WASM-а скорость уже будет сравнима с Java или C#, до C++ всё равно будет недотягивать.
булка — это что в данном случае?
Ну дык Qt туда и смотрит: https://doc.qt.io/qt-5/wasm.html
А можно по-русски пожалуйста и с примером в целях повышения образованности? :)
Но ведь не сделано, правда? :) Или вы предлагаете аналог Qt с нуля написать?! :)
Qt 5 вышел в 2012 году, когда этих всех плюшек ещё не было, а начали его делать ещё раньше. По ходу дела так серьёзно менять API они не могли. В 6-ке уже можно будет: https://habr.com/ru/post/501798/?reply_to=21613662#comment_21613378
Благодарю! Будем разбираться.
Вот насколько же красиво сделали в C# — запустил
await Task.Run( () => { // функция-исполнитель (executor) }
И чётко знаешь, что функция выполняется асинхронно в отдельном потоке без всяких там
setTimeout()
и прочего."В теории", а на практике, когда скорости JS начинает не хватать — переносишь логику в C++ и всё начинает летать на порядок быстрее — проверял. Ну и "разметка" в QML — это нативные C++ объекты QML Items с аппаратным ускорением, так что они тоже сильно быстрее HTML.
Поэтому по моему лучше форк (тем более, если KDAB готов вписаться), чем полных отказ от Qt и переход на Web, что есть полнейший бред для многих задач!
Что ты называешь "адеватным" сообществом? Ты хочешь сказать, что Java будет быстрее C++?! Даже комментаторы там признают, что C++ производительнее. Подтверждаю на собственном опыте: когда-то хотел сделать программу на Java но UI и расчёт ИНС тормозил на ней жутко — в 2-3 раза (хотя может надо было наплевать с прицелом на будущие перспективы и уровень зп ;) ) — сделал на C++/Qt.
С видео о HTML5 в комментариях и лайках вообще ни у кого вопросов не возникло. Чтобы спорить здесь надо быть полным неадекватом.
Ну спасибо! Поглядим подробнее на промисы. Вкупе с данной статьёй может сделать предмет понятным: https://habr.com/ru/post/479062/
Т.е.
Promise
автоматом делает ЛЮБОЙ код асинхронным? Или без асинхронного вызова типаsetTimeout()
всё равно никакой асинхронности не будет?!Т.е. функция-исполнитель ниже всегда будет асинхронной:
Или в неё нужно добавить что-то типа
setTimeout()
:чтобы она была асинхронной?
Который жутко тормозит в сравнении с C++/Qt/QML.
Qt vs. JavaFX: https://www.youtube.com/watch?v=Kh6K-yEp_JY
HTML5 vs Qt: https://www.youtube.com/watch?v=Z4CwVN9RRbE
Посему для большинства приложений, где используется Qt, где нужна скорость или есть тяжёлые вычисления и нужна высокая скорость передачи данных ни Web ни Java ни вариант. Хотя Java много лучше будет конечно.
Очень спорное утверждение: как раз чаще всего на Линуксе — это и IoT, и embedded (что чаще всего) и Qt Automotive. Про Андроид вообще молчу: количество сильно растёт. Все проекты, на которых я работал на Qt (медицина, инжернерно-технические, управление временем и т.п.) были кросс-платформенные. Вообще отказ от Qt был бы катастрофой и замена его на Web или C# в большинстве проектов просто нереальна!!! Вот например в таких: https://github.com/mavlink/qgroundcontrol/ Это бред!
Ну как раз апстрим взял то, что в Qt было очень давно: variant, future, thread, smart-pointers и многое другое.
QPointer
,QAtomicPointer
,QSharedPointer
andQWeakPointer
— не то?! См. вики: https://wiki.qt.io/Smart_Pointers. Появились гораздо раньше, чем аналоги в C++!Они ещё немного подумают и добавят и поля ;) и назовут это новой "революционной" возможностью C# 9 или 10.
Наконец-то, давно пора!
Ну вот и пришли к тому, что давно было в абстрактных классах C++. И стоило велосипед под названием "интерфейсы" изобретать?!