Это легаси. Дотнет появился в 2001 году. Естественно тогда на C++ писать было модно. Потом он развивался и в итоге допиленный вышел в опенсорс, под названием .Net Core
Технически, они могут это все переписать на некоторое unsafe-подмножество С#, но слишком много возни.
Да нет у него никакой особой мифической производительности. В реальной жизни.
Ага. Написал тупо два текстовых редактора. На QT и на шарпе. Открыл файл размером 1Мб. Редактор на шарпе отожрал гиг памяти. Гиг, Карл! На кутях съел 200 Мб. На этом вопрос сравнительной производительности я считаю закрытым.
И да, в таком состоянии в шарповом редакторе скроллинг тормозит, есличо.
Напиши прямо сейчас два текстовых редактора, проверим. Один на WPF(или Windows Forms лучше, чтобы была такая же урезанная функциональность как у культей), и другой на культях. Сравним. И производительность и прочее.
Если ты там собрался строку всю подгружать в текстовый контрол, результат очевиден - обосрешься и там и там.
Таки да, собираюсь. И открою страшную тайну: Qt совершенно спокойно эту строку проглатывают, отжирая лишь 200 Мб памяти. А вот ваш хвалёный шарп таки ж обсирается.
Я не понял, а notepad.exe то почему повисает? Написан вообще на чистейшем C++, без всяких культей.
C# 200-метровую строку спокойно сожрет. Виджет тоже - если на нем включить виртуальный скроллинг. Плюс не надо забывать, WPF на уровень качественнее все рисует, там и аппаратный рендеринг шрифтов в том числе. Культи же - ну культи одним словом. Да еще и писать на них неудобно.
Массовые квантовые компы максимум на что потянут – на конкуренцию GPU в сфере ускорения некоторых вычислений, типа квантовой химии или криптографии. В остальном они ни на что не пригодны в среднесрочной перспективе.
Бред собачий. C/C++ потому и вечны, что дают на выходе самый эффективный код. Тут разве что byko3y может поспорить, он тут мощно и неоднократно задвигал про непригодность модели памяти C для современных параллельных систем; но есть у меня подозрение, что как языки общего назначения C/C++ всё равно вечны.
Да. Вот только сейчас все гигагерцы прожирают весь заряд батареи на весь этот супербыстрый JS/Html.
У некоторых граждан образовались ложные воспоминания, что вот сейчас-то веб тормозное говно, НО ВОТ РАНЬШЕ.. РАНЬШЕ-ТО ВСЕ ЛЕТАЛО! Вы можете ввести в заблуждение людей 2000 года рождения, но я-то помню насколько «быстрым» этот веб был. Зайти на сайт с парой сотней комментов и получить слайд-шоу и лаги в интерфейсе (!) браузера – было обычным делом. Сейчас я такого даже представить не могу. Даже на очень слабых машинах. Так что не надо выдумывать то, чего никогда не было. Сейчас веб летает и работает быстрее, чем когда либо в своей истории. Даже не смотря на всю тяжесть картинок, мегабайт js и кривых веб-макак.
Раньше, ну лет десять назад.
А 10-12 лет назад веб был САМЫМ тормозным в своей истории.
На питоне там всё, научный расчетчик хренов. Накрайняк на фортране, если что из легаси. Ну или хадуп из семи понятно чего, когда что-то сильно крутое и распределенное.
Ты бы не позорился, если вообще не понимаешь в теме, испанский стыд какой-то
Давай не будем приписывать свои фантазии. Дейкстра говорил то, что он говорил, а к твоей выдумке он отношения не имеет. Изначальная цитата была про Basic, и в то время Basic был очень плохим ЯП, потому она имела под собой основания. Но с тех пор Basic поменялся и на самом деле он довольно слабо похож на своего предка.
Я убежден, что на C++ можно хорошо писать код в сишном стиле, особенно на последних версиях стандарта. Потому оснований говорить что-то про brain damage я не вижу. разве что ты собрался тогда уже говорить «C causes brain damage».
Бред собачий. C/C++ потому и вечны, что дают на выходе самый эффективный код. Тут разве что @byko3y может поспорить, он тут мощно и неоднократно задвигал про непригодность модели памяти C для современных параллельных систем; но есть у меня подозрение, что как языки общего назначения C/C++ всё равно вечны
Модель алгоритмов Си — это почти модель алгоритмов ассемблера, с минимальной абстракцией поверх. А аппаратная модель эта — машина Тьюринга. И да, эта модель никак не натягивается на параллельные вычисления, потому что машина Тьюринга изначально однозадачна — уже двухзадачную систему нельзя реализовать на машине Тюринга.
И зачем они это делают до сих пор, не считая поддержки легаси?
Например, для того что-бы запускать свой софт на микроконтроллерах. Или на дистрах типа OpenWRT на роутерах.
Более современные языки под такие платформы, конечно, давно уже есть. Но это всё на уровне поделок. Для решения серьезных задач в сильно ограниченных по ресурсам окружениям - альтернатив C/C++/ASM пока ещё нет.
Но сильно умнее мало что придумали - вон только каналы или системы актеров как в Erlang или Scala/Akka. По сути share-nothing в разных формах.
Ну еще на видеокартах супер широкий SIMD, где ветки if-statements выполняются по очереди, сначала одна if ветка во всех потоках, потом else ветка во остальных потоках, потому вообще только одна инструкция разрешена at a time во всей системе
Но сильно умнее мало что придумали - вон только каналы или системы актеров как в Erlang или Scala/Akka. По сути share-nothing в разных формах
Представь себе, современный центральный процессор реализован не на машине Тьюринга. База у полупроводниковых приборов совершенно иная, очень далекая от машины Тьюринга — это главным образом независимые «процессоры» с собственным недискретным состоянием. Именно это и есть наиболее перспективный путь для разработки ПО.
Ну еще на видеокартах супер широкий SIMD, где ветки if-statements выполняются по очереди, сначала одна if ветка во всех потоках, потом else ветка во остальных потоках, потому вообще только одна инструкция разрешена at a time во всей системе
Там интерпретатор инструкций один на мультипроцессор. В одном мультипроцессоре 16-32 процессоров — на всех них выполняется одна инструкция. Но мультипроцессоров много и у каждого может быть свой алгоритм.
Сраный электрон внутри как раз С++. Как и много всего остального внутри так или иначе либо С либо С++.
Вот завтра вам закажут очередную корпоративную ERP для какого-нибудь крупного ретейла, допустим с нуля сделать(что вряд ли конечно там легаси будет аж с 80х обязательно) - какой язык выберете? Правильный ответ - конечно выберете С++ даже если вы его не выберете. То есть выбирая Яву, C#, Электрон или что угодно ещё вы всё равно будете писать на С++ и местами на С довольно много. И однажды вам покажется, а не логично бы всё писать на С++ и взять какой-нибудь Qt.
Только для мелких проектов есть выбор. Только для не шибко требовательных к отклику проектов есть выбор. Тут конечно можно вспомнить про десяток языков, которые будут также быстры, но попробуйте набрать комманду разработчиков, скажем из 100 человек, для написания среднего размера проекта на скажем Ocaml или лисп(любой вариаци). Посчитайте сколько займёт времени нанять и сколько вы будете платить ещё.
В реальной жизни на С++ легко писать более-менее производительный код. На лиспах вроде sbcl тоже. Но есть много но: найти разработчиков под лисп за адекватную целу и чтобы они сами ещё были адекватные - то ещё дело, поддержка платформ у лиспов тоже так себе и тд и тп.
Это как с Linux, вроде бы можно было бы взять любое ядро, любое окружение для нового устройства, но большинство бирают Linux, потому что меньше всего геморойя и вполне себе хороший результат.
Думаю примерно никогда. Как Си хорошо сидит в ембедеде и системных вещах, так и Си++ сел в геймдев. Думаю в обозримом будущем их никто оттуда не выпихнет.