Я использовал Java в течение 6-7 лет, затем несколько месяцев назад я обнаружил Groovy и начал экономить много ввода. Тогда я задавался вопросом, как некоторые вещи работали под капотом (потому что производительность groovy действительно бедна) и поняла, что для динамической типизации каждый Groovy объект является объектом MetaClass
, который обрабатывает все вещи, которые JVM не мог справиться сам по себе. Конечно, это вводит слой посередине между тем, что вы пишете, и тем, что вы выполняете, что замедляет все.
Затем, когда-то, я начал получать информацию о Scala. Как эти два языка сравниваются в своих байтовых переводах? Сколько вещей они добавляют к нормальной структуре, которую он получит простым Java-кодом?
Я имею в виду, что Scala является статическим, поэтому оболочка классов Java должна быть легче, поскольку во время компиляции проверяется много вещей, но я не уверен в реальные различия в том, что происходит внутри. (Я не говорю об функциональном аспекте Scala по сравнению с другими, что-то другое)
Может кто-нибудь просветить меня?
Из комментария WizardOfOdds кажется, что единственный способ получить меньше ввода и такую же производительность - это написать промежуточный переводчик, который переводит что-то в код Java (позволяя компиляции javac) без изменения того, как вещи выполняются, просто добавляя синтатический сахар с заботой о других недостатках самого языка.