Oracle, kompanija koja rukovodi Java programskim jezikom, planira da poboljša produktivnost i efikasnost kodiranja za Java programere: od promena sintaksi na jednostavnom nivou, preko poboljšavanja grafičkog programiranja, do vrednosnih objekata i drugih stvari.
Iako je Nikolaj Parlog (Nicolai Parlog), koji radi kao Oracle Java Developer Relations predstavnik, izjavio da sve promene neće stići da se završe u 2024. godini, svakako je u planu da se u ovoj godini započnu.
OpenJDK (Open Java Development Kit) predstavlja open-source implementaciju za Java programski jezik, kao i biblioteku velike većine Java koda. Samim tim što je open-source, dozvoljava decentralizovano vršenje izmena i poboljšavanje ovog programskog jezika.
Oracle je odlučio da pokrene nekoliko projekata pod okriljem OpenJDK-a koji će doprineti poboljšanju Java programiranja od 2024. godine pa nadalje.
Projekat Valhalla fokusiraće se na poboljšanje Java koda kada je reč o brzini memorije i procesuiranju.
Klase integer, double i byte u Javi primeri su takozvanih „zapakovanih primitiva”. U Javi, primitivni tipovi podataka poput int, double i byte nisu objekti, već sirovi podaci. Njihove „zapakovane” verzije (integer, double, byte) predstavljaju objektne ekvivalente ovih primitiva. Koriste se prilikom objektne reprezentacije, u kolekcijama ili generičkim tipovima.
Ideja je da uklanjanjem koncepta identiteta iz ovih zapakovanih tipova Java postane efikasnija. Trenutno, kada se porede zapakovani primitivi (korišćenjem ==), Java upoređuje njihove identitete (da li su isti objekti), što može biti zbunjujuće, jer programeri mogu očekivati da će se upoređivati njihove vrednosti. Fokusiranjem na poređenje vrednosti i uklanjanjem tereta povezanog sa identitetom objekta, ove operacije se mogu obavljati intuitivnije i efikasnije.
To bi takođe podrazumevalo smanjenje opterećenja tokom izvršavanja programa, jer objekti koji predstavljaju vrednosti mogu biti efikasniji u pogledu memorije i performansi u poređenju sa tradicionalnim objektima.
Jedan od ključnih elemenata koji se pominje u projektu Babylon jeste unapređenje sposobnosti refleksije u Javi. U programiranju „refleksija” se odnosi na sposobnost programa da ispituje, modifikuje, pa čak i generiše kod tokom izvršavanja. To može uključivati ispitivanje objekata, pozivanje metoda ili manipulaciju unutrašnjim svojstvima klasa tokom izvršavanja programa. Proširenje API-ja za refleksiju značilo bi davanje programerima više alata i opcija za ovakvu vrstu dinamičke manipulacije kodom.
Još jedan važan aspekt projekta Vavilon jeste omogućavanje transformacije Java koda unutar metode. To znači da bi programeri mogli pisati kod koji se zatim dinamički menja ili interpretira tokom izvršavanja unutar opsega jedne metode, a to bi se moglo koristiti i za različite napredne programerske tehnike.
Još jedan od ciljeva koji se pominje jeste omogućavanje programerima da pišu Java kod koji biblioteka može interpretirati kao matematičku funkciju. To implicira visok nivo apstrakcije i fleksibilnosti u načinu izvršavanja Java koda, potencijalno omogućavajući efikasnije izračunavanje ili integraciju sa specijalizovanim obradama poput matematičkih biblioteka.
Projekat Vavilon takođe nastoji da poboljša sposobnost Jave da koristi GPU (grafičku procesorsku jedinicu) za visokozahtevne proračune, što je često ključno u oblastima poput naučnog računanja, mašinskog učenja i obrade grafike.
Projekat Leyden se fokusira na poboljšanje vremena pokretanja Java aplikacija. Projekat Leyden, koji inače predstavlja ambiciozan napor da se poboljša vreme pokretanja, performansi i memorijskog otiska Java programa, planira da ponudi kondenzatore. Kondenzator je kod koji se izvršava između vremena kompilacije i vremena izvršavanja, transformišući originalni program u novi, brži i potencijalno manji program.
Cilj je dovesti prototipove kondenzatora do stanja u kojem su spremni za upotrebu. To implicira da su ti kondenzatori trenutno u fazi razvoja i planira se značajan rad sa njima kako bi bili pouzdani i efikasni za izradu aplikacija.
Projekat Amber teži pojednostavljenju Java jezika, čineći ga konciznijim i ekspresivnijim. Time bi omogućio lakše i intuitivnije formatiranje i manipulaciju stringovima u Javi, jednostavniji način pisanja main metode, koja je ulazna tačka Java aplikacije, kao i pisanje određenih vrsta izjava koda pre pozivanja metoda this() ili super() u konstruktorima, što je trenutno ograničeno u ovom programskom jeziku. Ta promena bi mogla ponuditi veću fleksibilnost u inicijalizaciji objekata.
Projekat Loom je fokusiran na unapređenje Jave za rad sa konkurentnošću, posebno kroz funkcije kao što su virtuelni treadovi, strukturirana konkurentnost i opsežne vrednosti.
Za razliku od tradicionalnih treadova, koji su mapirani jedan na jedan sa sistemskim treadovima i zahtevaju dosta resursa, virtuelni treadovi su lagani i dizajnirani tako da njima upravlja JVM (Java Virtual Machine). To omogućava veliki broj konkurentnih zadataka, bez značajnog dodatnog opterećenja povezanog sa tradicionalnim tredovima.
Strukturirana konkurentnost pojednostavljuje pisanje, održavanje i otklanjanje grešaka kod istovremenog izvršavanja većeg broja tredova. To je način za efikasnije i pouzdanije upravljanje višestrukim treadovima izvršavanja.
Projekat Lilliput ima cilj da istraži metode za smanjenje veličine zaglavlja Java objekata u Hotspot JVM sa 128 bita na 64 bita ili manje, čime se smanjuje upotreba memorije u Javi. Očekuje se da će to poboljšati performanse u većini radnih opterećenja, ako ne i u svim.
Projekat Panama, ukratko rečeno, radi na poboljšanju interoperabilnosti Jave sa nativnim C kodom kroz različite API-je i alate, sa ciljem da pojednostavi integraciju Jave sa izvornim bibliotekama i funkcijama.
Java programski jezik, koji služi za izradu većih aplikacija i softverskih rešenja, jedan je od složenijih jezika za kodiranje. Cilj kompanije Oracle je upravo da tu složenost, vremensku i memorijsku efikasnost dodatno optimizuje kako bi olakšala posao Java programerima i učinila programiranje u ovom jeziku privlačnijim.
Voleli biste da postanete Java Developer? Pogledajte naše Java Development jednogodišnje školovanje!
Copyright © ITAcademy. Sva prava zadržana. Privatnost.
Komentar