Здравствуйте, Shtole, Вы писали:
S>Как стало понятно, что вы его даже не знали, так сразу поскучнели. Зато весело было кидаться какашками в MFC-динозавров, правда?
UI приложения на C++ это почти всегда скучно и нелепо
Re[12]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрит
Здравствуйте, kaa.python, Вы писали:
Ф>>А в какой OS нет sleep()? KP>В POSIX нет функции ::Sleep() в глобальном пространстве имён, есть функция ::sleep(). А вот в как раз Windows API есть ::Sleep(), но нет ::sleep().
Не стыдно?
Всё сказанное выше — личное мнение, если не указано обратное.
Re[12]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите?
Здравствуйте, kaa.python, Вы писали:
S>>Как стало понятно, что вы его даже не знали, так сразу поскучнели. Зато весело было кидаться какашками в MFC-динозавров, правда? KP>UI приложения на C++ это почти всегда скучно и нелепо
Do you want to develop an app?
Re[13]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрит
Здравствуйте, Shmj, Вы писали:
S>В FAQ есть статья, которую я прочитал много лет назад и сделал выбор в пользу .Net. Все дерзко и вроде бы разумно: https://rsdn.org/forum/info/FAQ.philosophy.dotnetvscpp S>Вроде все разумно, но дошло до того, что сфера применения .Net — это написание бэкенда с выводом на WebAPI. Ну и собственно все.
Ну так большая часть работы — это разработка вебсервисов и веб гуя. Сколько в прцентном соотношении вакансий на разработку веба и софта, работающего с железом и обработкой сигналов, 80% на 20% или 90% на 10%?
Еще .NET используется для разработки десктопа под винду.
S>А злополучный C++ живее всех живых и помирать не собирается.
Все будет нормально с C++ у него своя ниша. Единственное, что Rust грозится потестнить C++, но этот процесс будет ооочень медленным и не факт, что Rust потеснит C++.
Re[13]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите
Здравствуйте, Shtole, Вы писали:
N>>И что тот же дотнет реализован на C++? S>Мне стыдно за нас обоих, что разговор дошёл до такого.
Красивый приём, запомню. Мне не стыдно, но времени чуть жалко. Обсуждение того, что "верёвка — вервие простое, вереви́стое", возможно с теми, кто понимает, зачем такие споры нужны.
Данный тред закрываю для себя, и больше лично с вами иначе как в 200% технические споры о конкретных деталях не вступаю.
The God is real, unless declared integer.
Re[14]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите
Здравствуйте, netch80, Вы писали:
N>>>И что тот же дотнет реализован на C++? S>>Мне стыдно за нас обоих, что разговор дошёл до такого.
N>Красивый приём, запомню.
Какой ещё приём? То есть, мне, конечно, не жалко, запоминайте и пользуйтесь, но реально ведь это же жесть: спрашивать человека, который написал, что выбрал плюсы для одного из проектов, понимает ли он, что иногда есть необходимость использовать плюсы.
Do you want to develop an app?
Re[3]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите?
Здравствуйте, kaa.python, Вы писали:
KP>Это ты про KAV?
Да.
KP>Ну вот кстати там взять .NET для самого движка было бы крайне проблематично даже если бы дело шло не о "что в них вбухано море денег".
Там проблема в дырявости дотнета с точки зрения безопасности и в легкости реверсинжерега. Но стоимость разработки на плюсах намного выше. Тут вот добавили в продукт фичу "Производительность" (по факту, набор мелких фич по очистке компьютера) так вот сервисы писала куча людей, а гуй один. Хотя кода в гуе было отношено больше.
Вот думали попробовать Раст. Но что-то он тоже выглядит как-то не очень.
KP>Сейчас очень сложно найти железо на котором нельзя хотя бы C++11 использовать. Ты даже какой-нибудь контроллер для поворотника вполне можешь на C++11 писать в наши дни, хотя чаще на C++14/17. Время когда Си был лучшим выбором для таких вещей уже прошло.
Железо такое найти элементарно. Каждый первый роутер. Вот EKA нафигачили кода на C++17 и применить его в коде прошивки роутера (под который был заказ для фирмы) не удалось. Орел из отдела мобильников (которому это дело поручили) в итоге выбрал С (без плюсов). Писали обработчики ошибок на goto и макросах.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите?
Статья вообще не про языки, а про менталитет и темперамент. "Вы хотите ковыряться в смарт поинтерах, неопределенных поведениях, CRTP, SFINAE и прочих приколах, или вы хотите чтобы сел, сделал и работает"? Не кидаю камни ни в чью сторону — бабки платят в обоих случаях, а удовлетворение все получают от разных вещей в работе.
Re[4]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите?
Здравствуйте, VladD2, Вы писали:
VD>Там проблема в дырявости дотнета с точки зрения безопасности и в легкости реверсинжерега. Но стоимость разработки на плюсах намного выше. Тут вот добавили в продукт фичу "Производительность" (по факту, набор мелких фич по очистке компьютера) так вот сервисы писала куча людей, а гуй один. Хотя кода в гуе было отношено больше.
В то е время такая ситуация с затратами времени может означать что угодно, начиная от серьёзных различий в уровне исполнителей, заканчивая тем что для GUI не нужно никаких исследований и экспериментов, а для логике нужно.
VD>Вот думали попробовать Раст. Но что-то он тоже выглядит как-то не очень.
Да, такая была шикарная идея в самом начале и до такого непотребства её довели
VD>Железо такое найти элементарно. Каждый первый роутер. Вот EKA нафигачили кода на C++17 и применить его в коде прошивки роутера (под который был заказ для фирмы) не удалось. Орел из отдела мобильников (которому это дело поручили) в итоге выбрал С (без плюсов). Писали обработчики ошибок на goto и макросах.
А вот это прям удивительно. Это что-то невероятно древнее или какой-то совсем экзотический процессор? Там же всегда живёт какой-нибудь Linux для которого так же всегда можно организовать кросс-компиляцию относительно свежим GCC. Может вам орлу в помощь хорошего такаого спеца по встроенным системам надо? Я вот на наших смотрю, они фактически что угодно под что угодно могут кросс-компилировать
Re[5]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите?
Здравствуйте, kaa.python, Вы писали:
VD>>Железо такое найти элементарно. Каждый первый роутер. Вот EKA нафигачили кода на C++17 и применить его в коде прошивки роутера (под который был заказ для фирмы) не удалось. Орел из отдела мобильников (которому это дело поручили) в итоге выбрал С (без плюсов). Писали обработчики ошибок на goto и макросах.
KP>А вот это прям удивительно. Это что-то невероятно древнее или какой-то совсем экзотический процессор? Там же всегда живёт какой-нибудь Linux для которого так же всегда можно организовать кросс-компиляцию относительно свежим GCC. Может вам орлу в помощь хорошего такаого спеца по встроенным системам надо? Я вот на наших смотрю, они фактически что угодно под что угодно могут кросс-компилировать
Тоже сильно удивился, прочитав что C++ не доступен на каком-то железе. Сейчас в каждую кофеварку Линукс ставят, а ему MMU нужен. Славные времена 8051 давно закончились, сегодня хоть GCC-10 бери и концептами кросскомпилируй: https://toolchains.bootlin.com/toolchains.html
Re[6]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрите?
Здравствуйте, PM, Вы писали:
PM>Тоже сильно удивился, прочитав что C++ не доступен на каком-то железе. Сейчас в каждую кофеварку Линукс ставят, а ему MMU нужен.
Linux без MMU бывает, хотя отрывать немного гиморно (и с каждой новой версией всё больше гимора).
PM> Славные времена 8051 давно закончились, сегодня хоть GCC-10 бери и концептами кросскомпилируй: https://toolchains.bootlin.com/toolchains.html
Тут да. Скорее всего привязка на уровне "на этот процессор у нас есть только очень древний компилятор и переносить на новый никто не собирается".
А исключения к вашему списку найти банально. Например, была такая Sipura, делала FXS порты и потом SIP телефоны с кнопками. Потом Cisco в лице Linksys купила их и перебрэндила изделия (SPA2000 -> PAP2 и всё такое). Так вот, в них очень долго был процессор на базе MIPS-X. Я уверен, что большинство тех, кто делал разработки на MIPS, про MIPS-X и не слышал, только про MIPS-R.
Системы команд у них разные. Публичные GCC, LLVM никогда MIPS-X не умели. Какой компилятор там использовался, я не знаю, но вряд ли он умеет что-то выше C++98 (а может вообще C++ не умеет). Ну вот и вписывайся в существующее...
The God is real, unless declared integer.
Re[12]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрит
Здравствуйте, kaa.python, Вы писали:
Ф>>А в какой OS нет sleep()?
KP>В POSIX нет функции ::Sleep() в глобальном пространстве имён, есть функция ::sleep(). А вот в как раз Windows API есть ::Sleep(), но нет ::sleep().
Ну мне было очевидно, что Shtole имел в виду именно идею функции остановить текущую нитку на заданное время, а не конкретную реализацию (будет это sleep, usleep, nanosleep, Sleep, std::this_thread::sleep_for — неважно). Точно так же как и у тебя идея, что эта функция безусловно вредна и использование её — очень плохой знак.
Первое уже обсудили — непонятно, что у него за ситуация и почему её надо решать так — но тут внятного ответа не добиться, будет десяток страниц философии на левые темы. Про второе вопрос более интересный. Я не вижу в sleep ничего плохого как минимум в тестах. Или вот на прошлой работе был один демон, которому это помогало не дёргаться на неэффективные ресканы — а скорость реакции в таком виде безусловно устраивала.
В общем, признаков абсолютного зла не видно.
The God is real, unless declared integer.
Re[13]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрит
Здравствуйте, netch80, Вы писали:
N>Ну мне было очевидно, что Shtole имел в виду именно идею функции остановить текущую нитку на заданное время, а не конкретную реализацию (будет это sleep, usleep, nanosleep, Sleep, std::this_thread::sleep_for — неважно).
Именно так. Я ещё хотел уточнить, что тупо не помню, как именно мне был задан этот вопрос, а оформил функцию под винапишную на автомате, но потом решил, что если начались такие придирки, беседа давно уже съехала с конструктивной рельсы
>Первое уже обсудили — непонятно, что у него за ситуация и почему её надо решать так
Это я пропустил как-то. С тем плюсовиком, что ли, ситуация? Это вам непонятно? Ну не знал он, как на джаваскрипте программировать. Не научили бедолагу. И сам он за неделю не научился.
Что касается «не добиться», некрасиво себя ведёте. На вопросы по поводу биографии я ответил в том объёме, в котором посчитал нужным. Мог бы и этого не писать, к делу отношения не имело.
Здравствуйте, netch80, Вы писали:
N>Первое уже обсудили — непонятно, что у него за ситуация и почему её надо решать так — но тут внятного ответа не добиться, будет десяток страниц философии на левые темы. Про второе вопрос более интересный. Я не вижу в sleep ничего плохого как минимум в тестах. Или вот на прошлой работе был один демон, которому это помогало не дёргаться на неэффективные ресканы — а скорость реакции в таком виде безусловно устраивала.
С тестами всё не так просто, как мне кажется. С одной стороны я согласен, иногда просто нет другой опции кроме как добавить в тест sleep, ну или нет достаточно не дорого способа это сделать. С другой стороны sleep в тестах делает их либо медленными, но стабильными, когда ты добавляешь sleep с очень большим (секунды) значением, либо быстрыми но не стабильными, когда значение в sleep разумно не велико. Тут я исхожу из предположения что тесты гоняются как часть CI и сложно предугадать что будет запущенно в параллель с тестами, и как следствие скорость выполнения теста не константная.
Re[14]: .NET vs C++ - ответ Роме 18 лет спустя - как смотрит
Здравствуйте, kaa.python, Вы писали:
KP>С тестами всё не так просто, как мне кажется. С одной стороны я согласен, иногда просто нет другой опции кроме как добавить в тест sleep, ну или нет достаточно не дорого способа это сделать. С другой стороны sleep в тестах делает их либо медленными, но стабильными, когда ты добавляешь sleep с очень большим (секунды) значением, либо быстрыми но не стабильными, когда значение в sleep разумно не велико. Тут я исхожу из предположения что тесты гоняются как часть CI и сложно предугадать что будет запущенно в параллель с тестами, и как следствие скорость выполнения теста не константная.
Да, это постоянная проблема. В одном комплекте тестов мы делали поэтому контроль LA — если выше порога, тесты притормаживаются. И то не всегда помогало. Висел с десяток тикетов на конкретные тесты — заменить задержку времени на ожидание конкретного события.
Но чтобы стартовать чтобы хоть как-то проверяло — метод достаточно эффективный.