Studiando il Java dopo un po’ ci si accorge come tutto discenda da un’unica entità. Un’unica classe da cui derivano tutte le altre. “Un anello per domarli tutti” direbbero i fan del Signore degli Anelli. Insomma una superclasse, di nome Object, che può assumere ogni forma o dimensione, in base a come viene utilizzata.

Con un po’ di fantasia (un po’ molta, lo ammetto :D) si può reinterpretare la teoria creazionistica cristiana con l’ereditarietà dei tipi d’oggetto del Java. Sperando di non venire fulminato per questo vi propongo la mia revisione del primo capitolo della Genesi estrapolato dalla Sacra Bibbia:

(Tenete sempre a mente che in Java tutto deriva dalla superclasse Object 😉 )

Il primo giorno Dio creò la terra. Dio disse: «Sia la luce». E la luce fu. Dio vide che era cosa buona. Allora separò la luce dalle tenebre e chiamò la luce giorno e le tenebre notte.

package genesis;
//Day One
public class HeavenAndEarth extends Object {
private boolean light;
private boolean isGood;
public Object time[];
public HeavenAndEarth() {
light = false;
isGood = true;
}
public boolean LetThereBeLight() {
light = true;
return light && isGood;
}
public void Light() {
time = new Object[2];
time[0] = "Day";
time[1] = "Night";
}
}

Il secondo giorno Dio disse: «Sia il firmamento in mezzo alle acque per separare le acque dalle acque» e separò le acque sotto il firmamento dalle acque sopra il firmamento. Dio chiamò il firmamento cielo.

package genesis;
//Day Two
public class Waters extends Object {
public Object waters[][];
protected boolean isGood;
public Waters() {
isGood = true;
}
public void LetThereBeFirmament() {
waters = new Object[2][];
waters[0] = new Object[1];
waters[0][0] = "Heaven";
}
}

Il terzo giorno Dio disse: «Le acque sotto il cielo si raccolgano in un solo luogo e appaia l’asciutto». Chiamò l’asciutto terra e le acque mare. Dio vide che era cosa buona. E disse: «Le erbe che producono seme e alberi da frutto facciano sulla terra frutto con il seme». Così avvenne. Dio vide che era cosa buona.

package genesis;
//Day Three
public final class EarthAndSeas extends Waters {
public EarthAndSeas() {
super();
}
public boolean LetTheWatersBeGatheredTogether() {
waters[1] = new Object [2];
waters[1][0] = "Earth";
waters[1][1] = "Seas";
return isGood;
}
public boolean GiveLife(Object plants, Object fruitTrees) {
plants = new Object();
fruitTrees = new Object();
return isGood;
}
}

Il quarto giorno Dio disse: «Siano le luci nel firmamento per distinguere il giorno dalla notte e servano per illuminare la terra». E così Dio fece le due luci grandi per regolare il giorno e la notte e poi fece le stelle. Dio vide che era cosa buona.

package genesis;
//Day Four
public class PopulateSky extends Object {
public Object SkyLights[];
private boolean isGood;
public PopulateSky() {
SkyLights = null;
isGood = true;
}
public boolean GetLights() {
SkyLights = new Object[3];
SkyLights[0] = "Sun";
SkyLights[1] = "Moon";
SkyLights[2] = "Stars";
return isGood;
}
}

Il quinto giorno Dio disse: «Le acque brulichino di esseri viventi e gli uccelli volino sopra la terra». Così Dio creò i mostri marini, gli esseri viventi che brulicano nelle acque e gli uccelli. Dio vide che era cosa buona. Dio disse: «Siate fecondi e moltiplicatevi».

package genesis;
//Day five
public class Animals extends Object {
public Object birds;
public Object seaMonster;
protected boolean isGood;
public Animals() {
birds = new Object();
seaMonster = new Object();
isGood = true;
}
public Object Multiply(Object animal) {
Object multiply[] = new Object[2];
multiply[0] = multiply[1] = animal;
return multiply;
}
}

Il sesto giorno Dio disse: «Siano gli esseri viventi: il bestiame, i rettili e le bestie selvatiche». Così avvenne e Dio vide che era cosa buona. Dio disse: «Facciamo l’uomo a nostra immagine e somiglianza». E creò così il maschio e la femmina. Dio li benedisse e gli disse: «Siate fecondi e moltiplicatevi». Dio vide che era cosa molto buona.

package genesis;
//Day six
public final class EarthAnimals extends Animals {
public Object cattle;
public Object creepers;
public Object beasts;
public Object human[];
public EarthAnimals() {
super();
}
public void makeEarthAnimals() {
cattle = new Object();
creeping = new Object();
beasts = new Object();
}
public boolean makeHuman() {
human = new Object[2];
human[0] = "Male";
human[1] = "Female";
return isGood;
}
public Object Multiply(Object person) {
Object multiply[] = new Object[2];
multiply[0] = multiply[1] = person;
return multiply;
}
}

Voglio precisare che i passi della Bibbia sopra citati non sono estratti originali, ma riassunti da me stesi del primo capitolo della Genesi. Questo sia per scelta personale, sia per abbreviare il discorso senza dissacrare le Sacre Scritture.