Здравствуйте, 4058, Вы писали:
m2l>>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.
4>И явно не лучше. Весь низкий уровень там всё-равно на ASM и C (который не ++). Рантайм и прочий сопутствующий обвес на расширенном (под эту задачу) C# — Sing.
Если уйти немного в оффтоп, я бы посмотрел на это с другой стороны. Всеобъемлющее управление ресурсами, которое требуется от ОС, предполагает тесной работы с оборудованием. И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку. Поэтому простые С и Асм, в которых довольно очевиден эффект от кода, можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО. И, сугубо ИМХО, выглядят довольно разумным выбором.
Здравствуйте, m2l, Вы писали:
m2l>>>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.
4>>И явно не лучше. Весь низкий уровень там всё-равно на ASM и C (который не ++). Рантайм и прочий сопутствующий обвес на расширенном (под эту задачу) C# — Sing.
m2l>Если уйти немного в оффтоп, я бы посмотрел на это с другой стороны. Всеобъемлющее управление ресурсами, которое требуется от ОС, предполагает тесной работы с оборудованием. И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку. Поэтому простые С и Асм, в которых довольно очевиден эффект от кода, можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО. И, сугубо ИМХО, выглядят довольно разумным выбором.
И C++ и тут выглядит разумным выбором. Он умеет всё то же, что и простая сишечка, и вдобавок — ещё кучу всего, что сишечка не умеет. Ну и плюсовый оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах, чем сишечка, у которой всё через жопуvoid*
Здравствуйте, m2l, Вы писали:
m2l>Если оперировать к исходному тезису про zero-runtime, то, что компилятор нагенерировал лапшу непонятного и непредсказуемого кода для какой-то языковой конструкции — эти инструкции, в том числе, и есть лишний run-time.
Да нифига не "непонятный и непредсказуемый" и точно не "лишний".
Это и есть та самая функциональность new/delete — вызов конструкторов/деструкторов, если они есть конечно.
m2l>Но предполагается, что из-за простоты (бедности) синтаксиса такого "лишнего" кода в С будет меньше.
Там нет ничего лишнего.
m2l>По идеи, что бы нормально пользоваться интринсиками (на уровне больше копипасты со стек оверфлов) нужно чуть-чуть знать асм. Поэтому чистый .asm будет, вставки или интринсики — я бы сильно одно от другого не отделял.
И таки интринсики бывают сильно лучше сырого асма. Потому как компилятор дальше сам и регистры разрулит и даже попадалось что некоторые SSE интринсики не 1:1 в асм генерятся а более оптимально под заданную платформу.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Kernan, Вы писали:
CC>>Ничо что "рантайм" может быть написан прямо в твоём же коде? K>Написание такого кода это всегда редкостный гемор.
Да ну. Там довольно немного надо для подавляющего большинства вещей.
K>Надо ещё правильно размещать секции кода, например, часть инициализации в начале.
Это ж #pragma section разруливается
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, m2l, Вы писали:
m2l>Ну да можно. Так ведь можно вообще писать на той части языка, что является общей между С и С++ — собираешь потом как С код, вот и всё.
Нет, от С++ мне надо его фичи, которых нет в С, те же RAII и шаблоны. А также классы, все виды наследований и т.п.
Ничего из этого не требует аллокатор.
CC>>Ващета элементарнейше делается наколенный аллокатор который не дёргает из OC вообще ничего. m2l>Ну да. Всегда можно заменить рантайм на свой, который делает как тебе надо. И что?
И то, что твоя фиксация на аллокаторе не имеет отношения к С++
m2l>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.
Схренали это мы вдруг "убедились" если оно не взлетело?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, m2l, Вы писали:
m2l>И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку.
Ты просто несколько витиевато сказал пронафталиненную истину о том, что тупых к системной разработке подпускать не стоит.
m2l> Поэтому простые С и Асм, в которых довольно очевиден эффект от кода
И которые куда сильнее требуют аккуратности в написании кода просто потому что лишены любых защитных механизмов и на 110% полагаются что пишущий отслеживает все возможные ветки исполнения кода.
m2l> можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО.
Категорически нет.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Marty, Вы писали:
m2l>>Если уйти немного в оффтоп, я бы посмотрел на это с другой стороны. Всеобъемлющее управление ресурсами, которое требуется от ОС, предполагает тесной работы с оборудованием. И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку. Поэтому простые С и Асм, в которых довольно очевиден эффект от кода, можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО. И, сугубо ИМХО, выглядят довольно разумным выбором.
M>И C++ и тут выглядит разумным выбором. Он умеет всё то же, что и простая сишечка, и вдобавок — ещё кучу всего, что сишечка не умеет. Ну и плюсовый оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах, чем сишечка, у которой всё через жопуvoid*
И Python/Java/C#/Rust/Haskel/JavaScript и тут выглядит разумным выбором. Они умеет всё то же, что и простая сишечка++, и вдобавок — ещё кучу всего, что сишечка++ не умеет. Ну и * оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах процессоров (JIT компиляция наше всё), чем сишечка++, у которой всё через жопуvoid* и vtable
Здравствуйте, CreatorCray, Вы писали:
m2l>>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С. CC>Схренали это мы вдруг "убедились" если оно не взлетело?
Ну ОС на С++ тоже как-бы не взлетели... Интересно почему
Здравствуйте, m2l, Вы писали:
m2l>Они умеет всё то же, что и простая сишечка++, и вдобавок — ещё кучу всего, что сишечка++ не умеет.
Дык нет и нет
m2l>Ну и * оптимизатор — он гораздо лучше может оптимизировать
Может быть и может, но оптимизирует ли?
m2l>зная информацию о типах процессоров (JIT компиляция наше всё)
Которая до сих пор сосёт.
m2l>чем сишечка++, у которой всё через жопуvoid* и vtable
Ты банально не умеешь в С++
Это уже очевидно.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, m2l, Вы писали:
m2l>Ну ОС на С++ тоже как-бы не взлетели... Интересно почему
Это какие например?
В кернеле современных ОС, кроме разишо луникса, где главный пЫнгвин упёрся рогом по своим религиозным причинам, есть дофига С++ кода.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, m2l, Вы писали:
m2l>И Python/Java/C#/Rust/Haskel/JavaScript и тут выглядит разумным выбором. Они умеет всё то же, что и простая сишечка++, и вдобавок — ещё кучу всего, что сишечка++ не умеет. Ну и * оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах процессоров (JIT компиляция наше всё), чем сишечка++, у которой всё через жопуvoid* и vtable
m2l>