Článek přečtěte do 4 min.

Když se mluví o vývoji aplikací umělé inteligence, každý si vzpomene na Python, čemuž napomáhají knihovny umělé inteligence v Pythonu a mylná představa, že Java není dobrý jazyk pro vývoj umělé inteligence. Ve skutečnosti existuje způsob, jak v Javě interagovat prakticky s každou knihovnou umělé inteligence. Navíc vynikající škálovatelnost, vícevláknové kódování a kompilace just-in-time dělají z Javy vynikající jazyk pro vývoj umělé inteligence. V tomto blogovém příspěvku zástupce technického ředitele Azulu a šampion Javy Simon Ritter zkoumá vhodnost Javy pro vývoj aplikací umělé inteligence.

Není pochyb o tom, že nejžhavější oblastí v IT je dnes umělá inteligence (AI). V posledních několika letech došlo k masivnímu nárůstu schopností AI, investic do jejího využití a jejího začlenění prakticky do všeho kolem nás.

Když se řekne vývoj jazyků pro vývoj aplikací pro umělou inteligenci, každý si představí Python. Python nabízí nepřeberné množství knihoven, včetně TensorFlow, PyTorch, Hugging Faces a LangChain, a také API od OpenAI a Anthropic. Python je také oblíbený ve vývoji umělé inteligence z prakticky stejných důvodů, proč je Java tak oblíbená pro podnikové aplikace. Syntaxe Pythonu je snadno čitelná, takže sdílení kódu je jednoduché. Díky své přístupnosti je velmi oblíbený u výzkumníků v oblasti umělé inteligence, kteří jsou často spíše obeznámeni s matematickými koncepty než s kódováním.

Mezitím přetrvávají mylné představy o schopnosti Javy integrovat se s výše uvedenými knihovnami a frameworky.

Podívejme se na rozdíly mezi vnímáním a realitou.

Způsoby interakce s knihovnami umělé inteligence založené na Javě

Tyto populární knihovny a frameworky pro umělou inteligenci mají všechny způsoby interakce založené na Javě, jak je znázorněno v tabulce níže.

Knihovna nebo framework AI Jak používat s Javou
TensorFlow Podpora koncových bodů REST v rozhraní Java API (od Googlu)
PyTorch Java API (z Meta)
Objímající se tváře Koncové body REST knihovny Deep Java
LangChain LangChain4J
OpenAI Koncové body REST v SpringAI simple-openAI
Antropický Koncové body REST Java API (z Anthropic)

Jak je vidět z tabulky, používání REST endpointů je rozšířené. Nedávno jsem se zúčastnil konference a sledoval jsem prezentaci Joshe Longa z Pivotalu o Spring AI. Vyjádřil se k tomu skvěle: většina toho, co dnes s AI děláme, je posílání textu na REST endpoint. V Javě to děláme už léta a jsme velmi dobře připraveni to dělat efektivně.

Dalším klíčovým aspektem platformy Java je Projekt Panama, který je navržen tak, aby usnadnil interakce mezi Javou a nejavovými API. Projekt Panama přinesl jednodušší náhradu za Java Native Interface (JNI). Rozhraní Foreign Function a Memory API nyní usnadňují integraci nejavových knihoven do aplikací v Javě.

Výhody Javy v oblasti výkonu a škálovatelnosti

Přestože je Python skvělý jazyk pro vývoj malých aplikací, Java skutečně dosahuje vynikajících výsledků, pokud jde o výkon a škálovatelnost. Schopnost JVM škálovat se na úlohy o velikosti internetu je dobře osvědčená a je hlavním důvodem popularity platformy.

Například Java od samého začátku podporovala koncept více vláken, což je přímo v jazyku zabudováno. Během své 30leté historie se vícevláknové kódování stalo výkonnějším a jednodušším. Nejnovějším přínosem jsou virtuální vlákna spolu se strukturovanou souběžností a hodnotami s omezeným rozsahem. Python je ze své podstaty jednovláknový kvůli globálnímu uzamčení interpretu (GIL). GIL brání více než jednomu vláknu ve spouštění kódu Pythonu najednou. Python nabízí dva moduly, které se snaží tento problém vylepšit: modul pro threading, který stále podléhá omezením výkonu GIL, a modul pro multithreading, který se problému GIL vyhýbá tím, že pro paralelní spouštění vytváří samostatné procesy Pythonu. Modul pro multiprocessing má vážná omezení škálovatelnosti a značné výzvy pro vývoj kódu pro kooperativní sdílení dat.

Dalším problémem Pythonu s výkonem je, že se jedná o interpretovaný jazyk, pokud se používá nejoblíbenější běhové prostředí CPython. Ačkoli je Java také interpretovaný jazyk, JVM využívá kompilaci just-in-time (JIT). JVM identifikuje často používané metody a během běhu aplikace je kompiluje do optimalizovaných nativních instrukcí. Opět platí, že s více než dvaceti pěti lety vývoje může kompilace JVM JIT přinést zvýšení výkonu, které může být řádově lepší než při použití pouze interpretu. Azul do našeho Zing JVM zahrnul jiný JIT kompilátor, který to může ještě vylepšit (například Kafka dokáže zpracovat o 43% více transakcí za sekundu než standardní implementace OpenJDK).

Uživatelé Javy chtějí používat Javu pro vývoj umělé inteligence

To vše naznačuje, že Java je ideálně připravena zvládnout novou vlnu vyvíjených aplikací pro umělou inteligenci. Již nyní vidíme, že firmy, které potřebují škálovat své úlohy s umělou inteligencí na mnohem větší počet uživatelů, se spoléhají na Javu, aby toho dosáhly jednoduchým a nákladově efektivním způsobem.

Důkazem toho je, že 50% účastníků průzkumu a zprávy o stavu Javy z roku 2025 uvádí, že jejich organizace používá Javu k vývoji aplikací umělé inteligence. Ačkoli byl tento průzkum zaměřen na vývojáře v Javě, jasně ukazuje, že Java se používá pro vývoj aplikací umělé inteligence v reálném světě.

GRAF – Průzkum stavu Javy v roce 2025 – 50 % společností, které vytvářejí funkce umělé inteligence, je vytváří pomocí Javy.

Python bude nepochybně i nadále primárním jazykem pro vývoj umělé inteligence, ale nebude trvat dlouho a Java Python v oblasti nasazení umělé inteligence v podnikových systémech předběhne. 

Závěrem

Java i nadále představuje páteř pro kriticky důležité obchodní aplikace v podnicích. Velká část dlouhověkosti a neustálého růstu Javy je dána jejím sklonem k inovacím, což z ní činí klíčový prvek rostoucího zájmu o alternativy k Oracle Java, výkon aplikací, optimalizaci nákladů na cloud a produktivitu DevOps. Java si i nadále udržuje vedoucí postavení v oblasti služeb inženýrům a jejich organizacím a zároveň se dostává do čela i v oblasti umělé inteligence.

Pro více informací nás neváhejte kontaktovat.

Zdroj: Azul