Забавные новости 0й-Ti :)

Тема в разделе "WASM.HEAP", создана пользователем UbIvItS, 18 июн 2018.

Статус темы:
Закрыта.
  1. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    Особенно, когда пишешь софтину на Цэ...
     
  2. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    592
    Ну если площадь треугольника через полиморфизм решать, то действительно можно добиться ускорения выкидыванием этого лишнего и подгонкой данных в кеш.
    Я давно и планомерно пропагандирую мысль, что за термином ООП в глобальных масштабах закрепилось очень неправильное и кишмишное понимание, которое смешало коней и блекджеков в плохо перевариваемую кашу из мантр.
    На самом деле всё просто - ООП это принцип Лисков и точка. Вот так просто - ООП-нутый код это код в котором используется подстановка ссылок на производные классы через ссылку на базовый в расчёте использования виртуальных функций. Всё. Ничего более. Если даже в коде пестрит ключевое слово class, но этот приём не используется - его всегда можно трансформировать в код из функций и структур как писали fopen и matrix3x3_multiply деды и в ус не дули до всякого ООП. Потому что это не ООП.
    Так вот главная суть ООП - это как видно полиморфизм, когда мы пишем код который будет работать с заранее неизвестно каким объектом удовлетворяющим некоторой спецификации состоящей из виртуальных его функций. И эта штука реально нужна в сложных программах когда мы чаще всего сталкиваемся с коллекциями однотипно ведущих себя, но разных объектов - как то монстры в игре или визуальные компоненты на окне GUI или разные типы XML сообщений Сервиса Электронного Документооборота Социального Фонда России - разные типы объектов монотонно перемалываются в разнообразных циклах item.Draw, item.ProcessXML, item.TakeDamage и т.п. Вот тут ООП на коне. И тут городить switch-и себе дороже. И оно не cache-friendly уже просто потому что разные объекты разного размера не поместишь в один массив. Это по природе вещей штука не cache-friendly. Абстракция такая прикольная тут действительно бьёт по перфомансу.
    В то же время огромное количество кода этого просто не требует. И не является ООП-нутым. И может быть сведена к локальности данных в массивах и тому подобное.
    Поэтому прежде чем считать площади треугольников через полиморфные объекты надо сперва спросить себя - а тебе действительно нужны полиморфные объекты или тут можно обойтись без ООП?
    Если можно обойтись без ООП, то и clean code будет без ООП, а если нельзя - ну хоть тресни ты, но надо нарушать cache-frendliness в пользу чистого кода. Или задумываться об Entity Component System.
    Предположу, что истинная ошибка этого автора книг про чистый код - это как раз неправильное понимание ООП и завет решать все проблемы этим микроскопом, включая забивание гвоздей. Но я книг его не читал и просто предполагаю.
     
    Последнее редактирование: 13 май 2024
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203

    ета керь ии-шечкой сгенерина :)
    разные объекты не могут себя вести однотипно ==>> лишь для юзверя создаётся ИЛЛЮЗИЯ однотипности, а при разработке кода для каждого объекта прописываются серии коррекций в зависимости от размера/структуры данных и железа, на коем оное безобразие должно пахать. куча ооп-еров по своей сути тоже юзвери, они никогда не видели базовых фунок ооп-ского кода, а просто фигачили расширения чрез интерфейсы :)
    конечно, сиха богомерзкая и нам всем надо полностью забить на её самый лучший компиль, самые удобные средства отладки и самую обширную базу СТАБИЛЬНОГО КОДА :laugh1::laugh2::laugh3: глянь crates.io ==>> тамошняя публика так бодро пишет ржачные коды, что даже мой ноу нейм пет проект часто мелькает на первой странице:blush2::crazy::drinks:
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    Какой компиль? Clang? Это тот же Clang, бекенд которого использует Ржавый и тонна других языков? Или, может, GCC? Это тот же GCC, который имеет фронтэнды Ады, Дэ и Фортрана и один общий для всех бекенд?
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203
    кхммм.. :) даже на одном компиле у сихи будет самый быстрый код, пч нет по дефолту той туевой Хучи ограничений, что задаёт тот же ржака иль ада ==>> базовый компиль делается именно под сиху, остальное с боку-припёку :grin:
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    А ну да, ну да, как же я забыл, что качество компилятора определяется отсутствием в языке абстракций, там же циклы на 2 процента быстрее...
     
    Mikl___ нравится это.
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203
    экий же Ты терпила - сидишь на осях, написанных богомерзкой сихой :laugh1::laugh2::laugh3: харе терпеть такое безобразие ==>> выключи сю мерзость из розетки иль сразу топором по системнику.. УБЕЙ СИХУ ВЕЗДЕ И ГЛАВНОЕ В СЕБЕ :popcorm2::grin:
     
  8. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203
    самое опасное, что глюки ии-шки могут перекидываться на людей, эдакий ментальный/соц вирус получается.
     
  9. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    Совпадение? Не думаю:
     
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203

    чел сказал много-чего по делу, но рассмешил про качественный код у больших контор.. мс офис - не ХАфнокод??? а маткад, матлаб... в конце-то концов вынь, линь и та же шмякось == прям примеры качественного кода???:laugh1::laugh2::laugh3: про элито-коды разглагольствуют лишь те, кто совсем ничего не писал, либо очень заблуждаются в своих возможностях. на сях дофигища ХАфноКодов и при этом это реально гениальные коды, пч создавались под напором сплошного дефицита ресурсов.

    :)
     
    Application нравится это.
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203
    подрыв бомб может без проблем создать и нужную амплитуду, и частоту.. а глубина не является особой преградой - она даже может создавать более лучшие волноводы :)
     
    q2e74 нравится это.
  12. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    IMG_20240518_154914_037.jpg

    ...да, но тогда циклы в игровом движке же будут на 2 процента медленнее...
     
  13. Application

    Application Moderator Команда форума

    Публикаций:
    1
    Регистрация:
    8 дек 2007
    Сообщения:
    989
  14. aa_dav

    aa_dav Active Member

    Публикаций:
    0
    Регистрация:
    24 дек 2008
    Сообщения:
    592
    Нет, не надо Err,
    Не надо паники,
    Это мой последний день
    В Rustкробатике.
    Две сотые потерь,
    На цикла тактиках,
    Это мой последний день
    В Rustкробатиках.
     
    Последнее редактирование: 18 май 2024
    Rel нравится это.
  15. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203
    с чего это Вас так на двух процентах клинит? :) вообще, ржака и 10ку процентов относительно сихи едва ль вытянет - слишком уж его чекерами нагромоздили :)
    игровой движок на ржаке == писать на сихе, пч все ключевые либы на сихе :punish2::grin:
     
  16. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    Пч все неключевые либы везде не на сихе тогда? Ключевость сихи пропададет, если неключевые либы станут ключевыми?
     
  17. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.203
    unreal engine == c++
    https://github.com/raysan5/raylib == c
    https://alternativeto.net/software/allegro/about/ == c
    остальные на плюхе.
    ================
    и тута прям очень глубокий философский вопрос: плюха ближе ко ржаке иль к сихе??? :) есть, правда, керь и на ржаке https://arewegameyet.rs/ecosystem/engines/ но комерс проекты такое будут пользовать лишь всегда, когда никогда :laugh1::laugh2::laugh3:
     
  18. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    Выходит, что на сихе далеко не ключевые либы: Unreal, Unity, Godot - три самых популярных движка и ключевые "либы" на плюсах. А потом ходят и бьют себя тапками в грудь за то, что сиха - ключевая, ооп не нужен и тд, а на самом деле комерс проекты будут сиху пользовать лишь всегда, когда никогда.
     
  19. mantissa

    mantissa Active Member Команда форума

    Публикаций:
    0
    Регистрация:
    9 сен 2022
    Сообщения:
    179
    pygame
     
  20. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.436
    Я бы попросил, на чем там ключевые либы (libsdl) написаны по твоему?
    --- Сообщение объединено, 21 май 2024 ---
    A7W32IFzqKE~2.jpg
     
    q2e74 и UbIvItS нравится это.
Статус темы:
Закрыта.