HLFX.Ru Forum
Показать все 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)


Отправлено XaeroX 18-07-2016 в 06:33:

Почему мы знаем С++, но пишем движки по-прежнему на "Си с классами"

Любопытная статья на тему "C vs C++"
http://eax.me/c-vs-cpp/

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

А я, в свою очередь, который уже год при разработке Volatile балансирую на острие ножа - с одной стороны, пытаясь совмещать фичи С++, упрощающие написание, compile-time проверку, понимание и поддержку кода, с простотой, производительностью и низкоуровневым доступом (там где он нужен) языка С. Но, конечно, мало кто это в итоге оценит - народу куда важнее красочные шейдеры.

Личный опыт по теме всячески приветствуется.

__________________

xaerox on Vivino


Отправлено nemyax 18-07-2016 в 11:00:

XaeroX
Ты читал Ben Klemens 21st Century C? Если читал, что про неё скажешь?
Там довольно доступная глава как раз про реализацию ООП-фишек в ANSI C.


Отправлено XaeroX 18-07-2016 в 11:05:

nemyax
Неа, не читал. Поделишься ссылкой на эту главу?

__________________

xaerox on Vivino


Отправлено GioHAUS0n 18-07-2016 в 11:09:

Лучше работать на старом движке, чем на новом. Ту же самую дилемму приперли сюда, что лучше, кто хуже. Оба хуже - это однозначно. Лучших никогда не бывает. Приходится искать компромисс, между тем или иным, а не сравнивать как тупой блогекомментартор из 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


Отправлено Cybermax 18-07-2016 в 11:12:

Авторов Мадженты мнение услышать было бы любопытно.


Отправлено nemyax 18-07-2016 в 11:57:

Цитата:
GioHAUS0n писал:
Лучше работать на старом движке, чем на новом.

C11 сложно назвать старым.


Отправлено FreeSlave 18-07-2016 в 18:30:

Блог вроде интересный, добавил в закладки

Цитата:
Однако большинство людей под С++ понимают так называемый «современный C++», со счетчиками ссылок, классами, исключениями, шаблонами, лямбдами, STL, Boost, и так далее. То есть, тот C++, на котором вы пишите, почти как на Java, в котором никогда не встречаются обычные указатели, и вот это все. Если вам очень важна скорость, то писать на таком C++ вы не сможете. Если же он вам подходит, то лучше взять Java, Go или любой другой высокоуровневый язык по вкусу.


Т.е. тем, кто хочет писать код с шаблонами и исключениями, автор предлагает использовать язык, в котором нет ни того, ни другого? (это про Go)

В зависимости от задачи, может пригодиться разное подмножество C++, нужно просто уметь выбирать и не тащить всё подряд. Я думаю, для задач алгоритмических, C++ с шаблонами подходит (но без ООП головного мозга). В самом деле, не реализовывать же для каждого типа quicksort, ассоциативные и динамические массивы. Мне, признаться, не особо понравилось этим заниматься, когда я писал курсовую, где требованием было писать на Си, ибо по сути пришлось дублировать код.

В комментах к статье вот упомянули Eigen, который может посоревноваться с blas засчёт того, что работает с матрицами на уровне целых выражений.

RAII очень уместен тогда, когда время жизни ресурса заранее известно. Нет никакого удовольствия в goto Error; или дублировании кода очистки во всех точках выхода. Умный указатель на каждый чих - конечно плохая практика, но такой стиль и не является рекомендуемым. Тут я бы хотел упомянуть про такую фичу языка D как scope(exit), которая позволяет писать вот такой код:

code:
void func() { FILE* file = fopen(....); scope(exit) fclose(file); //do stuff. }


Никаких оберток, ни конструкторов, ни деструкторов. В Си есть подобная штука, но только как расширение компиляторов.

Если бы в Си были шаблоны и подобный RAII (но закрепленный в стандарте), то надобность в C++ может быть и вовсе отпала. Что до ООП, то его при надобности можно и на Си писать.

Остаются ещё исключения - штука настолько спорная, что даже в стандартной библиотеке C++ так и не решили, нужно их кидать или нет, из чего родилась функция std::ios::exceptions. Для меня большим минусом исключений является то, что они не являются частью объявления функции. Соответственно, не знаешь чего ожидать. А когда в дело вступают наследование и шаблоны, всё становится ещё мутнее.


Отправлено XaeroX 18-07-2016 в 18:46:

Цитата:
FreeSlave писал:
Т.е. тем, кто хочет писать код с шаблонами и исключениями, автор предлагает использовать язык, в котором нет ни того, ни другого?

Он предлагает Java.
Java - как Греция, там всё есть.
Цитата:
FreeSlave писал:
В самом деле, не реализовывать же для каждого типа quicksort, ассоциативные и динамические массивы.

В смысле? Зачем ассоциативные массивы для quicksort?
Цитата:
FreeSlave писал:

RAII очень уместен тогда, когда время жизни ресурса заранее известно.

В си можно реализовать RAII и без gcc-шных расширений. Через динамический массив структур, хранящих адреса и деструкторы, с соответствующими вызовами-обёртками. Иплементацию в последнем случае можно скрыть, чтобы не мозолила глаза. Но выглядеть после С++ будет, разумеется, довольно дико и непривычно.
Цитата:
FreeSlave писал:
Остаются ещё исключения - штука настолько спорная

Есть же raise/signal? Или важен именно факт передачи доп. информации в виде объекта исключения?

__________________

xaerox on Vivino


Отправлено FreeSlave 18-07-2016 в 19:12:

Цитата:
XaeroX писал:
В смысле? Зачем ассоциативные массивы для quicksort?

Не знаю. Я о таком и не писал.

XaeroX, о каком raise речь? А если под signals имеются в виду POSIX-сигналы, то у них же и назначение иное.

Я наверно не совсем внятно выразился. Я не считаю, что наличие исключений, обязательно для "улучшенного" Си. Наоборот, выразил свою неуверенность в этом вопросе.


Отправлено XaeroX 18-07-2016 в 19:23:

Цитата:
FreeSlave писал:
Не знаю. Я о таком и не писал

Цитата:
FreeSlave писал:
В самом деле, не реализовывать же для каждого типа quicksort, ассоциативные и динамические массивы.

Извини, видимо, не заметил запятую и прочитал совсем другое по смыслу.
Но я не вижу проблемы делать шаблоны на С - с использованием "магического" типа void*. Та же qsort так реализована и работает с любыми типами (при условии последовательности и непрерывности области памяти). Имхо, единственное достоинство шаблонов С++ - это compile-time проверки.
Цитата:
FreeSlave писал:
А если под signals имеются в виду POSIX-сигналы, то у них же и назначение иное.

Ну там можно и свои.
Ещё есть вариант с setjmp/longjmp.
Ну MS-specific __try/__except/__finally.

__________________

xaerox on Vivino


Отправлено FreeSlave 18-07-2016 в 19:31:

Цитата:
XaeroX писал:
Но я не вижу проблемы делать шаблоны на С - с использованием "магического" типа void*. Та же qsort так реализована и работает с любыми типами


Да, есть такое. И так реализованы многие алгоритмы в сторонних библиотеках. Но это подразумевает лишние разыменования, как указателя на функцию, так и данных по указателю на void. В контексте производительности это не очень хорошо. Шаблоны позволяют сгенерировать нужный код без таких жертв.


Отправлено nemyax 18-07-2016 в 19:44:

Цитата:
FreeSlave писал:
Шаблоны позволяют сгенерировать нужный код без таких жертв.

Можно ведь в простых случаях и макросами обойтись.


Отправлено XaeroX 18-07-2016 в 20:41:

Цитата:
FreeSlave писал:
Но это подразумевает лишние разыменования, как указателя на функцию, так и данных по указателю на void. В контексте производительности это не очень хорошо.

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

__________________

xaerox on Vivino


Отправлено Дядя Миша 19-07-2016 в 18:34:

За попытки переложить менеджмент памяти на сторонние библиотеки, умные указатели и встроенные средства языка погромисту надо отрубать руки. Память надо уметь выделять самому. Хапнул большой кусок и вручную там разместил всё нужное. А потом удалил за один вызов. Вот как надо.
Тогда фргаментация стремится к нулю.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 19-07-2016 в 18:42:

Цитата:
Дядя Миша писал:
Вот как надо.

Или мемклумпинг.

__________________

xaerox on Vivino


Отправлено nemyax 19-07-2016 в 18:54:

Цитата:
XaeroX писал:
мемклумпинг

Где такое описано?


Отправлено XaeroX 19-07-2016 в 18:59:

nemyax
Да в сорцах даркплейса же.

__________________

xaerox on Vivino


Отправлено Дядя Миша 19-07-2016 в 19:10:

Цитата:
XaeroX писал:
Или мемклумпинг.

Ну и пулы тоже дело хорошее, да. Но я последние годы стараюсь обходится вообще без менеджера, так интереснее. Только malloc\free только хардкор.
Пулы это на начальном этапе хорошо, они между прочим довольно тормозные в плане аллокации.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 19-07-2016 в 19:17:

Дядя Миша
Чего ж там тормозного? Там же ровер есть.
Если сильная фрагментация - то да, ровер будет часто промахиваться. А если дефрагментировать клумпингом - то это будет отнимать время.

__________________

xaerox on Vivino


Отправлено Дядя Миша 19-07-2016 в 19:28:

Ну вот аллокация в пулы - довольно тормозная штука. Правда всплывает это не сразу. Помнится советский кодер в первоначальной реализации своей травы аллокал каждый кустик по отдельности. И всё было в порядке, память не дефргаментировалась. Но аллокация какой-нибудь сотни тысяч кустиков занимала порядка 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'


Отправлено Government-Man 19-07-2016 в 21:16:

Никогда не писал на C++, всегда писал только на "Си с классами". А для всего остального есть MasterCard C#.


Отправлено ~ X ~ 20-07-2016 в 07:45:

Сабж: потому что Си++ и шаблоны вырвиглазны. И, если не трахаться с парсингом сайтиков и 1С, процентов 60 этого не особо нужны.
Если бы не строки. Эти сраные строки. Эти мерзкие сраные строки.

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

Цитата:
Дядя Миша писал:
За попытки переложить менеджмент памяти на сторонние библиотеки, умные указатели и встроенные средства языка погромисту надо отрубать руки. Память надо уметь выделять самому. Хапнул большой кусок и вручную там разместил всё нужное. А потом удалил за один вызов. Вот как надо.

+1
счас понабегут тхамбсы с криками "в 21 веке никто не обязан уметь выделять память"

Цитата:
FreeSlave писал:
Если же он вам подходит, то лучше взять Java, Go или любой другой высокоуровневый язык по вкусу.

Ага, ага И другие гнидогадоидные языки с вечнодырявыми виртуальными машинами по 200МБ в дистрибе. И попробуй только не обновись - сразу в очередную дыру тебя и отымеют.

Цитата:
nemyax писал:
Можно ведь в простых случаях и макросами обойтись.

Почитай VGUI.h @34 - персональное обращение вальве к тебе.

Цитата:
Дядя Миша писал:
Ну вот аллокация в пулы - довольно тормозная штука. Правда всплывает это не сразу. Помнится советский кодер в первоначальной реализации своей травы аллокал каждый кустик по отдельности. И всё было в порядке, память не дефргаментировалась. Но аллокация какой-нибудь сотни тысяч кустиков занимала порядка 60-90 секунд.

Удивительно, но я нарвался на такое г-но при аллокации вейпойнтов дял ботов. Продолжалось это не одну минуту. Тут 100% есть какой-то подвох. Кто виноват - компилятор, рантайм, ОСь - ХЗ. Но бывает, что на ровном месте то работает, то - нет.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 20-07-2016 в 07:53:

Цитата:
~ X ~ писал:
если не трахаться с парсингом сайтиков и 1С

А как же деньги зарабатывать?
Цитата:
~ X ~ писал:
И попробуй только не обновись - сразу в очередную дыру тебя и отымеют.

Полагаю, что в твоём С/С++ коде дыр будет больше, чем в целой JVM.
Просто её все желающие ковыряют, в отличие от любительских прог.
Цитата:
~ X ~ писал:
в 21 веке никто не обязан уметь выделять память

Не выделять, а высвобождать.
Эпоха указателей, которые умнее программиста, фиг ли.

Добавлено 20-07-2016 в 13:53:

Цитата:
Government-Man писал:
C#

О г-споди...

__________________

xaerox on Vivino


Отправлено nemyax 20-07-2016 в 08:15:

Цитата:
~ X ~ писал:
Почитай VGUI.h @34 - персональное обращение вальве к тебе.

Цитата:
They are tools of satan.

Прям как покемоны.


Отправлено Government-Man 20-07-2016 в 13:34:

Цитата:
XaeroX писал:
О г-споди...


А чё нормальный язык.
У нас на раёне вон все посоны на нем пишут.


Отправлено pRoxxx 20-07-2016 в 13:42:

Цитата:
Дядя Миша писал:
Ну и пулы тоже дело хорошее, да. Но я последние годы стараюсь обходится вообще без менеджера, так интереснее. Только malloc\free только хардкор.
Пулы это на начальном этапе хорошо, они между прочим довольно тормозные в плане аллокации.

Я тоже жеж так хардкорил, пока мем лики не полезли изо всех щелей. (=

Добавлено 20-07-2016 в 16:42:

Цитата:
Дядя Миша писал:
За попытки переложить менеджмент памяти на сторонние библиотеки, умные указатели и встроенные средства языка погромисту надо отрубать руки. Память надо уметь выделять самому. Хапнул большой кусок и вручную там разместил всё нужное. А потом удалил за один вызов. Вот как надо.
Тогда фргаментация стремится к нулю.

Кстати да, впервые с этними умными указателями встретился в УЕ4 и они меня уж жутко бесят.


Отправлено thambs 20-07-2016 в 14:31:

>вечнодырявыми виртуальными машинами
оценки есть?

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено XaeroX 20-07-2016 в 14:34:

Цитата:
Government-Man писал:
У нас на раёне вон все посоны на нем пишут.

Ну если на раёне все посоны - то это, конечно, важный критерий.
Цитата:
pRoxxx писал:
они меня уж жутко бесят.

Чем?

__________________

xaerox on Vivino


Отправлено pRoxxx 20-07-2016 в 14:59:

Цитата:
XaeroX писал:


Чем?

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


Отправлено ~ X ~ 20-07-2016 в 15:11:

Цитата:
thambs писал:
оценки есть?

Ты меня троллить собрался? Ждава по дырности идёт за флэшом.

Цитата:
XaeroX писал:
Полагаю, что в твоём С/С++ коде дыр будет больше, чем в целой JVM.

Ты плохо меня знаешь!\0\0\0\0\0\0\0\0\0\0\0\0\0\00\0\0\0\0

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 20-07-2016 в 15:16:

Цитата:
pRoxxx писал:
тем что сборщик мусора может высвободить твою память, а ты об этом и не узнаешь

Но если ты что-то выбросил в мусорку, какая уже разница, когда его вынесут?
Цитата:
~ X ~ писал:
Ты плохо меня знаешь!

Кто мне полгода назад доказывал, что любой код - быдлокод, а любой кодер - быдлокодер?

__________________

xaerox on Vivino


Отправлено pRoxxx 20-07-2016 в 15:29:

Цитата:
XaeroX писал:
Но если ты что-то выбросил в мусорку, какая уже разница, когда его вынесут?

Ну в УЕ4 сборщик не трогает память пока на него ссылаються хоть один указатель, казалось бы всё ок, только что бы указатель считался указателем. Он должен быть помечен как UPROPERTY() перед объявлением. А UPROPERTY можно задать только для свойств класса которые являются наследниками UObject.
Короч, для меня это лишний геморой, думать про сборщика мусора лишний раз, удалит он когда надо, или не удалит когда не надо. Мне легче самому оторвать кусок, и когда он мне не нужен освободить его.


Отправлено thambs 20-07-2016 в 15:46:

>Ты меня троллить собрался?
Нет, мне интересно. Если _наивно_ рассмотреть вероятности -- то получается, что в коде с GC ошибка менее вероятна (тем более, что у CG автоматически больше тестеров чем у твоего кода). Ты говоришь что это не так, вероятно вследствие каких то дыр в абстрации CG. Приведи примеры что бы это было очевидно, или (хотя бы) понятно.
>Ждава по дырности идёт за флэшом.
Дыры были именно в GC, или в одной из уймы функций стандартной библиотеки?

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено ~ X ~ 20-07-2016 в 19:33:

thambs я вообще _что-то_ коворил про GC?

Добавлено 20-07-2016 в 22:33:

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 21-07-2016 в 16:37:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 21-07-2016 в 16:47:

Цитата:
Дядя Миша писал:
нежелание учиться работать с памятью.

Времена сейчас такие - кто учится, тот без денег сидит.
А кто научился говнять по-быстрому, уже давно неплохо зарабатывает.

__________________

xaerox on Vivino


Отправлено Дядя Миша 21-07-2016 в 17:26:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 22-07-2016 в 03:22:

Цитата:
Дядя Миша писал:
кучу

А чей это перевод?

Цитата:
Дядя Миша писал:
А с памятью вообще на удивление мало кто умеет работать и учиться нехотят, боятся экзепшен поймать. Дык.

Открой курсы.


Отправлено Дядя Миша 22-07-2016 в 06:13:

Crystallize куча она и есть куча. Вот смотрел цельнометаллическую оболочку? Там был рядовой Куча.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено pRoxxx 22-07-2016 в 07:34:

Цитата:
Дядя Миша писал:
Crystallize куча она и есть куча. Вот смотрел цельнометаллическую оболочку? Там был рядовой Куча.

Долго он правда не прожил, рядовой всмысле. (=


Отправлено nemyax 22-07-2016 в 08:11:

Он был неправильная куча. Pyle вместо heap.


Отправлено thambs 22-07-2016 в 09:24:

>тормозная вещь
а если скорость не играет роли?

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено Crystallize 22-07-2016 в 09:38:

Цитата:
Дядя Миша писал:
куча она и есть куча. Вот смотрел цельнометаллическую оболочку? Там был рядовой Куча.

Просто мне кажется ты путаешь pile и pool.

Цитата:
nemyax писал:
Он был неправильная куча. Pyle вместо heap.

Но речь-то про мемпулы а не про "мемхипы".


Отправлено XaeroX 22-07-2016 в 10:29:

Crystallize
Да нет никаких мемпулов в системе, есть process heap.
А разработчики свои собственные менеджеры памяти называют как им заблагорассудится. Хоть в честь пони, хоть в честь пикачу.

__________________

xaerox on Vivino


Отправлено Дядя Миша 22-07-2016 в 15:24:

Цитата:
thambs писал:
а если скорость не играет роли?

Всё равно надо уметь с памятью работать, а не полагаться на сборщики там разные. Эти языки для говнокодеров придуманы, чтобы порог вхождения был ниже и соответственно вместо одного высококлассного погромиста можно было бы нанять 10 облизъян.
Цитата:
Crystallize писал:
Просто мне кажется ты путаешь pile и pool.

Pool это бассейн, а Heap это куча. В бассейн память наливают, а в кучу - бросают. Чего непонятно-то?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 22-07-2016 в 15:35:

Цитата:
Дядя Миша писал:
Pool это бассейн, а Heap это куча. В бассейн память наливают, а в кучу - бросают. Чего непонятно-то?

Из бассейна бывают утечки, а из кучи нет, развивая аналогию?

__________________

xaerox on Vivino


Отправлено Дядя Миша 22-07-2016 в 16:18:

Навряд ли кучу полностью разворуют - вон она какая большая. Что-нибудь да останется

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено thambs 22-07-2016 в 16:33:

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

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено XaeroX 22-07-2016 в 16:37:

Цитата:
thambs писал:
Мне просто непонятна позиция тов. Икс-Вайдера, который ругает, наверное, все высокоуровневые языки.

Он и низкоуровневые ругает, по-моему. Он вообще всё, что связано с погромированием, ругает.

__________________

xaerox on Vivino


Отправлено Дядя Миша 22-07-2016 в 17:13:

Цитата:
thambs писал:
Мне просто непонятна позиция тов. Икс-Вайдера, который ругает, наверное, все высокоуровневые языки

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

Разовъем тему. Кто-нибудь видел, чтобы наш друг вообще хвалил хоть что-то?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 24-07-2016 в 07:28:

Цитата:
thambs писал:
а если скорость не играет роли?

Вспоминаются банковские делфикодеры и дотнетщики...
Если ты умеешь нормально погромировать, то у тебя всегда быстро.

Цитата:
Дядя Миша писал:
Pool это бассейн, а Heap это куча. В бассейн память наливают, а в кучу - бросают.

тогда из бассейна - черпают, а из кучи - таскают %)

Цитата:
Дядя Миша писал:
какой-то повальный идиотизм везде пихать эти виртуальные машины.

это - заговор.

Это же как с гномом, маком и пр. - когда разработчики прогибаются под быдло (под воздействием продаванов): если мы хотим получить миллиарды быдлопрог под быдлодевайсы, мы не должны учить быдло писать хорошо, мы должны получить много софта и быстро. Для этого Сишечка ну никак не подойдёт. Нам надо чтобы Anal Birds и Pukeman Go поднимали продажи мобыдлоустройств. А если оно тормозит - ЕЩЁ ЛУЧШЕ - быдло будет покупать ещё более дорогие погремушки, зарядки, батарейки. Всё как всегда у потребыдлообщества: чем хуже - тем лучше.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 24-07-2016 в 12:42:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено GioHAUS0n 27-07-2016 в 14:28:

Немножко оффтоп:
https://habrahabr.ru/company/infopulse/blog/306328/


Отправлено XaeroX 27-07-2016 в 16:35:

Цитата:
Но сегодня уже 2016-ый год. Внешние библиотеки улучшились на порядок. Они стали просто фантастичны. Скорее всего они написаны отличными программистами и оттестированы лучше вашего основного кода. Они имеют внятный API. В них можно встроить логирование. Вам не нужно тратить своё время на написание обёрток вокруг и так уже хорошего кода.

А, ну да.

Добавлено 27-07-2016 в 23:35:

Статья о том, как растут из хобби-программистов в коммерческие.
Я считаю, что прежде, чем ступить на этот скользкий путь, надо тщательно подумать - а оно вам туда надо? Хотите - верьте, хотите - нет, но назад дороги не будет.

__________________

xaerox on Vivino


Отправлено Crystallize 27-07-2016 в 16:47:

XaeroX Это как в политике?


Отправлено XaeroX 27-07-2016 в 19:46:

Crystallize
В смысле?

__________________

xaerox on Vivino


Отправлено Crystallize 28-07-2016 в 04:59:

XaeroX ну типа научился сидеть в парламенте и толкать речи, а больше ничего и не умеешь. Аналогично, научился писать на плюсах, а переучиться уже не сможешь.


Отправлено ~ X ~ 28-07-2016 в 08:45:

Crystallize нет, это значит "назад только в труп-мешке".

Цитата:
Скорее всего они написаны отличными программистами

Цитата:
Скорее всего они написаны отличными программистами

Какой хитрый юркорректный автор, однако

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 28-07-2016 в 08:59:

~ X ~
Угу, и я о том же.
Как сейчас в рекламе модно говорить? "Пожалуй, магазин номер один в Новосибирске". И не подкопаешься: пожалуй, да, а пожалуй и нет.

__________________

xaerox on Vivino


Отправлено ~ X ~ 28-07-2016 в 09:19:

XaeroX кстати, слово "отличными" означает и "отличными от нуля". Так что - не прикопаешься.

Кстати, внезапно мне подумалось: я пишу на Си с классами потому что оно сочетает читабельность, простоту, модель ООП и скорость выполнения. Автор ЦПП пишет, что копирование строки в Си++ отличается от копирования строки в Си аж в несколько листов кода. Он подразумевает все проверки, терминирование, выделение памяти и пр.пр.пр. Только, вот, мне strncpy() при грамотном подходе хватает. Другое дело - когда надо много всяких хреней склеивать, но нечасто (пример - код MOTD).

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 28-07-2016 в 09:51:

~ X ~
Копирование строки в плюсах - это вызов оператора копирующего присваивания std::string:
std::string s2 = s1;
А этот оператор такой же библиотечный, как и strcpy, только лишь

Цитата:
~ X ~ писал:
подразумевает все проверки, терминирование, выделение памяти и пр.пр.пр.

Особо нудные могут реализовать свой класс с статичным буфером и placement new, хотя уверен, и такой класс уже давным-давно написан (просто я не искал).

__________________

xaerox on Vivino


Отправлено thambs 28-07-2016 в 09:51:

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

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено XaeroX 28-07-2016 в 09:53:

Цитата:
thambs писал:
громкий смех в зале, местами переходящий в истерику.

Ты, видимо, с variadic templates давно не ковырялся.
Особенно доставляют сообщения об ошибках компиляции шаблонов.

__________________

xaerox on Vivino


Отправлено thambs 28-07-2016 в 09:57:

XaeroX
не, я исключительно про c-style синтаксис -- не про семантику, а исключительно про восприятие глазами. у шаблонов, конечно, всё ещё нечитабельней.
>давно не ковырялся
вот недавно поковырялся -- и у меня до сих пор БУГУРТ.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено ~ X ~ 28-07-2016 в 10:13:

Цитата:
thambs писал:
громкий смех в зале, местами переходящий в истерику.

говорит челоек, пишущий ИМЕНА ПЕРЕМЕННЫХ ЗАГЛАВНЫМИ
Ну, может, уже писавший. Надеюсь.


Кстати, МФЦ - это "Си с классами"?

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено ~ X ~ 28-07-2016 в 14:20:

http://www.stolyarov.info/books/cppintro
вот эту книжку Столярова не читали? мне очень нравится.

14 минут убил на попытки скопировать цитату из гребучего Окуляра под прыщами. Ничего ен вышло.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 29-07-2016 в 20:02:

Цитата:
GioHAUS0n писал:
Немножко оффтоп:
https://habrahabr.ru/company/infopulse/blog/306328/

В начале статьи сделано очень смелое допущение, что потребности бизнеса всегда растут и никогда не заканчиваются. Из которого уже следуют все остальные допущения, которые для надежности подкреплены фразой "итак мы выяснили".

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 29-07-2016 в 20:06:

Цитата:
Дядя Миша писал:
В начале статьи сделано очень смелое допущение, что потребности бизнеса всегда растут и никогда не заканчиваются

А разве нет?

__________________

xaerox on Vivino


Отправлено Дядя Миша 29-07-2016 в 20:10:

XaeroX неа. Давным давно уже эти потребности софтом перекрыты. Ну если конечно не имеются в виду специфичные среды, которые относятся непосредствнно к разработке чего-либо, а непосредственно к нуждам бизнеса. Притом оно зачастую еще и халявное, от того же гугла.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 29-07-2016 в 20:13:

Цитата:
Дядя Миша писал:
Ну если конечно не имеются в виду специфичные среды, которые относятся непосредствнно к разработке чего-либо, а непосредственно к нуждам бизнеса.

Ну вот банковский и биржевой софт - специфичная среда? Или веб-разработка? Полагаю, это всё формирует как минимум половину задач для программистов.

__________________

xaerox on Vivino


Отправлено Дядя Миша 29-07-2016 в 20:20:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 29-07-2016 в 20:27:

Цитата:
Дядя Миша писал:
Вы например в курсе, что тот же 1С не пользуется популярностью за рубежом?

Логично. Я полагаю, и софт для ядерных реакторов у них там свой.
Цитата:
Дядя Миша писал:
ну я про них и говорю, давно уже там все потребности перекрыты.

Да ладно тебе, биржа сейчас и биржа 20 лет назад - это разные вещи.

__________________

xaerox on Vivino


Отправлено Дядя Миша 29-07-2016 в 20:49:

Цитата:
XaeroX писал:
Я полагаю, и софт для ядерных реакторов у них там свой.

Ядерные реакторы вроде с бизнесом не связаны.

Цитата:
XaeroX писал:
биржа сейчас и биржа 20 лет назад - это разные вещи.

20 лет назад на бирже поди совсем никаких компьютеров не было. Это довольно консервативные люди.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 01-08-2016 в 08:09:

Цитата:
Дядя Миша писал:
20 лет назад на бирже поди совсем никаких компьютеров не было.

ошибаетесь, ох как ошибаетесь...

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 01-08-2016 в 18:18:

~ 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'


Отправлено pRoxxx 02-08-2016 в 06:14:

Цитата:
Дядя Миша писал:
~ X ~ ты у нас брокер из 90-х?

У него даже на Аве почти малиновый пиджак.


Отправлено FiEctro 02-08-2016 в 07:55:

Если не ошибаюсь, компьютеризация биржи началась в начале 80х, возможно даже раньше.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ~ X ~ 05-08-2016 в 08:30:

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 05-08-2016 в 14:16:

~ 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