Hlavní navigace

Názor ke zprávičce Java 17 a OpenJDK 17 s hotovým Vector API a plánovaným koncem Applet API od Filip Jirsák - Víte, jak vypadá Micronaut aplikace? Je to můj...

  • 17. 9. 2021 14:11

    Filip Jirsák

    Víte, jak vypadá Micronaut aplikace? Je to můj kód, který závisí na knihovnách Micronautu, případně na dalších knihovnách, které uvedu v závislostech. Klidně si to někdy zkuste, vytvořte si jednoduchou Micronaut aplikaci, dejte si do závislostí nějaké API z Java EE (jiné, než ke kterému Micronaut dodává) – třeba CDI. Až tu aplikaci zkusíte spustit, zjistíte, že nebude fungovat, protože tam bude chybět právě implementace CDI. Protože ji tam Micronaut nedodal, protože nic takového nedělá. Kdybyste to chtěl zprovoznit, budete muset do závislostí sám přidat implementaci CDI, nakonfigurovat ji… Když tohle uděláte, budete mít aplikaci závislou na Micronautu a zvolené implementaci CDI. Což je přesný opak toho, než o co se snažilo Java EE – abyste měl aplikaci závislou jen na API a mohl ji nasadit kamkoli.

    Stále nechápete, že hodnota Java EE měla být právě v tom, že je to sada API (později několik sad API, kde větší sady v sobě zahrnovaly menší sady), které měli zabránit uzamčení na nějaké platformě. Prostě na vás nebude moci tlačit IBM, protože kdykoli můžete svou Java EE aplikaci vzít a přesunout ji na platformu od Oracle nebo RedHatu. Jenže za prvé tohle nikdy 100% nefungovalo, ale hlavně o to ve světě mikroslužeb není zájem. Protože když se vám ta mikroslužba přestane líbit, zahodíte ji a napíšete jinou, klidně v jiném jazyce nebo s jiným frameworkem. O takovouhle sjednocující platformu pro enterprise aplikace zkrátka už není zdaleka takový zájem, jako dříve, takže je logické, že do toho někdo nechce investovat.

    Je zcela v pořádku, že dílčí knihovny z té platformy žijí dál. Kdo chce použít JPA, použije JPA – ale je mu úplně jedno, že JPA bylo kdysi především součástí Java EE. Tomu, kdo potřebuje použít jen JPA, je značka Java EE úplně ukradená. Přece když se rozhoduju, zda v aplikaci použiju pro práci s JSONem Jackson nebo JSR 374, neznamená to, že v prvním případě bude výsledkem non-Java EE aplikace a v druhém případě Java EE aplikace.

    Quarkus nemá s Java EE nic společného. Jenom využívá některé standardy, které jsou shodnou okolností i součástí Java EE. Ale aplikace napsaná pomocí Quarkus není Java EE aplikace. Naopak můžete najít články jak od Javy EE přejít na Quarkus.

    Takže pořád netuším, co měl podle vás Oracle s Java EE dělat. Pokud jste tím chtěl říct, že měl Oracle udělat něco takového, jako je Quarkus, pak to se stalo – za Helidonem, který jsem tu několikrát zmiňoval, je právě Oracle.