Здравствуйте, vl690001x, Вы писали:
V>Получается, максимум в чем ты можешь упрекнуть .net — он не достаточно крут для идеальной замены C++ вообще во всех сферах программирования. Но никто никогда и не утверждал что это так.
Вообще то как раз все евангелисты MS именно это и утверждали на протяжение всех 2000-ых... ))) И только в 2010-ых они опомнились и перестали нести этот бред.
P.S. Я концептуально согласен с основной мыслью, продвигаемой автором темки. Но считаю её запоздавшей лет на 5-7. В то время это мог бы получиться весьма любопытный спор с фанатиками .net. А уж если кто-то "осмелился" бы завести подобный разговор на похожем ресурсе в 2000-ых, то это вообще была бы бомба (правда вряд ли переубедившая фанатиков, сочащихся энтузиазмом в ожидание Singularity и т.п.). Но в 2017-ом подобное обсуждение выглядит уже несколько странно и неуместно.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Что собрали? DOM это здоровенная структура в памяти с кучей ссылок. Это worst case для GC. Поколения, безусловно, спасают, но не на 100%.
А ничего что DOM как раз полностью под GC? Из за этого в частности такие проблемы с байндингом к нему из wasm-a, приходится использовать костыли JS. И вообще ГЦ как раз и нужен там где ссылок много, смотри всякие IDE (eclipse, idea,...), компиляторы и прочее. Когда же данные в памяти линейны (л.алгебра, обработка сигналов) плюсы выносят управляемые языки без всяких шансов.
Здравствуйте, novitk, Вы писали:
НС>>Там специальный GC, заточенный под DOM. N>Там единый GC с JS.
Это не делает его незаточенным. Суть в том, что там рефкаунтинг, который, в отличие от mark&sweep, не страдает от большого количества живых ссылок. Ну а проблемы с утечками для браузера не так критичны, потому что при рефреше грохается вся куча.
RBE>Всем привет.
.NET это для стороннего бизнеса, а С++ это для себя.
Почему так? Да потому что если завтра нужно будет выкинуть .NET и заменить его на новый супермодный фреймворк .Super то от этого не должен пострадать сам MicroSoft.
С Apple и Swift точно такая же ситуация: стреляться-копаться, самый передовой язык, всем срочно забыть objective c! А на деле, сдампив iOS и macOS, следов этого аспирантского поделия в родном яблочном ПО не обнаруживается.
Здравствуйте, turbocode, Вы писали:
RBE>>Всем привет. T>.NET это для стороннего бизнеса, а С++ это для себя. T>Почему так? Да потому что если завтра нужно будет выкинуть .NET и заменить его на новый супермодный фреймворк .Super то от этого не должен пострадать сам MicroSoft.
Ошибаешься. Как раз все наоборот.
Как раз все новые продукты они на .Net под UWP c .Net Native.
А вот в самом начале было так как ты говоришь.
Лейчас народ мало использует UWP, а MS как раз его и использует в большинстве своих продуктов. это и Скайп, Офис, Паинт3Д итд
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, alex_public, Вы писали:
_>Вообще то как раз все евангелисты MS именно это и утверждали на протяжение всех 2000-ых... ))) И только в 2010-ых они опомнились и перестали нести этот бред.
Я не знаю, что там за евангелисты утверждали, но любому здравомыслящему человеку понятно, что управляемая память здорово проседает по скорости по сравнению с неуправляемой.
.NET — аналог JVM, но не С++.
Здравствуйте, TimurSPB, Вы писали:
RBE>>Почему браузер Microsoft Edge написан не под платформу .Net? TSP>Мелко. Может его вообще на JS написать надо было? Путь бы крутился под V8
Жээс придумали не в Микрософте. У этих надо было на Вижуал Бейсике написать.
Здравствуйте, IID, Вы писали:
S>>>Суть в том, что managed языки из-за сборки мусора не годятся для рендергинга html страниц. Т.е. будут заметные тормоза. S>>>Есть вещи, и рендеринг среди них, которые лучше делать на C/C++.
V>>Любой у кого есть хоть немного здравого смысла, и так это понимает.
IID>Но... Но ведь сборка мусора это быстро! Мелкие объекты выделяются умирают в сотни раз быстрее, чем выделенные дефолтным сишным аллокатором. Мы это уже много раз видели в срачах объяснениях дотнет-учоных.
Во все времена у дотнета(и любых подобных GC) начинаются с долгоживущими объектами. Короткоживущие объекты неважно большие или малые убираются очень быстро. Собственно замеры все были предоставлены и доступны по сей день в статье на этом же сайте. Сиплюсники сами устроили срач, что де не честно использовать дефолтный сишный аллокатор для сравнения.
Здравствуйте, IID, Вы писали:
IID>>>Но... Но ведь сборка мусора это быстро! Мелкие объекты выделяются умирают в сотни раз быстрее НС>>Проблема в том, что развесистый DOM нифига быстро не умирает.
IID>Да ладно! А как же сбор поколениями ? Бац, и собрали всё поколение этого DOM.
Быстро можно собрать только gen0. А DOM живёт не просто долго — он дохнет когда ты страницу закрываешь.
Здравствуйте, alex_public, Вы писали:
_>Но в 2017-ом подобное обсуждение выглядит уже несколько странно и неуместно.
Может быть ты правильно говоришь, и ниши языков уже устаканились и backend теперь будут вечно писать на Java/.NET.
С другой стороны, у всех распространенных языков (включая C++) есть большие недостатки. Несмотря на то, что единого мнения у разработчиков нет, не удивлюсь, если лет через 20 языки программирования и технологии существенно поменяются(для языков программирования, скорее всего, в сторону усреднения), даже без изменений железа.
А то, что Android написали на Java, и далеко не самые дешевые планшеты тормозят(тормозили) до уровня неюзабельности, говорит об актуальности вопроса. Тут вот в соседней ветке кто-то "вкорячил .NET в HFT", например.
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, novitk, Вы писали:
N>А ничего что DOM как раз полностью под GC? Из за этого в частности такие проблемы с байндингом к нему из wasm-a, приходится использовать костыли JS. И вообще ГЦ как раз и нужен там где ссылок много, смотри всякие IDE (eclipse, idea,...), компиляторы и прочее.
Что значит под GC? DOM еще нужно обойти.
N>Когда же данные в памяти линейны (л.алгебра, обработка сигналов) плюсы выносят управляемые языки без всяких шансов.
Никто не спорит. Там не допустим простой на сборку мусора.
Здравствуйте, vl690001x, Вы писали:
V>Или пример крутой графической игрушки, офисного пакета, CAD-системы, продвинутого графического редактора...
Интерфейсы LibreOffice и Матлаба написаны разве не на Java?
V>Все они на нативных языках. V>Получается, максимум в чем ты можешь упрекнуть .net — он не достаточно крут для идеальной замены C++ вообще во всех сферах программирования. Но никто никогда и не утверждал что это так.
Не все, на java активно пишут сложные интерфейсы.
P.S. Добавлю, что, благодаря развитию Qt, сам наблюдаю процесс переписывания многих вещей на С++ + Python. Математика на плюсах, интерфейс и логика Qt + Python.
V>Кто мешает тебе писать на C++, если хочешь? V>Лично я уже и забыл этот язык.
И что ты будешь делать когда MS объявит что .NET устаревшая технология? потому что выходит новый .Super Фреймворк который ясное дело что не совместим с .NET
Переписывать всё на .Super это большие расходы для бизнеса, оставаться на .NET не безопасно потому что с каждым годом всё труднее будет найти людей на .NET (как сейчас трудно найти коболистов)
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, vl690001x, Вы писали:
V>>Или пример крутой графической игрушки, офисного пакета, CAD-системы, продвинутого графического редактора...
N>Интерфейсы LibreOffice и Матлаба написаны разве не на Java?
Здравствуйте, RBujfEOHIY, Вы писали:
RBE>Ну так объясни причину, почему новый продукт был написан не на восхваляемом инструменте, а не критикуемом инструменте. RBE>Только не нужны мне байки, отговорки, что:
А ты аргументировать не пробовал ?
RBE>Команда браузера не знала C# (такой отличный, как заявляется) (в самой Microsoft, в 2009-2015 годах), поэтому выбрала C++ (такой плохой, как заявляется).
Кем заявляется ? Поточнее, пожалуйста.
RBE>В Edge куча унаследованного кода. Байка не прокатывает, т.к. дикую кучу кода просто выкинули (режимы документов, ActiveX, многое др.), оставшуюся переписали.
"переписали" это надо аргументировать. Trident и JScript как были, так и остались, только в профиль.
RBE>Garbage collector жутко тормозит. Байка не прокатывает, т.к. пулы памяти, специальные структуры данных и алгоритмы обеспечат нормальную работу рендеринга.
Что за пулы, структуры и алгоритмы ? трудоёмкость, сложность, расход памяти можно игнорировать ?
RBE>Хорошие идеи в корпорациях должны пройти через 5 менеджеров, и каждый будет стараться идею зарубить. Байка не прокатывает, т.к. мысль о необходимости/неизбежности делать нормальный браузер давно (десятилетие) и прочно ходила в головах менеджеров MS всех уровней. Идея написать новый браузер (или переписать IE, что значительно труднее написания почти с нуля) уже прошла бы все уровни и получила бы "зелёный свет".
Так новый и написали — Edge.
RBE>Net — универсальный (хоть и не абсолютно) инструмент, но вот именно для браузеров он и не подходит. Для всего, чего угодно, подходит, но только не для браузера. Байка не прокатывает, т.к. .Net имеет всё необходимое для работы браузера.