![]() |
Показать все 79 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Почему мы знаем С++, но пишем движки по-прежнему на "Си с классами" (https://hlfx.ru/forum/showthread.php?threadid=4807)
Почему мы знаем С++, но пишем движки по-прежнему на "Си с классами"
Любопытная статья на тему "C vs C++"
http://eax.me/c-vs-cpp/
Особенно рекомендуется тем, кто не знает, чем С++ отличается от С. Вернее, знает по тому что пишут в учебниках - про то, что в С++ есть классы и инкапсуляция, а в С нет, ну короче вот это всё враньё.
Те, кто, например, знает, что сугубо классовый и инкапсулированный Direct3D можно свободно использовать в С, узнают/вспомнят из статьи, чем опасно использование С++ в реалтайм-программах типа игровых движков.
Ну а Jackhammer, в котором некоторые диалоги открываются по полсекунды, отлично иллюстрирует, во что это в итоге выливается. И если редактору это ещё можно простить, то движку - уже нет.
А я, в свою очередь, который уже год при разработке Volatile балансирую на острие ножа - с одной стороны, пытаясь совмещать фичи С++, упрощающие написание, compile-time проверку, понимание и поддержку кода, с простотой, производительностью и низкоуровневым доступом (там где он нужен) языка С. Но, конечно, мало кто это в итоге оценит - народу куда важнее красочные шейдеры.
Личный опыт по теме всячески приветствуется.
__________________
XaeroX
Ты читал Ben Klemens 21st Century C? Если читал, что про неё скажешь?
Там довольно доступная глава как раз про реализацию ООП-фишек в ANSI C.
nemyax
Неа, не читал. Поделишься ссылкой на эту главу?
__________________
Лучше работать на старом движке, чем на новом. Ту же самую дилемму приперли сюда, что лучше, кто хуже. Оба хуже - это однозначно. Лучших никогда не бывает. Приходится искать компромисс, между тем или иным, а не сравнивать как тупой блогекомментартор из yt или vk или fb.
http://www.codenet.ru/progr/cpp/ccpp.php
http://www.linux.org.ru/forum/development/311369
https://habrahabr.ru/post/262461/
http://www.cyberforum.ru/holywars/thread46728.html
https://toster.ru/q/125143
Авторов Мадженты мнение услышать было бы любопытно.
Блог вроде интересный, добавил в закладки
code:
void func() { FILE* file = fopen(....); scope(exit) fclose(file); //do stuff. }
__________________
__________________
__________________
За попытки переложить менеджмент памяти на сторонние библиотеки, умные указатели и встроенные средства языка погромисту надо отрубать руки. Память надо уметь выделять самому. Хапнул большой кусок и вручную там разместил всё нужное. А потом удалил за один вызов. Вот как надо.
Тогда фргаментация стремится к нулю.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
nemyax
Да в сорцах даркплейса же.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Дядя Миша
Чего ж там тормозного? Там же ровер есть.
Если сильная фрагментация - то да, ровер будет часто промахиваться. А если дефрагментировать клумпингом - то это будет отнимать время.
__________________
Ну вот аллокация в пулы - довольно тормозная штука. Правда всплывает это не сразу. Помнится советский кодер в первоначальной реализации своей травы аллокал каждый кустик по отдельности. И всё было в порядке, память не дефргаментировалась. Но аллокация какой-нибудь сотни тысяч кустиков занимала порядка 60-90 секунд.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Никогда не писал на C++, всегда писал только на "Си с классами". А для всего остального есть MasterCard C#.
Сабж: потому что Си++ и шаблоны вырвиглазны. И, если не трахаться с парсингом сайтиков и 1С, процентов 60 этого не особо нужны.
Если бы не строки. Эти сраные строки. Эти мерзкие сраные строки.
Вообще, вопрос этого треда кто-то (мб даже XaeroX) закрывал год назад, приводя аргументом статью Страуса про то что Си устарел.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
>вечнодырявыми виртуальными машинами
оценки есть?
__________________
http://www.moddb.com/mods/monorail-quest
__________________
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
>Ты меня троллить собрался?
Нет, мне интересно. Если _наивно_ рассмотреть вероятности -- то получается, что в коде с GC ошибка менее вероятна (тем более, что у CG автоматически больше тестеров чем у твоего кода). Ты говоришь что это не так, вероятно вследствие каких то дыр в абстрации CG. Приведи примеры что бы это было очевидно, или (хотя бы) понятно.
>Ждава по дырности идёт за флэшом.
Дыры были именно в GC, или в одной из уймы функций стандартной библиотеки?
__________________
http://www.moddb.com/mods/monorail-quest
thambs я вообще _что-то_ коворил про GC?
Добавлено 20-07-2016 в 22:33:
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Сборщик мусора - это однозначно тормозная вещь, которая может начать собирать мусор в самый неподходящий момент. В этом плане мемпулы куда лучше, т.к. они управляются погромистом. В принципе если скилл достаточно высок, то можно и собственную кучу написать, как Кармак
Вообщем я за максимально простые методы управления памятью - так быстрее. Все эти смарт-поинтеры и сборщики мусора - не более чем попытка переложить ответственность и нежелание учиться работать с памятью.
А с памятью вообще на удивление мало кто умеет работать и учиться нехотят, боятся экзепшен поймать. Дык.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Сейчас посмотреть, даже говнять не надо. Написал в бложике пост в поддержку единой россии и публикация шедро оплачена.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Crystallize куча она и есть куча. Вот смотрел цельнометаллическую оболочку? Там был рядовой Куча.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Он был неправильная куча. Pyle вместо heap.
>тормозная вещь
а если скорость не играет роли?
__________________
http://www.moddb.com/mods/monorail-quest
Crystallize
Да нет никаких мемпулов в системе, есть process heap.
А разработчики свои собственные менеджеры памяти называют как им заблагорассудится. Хоть в честь пони, хоть в честь пикачу.
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Навряд ли кучу полностью разворуют - вон она какая большая. Что-нибудь да останется
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
>Всё равно надо уметь с памятью работать
Ну это-то естественно.
Мне просто непонятна позиция тов. Икс-Вайдера, который ругает, наверное, все высокоуровневые языки. Вроде-же разумно, что если нужна "арифметика" -- делаем всё вручную по хардкору, если нужна "бухгалтерия" -- пускай низкоуровневыми вещами автоматика занимается.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Какой еще заговор. Причина большинства, так называемых "заговоров", равно как и настоящих заговоров - банальная жадность и инстинктивное стремление к доминированию. Виртуальные машины пихают, потому что порог вхождения намного ниже, тормоза компенсируют новым железом, но рано или поздно мы упрёмся в какой-нибудь физический предел и всё это закончится.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Немножко оффтоп:
https://habrahabr.ru/company/infopulse/blog/306328/
__________________
XaeroX Это как в политике?
Crystallize
В смысле?
__________________
XaeroX ну типа научился сидеть в парламенте и толкать речи, а больше ничего и не умеешь. Аналогично, научился писать на плюсах, а переучиться уже не сможешь.
Crystallize нет, это значит "назад только в труп-мешке".
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~
Угу, и я о том же.
Как сейчас в рекламе модно говорить? "Пожалуй, магазин номер один в Новосибирске". И не подкопаешься: пожалуй, да, а пожалуй и нет.
__________________
XaeroX кстати, слово "отличными" означает и "отличными от нуля". Так что - не прикопаешься.
Кстати, внезапно мне подумалось: я пишу на Си с классами потому что оно сочетает читабельность, простоту, модель ООП и скорость выполнения. Автор ЦПП пишет, что копирование строки в Си++ отличается от копирования строки в Си аж в несколько листов кода. Он подразумевает все проверки, терминирование, выделение памяти и пр.пр.пр. Только, вот, мне strncpy() при грамотном подходе хватает. Другое дело - когда надо много всяких хреней склеивать, но нечасто (пример - код MOTD).
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~
Копирование строки в плюсах - это вызов оператора копирующего присваивания std::string:
std::string s2 = s1;
А этот оператор такой же библиотечный, как и strcpy, только лишь
__________________
>Си
>читабельность
громкий смех в зале, местами переходящий в истерику.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
XaeroX
не, я исключительно про c-style синтаксис -- не про семантику, а исключительно про восприятие глазами. у шаблонов, конечно, всё ещё нечитабельней.
>давно не ковырялся
вот недавно поковырялся -- и у меня до сих пор БУГУРТ.
__________________
http://www.moddb.com/mods/monorail-quest
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
http://www.stolyarov.info/books/cppintro
вот эту книжку Столярова не читали? мне очень нравится.
14 минут убил на попытки скопировать цитату из гребучего Окуляра под прыщами. Ничего ен вышло.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
XaeroX неа. Давным давно уже эти потребности софтом перекрыты. Ну если конечно не имеются в виду специфичные среды, которые относятся непосредствнно к разработке чего-либо, а непосредственно к нуждам бизнеса. Притом оно зачастую еще и халявное, от того же гугла.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
ну я про них и говорю, давно уже там все потребности перекрыты. А задачи для погромистов - адапатация к местным условиям, не более того. Вы например в курсе, что тот же 1С не пользуется популярностью за рубежом?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~ ты у нас брокер из 90-х?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Если не ошибаюсь, компьютеризация биржи началась в начале 80х, возможно даже раньше.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 22:21. | Показать все 79 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024