Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 02.10.22 14:19
Оценка: -3 :))) :))
ЭФ>>>>Студент пишет 1000 строчек кода в сутки.
LVV>>>У студента никогда нет времени подумать, но всегда находится время переписать код...

ЭФ>>Потому что руководители требуют результаты работы.

ЭФ>>Результатом размышлений является текст.
ЭФ>>Нанимали программистом, а не писателем,
ЭФ>>поэтому код, а не документация.
LVV>РЖУНИМАГУ... )))))))))))))))))))))))))))))

Как я и предполагал, старпёру нечем возразить на чёткую логику.
Как правило именно такие люди управляют проектами и нанимают студентов.
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 01.10.22 23:56
Оценка: -2 :))) :))
Pzz> О качестве моего кода можно судить по моим опубликованным проектам:

Так я не про качество говорю, а про количество.
В вашем хабе за последний год 38 недель из 52-х без коммитов.

Это потому что вы старенький и у вас низкая работоспособность.

Pzz> И 1000 строк кода в день, конечно, студент не пишет.


Регулярно не пишет, но в принципе может.
Отредактировано 01.10.2022 23:57 Эйнсток Файр . Предыдущая версия .
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: vsb Казахстан  
Дата: 01.10.22 09:24
Оценка: 3 (3) +2 :)
Я учился у Столярова. Он очень грамотный дядька. Пожалуй из всех преподов, которые мне преподавали, он самый крутой. Но он то ли троллит всех, то ли что, но у него по некоторым вопросом крайне экстравагантные взгляды, которые всерьёз воспринимать нельзя.

Ну и он всё-таки препод, а не 100% промышленный разработчик. Это тоже накладывает отпечаток.

Плюс в некоторых вопросах на мой взгляд он не хочет разбираться, это ему, конечно, минус. По тому же расту, уверен, что он толком не вникал в язык. Хотя этим страдают многие опытные сишники — им всё кажется очевидным, хотя раст совсем не такой и там без серьёзного погружения высказывать своё мнение вообще не стоит.

В общем резюмируя — мнение Столярова по расту не стоит слушать, но при этом другие его работы и мнения слушать стоит, хотя бы аргументы воспринять. Хотя, наверное, это больше к молодёжи относится, на этом сайте все 30-летние деды, которых уже учить поздно.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Stanislav V. Zudin Россия  
Дата: 02.10.22 09:02
Оценка: 1 (1) +3 :))
Здравствуйте, Эйнсток Файр, Вы писали:

Pzz>> Да мы с тобой, в нашем возрасте, вообще ходячие мертвецы. Только не говори никому, а до молодежь спать не будет, будут ужасы сниться.


ЭФ>Студент пишет 1000 строчек кода в сутки.

ЭФ>Сколько написали вы за прошлую неделю?

Высшее Дао — добавлять новую функциональность комментированием строчек кода!
_____________________
С уважением,
Stanislav V. Zudin
Re[2]: IT-батл - ректор МГУ vs студент Rust-офил
От: Нomunculus Россия  
Дата: 01.10.22 07:35
Оценка: +3 :)))
Здравствуйте, Vi2, Вы писали:

Он перепутал «ректор» и «лектор»
Главное — кто кого опустил. Шамжа никак не избавится от своих фантазий про унижение и опускание .
Re[3]: IT-батл - доцент МГУ vs студент Rust-офил
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 01.10.22 09:14
Оценка: 5 (3) +2
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, netch80, Вы писали:


N>>Rust неплох, но это другая тема.

K>А что ты скажешь про zero-runtime? Нужно оно в нашем мире?

Да, но редко. Вообще тут надо разделять несколько градаций движения к нему.

1. Просто возможность урезать стандартную библиотеку, чтобы что-то не подключалось, если явно не вызвано из основного кода. Как пример — работа с локалями для stdio или iostreams. В библиотеках, заточенных на статическую линковку, обычно это есть. Но вот в GNU libc очень долго этим не заморачивались, основной подход там был "все одинаково замапят в память, 20MB — пофиг, оно шарится между процессами". Сейчас несколько сдвинулись в сторону экономии.

2. Возможность собирать freestanding реализацию (не hosted), где часть возможностей просто отсутствует или сделана иначе. Например, ядра BSD систем обычно собираются во freestanding, что запрещает компилятору кучу всего. Если ты видишь printf, у него может даже совпадать сигнатура, но это другой printf (пишет в кольцевой буфер dmesg и пинает отдачу на читающий syslogd), всяких stdout тут просто нет. Менять printf("hello\n") на fputs("hello\n", stdout), как делает GCC начиная с 3.0 в hosted, нельзя, fputs не предоставляется. malloc, free в стандартной библиотеке могут писать в stderr, но тут нет stderr. И так далее.

И эта возможность гранулируется — что именно удалено? Где-то, как выше, stdio вырезан и заменён на другой, где чего-то нету и не будет. Где-то на 32-битке деление 64-битных чисел отправляется в спец. функцию типа divdi3(). А её нет, и компилятору лучше бы отказаться такое компилировать.

В этом смысле ядро — пример среды, которая ещё не zero, но уже не полная, где есть всё, что в стандарте. Детали отданы реализациям — стандарт только говорит "бывает freestanding, но что там, мы не регулируем".

3. Полный zero runtime. По-моему, обычно это уже спортивный результат, а не практически обусловленный. Если всё равно нужен код реализации, что мешает подключить маленькую библиотеку? Главное — сама возможность отрезать любой компонент из автоматически требуемых, который не подходит почему-то, а это обратно к пункту 2.

Но как теоретический абсолют — очень даже полезно.
The God is real, unless declared integer.
Отредактировано 02.10.2022 6:47 netch80 . Предыдущая версия .
Re[2]: IT-батл - доцент МГУ vs студент Rust-офил
От: LaptevVV Россия  
Дата: 01.10.22 13:30
Оценка: +4 :)
vsb>В общем резюмируя — мнение Столярова по расту не стоит слушать, но при этом другие его работы и мнения слушать стоит, хотя бы аргументы воспринять. Хотя, наверное, это больше к молодёжи относится, на этом сайте все 30-летние деды, которых уже учить поздно.
30-тилетние деды — улыбнуло...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Pzz Россия https://github.com/alexpevzner
Дата: 01.10.22 21:50
Оценка: +4
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Студент пишет 1000 строчек кода в сутки.


ЭФ>Сколько написали вы за прошлую неделю?


О качестве моего кода можно судить по моим опубликованным проектам:

https://github.com/alexpevzner/sane-airscan
https://github.com/OpenPrinting/ipp-usb

Если у тебя линукс, скорее всего, они оба есть в твоем дистрибутиве.

И 1000 строк кода в день, конечно, студент не пишет.
IT-батл - доцент МГУ vs студент Rust-офил
От: Shmj Ниоткуда  
Дата: 01.10.22 07:07
Оценка: +1 -2
Ока интересно люди живут: https://habr.com/ru/post/598219/

Некий продвинутый со своим мнением доцент МГУ Столяров (оценить уровень можно по книгам — тут http://www.stolyarov.info/books ) выдвинул тезис:

Но дело даже не в этой экономии (размера исполняемого файла — Прим. авт.)…
Намного важнее сам принцип: язык Си позволяет полностью отказаться от возможностей стандартной библиотеки. Кроме Си, таким свойством — абсолютной независимостью от библиотечного кода, также иногда называемым zero runtime — обладают на сегодняшний день только языки ассемблеров; ни один язык высокого уровня не предоставляет такой возможности.


И далее студент опровергает этот тезис, опускает доцента, ставит вопрос о его проф. пригодности:

Но это бы лишний раз показало, что преподаватель, который влил эту чушь в голову студентам МГУ, не просто находится не на своем месте, он вообще ничего не смыслит в системном программировании.


Ваше мнение.

З.Ы.
Добавлю свое мнение. Книги посмотрел, некоторые сохранил. Понравились. Не ожидал такого уровня — чел. смотрит в суть. То что делает такие амбициозные заявления — тоже вызывает уважение, пусть эти заявления и спорные. После прочтения статьи и после того как увидел сколько нужно изврата, чтобы доказать что Rust тоже обладает свойством zero runtime — не хочется смотреть этот Rust.
=сначала спроси у GPT=
Отредактировано 01.10.2022 9:20 Shmj . Предыдущая версия . Еще …
Отредактировано 01.10.2022 7:49 Shmj . Предыдущая версия .
Отредактировано 01.10.2022 7:48 Shmj . Предыдущая версия .
Отредактировано 01.10.2022 7:18 Shmj . Предыдущая версия .
Отредактировано 01.10.2022 7:13 Shmj . Предыдущая версия .
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: karbofos42 Россия  
Дата: 02.10.22 08:57
Оценка: +3
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Студент пишет 1000 строчек кода в сутки.


А лучше бы больше думали и меньше писали.
Наймут джуна, отвернёшься на полчаса — он уже 1000 строк написал, начинаешь смотреть код и всё под нож пускаешь и эту 1000 строк ему переписывать приходится.
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 02.10.22 12:23
Оценка: -1 :))
ЭФ>>Студент пишет 1000 строчек кода в сутки.
LVV>У студента никогда нет времени подумать, но всегда находится время переписать код...

Потому что руководители требуют результаты работы.
Результатом размышлений является текст.
Нанимали программистом, а не писателем,
поэтому код, а не документация.
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.10.22 21:25
Оценка: +3
Здравствуйте, Marty, Вы писали:

УП>>До сих пор широко распространены микроконтроллеры с десятками-сотнями байтов памяти. В основном из-за совместимости, но все равно, их еще много. Там это вполне практически обусловлено.


M>Под такие обычно на асме пишут


Я писал под такой на Си.
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: Baiker  
Дата: 01.10.22 12:48
Оценка: +1 :)
Шмж, скажи, что именно тебя так привлекло в этой теме? Фраза "студент опускает доцента"? Ну так на это только недавняя студота и фапает.
Возможности Си? Достаточно сказать, что на нём написано ядро Линукса. К слову, на языке Ди написана даже целая ОСь XOmB, так что клоуны с "ваш язык Ди плохой, патамучта там GC" постыдно идут нафиг.

S>Rust тоже обладает свойством zero runtime — не хочется смотреть этот Rust.


Это уже давно все поняли — сразу же посла анонса! Достаточно уделить 10 минут примерам кода, чтобы понять, что танцы на льду с ходулями на роликах — не наша тема.
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 01.10.22 21:18
Оценка: -2
Pzz> Да мы с тобой, в нашем возрасте, вообще ходячие мертвецы. Только не говори никому, а до молодежь спать не будет, будут ужасы сниться.

Студент пишет 1000 строчек кода в сутки.

Сколько написали вы за прошлую неделю?
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: vdimas Россия  
Дата: 03.10.22 10:58
Оценка: +2
Здравствуйте, Эйнсток Файр, Вы писали:

Pzz>> Да мы с тобой, в нашем возрасте, вообще ходячие мертвецы. Только не говори никому, а до молодежь спать не будет, будут ужасы сниться.

ЭФ>Студент пишет 1000 строчек кода в сутки.

Из них полезных примерно ноль.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Stanislav V. Zudin Россия  
Дата: 07.10.22 18:32
Оценка: +2
Здравствуйте, m2l, Вы писали:

m2l>Элементарно. Когда ты, пишешь на С++ и создаешь объект, под него должна быть выделена память, для этого нужен алокатор, алокатор памяти — часть run-time, и чтобы выделить тебе условные 20-байт на объект он сначала дергает API операционной системы, что бы у неё получить эту память. Код драйвера — VirtualAlloc / mmap нету — драйвер не работает. При этом создание объектов — часть языка, "language support library" — по нотации их стандарта С++. В случае Си, тупо нет динамической память, которую должен выделять компилятор (либо он делает это на стеке, либо malloc — которую можно отключить, просто убрав этот заголовочный файл).


Мне кажется ты путаешь создание объектов и выделение памяти в куче.
Эти действия ортогональны. Сконструировать объект ты можешь на любом куске памяти — на стеке или где-то как-то выделенной, неважно какими средствами.

Да, без средств стандартной библиотеки будет некомфортно, но мы без нее столько лет жили и ничего так, программы работали
_____________________
С уважением,
Stanislav V. Zudin
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 09.10.22 07:22
Оценка: +2
Здравствуйте, m2l, Вы писали:

m2l>Элементарно. Когда ты, пишешь на С++ и создаешь объект, под него должна быть выделена память, для этого нужен алокатор

Нет, не нужен. Потому как объект можно разместить на стеке, или в глобальном namespace.
Так что вся дальнейшая теория пошла прахом, переделывай.

m2l>чтобы выделить тебе условные 20-байт на объект он сначала дергает API операционной системы

Ващета элементарнейше делается наколенный аллокатор который не дёргает из OC вообще ничего. Но тем не менее умеет выделять память в заданных на этапе компиляции рамках.

m2l>В С++ — динамическая аллокация памяти — неотъемлемая часть языка

И такиж нет.

m2l>Вспоминая Microsoft с их проектом Singularity — где ОС была написана на C# (не то что рантайм, а целый сборщик мусора) — а смысл писать ОС на С++, если можно на Java, Go или Python?

Даже дом можно построить из навоза (и таки реально строили), вот только нафига?
Можно даже на brainfuck написать концепт, вот только вопрос в жизнеспособности получившейся "модели человека, полностью неудовлетворённого" (tm)
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 09.10.22 07:22
Оценка: +2
Здравствуйте, m2l, Вы писали:

m2l>Элементарные list, string, regexp, exception — это всё исчезает.

Зависит от опыта пишущего

m2l>Теже new/delete — часть языка. Да можно и без них. Но какой тогда вообще смысл в С++?

Да одни только шаблоны и RAII уже сильно улучшают качество жизни по сравниению с С. А new/delete это так, мелочь.
Ты точно на С++ писал всерьёз?

m2l>Я лишь попытался объяснить что такое рантайм в С++ и зачем он нужен.

У тебя не получилось.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.10.22 18:01
Оценка: 1 (1)
Здравствуйте, m2l, Вы писали:

m2l>Понимаешь? Ты не можешь убрать из С++ создание объектов — это одна из ключевых частей языка. А для их создания нужна "language support library" (тот самый run-time). И его почти нельзя убрать.


Хм, интересно, как это я пять лет писал под STM32 на плюсах... Вот если бы ты мне раньше рассказал, то я точно бы на плюсах не смог бы писать, пришлось бы на сишечке мучаться...

А наш загрузчик, который умеет обновлять прошивку по UART/CAN, занимает до 1 кб/2ух (в зависимости от STMки) — тоже на плюсах написан, опять же — по незнанию
Маньяк Робокряк колесит по городу
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: velkin Земля  
Дата: 01.10.22 11:59
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>Намного важнее сам принцип: язык Си позволяет полностью отказаться от возможностей стандартной библиотеки. Кроме Си, таким свойством — абсолютной независимостью от библиотечного кода, также иногда называемым zero runtime — обладают на сегодняшний день только языки ассемблеров; ни один язык высокого уровня не предоставляет такой возможности.

S>И далее студент опровергает этот тезис, опускает доцента, ставит вопрос о его проф. пригодности:

Лучше было сказать так, Си стимулирует отказаться от стандартной библиотеки в большей степени, чем многие другие языки программирования. И не только от стандартной, а вообще от чужих библиотек алгоритмов.

С ходу несколько причин этому:
1) Простые парадигмы программирования и нет сложных запутанных парадигм.
2) Возможность управлять памятью вручную и осуществлять вызовы системных функций.
3) Для совсем уж энтузиастов существуют ассемблерные вставки.

В итоге программирование становится ближе к математикам и аппаратчикам, нежели к абстракционистам и пользователям
Автор: velkin
Дата: 26.05.22
. Хотя по факту такое можно проворачивать на C++ и других языках программирования. Просто тот же C++ имея все возможности Си к этому стимулировать не будет. Напротив, там идёт стимуляция быть абстракционистом и пользователем.
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 01.10.22 21:50
Оценка: +1
Здравствуйте, netch80, Вы писали:

N>3. Полный zero runtime. По-моему, обычно это уже спортивный результат, а не практически обусловленный.


До сих пор широко распространены микроконтроллеры с десятками-сотнями байтов памяти. В основном из-за совместимости, но все равно, их еще много. Там это вполне практически обусловлено.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.10.22 22:32
Оценка: +1
Здравствуйте, ути-пути, Вы писали:

N>>3. Полный zero runtime. По-моему, обычно это уже спортивный результат, а не практически обусловленный.


УП>До сих пор широко распространены микроконтроллеры с десятками-сотнями байтов памяти. В основном из-за совместимости, но все равно, их еще много. Там это вполне практически обусловлено.


Под такие обычно на асме пишут
Маньяк Робокряк колесит по городу
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.10.22 06:41
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Так я не про качество говорю, а про количество.

ЭФ>В вашем хабе за последний год 38 недель из 52-х без коммитов.

ЭФ>Это потому что вы старенький и у вас низкая работоспособность.


Нет, это потому, это это законченные проекты, практически не нуждающиеся во внимании.

Что до работоспособности нет, не низкая. Просто у меня есть куча других обязанностей помимо писания кода.

Pzz>> И 1000 строк кода в день, конечно, студент не пишет.


ЭФ>Регулярно не пишет, но в принципе может.


Мой максимум, за всю историю наблюдения — где-то 1500 в сутки. Но это тяжело и редко бывает.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: LaptevVV Россия  
Дата: 02.10.22 09:49
Оценка: :)
ЭФ>Студент пишет 1000 строчек кода в сутки.
У студента никогда нет времени подумать, но всегда находится время переписать код...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: Privalov  
Дата: 02.10.22 13:40
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Мой максимум, за всю историю наблюдения — где-то 1500 в сутки. Но это тяжело и редко бывает.


Ого! Мне в лучшие времена больше нескольких сотен сторк писать не удавалось. Это был Фортран, в котором одна инструкция — одна строка плюс я всегда включал implicit none плюс кое-какая комипаста (например, объявление COMMON-блоков).
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: LaptevVV Россия  
Дата: 02.10.22 14:09
Оценка: +1
ЭФ>>>Студент пишет 1000 строчек кода в сутки.
LVV>>У студента никогда нет времени подумать, но всегда находится время переписать код...

ЭФ>Потому что руководители требуют результаты работы.

ЭФ>Результатом размышлений является текст.
ЭФ>Нанимали программистом, а не писателем,
ЭФ>поэтому код, а не документация.
РЖУНИМАГУ... )))))))))))))))))))))))))))))
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Baiker  
Дата: 02.10.22 21:01
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Студент пишет 1000 строчек кода в сутки.


Это типа тебя что ли? А они кому-то вообще нужны — твои "студенческие строчки кода"? 50 строк профессионала делают работу намного лучше 1000-строчной студоты.
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 02.10.22 22:17
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Под такие обычно на асме пишут


Или на С. И даже на С++, без виртуальных функций и исключений, но с шаблонами.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: namespace  
Дата: 03.10.22 06:39
Оценка: +1
S>Ваше мнение.
Тезис выгладит корректным.
Про раст не в курсе, на нем можно написать загрузчик? В промышленных целях(дебаг, профайлер, IDE, методологии, нотации)?
Студент — дурак, еще не пережил состояние, когда был на 100% уверен в своем коде, а тестировщик присылает список.

ЗЫ хабр не читал, как по мне — это IT-помойка, чего-то полезного там мало.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Mr.Delphist  
Дата: 03.10.22 13:15
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Студент пишет 1000 строчек кода в сутки.


Вспоминается анекдот про блондинку-секретаршу (БС) на собеседовании:

Шеф: с какой скоростью текст печатаете?
БС: 500 букв в минуту...
Шеф: ??! Вау!
БС: (вздыхает) ...такая фигня получается...

Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 03.10.22 14:33
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Студент пишет 1000 строчек кода в сутки.


А корчеватель еще больше.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 04.10.22 07:37
Оценка: +1
Здравствуйте, ути-пути, Вы писали:

CC>>Ты про какой язык то? Для С и С++ это утверждение в целом неверно

УП>У C и C++ — это код, исполняемый до входа в main, он более чем монолитен, выкинуть его по частям не получится.

Запросто выкидывается, надо только подготовить это (обычно, платформенно-зависимыми средствами). Я видел несколько примеров.
Например, iostreams могут использовать локализацию, но если не вызвано setlocale(), то весь блок с локалями не подключается. Или, при отсутствии вызова pthread_create(), всякие pthread_self() заменяются на, грубо говоря, return 1.
Типовой подход в Unix — функции с целевыми именами представлены "слабой ссылкой" линкера
на реализации-пустышки. Если тянется какая-то функция по сильной ссылке, подтягиваются перекрытия с реальным телом.
The God is real, unless declared integer.
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.10.22 09:06
Оценка: +1
Здравствуйте, ути-пути, Вы писали:

M>>Ну, а если вдаваться в детали, то обычно зависит, как объектники собирались, каждая функция в отдельную секцию, или в одну кучу. Ну и тут смотря что ты под рантаймом подразумеваешь


УП>Это та библиотека, которая является частью языка. Например, строки, которых в C нет. А еще тот код, который что-то там инициализирует до входа в main.


Строки вроде хидер-онли. Код инициализации — ну, обычно это вызов конструкторов глобальных объектов, нет глобальных объектов, нет и этого кода. Или, например, iostreams. Вот это точно не хидер-онли. Но если их не использовать, то и линковаться ничего не будет. В итоге того рантайма, который жизненно необходим, оказывается с гулькин фиг
Маньяк Робокряк колесит по городу
Re[2]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 05.10.22 16:31
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>Я ничего не понял. Почему надо не зависеть от библиотечного кода? Если на С++ мы делаем статическую линковку, то мы получаем абсолютно независимый исполняемый файл. Этого достаточно или надо что-то ещё?


Потому что ты не совсем понимаешь, что такое run-time языка. В твоём примере на С++ мы получим файл со статически слинкованым рантаймом. Просто потому, что RTTI, new/delete, исключения и т.д. и т.п. — это и есть рантайм. Это буквально часть языка. Всё-таки C++ без new/delete — это не совсем обычный C++?

А почему это надо ответ простой. Когда мы пишем тоже ядро ОС или драйвер для него, или прочие низкоуровневые штуки — то штатный рантайм языка программирования оказывается неработоспособен. Он-то расчитан на работу с операционной системой, а не на то, что программа сама является операционной системой. И второй аспект — рантайм делает скрытую работу, и это усложняет написание кода и не всегда допустимо в принципе. Где-нибудь в планировщике, дернутом с высоким IRQL, например нельзя делать какие-то вещи (те же исключения создавать) — и программист должен явно понимать, во что будет откомпилирован код.

Не хочу убеждать, что это прям супер-надо. Но, если ты с таким не сталкивался, сделай скидку на то, что кому-то может быть надо. И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.
Re[3]: IT-батл - доцент МГУ vs студент Rust-офил
От: B0FEE664  
Дата: 06.10.22 10:33
Оценка: +1
Здравствуйте, m2l, Вы писали:

BFE>>Я ничего не понял. Почему надо не зависеть от библиотечного кода? Если на С++ мы делаем статическую линковку, то мы получаем абсолютно независимый исполняемый файл. Этого достаточно или надо что-то ещё?

m2l>Потому что ты не совсем понимаешь, что такое run-time языка.
Именно. Я не понимаю, что ещё такое "run-time языка".

m2l>В твоём примере на С++ мы получим файл со статически слинкованым рантаймом. Просто потому, что RTTI, new/delete, исключения и т.д. и т.п. — это и есть рантайм. Это буквально часть языка. Всё-таки C++ без new/delete — это не совсем обычный C++?

Допустим.

m2l>А почему это надо ответ простой. Когда мы пишем тоже ядро ОС или драйвер для него, или прочие низкоуровневые штуки — то штатный рантайм языка программирования оказывается неработоспособен. Он-то расчитан на работу с операционной системой, а не на то, что программа сама является операционной системой.

Это откуда следует?
У меня такое впечатление, что вы путаете API системы с чем-то ещё. Возьмём, к примеру, функцию fopen — она не будет работать в C если операционная система не имеет файловой системы. Так в чём отличие от C++?

m2l>И второй аспект — рантайм делает скрытую работу, и это усложняет написание кода и не всегда допустимо в принципе.

Это так, но ведь это совсем другой аспект.

m2l>Где-нибудь в планировщике, дернутом с высоким IRQL, например нельзя делать какие-то вещи (те же исключения создавать) — и программист должен явно понимать, во что будет откомпилирован код.

И что? Например, может для C быть запрещена динамическая аллокация памяти. Можно ли при этом писать программу на C? Можно. И на С++ можно. В чём разница? В исключениях? Ну так их можно не использовать.

m2l>Не хочу убеждать, что это прям супер-надо. Но, если ты с таким не сталкивался, сделай скидку на то, что кому-то может быть надо. И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.


Меня не надо убеждать — я просто понять хочу. Допустим у нас вообще нет операционной системы. Можно ли без операционной системы сделать запускаемый (статически слинкованый) экзешник на C? Можно, я делал. Можно ли без операционной системы сделать запускаемый экзешник на C++? Такого я не делал — у меня не было такой задачи. Быстрый поиск показывает, что есть операционная система написанная на C++, что, как бы, намекает на.
Я не вижу причин из-за которых невозможно написать приложение на С++, которое бы не нуждалось в операционной системе. Так что такое "run-time языка"?
И каждый день — без права на ошибку...
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.10.22 18:05
Оценка: +1
Здравствуйте, m2l, Вы писали:

M>>C++ без new и delete — тот же самый C++. Просто не используются какие-то библиотеки

m2l>Так он и без class и template — тот же самый С++. "Просто не используются какие-то библиотеки"

Классы и шаблоны сами по себе не зависят ни от каких библиотек
Маньяк Робокряк колесит по городу
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 08.10.22 12:58
Оценка: -1
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Мне кажется ты путаешь создание объектов и выделение памяти в куче.

SVZ>Эти действия ортогональны. Сконструировать объект ты можешь на любом куске памяти — на стеке или где-то как-то выделенной, неважно какими средствами.

Нет, я имею ввиду именно создание объектов в куче. И я хорошо понимаю, что для class-name var-name компилятор постарается выделить место в стеке (и ты же помнишь, что это возможно не для всех классов?). Но, С++ в котором есть только классы создаваемые на стеке — это весьма своеобразный огрызок. Элементарные list, string, regexp, exception — это всё исчезает. И получается подмножество от С++, причем с явным креном аккурат в общую часть С и С++. Теже new/delete — часть языка. Да можно и без них. Но какой тогда вообще смысл в С++?

SVZ>Да, без средств стандартной библиотеки будет некомфортно, но мы без нее столько лет жили и ничего так, программы работали



Я не из мгу и мне пофиг. Я лишь попытался объяснить что такое рантайм в С++ и зачем он нужен. Если не прав — поправляй это.
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 08.10.22 13:46
Оценка: -1
Здравствуйте, Marty, Вы писали:

m2l>>Слово почти такое незаметное?


M>Это ты о чем? В твоей простыне вроде его не было, но если и было — то да, оно такое незаметное


Понимаешь? Ты не можешь убрать из С++ создание объектов — это одна из ключевых частей языка. А для их создания нужна "language support library" (тот самый run-time). И его почти нельзя убрать.


Выделил жирным.

Слушай, а как же ты стандарт С++ читал, если четыре предложения не осилил? Или твой уровень знаний С++ не предполагает чтение его стандарта? Типа коллега научил писать "int main" я и пишу?
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 08.10.22 16:15
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, m2l, Вы писали:


m2l>>Понимаешь? Ты не можешь убрать из С++ создание объектов — это одна из ключевых частей языка. А для их создания нужна "language support library" (тот самый run-time). И его почти нельзя убрать.


M>Хм, интересно, как это я пять лет писал под STM32 на плюсах...

Очевидно, ты линковался с минимальным рантаймом под STM32 который был написано не тобой.
Sic luceat lux!
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: flаt  
Дата: 09.10.22 07:43
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:


CC>Даже дом можно построить из навоза (и таки реально строили), вот только нафига?


Он хорошо держит тепло (см "саман").

Оффтоп
Отредактировано 09.10.2022 7:45 flаt . Предыдущая версия .
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 09.10.22 08:52
Оценка: :)
Здравствуйте, Marty, Вы писали:

M>Хм, интересно, как это я пять лет писал под STM32 на плюсах... Вот если бы ты мне раньше рассказал, то я точно бы на плюсах не смог бы писать, пришлось бы на сишечке мучаться...


И что, там можно было new/delete использовать? Или исключения? RTTI? Нет? Так это не C++, а его подмножество, как раз с отрезанным рантаймом.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 09.10.22 11:36
Оценка: +1
Здравствуйте, flаt, Вы писали:

M>>А наш загрузчик, который умеет обновлять прошивку по UART/CAN, занимает до 1 кб/2ух (в зависимости от STMки) — тоже на плюсах написан, опять же — по незнанию


F>Ну, или можно писать код без динамической памяти, почему нет.


Да. И исключений нет, нет файловой системы, нет никаких потоков, ничего нет. И какой там рантайм нужен для этого? И, однако, это всё равно был C++, не сильно отличавшийся от обычного
Маньяк Робокряк колесит по городу
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 09.10.22 11:40
Оценка: +1
Здравствуйте, ути-пути, Вы писали:

M>>Хм, интересно, как это я пять лет писал под STM32 на плюсах... Вот если бы ты мне раньше рассказал, то я точно бы на плюсах не смог бы писать, пришлось бы на сишечке мучаться...


УП>И что, там можно было new/delete использовать? Или исключения? RTTI? Нет? Так это не C++, а его подмножество, как раз с отрезанным рантаймом.



И что, он перестал от этого быть C++? Перегрузка — есть, шаблоны функций/классов — есть, виртуальные методы — есть. Этого вполне хватало, и это всё-таки гораздо удобнее, чем писать на голой сишечке
Маньяк Робокряк колесит по городу
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 09.10.22 11:43
Оценка: +1
Здравствуйте, ути-пути, Вы писали:

M>>Строки вроде хидер-онли.


УП>Нет. Они без динамической памяти не работают. И за ней они обратятся к рантайму.


Переопределить new/delete, и всё, никакой рантайм не нужен. А если мегабайты текста обрабатывать не надо (а на контроллере обычно и не надо), то эти new/delete и вызваны могут не быть за счет SSO
Маньяк Робокряк колесит по городу
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 09.10.22 11:48
Оценка: :)
Здравствуйте, Marty, Вы писали:

M>И что, он перестал от этого быть C++? Перегрузка — есть, шаблоны функций/классов — есть, виртуальные методы — есть.


Да, перестал, став урезанным подмножеством.

M>Этого вполне хватало, и это всё-таки гораздо удобнее, чем писать на голой сишечке


Разумеется удобнее, хотя, подозреваю, насчет виртуальных методов ты приврал: vtable, диспетчеризация, вот это вот все — явно не для мелких МК.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 09.10.22 12:04
Оценка: +1
Здравствуйте, ути-пути, Вы писали:

УП>Да, перестал, став урезанным подмножеством.


Нет, не перестал. Язык тот же. Библиотеки плюсовые, строки/векторы/мапы — тоже есть, просто мы ими не пользовались. К слову, в одной конторе, где я работал, STL тоже не используется, там всё своё самописное. Значит ли это, что у них тоже урезанный C++?


M>>Этого вполне хватало, и это всё-таки гораздо удобнее, чем писать на голой сишечке


УП>Разумеется удобнее, хотя, подозреваю, насчет виртуальных методов ты приврал: vtable, диспетчеризация, вот это вот все — явно не для мелких МК.


Нет никаких проблем с vtbl даже на тех камешках, где оперативки килобайта 4. Флэшка для кода, кстати, обычно пожирнее
Маньяк Робокряк колесит по городу
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 09.10.22 21:03
Оценка: :)
Здравствуйте, 4058, Вы писали:

m2l>>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.


4>И явно не лучше. Весь низкий уровень там всё-равно на ASM и C (который не ++). Рантайм и прочий сопутствующий обвес на расширенном (под эту задачу) C# — Sing.


Если уйти немного в оффтоп, я бы посмотрел на это с другой стороны. Всеобъемлющее управление ресурсами, которое требуется от ОС, предполагает тесной работы с оборудованием. И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку. Поэтому простые С и Асм, в которых довольно очевиден эффект от кода, можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО. И, сугубо ИМХО, выглядят довольно разумным выбором.
Re[10]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 10.10.22 18:19
Оценка: :)
Здравствуйте, Marty, Вы писали:

m2l>>Если уйти немного в оффтоп, я бы посмотрел на это с другой стороны. Всеобъемлющее управление ресурсами, которое требуется от ОС, предполагает тесной работы с оборудованием. И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку. Поэтому простые С и Асм, в которых довольно очевиден эффект от кода, можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО. И, сугубо ИМХО, выглядят довольно разумным выбором.


M>И C++ и тут выглядит разумным выбором. Он умеет всё то же, что и простая сишечка, и вдобавок — ещё кучу всего, что сишечка не умеет. Ну и плюсовый оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах, чем сишечка, у которой всё через жопуvoid*


И Python/Java/C#/Rust/Haskel/JavaScript и тут выглядит разумным выбором. Они умеет всё то же, что и простая сишечка++, и вдобавок — ещё кучу всего, что сишечка++ не умеет. Ну и * оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах процессоров (JIT компиляция наше всё), чем сишечка++, у которой всё через жопуvoid* и vtable

Re: IT-батл - ректор МГУ vs студент Rust-офил
От: Vi2 Удмуртия http://www.adem.ru
Дата: 01.10.22 07:32
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Некий продвинутый со своим мнением ректор МГУ Столяров ...


Ректор МГУ — Виктор Антонович Садовничий, а "Андрей Викторович Столяров, доцент кафедры алгоритмических языков факультета ВМК МГУ им. М. В. Ломоносова и по совместительству научрук студента-автора статьи."
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re[2]: IT-батл - ректор МГУ vs студент Rust-офил
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 01.10.22 07:50
Оценка:
Здравствуйте, Vi2, Вы писали:

S>>Некий продвинутый со своим мнением ректор МГУ Столяров ...


Vi2>Ректор МГУ — Виктор Антонович Садовничий, а "Андрей Викторович Столяров, доцент кафедры алгоритмических языков факультета ВМК МГУ им. М. В. Ломоносова и по совместительству научрук студента-автора статьи."


А жаль.
The God is real, unless declared integer.
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 01.10.22 08:01
Оценка:
Здравствуйте, Shmj, Вы писали:

S>

S>Но это бы лишний раз показало, что преподаватель, который влил эту чушь в голову студентам МГУ, не просто находится не на своем месте, он вообще ничего не смыслит в системном программировании.


S>Ваше мнение.


Когда оценивают подобное утверждение, надо понимать минимум две вещи:

1. Чему равно "все" = "универсальное множество" в рассмотрении. Потому что всегда есть, например, где-нибудь какой-то наспех сляпанный одним студентом язык, который даёт 1/4 того, что есть в C89, при этом точно так же не требует стандартной библиотеки, но достаточен для написания драйверов. (Или, ещё грубее, язык, использованный марсианами. Мы про них ничего пока не знаем.) Естественно, он не рассматривается, и "все" будет включать "все достаточно известные, чтобы попасть в рассмотрение", и это не будет являться ошибкой автора.

2. Когда именно было написано цитируемое утверждение. Книги Столярова вышли задолго до появления Rust.

Как-то автор слишком хамски себя повёл.

S>З.Ы.

S>Добавлю свое мнение. Книги посмотрел, некоторые сохранил. Понравились. Не ожидал такого уровня — чел. смотрит в суть. То что делает такие амбициозные заявления — тоже вызывает уважение, пусть эти заявления и спорные. После прочтения статьи и после того как увидел сколько нужно изврата, чтобы доказать что Rust тоже обладает свойством zero runtime — не хочется смотреть этот Rust.

Rust неплох, но это другая тема.
The God is real, unless declared integer.
Отредактировано 01.10.2022 8:16 netch80 . Предыдущая версия .
Re[2]: IT-батл - доцент МГУ vs студент Rust-офил
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 01.10.22 08:41
Оценка:
Здравствуйте, netch80, Вы писали:

N>Rust неплох, но это другая тема.

А что ты скажешь про zero-runtime? Нужно оно в нашем мире?
Sic luceat lux!
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: Константин Черногория  
Дата: 01.10.22 10:05
Оценка:
Rust полезный и умирать не будет, но IMO он очень переоценен сейчас.

На нём сильно сложнее программировать.

Профит от Rust для задач, для которых верно всё из следующего списка:
1. Критически важна безопасность.
2. Жалко runtime ресурсов на сборщик мусора.
3. Не сильно важен размер бинарников.
4. Не нужно интегрировать большие сторонние библиотеки, сделанные для C или C++. Примеры таких больших библиотек — Windows SDK (особенно C++ части вроде Direct3D или Media Foundation), Eigen.

Это не очень-то большое множество задач.
Например на web серверах достаточно памяти для GC, народ обычно выбирает golang, C#, Java, или вообще JS/TS.
В HPC обычно нужны сторонние библиотеки, они все для C, C++, Fortran, сейчас уже и для Python много.
В играх тоже, и ещё там пофигу на безопасность.
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: LaptevVV Россия  
Дата: 01.10.22 13:27
Оценка:
S>Добавлю свое мнение. Книги посмотрел, некоторые сохранил. Понравились. Не ожидал такого уровня — чел. смотрит в суть. То что делает такие амбициозные заявления — тоже вызывает уважение, пусть эти заявления и спорные. После прочтения статьи и после того как увидел сколько нужно изврата, чтобы доказать что Rust тоже обладает свойством zero runtime — не хочется смотреть этот Rust.
Книжки Столярова вполне приличны — для обучения программированию.
Пишет неформально, читать интересно.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: IT-батл - доцент МГУ vs студент Rust-офил
От: Pzz Россия https://github.com/alexpevzner
Дата: 01.10.22 19:53
Оценка:
Здравствуйте, Kernan, Вы писали:

N>>Rust неплох, но это другая тема.

K>А что ты скажешь про zero-runtime? Нужно оно в нашем мире?

Бывает полезно, если мы пишем прошивку или ядро ОС. Но часто ли мы пишем прошивку или ядро ОС?

Ну и потом, самому компилятору не так уж много надо от библиотеки. Вполне можно ему выдать, что ему надо, сделав минималистическую библиотечку.

Совсем уж нулевого рантайма не бывает. Как минимум, надо .bss занулить, стек наладить, ...
Re[3]: IT-батл - доцент МГУ vs студент Rust-офил
От: Pzz Россия https://github.com/alexpevzner
Дата: 01.10.22 19:54
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>30-тилетние деды — улыбнуло...


Да мы с тобой, в нашем возрасте, вообще ходячие мертвецы. Только не говори никому, а до молодежь спать не будет, будут ужасы сниться.
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: LaptevVV Россия  
Дата: 02.10.22 03:44
Оценка:
LVV>>30-тилетние деды — улыбнуло...
Pzz>Да мы с тобой, в нашем возрасте, вообще ходячие мертвецы. Только не говори никому, а до молодежь спать не будет, будут ужасы сниться.
Ну, я в своем возрасте — реальный действующий программер.
Если "30-летние деды" в таком возрасте смогут — респект им и уважуха...
Своих студентов троллил недавно эти самым...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: LaptevVV Россия  
Дата: 02.10.22 03:47
Оценка:
ЭФ>Это потому что вы старенький и у вас низкая работоспособность.
Реальная высокая трудоспособность первые 3-4 часа...
За это время можно сделать недельную работу , если растягивать ее по 8 часов в день...
Только вчера встречался со своим выпускником — "30-тилетним дедом", который именно так и работает...
Pzz>> И 1000 строк кода в день, конечно, студент не пишет.
ЭФ>Регулярно не пишет, но в принципе может.
Яму можно копать, можно не копать.
Вопрос — ЗАЧЕМ?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: Pzz Россия https://github.com/alexpevzner
Дата: 02.10.22 14:13
Оценка:
Здравствуйте, Privalov, Вы писали:

Pzz>>Мой максимум, за всю историю наблюдения — где-то 1500 в сутки. Но это тяжело и редко бывает.


P>Ого! Мне в лучшие времена больше нескольких сотен сторк писать не удавалось. Это был Фортран, в котором одна инструкция — одна строка плюс я всегда включал implicit none плюс кое-какая комипаста (например, объявление COMMON-блоков).


Но это не то, что я могу каждый день делать. В принципе, когда я занимаюсь вот именно программированием, а не менеджемнтом, архитектурой других (не своих лично) проектов и т.п., у меня получается стабильно выдавать 60-80К строк в год лично, и параллельно могу еще выжать примерно столько же из небольшой группы своих подчиненных, если команда слаженная и не требует постоянной коммуникации.
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 02.10.22 22:19
Оценка:
Здравствуйте, ути-пути, Вы писали:

M>>Под такие обычно на асме пишут


УП>Или на С. И даже на С++, без виртуальных функций и исключений, но с шаблонами.


Интересно, не приведёшь пример?
Маньяк Робокряк колесит по городу
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 03.10.22 04:25
Оценка:
Здравствуйте, Marty, Вы писали:

УП>>Или на С. И даже на С++, без виртуальных функций и исключений, но с шаблонами.


M>Интересно, не приведёшь пример?


Вот, например, библиотека на плюсах, на стратегиях. Умеет даже ATTiny.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: vdimas Россия  
Дата: 03.10.22 10:52
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Но это бы лишний раз показало, что преподаватель, который влил эту чушь в голову студентам МГУ, не просто находится не на своем месте, он вообще ничего не смыслит в системном программировании.

S>Ваше мнение.

1.

Ай, Моська! знать она сильна,
Что лает на Слона!


2. Та даже и без очевидного немотивированного хамства уровень категоричности малолетнего дебила выдаёт в нём, собсно, узколобого малолетнего дебила.

3. Ты зачем этот высер сюда принёс?
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: vdimas Россия  
Дата: 03.10.22 10:58
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Совсем уж нулевого рантайма не бывает. Как минимум, надо .bss занулить, стек наладить, ...


В обычных ОС эти вещи (типа размера стека) могут содержаться в метаинформации образа и исполняться загрузчиком.

В микроконтроллерах подобное делается зачастую через запись в определённые ячейки памяти (т.е. в служебные регистры, типа как в PIC-контроллерах).
Если нет — в Си для такой архитектуры будут присутствовать идентификаторы регистров и в них обычно можно писать/читать в синтаксисе Си.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: vsb Казахстан  
Дата: 03.10.22 13:27
Оценка:
Здравствуйте, ути-пути, Вы писали:

N>>3. Полный zero runtime. По-моему, обычно это уже спортивный результат, а не практически обусловленный.


УП>До сих пор широко распространены микроконтроллеры с десятками-сотнями байтов памяти. В основном из-за совместимости, но все равно, их еще много. Там это вполне практически обусловлено.


Для них разве пишут на С? Насколько я знаю, там просто на ассемблере пишут и всё. Сотня байтов памяти это же несколько десятков машинных команд.
Re: IT-батл - доцент МГУ vs студент Rust-офил
От: B0FEE664  
Дата: 03.10.22 14:23
Оценка:
Здравствуйте, Shmj, Вы писали:

S>

S>Но дело даже не в этой экономии (размера исполняемого файла — Прим. авт.)…
S>Намного важнее сам принцип: язык Си позволяет полностью отказаться от возможностей стандартной библиотеки. Кроме Си, таким свойством — абсолютной независимостью от библиотечного кода, также иногда называемым zero runtime — обладают на сегодняшний день только языки ассемблеров; ни один язык высокого уровня не предоставляет такой возможности.


Я ничего не понял. Почему надо не зависеть от библиотечного кода? Если на С++ мы делаем статическую линковку, то мы получаем абсолютно независимый исполняемый файл. Этого достаточно или надо что-то ещё?
И каждый день — без права на ошибку...
Re[2]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 03.10.22 14:36
Оценка:
Здравствуйте, Baiker, Вы писали:

B>К слову, на языке Ди написана даже целая ОСь XOmB, так что клоуны с "ваш язык Ди плохой, патамучта там GC" постыдно идут нафиг.


И кому нужна эта ось? Думаю, даже у немерле целевая аудитория на порядки шире.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 03.10.22 15:49
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Я ничего не понял. Почему надо не зависеть от библиотечного кода? Если на С++ мы делаем статическую линковку, то мы получаем абсолютно независимый исполняемый файл. Этого достаточно или надо что-то ещё?


Потому что "вы не платите за то, чего не используете".
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[3]: IT-батл - доцент МГУ vs студент Rust-офил
От: B0FEE664  
Дата: 03.10.22 15:59
Оценка:
Здравствуйте, ути-пути, Вы писали:

BFE>>Я ничего не понял. Почему надо не зависеть от библиотечного кода? Если на С++ мы делаем статическую линковку, то мы получаем абсолютно независимый исполняемый файл. Этого достаточно или надо что-то ещё?

УП>Потому что "вы не платите за то, чего не используете".

Ээээ.... Это задача линковщика — выкинуть всё лишнее.
И каждый день — без права на ошибку...
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 03.10.22 17:06
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Ээээ.... Это задача линковщика — выкинуть всё лишнее.


Рантайм, как правило, монолитен, его нельзя выкинуть частично. А в большинстве языков он еще и довольно большой: в нем куча того, что в С реализуется библиотеками.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Отредактировано 03.10.2022 17:09 ути-пути . Предыдущая версия .
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 03.10.22 20:07
Оценка:
Здравствуйте, ути-пути, Вы писали:

BFE>>Ээээ.... Это задача линковщика — выкинуть всё лишнее.


УП>Рантайм, как правило, монолитен, его нельзя выкинуть частично. А в большинстве языков он еще и довольно большой: в нем куча того, что в С реализуется библиотеками.


С чего бы?

Ну, а если вдаваться в детали, то обычно зависит, как объектники собирались, каждая функция в отдельную секцию, или в одну кучу. Ну и тут смотря что ты под рантаймом подразумеваешь
Маньяк Робокряк колесит по городу
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 04.10.22 05:03
Оценка:
Здравствуйте, ути-пути, Вы писали:

УП>Рантайм, как правило, монолитен, его нельзя выкинуть частично.

Ты про какой язык то? Для С и С++ это утверждение в целом неверно
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 04.10.22 05:06
Оценка:
Здравствуйте, Marty, Вы писали:

M>С чего бы?


Откуда мне знать?

M>Ну, а если вдаваться в детали, то обычно зависит, как объектники собирались, каждая функция в отдельную секцию, или в одну кучу. Ну и тут смотря что ты под рантаймом подразумеваешь


Это та библиотека, которая является частью языка. Например, строки, которых в C нет. А еще тот код, который что-то там инициализирует до входа в main.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 04.10.22 06:39
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Ты про какой язык то? Для С и С++ это утверждение в целом неверно


У C и C++ — это код, исполняемый до входа в main, он более чем монолитен, выкинуть его по частям не получится.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 04.10.22 11:50
Оценка:
Здравствуйте, Marty, Вы писали:

M>Строки вроде хидер-онли.


Это в C++, а в C их вообще нет. А вот практически во всех других языках — есть, и являются частью рантайма, а не библиотеками.

M>В итоге того рантайма, который жизненно необходим, оказывается с гулькин фиг


В С — да, маленький рантайм, в других языках — большой. Но по частям не расчленяется ни там, ни там. При этом С без рантайма вполне работоспособен.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 05.10.22 00:32
Оценка:
Здравствуйте, ути-пути, Вы писали:

УП>В С — да, маленький рантайм, в других языках — большой. Но по частям не расчленяется ни там, ни там.

Неверно. В С прилинкуется только то, что используется.
В других языках, если они претендуют на использование как системных, должно быть так же.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 05.10.22 20:45
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Потому что ты не совсем понимаешь, что такое run-time языка. В твоём примере на С++ мы получим файл со статически слинкованым рантаймом. Просто потому, что RTTI, new/delete, исключения и т.д. и т.п. — это и есть рантайм. Это буквально часть языка. Всё-таки C++ без new/delete — это не совсем обычный C++?


C++ без new и delete — тот же самый C++. Просто не используются какие-то библиотеки


m2l>Не хочу убеждать, что это прям супер-надо. Но, если ты с таким не сталкивался, сделай скидку на то, что кому-то может быть надо. И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.


Вот тут не понял твою позицию
Маньяк Робокряк колесит по городу
Re[3]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 06.10.22 10:04
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Просто потому, что RTTI, new/delete, исключения и т.д. и т.п. — это и есть рантайм.

В библиотеках будут только функции-хелперы, и их там будет весьма немного. Существенную часть реализации этих фич будет таки генерировать компилятор.

m2l>Это буквально часть языка. Всё-таки C++ без new/delete — это не совсем обычный C++?

Надо таки заметить что на самом деле в самих имплементациях new/delete кода с гулькин нос — это тупо врапперы над системным аллокатором.
А вот частью самого языка будет тот код, который генерит компилятор для вызова конструкторов и десттрукторов. И он не библиотечный а именно что генерируемый по месту.

m2l>Когда мы пишем тоже ядро ОС или драйвер для него, или прочие низкоуровневые штуки — то штатный рантайм языка программирования оказывается неработоспособен.

Да банально берётся заточенный под кернел рантайм. Понятие "штатный" довольно размыто. Есть API+ABI а реализация уже какая захочешь.

m2l> Он-то расчитан на работу с операционной системой, а не на то, что программа сама является операционной системой.

Это примерно как std, стандартная либа чтоб можно было сразу что то лабать. Хош пользуйся, хош — нет.

m2l>И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.

... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: Pyromancer  
Дата: 06.10.22 12:15
Оценка:
Здравствуйте, B0FEE664, Вы писали:

m2l>>Не хочу убеждать, что это прям супер-надо. Но, если ты с таким не сталкивался, сделай скидку на то, что кому-то может быть надо. И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.


BFE>Меня не надо убеждать — я просто понять хочу. Допустим у нас вообще нет операционной системы. Можно ли без операционной системы сделать запускаемый (статически слинкованый) экзешник на C? Можно, я делал. Можно ли без операционной системы сделать запускаемый экзешник на C++? Такого я не делал — у меня не было такой задачи. Быстрый поиск показывает, что есть операционная система написанная на C++, что, как бы, намекает на.

BFE>Я не вижу причин из-за которых невозможно написать приложение на С++, которое бы не нуждалось в операционной системе. Так что такое "run-time языка"?

Вобщем-то написать приложение запускающееся "без всего" это скорее требование к компилятору/линкеру чем к языку. Надо получить на выходе нативный для процессора код, используюший только прерывания БИОС из стороннего, а на чём оно изначально написано какая разница.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: B0FEE664  
Дата: 06.10.22 13:35
Оценка:
Здравствуйте, Pyromancer, Вы писали:

P>Вобщем-то написать приложение запускающееся "без всего" это скорее требование к компилятору/линкеру чем к языку. Надо получить на выходе нативный для процессора код, используюший только прерывания БИОС из стороннего, а на чём оно изначально написано какая разница.


Не совсем, если язык интерпретируемый, то в общем случае так не получится.
И каждый день — без права на ошибку...
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 07.10.22 17:19
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Именно. Я не понимаю, что ещё такое "run-time языка".

Дополнительный код, добавляемый компилятором для реализации части механизмов языка.

Я понимаю всё запутанность, с учётом, что компилятор вроде-как и генерирует код и какая разница, что он там нагенерировал больше этого кода. Но смысл в том, что обычный код — это только процессор и память. А код рантайма, обычно ещё выполняет взаимодействие с программным окружением. Мне сложно это сформулировать, что бы кто-то не придрался, потому как границы в целом размыты и я менее критичен доцента в плане выбора языков.

m2l>>А почему это надо ответ простой. Когда мы пишем тоже ядро ОС или драйвер для него, или прочие низкоуровневые штуки — то штатный рантайм языка программирования оказывается неработоспособен. Он-то расчитан на работу с операционной системой, а не на то, что программа сама является операционной системой.

BFE>Это откуда следует?
BFE>У меня такое впечатление, что вы путаете API системы с чем-то ещё. Возьмём, к примеру, функцию fopen — она не будет работать в C если операционная система не имеет файловой системы. Так в чём отличие от C++?

Элементарно. Когда ты, пишешь на С++ и создаешь объект, под него должна быть выделена память, для этого нужен алокатор, алокатор памяти — часть run-time, и чтобы выделить тебе условные 20-байт на объект он сначала дергает API операционной системы, что бы у неё получить эту память. Код драйвера — VirtualAlloc / mmap нету — драйвер не работает. При этом создание объектов — часть языка, "language support library" — по нотации их стандарта С++. В случае Си, тупо нет динамической память, которую должен выделять компилятор (либо он делает это на стеке, либо malloc — которую можно отключить, просто убрав этот заголовочный файл).

Понимаешь? Ты не можешь убрать из С++ создание объектов — это одна из ключевых частей языка. А для их создания нужна "language support library" (тот самый run-time). И его почти нельзя убрать.

m2l>>И второй аспект — рантайм делает скрытую работу, и это усложняет написание кода и не всегда допустимо в принципе.

BFE>Это так, но ведь это совсем другой аспект.
Да, но даже не знаю какой из них важней. В конце концов рантайм можно и свой подставить (пусть и проще выбрать другой язык). А факт скрытой работы останется.


m2l>>Где-нибудь в планировщике, дернутом с высоким IRQL, например нельзя делать какие-то вещи (те же исключения создавать) — и программист должен явно понимать, во что будет откомпилирован код.

BFE>И что? Например, может для C быть запрещена динамическая аллокация памяти. Можно ли при этом писать программу на C? Можно. И на С++ можно. В чём разница? В исключениях? Ну так их можно не использовать.

В этом-то и разница. В С динамическая алокация памяти — отключаемая фича, её наличие не влияет на язык. В С++ — динамическая аллокация памяти — неотъемлемая часть языка (по стандарту, раздел 21 "Language support library").


m2l>>Не хочу убеждать, что это прям супер-надо. Но, если ты с таким не сталкивался, сделай скидку на то, что кому-то может быть надо. И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.


BFE>Меня не надо убеждать — я просто понять хочу. Допустим у нас вообще нет операционной системы. Можно ли без операционной системы сделать запускаемый (статически слинкованый) экзешник на C? Можно, я делал. Можно ли без операционной системы сделать запускаемый экзешник на C++? Такого я не делал — у меня не было такой задачи. Быстрый поиск показывает, что есть операционная система написанная на C++, что, как бы, намекает на.

BFE>Я не вижу причин из-за которых невозможно написать приложение на С++, которое бы не нуждалось в операционной системе. Так что такое "run-time языка"?
Вспоминая Microsoft с их проектом Singularity — где ОС была написана на C# (не то что рантайм, а целый сборщик мусора) — а смысл писать ОС на С++, если можно на Java, Go или Python?

Я не разделяю критичность доцента. Но, просто нужно знать несколько разных языков и иметь опыт написания приложений на них, что бы такие вопросы не возникали.
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 07.10.22 17:26
Оценка:
Здравствуйте, CreatorCray, Вы писали:

m2l>>Просто потому, что RTTI, new/delete, исключения и т.д. и т.п. — это и есть рантайм.

CC>В библиотеках будут только функции-хелперы, и их там будет весьма немного. Существенную часть реализации этих фич будет таки генерировать компилятор.

m2l>>Это буквально часть языка. Всё-таки C++ без new/delete — это не совсем обычный C++?

CC>Надо таки заметить что на самом деле в самих имплементациях new/delete кода с гулькин нос — это тупо врапперы над системным аллокатором.
CC>А вот частью самого языка будет тот код, который генерит компилятор для вызова конструкторов и десттрукторов. И он не библиотечный а именно что генерируемый по месту.
Я бы отнёс этот код к рантайму языка. Но это сугубо ИМХО.

m2l>>Когда мы пишем тоже ядро ОС или драйвер для него, или прочие низкоуровневые штуки — то штатный рантайм языка программирования оказывается неработоспособен.

CC>Да банально берётся заточенный под кернел рантайм. Понятие "штатный" довольно размыто. Есть API+ABI а реализация уже какая захочешь.
Это возможно. Но справедливости ради, в небольших кусочках ОС даже кернет рантайм будет не приемлем и понадобиться асм.

m2l>> Он-то расчитан на работу с операционной системой, а не на то, что программа сама является операционной системой.

CC>Это примерно как std, стандартная либа чтоб можно было сразу что то лабать. Хош пользуйся, хош — нет.
Это часть языка по его спецификации (Language support library & etc).

m2l>>И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.

CC>

Тебя смутило слово "иногда"?
Re[4]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 07.10.22 17:29
Оценка:
Здравствуйте, Marty, Вы писали:

M>C++ без new и delete — тот же самый C++. Просто не используются какие-то библиотеки

Так он и без class и template — тот же самый С++. "Просто не используются какие-то библиотеки"

m2l>>Не хочу убеждать, что это прям супер-надо. Но, если ты с таким не сталкивался, сделай скидку на то, что кому-то может быть надо. И категоричные утверждения, что давайте всё напишем на С++ иногда упираются в отсутствие опыта с другими технологическими стеками.


M>Вот тут не понял твою позицию


доцент чрезмерно критичен. ИМХО в С нет уникальных свойств, делающих его незаменимым любым другим языком. Просто, в некоторых задачах он кажется чуть более предпочтительным остальных языков и не более.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.10.22 18:03
Оценка:
Здравствуйте, m2l, Вы писали:

CC>>Это примерно как std, стандартная либа чтоб можно было сразу что то лабать. Хош пользуйся, хош — нет.

m2l>Это часть языка по его спецификации (Language support library & etc).

И что?
Маньяк Робокряк колесит по городу
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.10.22 19:07
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Мне кажется ты путаешь создание объектов и выделение памяти в куче.

SVZ>Эти действия ортогональны. Сконструировать объект ты можешь на любом куске памяти — на стеке или где-то как-то выделенной, неважно какими средствами.

SVZ>Да, без средств стандартной библиотеки будет некомфортно, но мы без нее столько лет жили и ничего так, программы работали



Некоторые товарищи, типа Тёмчика, плюсы не осилили, но мнение имеют
Маньяк Робокряк колесит по городу
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 07.10.22 21:28
Оценка:
Здравствуйте, Marty, Вы писали:

M>А наш загрузчик, который умеет обновлять прошивку по UART/CAN, занимает до 1 кб/2ух (в зависимости от STMки) — тоже на плюсах написан, опять же — по незнанию


Слово почти такое незаметное?
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.10.22 21:30
Оценка:
Здравствуйте, m2l, Вы писали:

M>>А наш загрузчик, который умеет обновлять прошивку по UART/CAN, занимает до 1 кб/2ух (в зависимости от STMки) — тоже на плюсах написан, опять же — по незнанию


m2l>Слово почти такое незаметное?


Это ты о чем? В твоей простыне вроде его не было, но если и было — то да, оно такое незаметное
Маньяк Робокряк колесит по городу
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 07.10.22 21:32
Оценка:
Здравствуйте, Marty, Вы писали:

M>Классы и шаблоны сами по себе не зависят ни от каких библиотек

new и delete сами по себе не зависят ни от каких библиотек

Ты о чём хочешь поспорить со мной сразу в трех ветках?
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.10.22 21:35
Оценка:
Здравствуйте, m2l, Вы писали:

M>>Классы и шаблоны сами по себе не зависят ни от каких библиотек

m2l>new и delete сами по себе не зависят ни от каких библиотек

m2l>Потому что ты не совсем понимаешь, что такое run-time языка. В твоём примере на С++ мы получим файл со статически слинкованым рантаймом. Просто потому, что RTTI, new/delete, исключения и т.д. и т.п. — это и есть рантайм. Это буквально часть языка. Всё-таки C++ без new/delete — это не совсем обычный C++?



m2l>Ты о чём хочешь поспорить со мной сразу в трех ветках?


Спорить о профнепригодности с профнепригодным?
Маньяк Робокряк колесит по городу
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 08.10.22 13:40
Оценка:
Здравствуйте, Marty, Вы писали:

m2l>>Ты о чём хочешь поспорить со мной сразу в трех ветках?


M>Спорить о профнепригодности с профнепригодным?

Ничего страшного, это пройдёт

Я отвечаю на вопрос B0FEE664 "что такое run-time языка" и какие ограничения могут возникать из-за этого рантайма.
А ты не отвечаешь ни на чей вопрос, а навешиваешь ярлыки и пытаешься оскорбить.

У нас форум вроде чтобы помогать друг друга, а не самоутверждаться? Ну так помоги B0FEE664 разобраться с тем, что такое run-time языка — или не мешайся другим.
Re[5]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 08.10.22 23:41
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Я бы отнёс этот код к рантайму языка.

Его нет в runtime library языка, это код, который компилятор генерит для конструкций языка.

m2l>Но справедливости ради, в небольших кусочках ОС даже кернет рантайм будет не приемлем и понадобиться асм.

Asm надо только там, где нельзя логику выразить средствами языка, например RDMSR. И то в нынешнее время с добавлением интринсиков даже асм стал не нужен.

m2l>Это часть языка по его спецификации

Нет. Всё то, что можно написать на этом же языке, не является частью языка.

m2l>Тебя смутило слово "иногда"?

Меня смутило отстуствие слова "иногда" перед словом "категоричные".
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 09.10.22 07:22
Оценка:
Здравствуйте, m2l, Вы писали:

M>>Классы и шаблоны сами по себе не зависят ни от каких библиотек

m2l>new и delete сами по себе не зависят ни от каких библиотек

Таки надо имплементация определённых функций. Их конечно можно прямо у себя и написать, но всё же.
Тогда как классам и шаблонам не надо вообще ничего со стороны.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 09.10.22 07:22
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Очевидно, ты линковался с минимальным рантаймом под STM32 который был написано не тобой.

Ничо что "рантайм" может быть написан прямо в твоём же коде?
С ним не надо именно линковаться, всё что надо — чтоб линкер хоть где то нашёл нужные ему символы.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 09.10.22 07:22
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Да, без средств стандартной библиотеки будет некомфортно

Надо заметить что стандартная библиотека таки в целом не то чтобы сильно комфортная.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: flаt  
Дата: 09.10.22 07:39
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте, m2l, Вы писали:


m2l>>Понимаешь? Ты не можешь убрать из С++ создание объектов — это одна из ключевых частей языка. А для их создания нужна "language support library" (тот самый run-time). И его почти нельзя убрать.


M>Хм, интересно, как это я пять лет писал под STM32 на плюсах... Вот если бы ты мне раньше рассказал, то я точно бы на плюсах не смог бы писать, пришлось бы на сишечке мучаться...


Вы (или за вас) просто написали этот рантайм (выделение памяти, как минимум).

M>А наш загрузчик, который умеет обновлять прошивку по UART/CAN, занимает до 1 кб/2ух (в зависимости от STMки) — тоже на плюсах написан, опять же — по незнанию


Ну, или можно писать код без динамической памяти, почему нет.
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 09.10.22 08:10
Оценка:
Здравствуйте, CreatorCray, Вы писали:

m2l>>Я бы отнёс этот код к рантайму языка.

CC>Его нет в runtime library языка, это код, который компилятор генерит для конструкций языка.
Если оперировать к исходному тезису про zero-runtime, то, что компилятор нагенерировал лапшу непонятного и непредсказуемого кода для какой-то языковой конструкции — эти инструкции, в том числе, и есть лишний run-time. Понятно, что и С не чисто в опкоды транслируется и там компилятор может ого-го как развернуться. Но предполагается, что из-за простоты (бедности) синтаксиса такого "лишнего" кода в С будет меньше.

m2l>>Но справедливости ради, в небольших кусочках ОС даже кернет рантайм будет не приемлем и понадобиться асм.

CC>Asm надо только там, где нельзя логику выразить средствами языка, например RDMSR. И то в нынешнее время с добавлением интринсиков даже асм стал не нужен.
По идеи, что бы нормально пользоваться интринсиками (на уровне больше копипасты со стек оверфлов) нужно чуть-чуть знать асм. Поэтому чистый .asm будет, вставки или интринсики — я бы сильно одно от другого не отделял.

m2l>>Это часть языка по его спецификации

CC>Нет. Всё то, что можно написать на этом же языке, не является частью языка.
Я здесь имею в виду, в формальном отношении, как часть спецификации языка, описывающей что и как генерировать компилятору.

m2l>>Тебя смутило слово "иногда"?

CC>Меня смутило отстуствие слова "иногда" перед словом "категоричные".
Извиняюсь, поправляюсь:

иногда излишне категоричные
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 09.10.22 08:13
Оценка:
Здравствуйте, CreatorCray, Вы писали:

m2l>>new и delete сами по себе не зависят ни от каких библиотек


CC>Таки надо имплементация определённых функций. Их конечно можно прямо у себя и написать, но всё же.

CC>Тогда как классам и шаблонам не надо вообще ничего со стороны.

Не помню на вскидку почему, но кажется чуть-чуть сложней чем просто свои new/delete.
Но в целом, ты прав, можно вместо дефолтного run-time языка подсунуть свой и писать на чём угодно для чего угодно. Важен программист, а не язык
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 09.10.22 08:14
Оценка:
Здравствуйте, CreatorCray, Вы писали:

m2l>>Я лишь попытался объяснить что такое рантайм в С++ и зачем он нужен.

CC>У тебя не получилось.

Объясни лучше
Re[6]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 09.10.22 08:19
Оценка:
Здравствуйте, CreatorCray, Вы писали:

m2l>>Элементарно. Когда ты, пишешь на С++ и создаешь объект, под него должна быть выделена память, для этого нужен алокатор

CC>Нет, не нужен. Потому как объект можно разместить на стеке, или в глобальном namespace.
CC>Так что вся дальнейшая теория пошла прахом, переделывай.

Ну да можно. Так ведь можно вообще писать на той части языка, что является общей между С и С++ — собираешь потом как С код, вот и всё.


m2l>>чтобы выделить тебе условные 20-байт на объект он сначала дергает API операционной системы

CC>Ващета элементарнейше делается наколенный аллокатор который не дёргает из OC вообще ничего. Но тем не менее умеет выделять память в заданных на этапе компиляции рамках.

Ну да. Всегда можно заменить рантайм на свой, который делает как тебе надо. И что?

m2l>>В С++ — динамическая аллокация памяти — неотъемлемая часть языка

CC>И такиж нет.

Я выше приводил пункты стандарта. Поэтом опровергай тоже там с указанием пунктов или страниц из спецификации.

m2l>>Вспоминая Microsoft с их проектом Singularity — где ОС была написана на C# (не то что рантайм, а целый сборщик мусора) — а смысл писать ОС на С++, если можно на Java, Go или Python?

CC>Даже дом можно построить из навоза (и таки реально строили), вот только нафига?
CC>Можно даже на brainfuck написать концепт, вот только вопрос в жизнеспособности получившейся "модели человека, полностью неудовлетворённого" (tm)

Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 09.10.22 08:57
Оценка:
Здравствуйте, Marty, Вы писали:

M>Строки вроде хидер-онли.


Нет. Они без динамической памяти не работают. И за ней они обратятся к рантайму.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 09.10.22 10:15
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, Kernan, Вы писали:


K>>Очевидно, ты линковался с минимальным рантаймом под STM32 который был написано не тобой.

CC>Ничо что "рантайм" может быть написан прямо в твоём же коде?
Написание такого кода это всегда редкостный гемор. С одной стороны, нет нормальных гайдов как это делать, с другой — нет нормальных инструментов.
CC>С ним не надо именно линковаться, всё что надо — чтоб линкер хоть где то нашёл нужные ему символы.
Не всё так просто. Надо ещё правильно размещать секции кода, например, часть инициализации в начале. Могу соврать, конечно, т.к. bare metal занимался очень давно и были это это STM-ки, а SoC-и с довольно нетривиальной инициализацией.
Sic luceat lux!
Re[10]: IT-батл - доцент МГУ vs студент Rust-офил
От: ути-пути Россия  
Дата: 09.10.22 13:26
Оценка:
Здравствуйте, Marty, Вы писали:

M>Переопределить new/delete, и всё, никакой рантайм не нужен.


Так динамическая память вообще не нужна. Когда у тебя оперативки 128, накладные расходы на кучу слишком заметны.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: 4058  
Дата: 09.10.22 18:33
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.


И явно не лучше. Весь низкий уровень там всё-равно на ASM и C (который не ++). Рантайм и прочий сопутствующий обвес на расширенном (под эту задачу) C# — Sing.
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 09.10.22 21:12
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>>>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.


4>>И явно не лучше. Весь низкий уровень там всё-равно на ASM и C (который не ++). Рантайм и прочий сопутствующий обвес на расширенном (под эту задачу) C# — Sing.


m2l>Если уйти немного в оффтоп, я бы посмотрел на это с другой стороны. Всеобъемлющее управление ресурсами, которое требуется от ОС, предполагает тесной работы с оборудованием. И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку. Поэтому простые С и Асм, в которых довольно очевиден эффект от кода, можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО. И, сугубо ИМХО, выглядят довольно разумным выбором.


И C++ и тут выглядит разумным выбором. Он умеет всё то же, что и простая сишечка, и вдобавок — ещё кучу всего, что сишечка не умеет. Ну и плюсовый оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах, чем сишечка, у которой всё через жопуvoid*
Маньяк Робокряк колесит по городу
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 04:15
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Если оперировать к исходному тезису про zero-runtime, то, что компилятор нагенерировал лапшу непонятного и непредсказуемого кода для какой-то языковой конструкции — эти инструкции, в том числе, и есть лишний run-time.

Да нифига не "непонятный и непредсказуемый" и точно не "лишний".
Это и есть та самая функциональность new/delete — вызов конструкторов/деструкторов, если они есть конечно.

m2l>Но предполагается, что из-за простоты (бедности) синтаксиса такого "лишнего" кода в С будет меньше.

Там нет ничего лишнего.

m2l>По идеи, что бы нормально пользоваться интринсиками (на уровне больше копипасты со стек оверфлов) нужно чуть-чуть знать асм. Поэтому чистый .asm будет, вставки или интринсики — я бы сильно одно от другого не отделял.

И таки интринсики бывают сильно лучше сырого асма. Потому как компилятор дальше сам и регистры разрулит и даже попадалось что некоторые SSE интринсики не 1:1 в асм генерятся а более оптимально под заданную платформу.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 04:15
Оценка:
Здравствуйте, Kernan, Вы писали:

CC>>Ничо что "рантайм" может быть написан прямо в твоём же коде?

K>Написание такого кода это всегда редкостный гемор.
Да ну. Там довольно немного надо для подавляющего большинства вещей.

K>Надо ещё правильно размещать секции кода, например, часть инициализации в начале.

Это ж #pragma section разруливается
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 04:15
Оценка:
Здравствуйте, ути-пути, Вы писали:

УП>И что, там можно было new/delete использовать? Или исключения? RTTI?

Это всё далеко не главные фичи С++
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 04:15
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Объясни лучше

Рантайм это мелкая вспомогательная либа.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 04:15
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Ну да можно. Так ведь можно вообще писать на той части языка, что является общей между С и С++ — собираешь потом как С код, вот и всё.

Нет, от С++ мне надо его фичи, которых нет в С, те же RAII и шаблоны. А также классы, все виды наследований и т.п.
Ничего из этого не требует аллокатор.

CC>>Ващета элементарнейше делается наколенный аллокатор который не дёргает из OC вообще ничего.

m2l>Ну да. Всегда можно заменить рантайм на свой, который делает как тебе надо. И что?
И то, что твоя фиксация на аллокаторе не имеет отношения к С++

m2l>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.

Схренали это мы вдруг "убедились" если оно не взлетело?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 10:11
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>И высокоуровневые абстракции в этом плане не помогают переиспользованием кода и т.д., а скорей создают лишнюю когнитивную нагрузку.

Ты просто несколько витиевато сказал пронафталиненную истину о том, что тупых к системной разработке подпускать не стоит.

m2l> Поэтому простые С и Асм, в которых довольно очевиден эффект от кода

И которые куда сильнее требуют аккуратности в написании кода просто потому что лишены любых защитных механизмов и на 110% полагаются что пишущий отслеживает все возможные ветки исполнения кода.

m2l> можно аккуратно предположить, требуют меньшей квалификации для того же качества ПО.

Категорически нет.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: IT-батл - доцент МГУ vs студент Rust-офил
От: m2l  
Дата: 10.10.22 18:20
Оценка:
Здравствуйте, CreatorCray, Вы писали:

m2l>>Тем не менее, мы все убедились, что и C# для этой задачи подходит ничуть не хуже C++ или С.

CC>Схренали это мы вдруг "убедились" если оно не взлетело?

Ну ОС на С++ тоже как-бы не взлетели... Интересно почему
Re[11]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 18:34
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Они умеет всё то же, что и простая сишечка++, и вдобавок — ещё кучу всего, что сишечка++ не умеет.

Дык нет и нет

m2l>Ну и * оптимизатор — он гораздо лучше может оптимизировать

Может быть и может, но оптимизирует ли?

m2l>зная информацию о типах процессоров (JIT компиляция наше всё)

Которая до сих пор сосёт.

m2l>чем сишечка++, у которой всё через жопуvoid* и vtable

Ты банально не умеешь в С++
Это уже очевидно.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: IT-батл - доцент МГУ vs студент Rust-офил
От: CreatorCray  
Дата: 10.10.22 18:34
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Ну ОС на С++ тоже как-бы не взлетели... Интересно почему

Это какие например?
В кернеле современных ОС, кроме разишо луникса, где главный пЫнгвин упёрся рогом по своим религиозным причинам, есть дофига С++ кода.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: IT-батл - доцент МГУ vs студент Rust-офил
От: wl. Россия  
Дата: 10.10.22 19:20
Оценка:
Здравствуйте, CreatorCray, Вы писали:

m2l>>Ну ОС на С++ тоже как-бы не взлетели... Интересно почему

CC>Это какие например?

Symbian? её, конечно, Microsoft убила, но на закате там ввели слой совместимости с Posix, слишком уж специфичные там были системные c++ классы
Re[11]: IT-батл - доцент МГУ vs студент Rust-офил
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 11.10.22 17:46
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>И Python/Java/C#/Rust/Haskel/JavaScript и тут выглядит разумным выбором. Они умеет всё то же, что и простая сишечка++, и вдобавок — ещё кучу всего, что сишечка++ не умеет. Ну и * оптимизатор — он гораздо лучше может оптимизировать, зная информацию о типах процессоров (JIT компиляция наше всё), чем сишечка++, у которой всё через жопуvoid* и vtable


m2l>


Ты это на серъёзных щах написал?
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.