
Sergey
15.03.2017
15:38:16
но JIT там грозятся завести да
но не одним php мир един

Like
15.03.2017
15:47:11
Пора с пыхи сваливать, хех

Google

Evgeniy
15.03.2017
15:47:29
на делфи

?
15.03.2017
15:47:41
?

Like
15.03.2017
15:47:41
перл

Rodion
15.03.2017
15:49:18
на js тогда уж, хех

Like
15.03.2017
15:49:47
Ох не. Я с асинхроностью боролся большую часть времени.
Может лучше машинный код угадывать?

Evgeniy
15.03.2017
15:52:51
ага и услугу гадание на машинных кодах, порча, сглаз, утечки памяти

Like
15.03.2017
15:52:59
Вообще круто

Evgeniy
15.03.2017
15:53:20
разыменование указателей

Paul
15.03.2017
16:15:07

Sergey
15.03.2017
16:46:01
ну и на статической диспетчеризации можно ехать только недалеко

da horsie
15.03.2017
17:00:51

Alexander
15.03.2017
17:02:33

Google

da horsie
15.03.2017
17:20:13
стыдно должно быть, товарищ

f4rt~
15.03.2017
17:28:02
Пол часика до старта, собираемся ребятки

?
15.03.2017
17:28:52
Ждем

f4rt~
15.03.2017
18:49:59
@f3ath не хочешь сам попробовать в таком же формате?

Paul
16.03.2017
04:17:25
ну и на статической диспетчеризации можно ехать только недалеко
Чего это вдруг? Динамическая реально нужна крайне редко, при этом мешает оптимизациям + накладывает ограничения: нельзя, скажем, иметь шаблонный/дженерик виртуальный метод (это касается компилируемых япов, в жабе и шарпах же будет генерироваться в рантайме)
Конечно, если у тебя система на полиморфизме подтипов (то есть используется наследование), то выбора у тебя нет и ты должен страдать.

da horsie
16.03.2017
05:27:39

Hell
16.03.2017
07:40:26
имеется класс, представляющий "активную запись"
имплементируются "виртуальные сеттеры"
они не имеют реального отборажения в базе
используются только совместно
в базе хранится только "вычисленное" значение
setSocialUserId / setProvider ('facebook', 'google') -> 'fb_11223456'
как называется этот паттерн?
ах да, модель активная, может себя сохранять
ваше молчание как бе говорит нам, что нужно физическое поле устанавлвать в перегруженном save

Sergey
16.03.2017
08:28:15

Google

Sergey
16.03.2017
08:33:07
"виртуальные проперти"
ну то есть, я хз че ты хочешь услышать

Paul
16.03.2017
08:34:54
Что очевидно

Sergey
16.03.2017
08:36:24
не совсем, та же java если мне память не изменяет таблички для диспетчеризации построить то может, просто только в рантайме будет выбирать кого дергать
либо я тебя не понял

Paul
16.03.2017
08:38:11
Нет, не понял. Если у тебя есть, условно
class A {
<T>(t: T) {...}
}
То как по-твоему должен выглядеть vtable для A?
Ответ: никак, ты не можешь оставить просто в vtable указатель на функцию, потому что функции ещё нет.

Sergey
16.03.2017
08:40:29
да, понял
вот только
если мы говорим про дженерики в java/c# то там всегда будет только динамическая диспетчеризация

Sergey
16.03.2017
08:41:22
а если ты тот же код запилишь в C++ то разве он не втупую скомпилит все варианты и составит таблички?

Paul
16.03.2017
08:41:24
С динамической диспетчеризацией дженерики не нужны

Sergey
16.03.2017
08:41:43

Сергей
16.03.2017
08:41:51

Sergey
16.03.2017
08:42:05

Сергей
16.03.2017
08:42:20
так их и нет смысла приводить в пример

Sergey
16.03.2017
08:43:14
ну то есть насколько я знаю дженерики возможны только благодаря динамической диспетчеризации

Paul
16.03.2017
08:43:38
Сравни:
public <T> void foo(T t) {..}
и
public void foo(T t) {..}

Google

Paul
16.03.2017
08:43:47
Дженерики и шаблоны это именно про статическую диспетчеризацию

Sergey
16.03.2017
08:44:03

Paul
16.03.2017
08:44:31

Admin
ERROR: S client not available

Sergey
16.03.2017
08:44:52
у тебя ж как ты и сказал еще нет функции на которую ссылаться

Paul
16.03.2017
08:45:06
Т.е. мультиметоды и виртуальные таблицы

Sergey
16.03.2017
08:45:30
это темплейты

Paul
16.03.2017
08:45:34
Во время мономорфизации получится по функции на каждый тип используемый

Sergey
16.03.2017
08:45:46
так делают темплейты в плюсах

Сергей
16.03.2017
08:45:49
Динамическая диспетчеризация это механизм, на основании которого принимается решение на вызов того или иного переопределенного метода во время выполнения, а не компиляции.

Paul
16.03.2017
08:46:18
Дженерики просто ограниченные темплейты, обычно с ограничениями, темплейт же просто макрос
Это мультиметоды и виртуальные таблицы методов. Всё.

Sergey
16.03.2017
08:47:18

Paul
16.03.2017
08:47:20
Перегрузка функций и дженерики/шаблоны это уже статическая диспетчеризация
Поэтому в C# и Java можно

Google

Paul
16.03.2017
08:47:45
а в крестах нельзя

Сергей
16.03.2017
08:48:12
Бля
Джене́рик[1] (англ. generic drug) — лекарственное средство, продающееся под международным непатентованным названием либо под патентованным названием, отличающимся от фирменного названия разработчика препарата[2].

Sergey
16.03.2017
08:48:20
не могу сказать что это компилятор

Paul
16.03.2017
08:49:12

Sergey
16.03.2017
08:49:12
но тебя я понял
я пока просто прикидываю какую пользу эта информация дает

Paul
16.03.2017
08:51:25
Что значит какую? У тебя код мономорфизируется под конкретный тип

Sergey
16.03.2017
08:51:33
да это то понятно

Paul
16.03.2017
08:51:37
Со всеми оптимизациями

Sergey
16.03.2017
08:51:50
началось все с "далеко без динамической диспетчеризации ты не уедешь"

Paul
16.03.2017
08:52:20
99% случаях она не нужна, если не полиморфизм подтипов.
Если у тебя всё на наследовании, то ты обречён, да

Sergey
16.03.2017
08:52:37
ты показал что дженерики в некоторых языках реализованы без участия динамической диспетчеризации

Paul
16.03.2017
08:52:47
Во всех