Сообщение Re[7]: Мнение: объектно-ориентированное программирование — к от 28.09.2019 9:14
Изменено 28.09.2019 9:15 Went
Re[7]: Мнение: объектно-ориентированное программирование — к
Здравствуйте, samius, Вы писали:
S>Если кому-то хватило ума засунуть координаты в пулю, то, конечно, в рамках функционального подхода придется клонировать пулю, что бы поменять координату. Но в рендеринге обычно ровно наоборот. Пуля/елка одна, а координат миллион.
А можно чуточку конкретнее? В функциональном подходе пуля не хранит свои координаты? А кто их хранит? И при чем тут рендеринг?
S>Свойства "объекта" меняются не просто так, а по законам, которые можно записывать функциями. Имея такую запись, нет нужды обновлять свойства "объекта" каждый момент времени, т.к. в любой из них его свойства можно вычислить.
Да, движение материальной точки в вакууме без посторонних тел отлично записывается простейшей функцией. Но, ведь, в реальном приложении все иначе. Говоря просто (опуская оптимизации) каждый кадр мы должны проверить коллизию каждой частицы с каждой. То есть каждый кадр мы запрашиваем положение каждой частицы, и в самом лобовом случае мы запрашиваем это положение (коллизию каждой частицы с каждой) квадрат количества частиц раз пополам. То есть каждый раз рассчитывать это положение явно избыточно, его проще просчитать один раз. Получается, нам нужен некоторый кэш на каждую подобную функцию? Но в императивный подход этот кэш встроен "из коробки" и никаких дополнительных функций хранить не нужно.
Повторюсь, если не запихивать координату в пулю/атом, то может оказаться что не нужно ее быстро-быстро менять.
А куда их запихнуть?
S>Однако, моделирование столкновений частиц с помощью ООП (да и ФП, что говорить) — то еще садо-мазо и оверхед. Такие вещи делают на Си/Фортранах, объекты там обычно избыточны.
Я сейчас не сравниваю ФП с ООП. Я сравниваю ФП с императивным программированием.
S>Если кому-то хватило ума засунуть координаты в пулю, то, конечно, в рамках функционального подхода придется клонировать пулю, что бы поменять координату. Но в рендеринге обычно ровно наоборот. Пуля/елка одна, а координат миллион.
А можно чуточку конкретнее? В функциональном подходе пуля не хранит свои координаты? А кто их хранит? И при чем тут рендеринг?
S>Свойства "объекта" меняются не просто так, а по законам, которые можно записывать функциями. Имея такую запись, нет нужды обновлять свойства "объекта" каждый момент времени, т.к. в любой из них его свойства можно вычислить.
Да, движение материальной точки в вакууме без посторонних тел отлично записывается простейшей функцией. Но, ведь, в реальном приложении все иначе. Говоря просто (опуская оптимизации) каждый кадр мы должны проверить коллизию каждой частицы с каждой. То есть каждый кадр мы запрашиваем положение каждой частицы, и в самом лобовом случае мы запрашиваем это положение (коллизию каждой частицы с каждой) квадрат количества частиц раз пополам. То есть каждый раз рассчитывать это положение явно избыточно, его проще просчитать один раз. Получается, нам нужен некоторый кэш на каждую подобную функцию? Но в императивный подход этот кэш встроен "из коробки" и никаких дополнительных функций хранить не нужно.
Повторюсь, если не запихивать координату в пулю/атом, то может оказаться что не нужно ее быстро-быстро менять.
А куда их запихнуть?
S>Однако, моделирование столкновений частиц с помощью ООП (да и ФП, что говорить) — то еще садо-мазо и оверхед. Такие вещи делают на Си/Фортранах, объекты там обычно избыточны.
Я сейчас не сравниваю ФП с ООП. Я сравниваю ФП с императивным программированием.
Re[7]: Мнение: объектно-ориентированное программирование — к
Здравствуйте, samius, Вы писали:
S>Если кому-то хватило ума засунуть координаты в пулю, то, конечно, в рамках функционального подхода придется клонировать пулю, что бы поменять координату. Но в рендеринге обычно ровно наоборот. Пуля/елка одна, а координат миллион.
А можно чуточку конкретнее? В функциональном подходе пуля не хранит свои координаты? А кто их хранит? И при чем тут рендеринг?
S>Свойства "объекта" меняются не просто так, а по законам, которые можно записывать функциями. Имея такую запись, нет нужды обновлять свойства "объекта" каждый момент времени, т.к. в любой из них его свойства можно вычислить.
Да, движение материальной точки в вакууме без посторонних тел отлично записывается простейшей функцией. Но, ведь, в реальном приложении все иначе. Говоря просто (опуская оптимизации) каждый кадр мы должны проверить коллизию каждой частицы с каждой. То есть каждый кадр мы запрашиваем положение каждой частицы, и в самом лобовом случае мы запрашиваем это положение (коллизию каждой частицы с каждой) квадрат количества частиц раз пополам. То есть каждый раз рассчитывать это положение явно избыточно, его проще просчитать один раз. Получается, нам нужен некоторый кэш на каждую подобную функцию? Но в императивный подход этот кэш встроен "из коробки" и никаких дополнительных функций хранить не нужно.
S>Повторюсь, если не запихивать координату в пулю/атом, то может оказаться что не нужно ее быстро-быстро менять.
А куда их запихнуть?
S>Однако, моделирование столкновений частиц с помощью ООП (да и ФП, что говорить) — то еще садо-мазо и оверхед. Такие вещи делают на Си/Фортранах, объекты там обычно избыточны.
Я сейчас не сравниваю ФП с ООП. Я сравниваю ФП с императивным программированием.
S>Если кому-то хватило ума засунуть координаты в пулю, то, конечно, в рамках функционального подхода придется клонировать пулю, что бы поменять координату. Но в рендеринге обычно ровно наоборот. Пуля/елка одна, а координат миллион.
А можно чуточку конкретнее? В функциональном подходе пуля не хранит свои координаты? А кто их хранит? И при чем тут рендеринг?
S>Свойства "объекта" меняются не просто так, а по законам, которые можно записывать функциями. Имея такую запись, нет нужды обновлять свойства "объекта" каждый момент времени, т.к. в любой из них его свойства можно вычислить.
Да, движение материальной точки в вакууме без посторонних тел отлично записывается простейшей функцией. Но, ведь, в реальном приложении все иначе. Говоря просто (опуская оптимизации) каждый кадр мы должны проверить коллизию каждой частицы с каждой. То есть каждый кадр мы запрашиваем положение каждой частицы, и в самом лобовом случае мы запрашиваем это положение (коллизию каждой частицы с каждой) квадрат количества частиц раз пополам. То есть каждый раз рассчитывать это положение явно избыточно, его проще просчитать один раз. Получается, нам нужен некоторый кэш на каждую подобную функцию? Но в императивный подход этот кэш встроен "из коробки" и никаких дополнительных функций хранить не нужно.
S>Повторюсь, если не запихивать координату в пулю/атом, то может оказаться что не нужно ее быстро-быстро менять.
А куда их запихнуть?
S>Однако, моделирование столкновений частиц с помощью ООП (да и ФП, что говорить) — то еще садо-мазо и оверхед. Такие вещи делают на Си/Фортранах, объекты там обычно избыточны.
Я сейчас не сравниваю ФП с ООП. Я сравниваю ФП с императивным программированием.