Megjelent a Java SE 7
Számos régóta várt funkcióval gazdagodott a Java SE 7 eszköztára, a fejlődés azonban nem áttörésszerű. Javult a fájlok és a párhuzamos végrehajtás kezelése, valamint bővült a JVM dinamikus nyelvek felé nyújtott támogatása - sok fejlesztés azonban átkerült a jövő év végére tervezett Java SE 8-ba.
Öt év után újra főverziót vált a Java, miután kiadta Java Standard Edition eszközeinek 7-es változatát az Oracle. Az új Java fejlesztésének vezéreleme a modern hardverekhez való alkalmazkodás, illetve az idegen programozási nyelvek befogadása volt. A nagyívű fejlesztések azonban sokat csúsztak - részben a Sun felvásárlása miatt -, így a 7-es kiadás a korábban megálmodottnál kevesebb újdonságot hordoz.
Ami bekerült...
A Java SE 7 több újdonságot felvonultat, azt azonban a készítők is töredelmesen bevallják, hogy az előző főverziókhoz képes a most bemutatott 7-es kiadás elég kevés átütő újdonságot tartalmaz. A Java 7 része lett például az elliptikus görbékre épülő titkosítási algoritmus, az Unicode 6.1-kezelés és a JDBC API 4.1-es verziója is, számos tervezett újdonság azonban a jövő év végén megjelenő 8-as kiadásra csúszott.
A 7-es verzió legnagyobb újdonsága a többszálúsítást segítő fork/join keretrendszer, amely modernizálja a Java szálkezelését. A többmagos processzorok elterjedésével az utasításfolyam szálakra bontása komoly teljesítménynövekedést hozhat, a Java azonban a párhuzamosságkezelésben egyre jobban elmaradt a Groovy, Scala és Clojure nyelvek mögött. A Java SE 5 és 6-ban megjelent java.util.concurrency ugyan sokat segített a többszálú végrehajtás erőforráskezelésében, a 7-es verzió azonban a párhuzamosítás javítására tesz nagy lépést. A keretrendszer amúgy Doug Lea független terméke - ezt emelte be az Oracle a Java-ba.
Másik fontos újítás az új IO API (NIO.2), amely jelentős sebességnövekedést hoz az I/O-műveletek alatt. Az API része az új, teljes fájlkezelő keretrendszer, amely több olyan fontos funkciót is implementál, amelyet a fejlesztők a Java megjelenése óta kértek: van kivételkezelés a fájlműveletek során, konzisztensebbé vált az átnevezés, valamint sokat fejlődött a metaadatok (például jogosultságok) kezelése. A NIO.2 ezen felül tartalmaz számos hálózatkezelési újdonságot, illetve végre megjelent az aszinkron háttértár-kezelés, amelynek hiány eddig komolyan visszafogta a Java-alkalmazások teljesítményét.
A Java SE 7-ben bemutatkozó új VM jobban együttműködik a más nyelven írt alkalmazásokkal is, köszönhetően az új InvokeDynamic keretnek. Ahogy az Oracle saját dokumentációja fogalmaz, a JVM és a Java között nincs közvetlen kapcsolat, a JVM egyetlen feladata az osztály ("class") fájlok futtatása, amely nyelv elő tud állítani ilyent, az futtatható a JVM-en. A most bejelentett kompatibilitásbővítésnek köszönhetően a JVM magasabb teljesítménnyel futtatja a Scala, Ruby, Python és Groovy nyelven írt programokat, valamint a JavaScript szkriptekkel is megbirkózik. Alex Buckley, a Java Platform Group vezetője szerint ezzel a JVM és a Java útjai fokozatosan szétválnak, a virtuális gép a jövőben nem csak a Java-hoz kötődik majd. A kötelékek egyelőre azonban szorosak még, az összes meghívásnak Java-szemantikát kell követnie a megfelelő működéshez.
...és ami nem
A nyelv reformját célzó Project Coin változásainak csak az első fele került bele a Java 7 kiadásába, a többi a 8-as verzióval érkezik majd. A Project Coin a nyelv egyszerűsítését célozza, és jelentős produktivitás-növekedést ígér a fejlesztőknek, a mindennapi feladatok és kódolás megkönnyítésével. Az első körben a kért változások mintegy fele került bele a nyelvbe, köztük a diamond operátor, amely a rendelkezésre álló algoritmusok között válogat, a "try-with-resources" és a "strings in switch".
Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.
A Java 7 egyik fontos fejlesztése lett volna a modularitás, ezeket az erőfeszítéseket a Jigsaw projekt fogja össze, egy másik fontos fejlesztés pedig a Lambda projekt keretén belül történik, ami új első osztályú függvények és függvényzárások beépítését célozza. Ezeket azonban csak a 2012-ben érkező Java 8 kapja meg, derült ki tavaly ősszel az Oracle OpenWorlddel párhuzamosan zajló JavaOne konferencián, ahol az Oracle először ismertette, mik a tervei a Javával.
Elterjedt
A Java mára a világ legelterjedtebb programozási nyelvévé vált, az Oracle adatai szerint több mint 9 millió fejlesztő használja világszerte. A Java futtatókörnyezet több mint 3 milliárd eszközön található meg, köztük egymilliárd számítógépen. A cég felmérése szerint a nagyvállalati számítógépek 97 százalékán telepítve van a Java, az installált bázis tehát hatalmas, a futtatókörnyezetet évente mintegy egymilliárd alkalommal töltik le. A Java jelentőségét növeli, hogy ezen a nyelven programozható az Android operációs rendszer is, amely mára a legelterjedtebb okostelefonos platformmá vált, valamint BlackBerrykre is Javában lehet fejleszteni.
Az új Java-verzió kiadásával fokozatosan frissülnek a fejlesztői eszközök is, a Netbeans 7.0.1 változata már teljes támogatást ad a most kiadott Java 7-hez - a kiadásra jelölt változata már letölthető az Oracle oldaláról, a stabil verzió pedig hamarosan érkezik. A Netbeans 7 volt az első integrált fejlesztői környezet, amely a Java 7-et a korai változatoktól fogva támogatta, a 7.0.1-ben pedig megkapja azokat az újdonságokat, amelyek a jelenlegi, fejlesztői előzetestől eltérnek. A Java 7 alapú fejlesztésre jelenleg még az IntelliJ IDEA 10.5 alkalmas, az Oracle saját JDeveloper IDE-jének frissítését az év folyamán ígéri.