Gyakorlati alapok II.

Amikor az osztály vagy metódus elavult (deprecated)

 

Napjaink egyre gyorsuló technológiai fejlődési ütemének egyik hátránya, hogy rendkívül hamar válnak egész technológiai rendszerek elavulttá. Magát a fejlődést persze ez nem igazán aggasztja, hanem csak dübörög a maga útján, bár azért a nyersanyagok és erőforrások ilyetén mértékű devalválódása már felveti a fenntartható fejlődés kérdését egy olyan véges rendszerben, mint a Föld. (Ne legyenek kétségeink: a fejlődés ilyen lendülete hosszabb távon nem tartható fent globális konfliktusok nélkül.)

 

A devalválódás természetesen a programozási nyelveket is érinti. Például manapság (2016) már senki sem tanítja-tanulja a Pascalt, de még objektumorientált verzióját, a Delphit sem, sőt rengeteg további programozási nyelv tűnt el az idő útvesztőjében.

 

Egy programozási nyelv "halálának" több oka lehet:

A Java is régen kihalt volna már (vagy legalábbis agóniába fúlt volna), ha szülőatyja James Gosling...

 

www.informatika-programozas.hu - James Gosling

 

...nem ad neki már kezdetektől fogva helyes útirányt (illetve ha később nem fejlesztik tovább). Nem állítom, hogy a Java-nyelv a világ legfontosabb programozási nyelve volna (programozók egy kicsiny, a Szent Grált algoritmusokban kereső csoportjának egyik fő ismérve, hogy "lenéznek" bizonyos programozási nyelveket, sajátjukat pedig az egekig magasztalják), de mégis több milliárd gépen fut valamilyen szintű Java-kód.

 

Egy programozási nyelv továbbfejlesztése valójában létkérdés, hiszen az "alatta" lévő technológia viszont gyorsan változik; ez a Java esetében sincs másképpen. Ennek során lényegében az uralkodó programozási szemlélet és technológia követelményeit illesztik rá a programozási nyelvre, a Java esetében a JVM-re, esetleg egyszerűen a fejlesztőknek eszükbe jutott valami új dolog. A fejlesztés fáradságos és kiemelt szaktudást igényel, hiszen mivel valójában rendszerprogramozásról van szó, mindenképpen meg kell találni a legjobb, az optimális megoldást. (Természetesen  minden programozónak erre kell törekednie, de azért bizonyos mértékig kötetlenebb lehetőségeket enged meg az alkalmazásszintű programozás, hiszen az a keretrendszer szinte teljes védelme alatt zajlik.)

 

Egy programozási nyelv továbbfejlesztése során új osztályok, új metódusok keletkeznek és néhány régi elavulttá válhat. Az angol szakszó erre: deprecated. Ezt az Eclipse külön is jelzi olyasformán, hogy az elavult metódus nevét középen áthúzza, például:

 

www.informatika-programozas.hu

 

Az alábbi, még futtatható Java kódban egy ilyen jellegű metódust tanulmányozhatunk:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.io.*;

public class Main {
public static void main(String[] args) throws IOException {
    FileOutputStream fileOutputStream = new FileOutputStream("D:\\PI.txt");
    PrintStream printStream = new PrintStream(fileOutputStream);
    printStream.print(3.1415926);
    DataInputStream dataInputStream = new DataInputStream(new FileInputStream("D:\\PI.txt"));
    String PI = dataInputStream.readLine();
    System.out.println(PI);
    fileOutputStream.close();
    printStream.close();
    dataInputStream.close();
    }
}

 

Végeredmény:

a konzolon és a PI fájlban 3.1415926

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A metódus még működőképes (a jelenlegi Java-verziószám 8), ám garantált, hogy a későbbiekben a rendszerből kivezetésre fog kerülni, tehát a deprecated minősítésű kódhasználattal valójában ez a baj: esetleges Java-update (verzióváltás, újabb verzió telepítése) esetén már szavatoltan nem lesz futtatható. Következésképpen a deprecated minősítésű kódokat előbb-utóbb mindenképpen újabbakra kell lecserélni.