LINUX.ORG.RU

Почему в C++ не запилят интроспекцию / рефлексию?

 ,


3

7

1. Успех Qt во многом благодаря его Meta Object Compiler.
2. 2013 год. В C++ нет зачатков рефлексии. Сериализация выполняется вручную...
3, 4... Приведите сами
А теперь вопрос знатокам: почему, [censored], это так трудно сделать?

А теперь вопрос знатокам: почему, [censored], это так трудно сделать?

Потому что, [censored], не нужно.

anonymous
()
Ответ на: комментарий от anonymous

Под автоматическим управлением памятью подразумевается нормальный сборщик мусора.

а по моему, их в C++ даже слишком много. Но если ты так не считаешь - сделай свой, с блекджеком и шлюхами.

drBatty ★★
()
Ответ на: комментарий от trex6

Зато их решение, в отличии от былых времен, дело 3х секунд.

Нет.

мы гонимся за решением задач

задачи не изменились. Вообще ни разу.

Производительность - лишь искусственная величина

Время - величина нифига не искусственная. В 1998 году Windows98 на p200mmx с 32 мегабайтами памяти запускался и работал быстрее, чем Linux сегодня на восьмиядерном AMD FX с 8G памяти. И вот тут уже начинаются проблемы.

anonymous
()
Ответ на: комментарий от anonymous

В 1998 году Windows98 на p200mmx с 32 мегабайтами памяти запускался и работал быстрее, чем Linux сегодня на восьмиядерном AMD FX с 8G памяти. И вот тут уже начинаются проблемы.

Мсье дятел, да?

Линукс сегодня (3.x) отлично, шустро работает на or1200 или MicroBlaze на FPGA (50MHz). А оно потормознее будет, чем p200mmx.

anonymous
()
Ответ на: комментарий от anonymous

Линукс сегодня (3.x) отлично, шустро работает на or1200 или MicroBlaze на FPGA (50MHz). А оно потормознее будет, чем p200mmx.

Я не про ядро с busybox, я про полноценную систему с графическим интерфейсом. Ты его на FPGA запускаешь?

anonymous
()
Ответ на: комментарий от anonymous

В 1998 году Windows98 на p200mmx с 32 мегабайтами памяти запускался и работал быстрее, чем Linux сегодня на восьмиядерном AMD FX с 8G памяти.

Открывать меню пуск ≠ работать.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Открывать меню пуск ≠ работать.

сравни msword97 и современный msword или openoffice по скорости работы.

anonymous
()
Ответ на: комментарий от anonymous

сравни msword97 и современный msword или openoffice по скорости работы.

А ты сравни по фичам и работе с большими документами.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

А ты сравни по фичам

сравнил. Ничего особо полезного в новых нет.

работе с большими документами.

диссертация на 120 страниц - достаточно большой? Всё вполне работало и не тормозило.

anonymous
()
Ответ на: комментарий от anonymous

Я не про ядро с busybox, я про полноценную систему с графическим интерфейсом. Ты его на FPGA запускаешь?

Запускаю X11 с fvwm (который уж всяко полноценнее чем чикага). Собственно, называть убогую оболочку над dos «полноценным графическим интерфейсом» - это настолько толстый троллинг, что даже не смешно.

anonymous
()
Ответ на: комментарий от anonymous

прикладной софт какой-нибудь запусти с qt4, например, а то там говорят, что 27 мегабайт - это не так много.

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

Под автоматическим управлением памятью подразумевается нормальный сборщик мусора.

Ты почитал стандарт на тему сборки мусора, или думаешь, что понял, про что я?

Pavval ★★★★★
()
Ответ на: комментарий от wota

Точнее около 3х, это просто из разряда «не использовал, но осуждаю» умники.

nand
()

Успех Qt во многом благодаря его Meta Object Compiler.

:))

вообще никак не связано.

alex_custov ★★★★★
()
Ответ на: комментарий от Pavval

Ты почитал стандарт на тему сборки мусора, или думаешь, что понял, про что я?

Почитал. В крестах нет нормального сборщика мусора.

anonymous
()
Ответ на: комментарий от alex_custov

ты сказал, что ABI стабильно, а оно не стабильно

Я этого не говорил.

Из-за этого и есть ключ -fabi.

Так с ключом оно работает?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Я этого не говорил.

ну ты же наехал на пользователя KblCb, когда он сказал, что ABI меняется? Или ты просто так решил наехать, для проформы?

Так с ключом оно работает?

понятия не имею, не проверял. И ни разу не видел, чтобы его использовали в desktop приложениях. Факт только тот, что между 4.4 и 4.7 в mingw ABI сломано по-умолчанию.

alex_custov ★★★★★
()
Последнее исправление: alex_custov (всего исправлений: 1)
Ответ на: комментарий от KblCb

Ты издеваешься? В твоём примере obj это ссылка на значение, которую можно например вернуть из функции не думая о том как сделать так чтобы объект на которой она ссылается не был грохнут по выходу из контекста, а можно не возвращать и тогда таки объект будет собран мусорщиком. Если изрядно обмазаться умными указателями можно изобразить что-то похожее в плюсах и даже сделать лучше.

Как shared pointer, так и подсчёт ссылок подойдут для решения этой задачи.

Но только это не автоматическое управление ресурсами.

Не надо называть автоматическое управление памятью автоматическим управлением ресурсами.

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 2)
Ответ на: комментарий от anonymous

Время - величина нифига не искусственная. В 1998 году Windows98 на p200mmx с 32 мегабайтами памяти запускался и работал быстрее, чем Linux сегодня на восьмиядерном AMD FX с 8G памяти. И вот тут уже начинаются проблемы.

Пережимать видео пробовали на своём p200mmx? Или что у вас там «быстрее»?

quiet_readonly ★★★★
()

Вы не по тем точкам давите.

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

Правильнее давить на вот такие мозоли ;-)

1. Появится ли когда-нибудь в С++ нормальный ORM (а не черезжопый, типа ODB)?
2. Появится ли когда-нибудь в С++ нормальный IoC / DI (а не черезжопый, типа pococapsule) ?

Хотя, подозреваю, им все божья роса будет :)

d_Artagnan ★★
()
Ответ на: комментарий от d_Artagnan

Народ сидящий в С++ _принципиально_ не желает видеть что-либо шире своего мирка. Правильнее давить на вот такие мозоли ;-)

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

alex_custov ★★★★★
()
Ответ на: комментарий от anonymous

А теперь вопрос знатокам: почему, [censored], это так трудно сделать?

Потому что, [censored], не нужно.

Квинтэссенция ЛОРа

Chaser_Andrey ★★★★★
()
Ответ на: комментарий от alex_custov

ну ты же наехал на пользователя KblCb, когда он сказал, что ABI меняется?

KblCb> он у gcc с завидной регулярностью меняется

Вот мне и стало интересно, что это за «завидная регулярность». Пока что (если верить тебе) аж 3 версии ABI за 10 лет (да и то, ты, насколько я понимаю, говоришь об ошибке).

Или ты просто так решил наехать, для проформы?

Это был еще не наезд.

tailgunner ★★★★★
()
Ответ на: комментарий от quiet_readonly

Подсчёт ссылок и shared pointer пример ручного управления памятью. К слову сказать не самого эффективного.

KblCb ★★★★★
()
Ответ на: комментарий от KblCb

Подсчёт ссылок и shared pointer пример ручного управления памятью.

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

К слову сказать не самого эффективного.

Приведите более эффективный

quiet_readonly ★★★★
()
Ответ на: комментарий от KblCb

Хороший вариант до тех пор пока тебе не понадобится массив указателей.

Добавляем std::vector или другой контейнер по вкусу.

O02eg ★★★★★
()
Ответ на: комментарий от no-such-file

Да ты чо? Ты программы наверное пишешь с помощью cat > helloworld.cpp да?

gvim helloworld.cpp, да. А у вас в коде такой бардак, что без IDE не разберёшься?

O02eg ★★★★★
()
Ответ на: комментарий от O02eg

такой бардак, что без IDE не разберёшься?

Речь шла о том, что якобы нужно что-то дополнительно тянуть для кодогенерации в статике, на что я резонно возразил, что для программирования вообще необходимы разные инструменты, и довольно жирные, которые в том числе можно использовать и для кодогенерации в статике. У вас в gvim'е автокомплит настроен? Значит можно с помощью уже имеющихся инструментов замутить рефлексию при/перед компиляцией с уже имеющимися в системе инструментами.

И да, я пользуюсь netbeans и qtcreator, а ваш vim только пищит и все портит.

no-such-file ★★★★★
()

Многие вещи в плюсах можно делать во время компиляции. Во время исполнения не нужно, т.к. нарушает принцип нулевой стоимости, а профита не приносит. Читайте D&E, читайте принципы С++.

Для сериализации используют библиотеки вроде boost::serialization и это не так страшно, как кажется - мне даже больше полностью «автоматической» нравится - сам контролируешь, что хочешь сохранить/восстановить - меньше проблем с кэшированием данных, обертками и т.д.

anonymous
()
Ответ на: комментарий от d_Artagnan

Странно, я помимо С++ активно использую Python и Scala, сейчас пробую найти место для Go(скорее всего это будут скрипты, которые хочется быстро делать и править, но при этом они должны быстро работать, а писать их на плюсах - извращение). Так вот, я тоже считаю, что это все в плюсах лишнее, иначе они превратятся в «java с шаблонами», а это мне не нужно. Мне нужен легкий рантайм, семантика значений, отсутствие GC(подсчет ссылок вполне справится для круга задач, решаемых с помощью С++), легковестное ООП, шаблоны(а не дженерики, которые в рантайме становятся ссылками, если только jit не постарается) и пр.

anonymous
()

На курсере в курсе компилеров услышал весьма годную мысль.

Как только появляется большая база юзеров развитие проекта останавливается из-за проблем с обратной совместимостью, согласованием изменений, обучения итп. Так что запасы роста исчерпываются пропорционально объёмам внедрения.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Как только кокодемик открывает для себя функциональщину, его развитие останавливается из-за проблем с осознанием реальности, влажных грёз на яву, уважения в глазах пришедших на первое занятие первокурсников и т.п. Так что все его лекции исчёрпываются бесполезными рассказами о том, как C++ уже проиграл.

fixed

quiet_readonly ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.