Názor k článku Vyšla Java 11: menší core systém a experimentálne garbage collectory od Vít Šesták - SubstrateVM (nativní image u GraalVM) je sice pěkná...

  • Článek je starý, nové názory již nelze přidávat.
  • 1. 10. 2018 12:09

    Vít Šesták

    SubstrateVM (nativní image u GraalVM) je sice pěkná věc, ale není to univerzální řešení. Musíte přijmout nějaká omezení, která musí splnit nejen váš kód (to je většinou celkem řešitelné), ale taky kód všech použitých knihoven – a to je někdy problém i se standardní knihovnou z JRE.

    V praxi to vypadá asi takto: Větší aplikace jsou se SubstrateVM prakticky bez šance. Menší věci – pokud překousnete několikamegovou binárku (dnes snad není problém) – s trochou štěstí půjdou zkompilovat a bez problémů pojedou. Ale ne vždy, třeba u JDBC jsem si vylámal zuby.

    A má to nějaké bugy (typicky se naštěstí projeví hned při kompilaci), na které není tak těžké narazit. A občas se mi stalo, že nějaký platform-specific code to považovalo za reachable a při kompilaci pro Linux jsem tomu musel na classpath dodat i třeba JNA pro Windows.

    Zatím taky je omezený seznam platforem, kde to jede. Windows není zatím podporovaný, macOS nevím, z instrukčních sad jen x64. Což je vzhledem k potenciálu pro embedded škoda.

    Stručně, je to užitečná věc, ale má celkem omezené možnosti. Do budoucna to může být i o poznání užitečnější, ale patrně nikdy nepůjde o obecnou náhradu za univerzální JVM.