- *leechcraft *programming *c++ *говноНет, я все-таки выбрал сильно не тот язык. Отсутствие рефлекшна не позволяет сделать многие вещи красиво, и приходится городить гавна костыли. Ужас!
Replies (45)
- @0xd34df00d:@fragnat Боюсь, жабку. Впрочем, я вообще ничего не знаю о рефлекшне и его необходимости в каком-нибудь хаскеле или тырланге, так что хз. Но не шарп или пейтон уж точно.from idead, 8 months ago, in reply to /3
- @0xd34df00d:@LazyMiha Да не мета, RTTI никакого, и это пиздец. Хоть Qt с ее QObject'ом спасает.from idead, 8 months ago, in reply to /1
- @0xd34df00d:@magog Вменяемой информации о типах в рантайме, в том числе, какие методы есть у данного класса, с какими параметрами, етц.from idead, 8 months ago, in reply to /13
- @0xd34df00d:@0xd34df00d Мне этого просто пиздец как не хватает. Не Qt + moc — не знал бы, что делать.from idead, 8 months ago, in reply to /15
- @O01eg:@0xd34df00d У меня в закладках где-то была страница с рефлекшном на макросахfrom Ψ+, 8 months ago, in reply to /17
- @LazyMiha:@0xd34df00d BTW, жаваскрипт подходит, да, он не такой монструозный, и вполне неплохая прослойка для склеивания больших кусковfrom Дом, 8 months ago, in reply to /17
- @0xd34df00d:@XaoS Телл ми моар. Когда слой поддержки скриптинга просто хочет пробрасывать объекты от других слоев скриптам, не заботясь об их семантике и не зная конкретного контракта взаимодействия между скриптом и третьим слоем.from idead, 8 months ago, in reply to /18
- @0xd34df00d:@LazyMiha Ебаный стыд, есть moc в кутях, чем не?from idead, 8 months ago, in reply to /22
- @0xd34df00d:@LazyMiha Личкрафты на жаваскрипте? Да это же пиздец!from idead, 8 months ago, in reply to /20
- @0xd34df00d:@LazyMiha Да, но от этого не легче. Вместо того, чтобы из менеджера хистори вернуть структурку типа
struct HistoryItem { QUrl Url_; QString Title_; QDateTime Date_; }, нужно либо городить QObject с соответствующими свойствами, либо возвращать QMap'у с текстовыми ключами соответствующими. Ну пиздец же!from idead, 8 months ago, in reply to /26 - @0xd34df00d:@0xd34df00d Можно въебать boost::tuple'а, но смысл как раз в том, чтобы это были Qt-типы, чтобы они автоматически смаршаллились куда надо.from idead, 8 months ago, in reply to /32
- @0xd34df00d:@LazyMiha Пейтоноблядям кирпич на голову упал, они уже давно без повода мерзко хихикают.from idead, 8 months ago, in reply to /34
- @LazyMiha:@0xd34df00d чето мне это немного напоминает методы сериализации в бусте, так какие-то изъебины для прикручивания "простой" серлиазиации объектов и доступа к их свойствамfrom Дом, 8 months ago, in reply to /35
- @ulidtko:@0xd34df00d это было к /37 :)
Но вообще сложно сказать. Теоретически — да, рефлексия это костыль. Но насколько проще будет сделать с ней, чем без неё — крупнейший дискас.from lunatic asylum, 8 months ago, in reply to /42 - @0xd34df00d:@ulidtko В каком месте это костыль? Телл ми моар.from idead, 8 months ago, in reply to /43
- @ulidtko:@0xd34df00d вкратце, если тебе нужна информация о типе — you're doing it wrong. На то он и полиморфизм кагбе.
С другой стороны, можно просто сказать, что ООП говно и не нужно. Но как-то сильно легче не становится от этого.from lunatic asylum, 8 months ago, in reply to /44 - @0xd34df00d:@ulidtko Телл ми моар. Типичная задача: прослойка поддержки плагинов на пейтоне/JS/через дибас/XML-RPC. Если она хочет поддерживать не только плагины для ядра с наперед заданными интерфейсами, но и плагины для других плагинов, когда контракт взаимодействия между ними заранее неизвестен (что разумно), то без рефлекшна никуда.from idead, 8 months ago, in reply to /45
- @ulidtko:@0xd34df00d как насчёт определения интерфейса ручками посредством каких-нибудь метаданных?
Ну например, заставить каждый плагин, который хочет выставлять интерфейс пейтону/JS/d-bus/whatever, реализовывать ООП-интерфейс с методами getMyMethods, getMy[Events|Signals] — и именно в рантайме заставлять каждый плагин описывать себя. Клеекод сразу проще становится.from lunatic asylum, 8 months ago, in reply to /46