kvisaz (kvisaz) wrote,
kvisaz
kvisaz

Category:

final static vs companion object

Пишу код для игры на Kotlin. До работы в 2016 учился на Java, но так повезло, что там на работе меня обучили и Котлину. Мне понравилось - язык компактный, Java-совместимый, отечественный. То, что на Джаве писалось в 100+ строчек, часто стало укладываться в 30.

В общем, на Java заходил только ради багфиксинга старых проектов. Естественно, когда начал пилить проекты игры на LibGDX, использовал Kotlin. Только несколько стартовых классов, которые этот фреймворк генерит для нового проекта, оставил на Джаве.

Но через N недель выяснилась, что там, где у Java - честная подстановка константы во время компиляции вместо final static, у Kotlin - вызов в рантайме метода класса companion object. Это в целом для обычных проектов не смертельно никак, но в играх, где 60 раз в секунду в цикле update вызывается ряд констант - существенно (хотя тоже не смертельно).

Короче, переписал я константные классы на Java ради final static. Смотрю на салат из Java и Kotlin файлов и думаю
- Дааааа, показывать такое своему старшему программисту не стоит. Да и на Гитхаб выкладывать тоже, пожалуй. Но в геймдеве могут понять.
Tags: программирование
Subscribe

  • Они используют нас как батарейки (с)

    "Они соединили биотопливный элемент, который умеет собирать пот с кончиков пальцев и окислять содержащийся в нем лактат, и пьезоэлемент, который…

  • Игра зависимостей

    Брать свое или чужое - это на самом деле очень больной вопрос, потому что даже в программировании, самом терпеливом к изменениям ремесле, зависимости…

  • Игра как фон для кино

    "Во время съёмок воздушных боёв актёр сидел в кабине, а на экранах вокруг него была запущена игра War Thunder. "…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments

  • Они используют нас как батарейки (с)

    "Они соединили биотопливный элемент, который умеет собирать пот с кончиков пальцев и окислять содержащийся в нем лактат, и пьезоэлемент, который…

  • Игра зависимостей

    Брать свое или чужое - это на самом деле очень больной вопрос, потому что даже в программировании, самом терпеливом к изменениям ремесле, зависимости…

  • Игра как фон для кино

    "Во время съёмок воздушных боёв актёр сидел в кабине, а на экранах вокруг него была запущена игра War Thunder. "…