Как стать автором
Обновить

«Конечно, это рискованно, но с должными мерами предосторожности использовать можно»: Крис Талингер о Graal

Время на прочтение16 мин
Количество просмотров10K
Всего голосов 43: ↑41 и ↓2+39
Комментарии9

Комментарии 9

Притащить Криса в Сибирь! Вы круты, жму руку!

Интересно, насколько сложно впилить поддержку value types (и даже, скорее, generics specialization) в C2? И не было ли мысли сделать это только в Graal, и заодно выкинуть C2?

А ты уверен, что проблема реализации Value Types — именно в C2?


Там нужно проапгрейдить весь пайплайн, чтобы в minimal варианте по аннотации генерилась теневая копия (DVT, derived value type). А в full варианте будет апгрейд компилятора (List<int>), верификатора, повышение версии классфайла. По ходу работы по специализации дженериков, скорей всего, появится какой-то язык шаблонов по типу существующего в C++, но более динамичный.


Если ты имел в виду Truffle Java, то её же вроде нет? Есть JS, Python, R, Ruby. Но даже полноценный JavaScript ещё не опенсорцнут (хотя уже есть бинарники, скоро напишу об этом бомбическую статью в хаб JS).


Value Types уже пилятся на текущей (неграальной) инфраструктуре, есть готовый прототип в проекте Valhalla. Написать про это статью?

Напиши, было бы интересно
А ты уверен, что проблема реализации Value Types — именно в C2?

Я не знаю, это был вопрос.


При чем тут Truffle тоже не понял.


Value Types уже пилятся на текущей (неграальной) инфраструктуре, есть готовый прототип в проекте Valhalla. Написать про это статью?

Да :)

НЛО прилетело и опубликовало эту надпись здесь

Боюсь написать непопулярный комментарий, но… бизнес так не работает. По поводу всех фич, требующих массивного рисёча, сразу возникает аргумент: сколько людей приведёт в платформу реализация той или иной фичи?


Касательно реалоада, очевидно что эта фича бизнес-полезная (например, похапэшники в мрачном шоке после перехода на Java, что Java делает всё лучше PHP — но кроме релоада, который полный кошмар). Говорю как человек, годами напролёт пытающийся склонить похапэшников к переходу.


Но давай посмотрим, чем занят сейчас весь мир? Облака! Биг дата! Машин лёнинг! Смотрим, чем занят Оракл, сегодня ночью прилетело письмо "Architect Community Newsletter". Читаем заголовки:


  • "Setting Up Basic Intents with Oracle Intelligent Bots",
  • "Zero to Docker Sandbox in 2 Minutes",
  • "Discovery on Oracle Cloud with Spring Cloud and Zookeeper",
  • "Automate API Stubbing Using WireMock on Oracle Cloud".

Теперь включим логику и просто попробуем угадать, куда Оракл бросит своих лучших разработчиков: может, на разработку релоада в единичном инстансе? Или на поддержку древнего как мир фреймворка для ынтерпрайзной веб-разработки? Нет, наверняка они их бросят на облака, бигдату и машинлёнинг.


Такие дела.


С другой стороны, это опенсорц, филиал журнала "сделай сам". Да, в OpenJDK тебе закоммитить просто так никто не даст. Но можно взять DCEVM и закоммитить туда! Ваня Дубров — вполне живой человек и отвечает на запросы. Если ничего не изменилось, у меня тоже есть доступ на мердж. Есть HotSwapAgent с его использованием, там коммитер — тоже живой человек. Берёшь и делаешь всё, что тебе хочется.

Так сколько хеловорд с гралем оперативки займет? Заметил, что начиная с восьмёрки, хеловорд что-то в районе 16Мб забирает в 64 битном линуксе.

Совершенно не факт, что наличие грааля должно как-то повилять именно на занимаемую RAM, особенно на хэлловорлде. Хотя это предположение, достойное проверки :)

Чтобы посчитать циферки, нужно установить линукс, а мы тут празднуем по случаю выходного дня, и у меня нету под рукой ни линукса, ни облака. Давай я завтра утром напишу.

Наличие грааля должно влиять на производительность приложений с большим количеством динамического кода. Например, неповоротливой ынтерпрайзной софтины, написанной на Scala. В случае Талингера это дало чуть ли не 10% производительности.

Так что, если у тебя есть какой-то бенчмарк Scala кода, можно попробовать его.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий