Здравствуйте, scf, Вы писали:
scf>Просто для С++ почему-то не нашлось корпорации, которая бы родила к нему простой, но обширный рантайм.
Дело не в корпорации, а в самом языке, сильно неудобном для создания фреймворков. Ни ABI с компонентной моделью, ни рефлексии, ни даже стандартных доккомментов.
Ну и отчасти в коммьюнити. Ни в одном другом языке, к примеру, нет такой страсти к переписыванию RTL.
Здравствуйте, MTD, Вы писали:
AG>>Использовать boost в своих наработках приятно. MTD>Сделать из С++ Питон по быстродействию — классно! Замедлить компиляцию в 10 раз — отлично! Получить ошибку на 10 экранов — да, черт побери!
Насчёт Питона — буду спорить, это твой замыленный взгляд.
Скрость компиляции — да бывает и увеличивается, но не то чтобы на порядок.
Листинг для единичной ошибки — может быть достаточно большой, но это не препятствие для квалифицированного разработчика.
AG>>Зачем это всё,когда есть библиотеки? MTD>Потому, что мне не нужен зоопарк. Я хочу из коробки получить совместимые интерфейсы и гарантии качества.
Гарантии какчества...
Это в ГОССТРАХ разработчик как бы и должен обеспечить сам.
Компания Microsoft вместо него качества НЕ ОБОСПЕЧИТ — ни для C# (где очень много чего именно в ЯП), ни для C++.
AG>>К чему всё это тащить именно в ЯП? MTD>Потому, что это удобно.
Удобно что? Безальтернативность?
AG>>...так ведь у каждого — свои мозги, правда в приведенном видео ИМХО ими так и не воспользовались... MTD>Любой мастер класс на С++ — часовое обсуждение такой чухни про которую в других языках даже не думаешь. Бери любой наугад, не прогадаешь
А зачем тогда применять C++, для тех задач, которые можно закрыть — например на .NET (C#)?
Насчёт мастер классов — так это смотря от кого этот самый "мастер класс"...
AG>>Что такое интересы инженеров? MTD>Блин, народ уже даже словарь открыть чтобы узнать незнакомое слово ленится. Ну давай я для тебя его открою:
...
...налицо подмена понятий... я, будучи ведущим инженером с более чем 20-летним стажем, прекрасно понимаю смысл слова.
Ты поясни, чем для разработки software интересы инженера и финансиста принципиально отличаются?
MTD>Мне платят деньги за решение практических задач, а не академические исследования — я инженер.
Тогда может ты мастер, или слесарь, или просто наладчик?
Sorry: ничего личного, не хочу тебя обижать, уважаемый MTD.
Это мои размышления о человеке, который занимается только практикой, без исследований.
AG>>Можно посмотреть примеры именно инженерных интересов? MTD>Мне например нужны юникодные строки, классы работы с временем и датой, файловые операции, модули, корутины — это только так навскидку, что нужно и чего нет.
Ну так ведь и врачи, и финансисты, и инженеры не ПО разрабатывают — а только пишут ТЗ...
Да знаю я, о чём пишу: я сам из инженера переквалифицировался в разработчика ПО.
При этом, разработкой на C++ занимаюсь последние 15 лет.
AG>>А разве новые стандарты (от C++11 и позднее) не сделали C++ компактнее и ближе к запросам разработчиков софта? MTD>Сделали, но много чего не сделали. Я считаю, что проблема в приоритетах.
...
IMHO проблема в нашем восприятии происходящего.
По сравнению с C++ 98 — красота, лепота
По сравнению с современным C# — да, чего то и не хватает, но за счёт библиотек это можно успешно закрыть.
P.S. Возможность выполнить то же самое преобразование Фурье примерно в 100 раз быстрее на C++, нежели то же самое на C# (в управляемом коде) — с лихвой компенсирует эти небольшие недостатки.
Здравствуйте, AlexGin, Вы писали:
MTD>>Сделать из С++ Питон по быстродействию — классно! Замедлить компиляцию в 10 раз — отлично! Получить ошибку на 10 экранов — да, черт побери! AG> AG>Насчёт Питона — буду спорить, это твой замыленный взгляд.
Это измеренная скорость выполнения. Я привел цифры, тебе может быть неприятно, но это объективная реальность.
AG>Скрость компиляции — да бывает и увеличивается, но не то чтобы на порядок.
Именно на порядок. На деньги готов спорить? Немного, ради интереса, тысяч на 5, например?
AG>Листинг для единичной ошибки — может быть достаточно большой, но это не препятствие для квалифицированного разработчика.
А дуршлаг на голову надеть тоже не препятствие, просто сконцентрируйся и работай. Но зачем?
AG>Гарантии какчества... AG>Это в ГОССТРАХ разработчик как бы и должен обеспечить сам. AG>Компания Microsoft вместо него качества НЕ ОБОСПЕЧИТ — ни для C# (где очень много чего именно в ЯП), ни для C++.
Ты видимо не понимаешь смысла стандартизации. Стандарт гарантирует, что это будет выполняться так, а не иначе, на это можно закладываться. Если что-то работает не так — это не соответствует стандарту.
AG>Удобно что? Безальтернативность?
Да. Если в языке есть адекватные средства, то зачем альтернативы? Если очень хочется бери. Или ты весь такой жесткий и радикальный? Потребуй убрать стандартную бибилиотеку, да и сам язык как-то уж очень того.
MTD>>Любой мастер класс на С++ — часовое обсуждение такой чухни про которую в других языках даже не думаешь. Бери любой наугад, не прогадаешь AG> AG>А зачем тогда применять C++, для тех задач, которые можно закрыть — например на .NET (C#)?
Язык С++ — универсальный. Мне, что на С++ вообще ничего не писать, так как вот С, вот Питон, вот Ява?
AG>...налицо подмена понятий... я, будучи ведущим инженером с более чем 20-летним стажем, прекрасно понимаю смысл слова. AG>Ты поясни, чем для разработки software интересы инженера и финансиста принципиально отличаются?
Финансист не разрабатывает ПО, он ставит высокоуровневые задачи, какие там инструменты применит инженер ему все равно, а инженеру нет.
MTD>>Мне платят деньги за решение практических задач, а не академические исследования — я инженер. AG> AG>Тогда может ты мастер, или слесарь, или просто наладчик?
Я программист, такой вот мастер-слесарь от IT.
AG>Это мои размышления о человеке, который занимается только практикой, без исследований.
Ну да, не всем же монады изобретать, кто-то должен просто решить задачу.
AG>>>Можно посмотреть примеры именно инженерных интересов? MTD>>Мне например нужны юникодные строки, классы работы с временем и датой, файловые операции, модули, корутины — это только так навскидку, что нужно и чего нет. AG> AG>a) юникодные строки — std::wstring есть также
Без обид, ты не понимаешь, что такое юникод.
AG>и QString;
Этого нет в стандарте.
AG>b) классы работы с временем и датой — std::time
Скажи как мне стандартными средствами С++ от некоей даты и времени получить дату и время ровно через год?
AG>c) файловые операции — здесь завязано сильно на специфику ОС, но WinAPI нам поможет:
Нет, я хочу из коробки кроссплатформенно создать директорию. Это рокет сайнс?
AG>e) модули — вроде как уже есть (на уровне передовых средств разработки):
Причем тут студия?
AG>f) корутины — в том же Qt сигналы и слоты решат эти задачи.
Это вообще другое.
AG>Ну так ведь и врачи, и финансисты, и инженеры не ПО разрабатывают — а только пишут ТЗ... AG>Да знаю я, о чём пишу: я сам из инженера переквалифицировался в разработчика ПО.
Не понял, разработчик не разрабатывает ПО или он не инженер?
M>>Изначальная идея написания этого класса-свойства, рассказанная в видео, немного не такая как ты описал. MTD>Спасибо, интересно. Интрига останется или ты напишешь как оно на самом деле?
Написать класс строки, который хранит строчку в нижнем регистре
Немного отличается от того что ты сказал: "чувак написал класс, которым затем параметризовал шаблонный класс строки, для того чтобы используя эту конструкцию сравнивать потом строки".
Здравствуйте, Muxa, Вы писали:
M>>>Изначальная идея написания этого класса-свойства, рассказанная в видео, немного не такая как ты описал. MTD>>Спасибо, интересно. Интрига останется или ты напишешь как оно на самом деле?
M>Немного отличается от того что ты сказал: "чувак написал класс, которым затем параметризовал шаблонный класс строки, для того чтобы используя эту конструкцию сравнивать потом строки".
Ну так ты расскажешь в чем отличие? Или я должен еще раз посмотреть? А если я тупой, я же снова ничего не пойму, будь добр помоги коллеге.
MTD>Ну так ты расскажешь в чем отличие? Или я должен еще раз посмотреть? А если я тупой, я же снова ничего не пойму, будь добр помоги коллеге.
Отличия в мотивации.
Если тебе нужно сравнить два char* или std::string регистронезависимо — написал функцию, сравнил и забыл.
Если тебе нужно хранить строки в нижнем регистре — пиши класс, в случае если будет переиспользован стандартный std::string, и будет написано всего пять новых строк кода — идеально.
Здравствуйте, turbocode, Вы писали:
T>1. Qt изначально был платным поэтому он пропустил время когда мог бы стать популярным.
Неверно — всегда была и свободная версия библиотеки: https://habrahabr.ru/post/45764 T>2. В те времена еще не была популярна кроссплатформенная разработка и если брать платный продукт то лучше было взять С++Builder чем Qt
...опять твои домыслы...
Qt можно было использовать в разработках как Windows, так и Unix, причём программный интерфейс был одинаковый на обеих платформах. С первого дня предусматривались две лицензии применения Qt: коммерческая лицензия предназначалась для коммерческих разработок, и свободно распространяемая версия предназначалась для разработок Open-source проектов.
T>3. Первый раз когда смотрел на Qt это выглядело как большая свалка классов, а не как упорядоченный набор классов где каждый класс решает свою задачу;
Это характеризует только твой уровень квалификации в те годы. К самой библиотеке Qt сие не относится.
T>4. Убогая система событий, тогда как С++Builder ловлю всех нужных событий программисту давал из коробки;
Выделенное относится именно к С++Builder — зная о чем пишу, работал с ним в 2000-х довольно плотно.
T>Возможно сейчас Qt неплох но время упущено, все нашли себе решения своих задач без Qt.
Здравствуйте, AlexGin, Вы писали:
AG>Здравствуйте, turbocode, Вы писали:
T>>1. Qt изначально был платным поэтому он пропустил время когда мог бы стать популярным. AG>Неверно — всегда была и свободная версия библиотеки: AG>
AG>Qt можно было использовать в разработках как Windows, так и Unix, причём программный интерфейс был одинаковый на обеих платформах. С первого дня предусматривались две лицензии применения Qt: коммерческая лицензия предназначалась для коммерческих разработок, и свободно распространяемая версия предназначалась для разработок Open-source проектов.
Много здесь пишут OpenSource? Конечно же я имел ввиду бесплатное использование Qt для разработки коммерческих продуктов.
T>>3. Первый раз когда смотрел на Qt это выглядело как большая свалка классов, а не как упорядоченный набор классов где каждый класс решает свою задачу; AG> AG>Это характеризует только твой уровень квалификации в те годы. К самой библиотеке Qt сие не относится.
Очень даже относится, никому не хочется терять свое время на рытьё на свалке в поиске алмазов.
Тогда как VCL была очень хорошо структурирована библиотека классов и используя её редко нужно было даже лезть в справку, там действительно был самодокументированный код.
T>>4. Убогая система событий, тогда как С++Builder ловлю всех нужных событий программисту давал из коробки; AG>Выделенное относится именно к С++Builder — зная о чем пишу, работал с ним в 2000-х довольно плотно.
Можно примеры?
Здравствуйте, Слава, Вы писали:
Pzz>>А можно написать строку, которая все строки будет держать в общей хеш-таблице, по одному экземпляру на каждое конкретное значение. Тогда сравнение строк сведется к сравнению указателей, и памяти будет меньше расходоваться.
С>Вы только что изобрели string.Intern из JVM и .NET. А в сообщении Поугараем над С++ комьюнити? обсуждается примерно то же самое, из их мира.
Это не я изобрел. Это я рассказал, как строки были устроены в языке Снобол-4. Язык Снобол-4 был создан в начале 60-х.
C>Вывод — байтогрызные подходы в Go не работают.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Не. Escape analysis это наоборот, когда ты говоришь что в куче хочешь, а оно, на основе анализа, пихает в стек. А вот локальные переменные вытащить в кучу — там совсем примитивно все. Совершенно бинарная логика — если локальная переменная поиспользовалась в чем то вроде замыкания или выдачи ссылки на нее в чужой метод, то автоматично двигаем ее в кучу.
Насколько я понимаю, в Go подход такой: все переменные по дефолту в куче, если только анализ не показывает, что их можно запихнуть в стек. Т.е., с содержательной точки зрения заведение локальной переменной от явной аллокации отличается только синтаксисом.
С другой стороны, Go умеет просматривать вглубь всю цепочку вызовов, причем спокойно проходит при этом сквозь границы пакетов. Поэтому если адрес переменной передали какой-то функции/методу, а она достаточно проста, чтобы анализатор мог понять, что адрес она себе на память не оставит, то такой вызов не помешает анализатору посчитать, что переменная может быть организована на стеке.
Полностью согласен. И это было очевидно всем очень давно.
А ментейнеры языка демонстративно игнорировали проблемы языка, пока уже не стало поздно — критическая масса разработчиков ушла на другие языки, а новые смотрят на возможности языка и его инфраструктуры и видят практически ноль по сравнению с другими.
Сейчас уже который год ментейнеры бегут за уехавшим поездом в надежде запрыгнуть на него опять, крича запыхавшись — "ух мы-то, огого!".
И все эти с++11, с++14, с++17, с++20 — это черепашие бега на месте. Язык и его инфрастуктура _УЖЕ_ требуется уровня с++300, если не больше.
И такое ощущение, что специально саботируют развитие языка:
1) Ввели спецификацию исключений — прям мордой потыкать хотелось, чтобы рассказали как это всё поддерживать? Серьёзно, обойти рекурсивно все функции, чтобы собрать всё, что может вылететь?
Убрали. Ну спасибо. Оставили спецификатор что не бросает исключений. Но нафига мне его писать? Компилер, что сам не может это понять? Уверен, что к с++50 и его выкинут.
2) Долго упирались на счёт range-based for. Ну хоть ввели. А интерфейсы стандартной библиотеки остались старыми. *FACEPALM* Ну хоть к с++20 опомнились.
3) Ввели потоки. Помню сколько фрики писались, что они не нужны, тра-ля-ля... а если потоков на платформе нет, то айя-йяй! Ну нет — так не используй, пусть будет проверка — можно ли использовать их или нет на конкретной платформе. Наконец к с++17 или с++20 (не помню) добавили возможность стандартной проверки.
Сами потоки ввели фриковские (линуксоидные) — без возможности просто создания потока, когда я хочу просто подготовить его (чтобы подготовился стек и тп.) и держать, а потом в нужный момент сделать "горячий" старт. Это же с++, детка, ну как так этого нет? Нет — пилите это сами.
4) constexpr — серьёзно? Вы предлагаете мне взять на себя работу компилятора и оптимизатора? В чём вообще проблема считать при компиляции, если известны все аргументы? Думаю выкинут это к с++70
5) auto — до сих пор не понимаю как фрики пропустили эту вещь. О боже, работу компилятора переложили на компилятор. Почему изначально этого небыло — вопрос века. К с++50 доведут до ума.
4) и т.д.
И как после этого ментейнеров не назвать тупыми?
Итого:
— всё разношёрстное, нет единообразия, или хотя бы единой идеологии в стандартных средствах
— отсталость языка (о боже наконец-то вводят any, optional, variant и т.д. — и то либами, фу! Нет reflection, modules, ABI и т.д.).
— отсталость основных конструкций: нет IPC, RPC, filesystem, DateTime, Plugin framework и т.д.
— отсутствие стандартных библиотек для основных направлений разработки ПО: audio, video, images, net, text processing, embedded, GUI, science, и т.д. короче тут можно перечислять вообще всё.
*я пишу нет — это значит, что нет стандартных и удобных средств и библиотек. Так-то в плюсах всё есть. Теоретически. А практически либо переусложнённое, либо настолько раком вывернутое, что можно с уверенностью сказать — практически этого нет.
Короче полный швах по всем фронтам. Да, есть с++11+14+17, но это смешная капля от того, что надо сделать.
По хорошему надо разогнать текущий комитет, сделать ревизию текущего состояния стандарта (убрать все UB и т.п.). И наконец добавить все эти нужные вещи.
И никаких "n" лет для обсуждения какой-то хрени. Учитывая весь предыдущий опыт, а также перенимая опыт других языков — _всё_ это вполне делается максимум за 1 (_один_) год.
ПС: но как-бы то ни было, альтернативы плюсам пока что не наблюдается, печалька
Здравствуйте, MTD, Вы писали:
AG>>Насчёт Питона — буду спорить, это твой замыленный взгляд. MTD>Это измеренная скорость выполнения. Я привел цифры, тебе может быть неприятно, но это объективная реальность.
Пока, я вижу что цифры эти взяты с неба бездоказательно.
AG>>Скрость компиляции — да бывает и увеличивается, но не то чтобы на порядок. MTD>Именно на порядок. На деньги готов спорить? Немного, ради интереса, тысяч на 5, например?
Нет у меня ни таких денег, ни желания спорить на них. Две с половиной штуки баксов на спор — это очень круто глупо.
MTD>Ты видимо не понимаешь смысла стандартизации. Стандарт гарантирует, что это будет выполняться так, а не иначе, на это можно закладываться. Если что-то работает не так — это не соответствует стандарту.
Просто я из тех людей что ищут возможности, а прикрывание стандартом — это для тех, кто ищет отговорки.
Возможностей в современном C++ имеется вагон и маааленьккая тележка
Главное — желание использовать эти возможности!
AG>>Удобно что? Безальтернативность? MTD>Да. Если в языке есть адекватные средства, то зачем альтернативы? Если очень хочется бери.
Альтернативы всегда приятны — можно сделать так, а можно и иначе. Всегда есть возможность выбора.
AG>>А зачем тогда применять C++, для тех задач, которые можно закрыть — например на .NET (C#)? MTD>Язык С++ — универсальный. Мне, что на С++ вообще ничего не писать, так как вот С, вот Питон, вот Ява?
+100500
Да, язык C++ универсальный. Но это не делает его серебрянной пулей.
AG>>Ты поясни, чем для разработки software интересы инженера и финансиста принципиально отличаются? MTD>Финансист не разрабатывает ПО, он ставит высокоуровневые задачи, какие там инструменты применит инженер ему все равно, а инженеру нет.
Так ведь и инженеру — всё равно:
Ну вот не могу я представить, например инженера-тракторостроителя, который скажет:
— Карданный вал трактора МТЗ-... рассчитываем только на Питоне третьей версии!
Главное — чтобы алгоритм выполнялся, чтобы правильные формулы испльзовались для расчётов.
AG>>a) юникодные строки — std::wstring MTD>Без обид, ты не понимаешь, что такое юникод.
the STL std::wstring class, which is wchar_t-based, works fine to store UTF-16 Unicode text
AG>>b) классы работы с временем и датой — std::time MTD>Скажи как мне стандартными средствами С++ от некоей даты и времени получить дату и время ровно через год?
AG>>e) модули — вроде как уже есть (на уровне передовых средств разработки): MTD>Причем тут студия?
Осовной инструмент
AG>>f) корутины — в том же Qt сигналы и слоты решат эти задачи. MTD>Это вообще другое.
Не нравится в Qt, так есть корутины в boost https://theboostcpplibraries.com/boost.coroutine
AG>>Ну так ведь и врачи, и финансисты, и инженеры не ПО разрабатывают — а только пишут ТЗ... AG>>Да знаю я, о чём пишу: я сам из инженера переквалифицировался в разработчика ПО. MTD>Не понял, разработчик не разрабатывает ПО или он не инженер?
В данном контексте — я различаю понятия:
— Инженер программист
— Инженер (как конструктор).
Здравствуйте, Muxa, Вы писали:
M>Если тебе нужно хранить строки в нижнем регистре
Переведи в нижний регистр и храни. Что за дичь для этого класс делать? Во-первых, явное лучше неявного. Во-вторых, ты не сможешь использовать методы которые принимают std::string.
Здравствуйте, AlexGin, Вы писали:
AG>>>Зачем это всё,когда есть библиотеки? MTD>>Потому, что мне не нужен зоопарк. Я хочу из коробки получить совместимые интерфейсы и гарантии качества. AG>Гарантии какчества... AG>Это в ГОССТРАХ разработчик как бы и должен обеспечить сам. AG>Компания Microsoft вместо него качества НЕ ОБОСПЕЧИТ — ни для C# (где очень много чего именно в ЯП), ни для C++.
Ну вот поэтому для mission-critical софт на C++ и не пишут. Используют либо Си, либо прочее такое, простое и сертифицированное.
P>А ментейнеры языка демонстративно игнорировали проблемы языка, пока уже не стало поздно — критическая масса разработчиков ушла на другие языки, а новые смотрят на возможности языка и его инфраструктуры и видят практически ноль по сравнению с другими.
Они не сами ушли, а их ушли. Дорого индусов держать на С++, нужны прямые руки, а где их столько взять?
P>Сейчас уже который год ментейнеры бегут за уехавшим поездом в надежде запрыгнуть на него опять, крича запыхавшись — "ух мы-то, огого!".
Они до сих пор "огого" по части производительности и расходу памяти.
Здравствуйте, push, Вы писали:
P>По хорошему надо разогнать текущий комитет, сделать ревизию текущего состояния стандарта (убрать все UB и т.п.). И наконец добавить все эти нужные вещи.
Ну да, нужно что-то вроде ломающего обратную совместимость перехода, который в питоне сделали от 2.7 к 3.0.
Здравствуйте, turbocode, Вы писали:
T>Тогда как VCL была очень хорошо структурирована библиотека классов и используя её редко нужно было даже лезть в справку, там действительно был самодокументированный код.
Бесспорно, что такие продукты как Delphi и С++ Builder пользовальсь огромным успехом лет 15 назад, и их основа VCL также.
Sic transit gloria mundi...
T>Можно примеры?
Да, если рассматривать С++ Builder по сравению с современными продуктами —
тот же Qt (со слотами и сигналами); C# (c поддержкой делегатов) — то система отправки и обработки сообщений в билдере выглядит очень скромно.
Но для конца 90-х и начала 2000-х, это было очень даже неплохо.
Здравствуйте, AlexGin, Вы писали:
AG>Пока, я вижу что цифры эти взяты с неба бездоказательно.
Код я написал, ничто кроме веры тебе не мешает запустить его у себя.
AG>Просто я из тех людей что ищут возможности, а прикрывание стандартом — это для тех, кто ищет отговорки.
Причем тут прикрывание стандартом? Мне деньги надо зарабатывать, стандартизация в этом помогает.
AG>Альтернативы всегда приятны — можно сделать так, а можно и иначе. Всегда есть возможность выбора.
Делай, кто мешает? Или от того, что язык сделают дружелюбней кому-то хуже станет?
AG>Ну вот не могу я представить, например инженера-тракторостроителя, который скажет: AG>- Карданный вал трактора МТЗ-... рассчитываем только на Питоне третьей версии! AG>Главное — чтобы алгоритм выполнялся, чтобы правильные формулы испльзовались для расчётов.
Аналогия неверна. Инженер говорит чтобы сделать этот вал с нужной точностью и в установленные сроки мне нужны станки Х, на станках Y точность будет хуже, а на станках Z я не уложусь в сроки.
AG>>>a) юникодные строки — std::wstring MTD>>Без обид, ты не понимаешь, что такое юникод.
AG>Да, только ты понимаешь что это такое.
Ты бы вместо того чтобы обижаться взял бы и прочитал ликбез по юникоду. Без обид, я конечно мог бы делать реверансы, но сказал прямо, как к этому относится дело твое.
AG>the STL std::wstring class, which is wchar_t-based, works fine to store UTF-16 Unicode text
А на Linux внезапно wchar_t не 16, а 32 бита. А еще не каждая буква в utf-16 16 бит.
AG>>>b) классы работы с временем и датой — std::time MTD>>Скажи как мне стандартными средствами С++ от некоей даты и времени получить дату и время ровно через год?
AG> std::time_t t1 = std::time(nullptr); AG> std::time_t t2 = t1 + 3600 * 24 * 365; // 3600 seconds in one hour
И сразу первый косяк — высокосные года были проигнорированы. Забегая вперед — это не единственная сложность с календарем.
MTD>>Причем тут студия? AG>Осовной инструмент
Это у кого как.
AG>>>f) корутины — в том же Qt сигналы и слоты решат эти задачи. MTD>>Это вообще другое. AG>Не нравится в Qt
Дело не в Qt, просто сигналы и слоты не то, что нужно. Смысл корутин в том, что ты пишешь как-будто синхронный код, при этом компилятор код развернет так, что на вызове функций, которые занимают время вместо блокировки начнет выполнятся другой код, причем не обязательно в другом потоке.
MTD>>Не понял, разработчик не разрабатывает ПО или он не инженер?
AG>В данном контексте — я различаю понятия: AG>- Инженер программист AG>- Инженер (как конструктор).
Что конструктор не инженер? Или программист не инженер?
Здравствуйте, AlexGin, Вы писали:
AG>Ну вот не могу я представить, например инженера-тракторостроителя, который скажет: AG>- Карданный вал трактора МТЗ-... рассчитываем только на Питоне третьей версии!
Зато я могу представить себе фашиста с палкой на роли генерального конструктора, который скажет "Из дерева карданный вал не делать. Из конструктора лего — не делать. Вот справочник видов конструкционных сталей — из них делать".
AG>