mars
2009
J’ai conclu l’article précédent en me déclarant de type Homme
.
La classe EtreHumain
est cependant conservée :
- elle surclasse les classes
Homme
etFemme
- elle paramètre l’interface générique
PeutMettreAuMonde<E>
implémentée parFemme
.
Soit f
une instance de Femme
que l’on supposera enceinte et dont le bébé arrive à terme.
Considérons l’instruction EtreHumain e = f.metAuMonde();
e
est donc une instance d’EtreHumain
et plus spécifiquement une instance d’Homme
ou une instance de Femme
.
Le mystère de la création enfin résolu ? Pas vraiment ! une question se pose : D’où vient f
? Si f = (Femme) mf.metAuMonde()
, d’où vient alors mf
? …
L’histoire de la poule et de l’œuf : une régression infinie ?
Dans l’histoire de la poule et de l’œuf où on cherche qui précède qui ?
- l’œuf est en fait une ovule non fécondé et la poule précède donc l’oeuf !
- l’œuf est une ovule fécondé qui donnera un coq, la poule précède l’œuf car on n’a jamais vu un coq faire une poule, seulement des coqs « se faire » des poules !!!
- l’œuf est une ovule fécondé qui donnera une poule, la question devient « Quelle est la poule qui a fait la poule ?«
Dans notre cas, si on met également de côté le mâle qui participe de manière indirecte à la création, la question est similaire : « Quelle est la femme qui a fait la femme ? »
Créationniste VS Évolutionniste ?
A la question « Quelle est la femme qui a fait la femme ?« , je ne vois que deux réponses :
- Soit on considère qu’en remontant la chaîne de création, on finit par tomber sur une femme première, tombée du ciel ? créée par miracle ? ou existante depuis toujours ? (N’est-ce pas là la preuve que Dieu est une femme ! ;o))
- Soit on considère l’évolution …
On ne dit pas d’un bébé « Quel bel homme ! » ou « Quelle belle femme ! » parce que si sur un plan biologique, c’est déjà un mâle ou une femelle, il va évoluer au cours de sa vie … On devient Homme, on devient Femme … De la même manière que ses instances, la classe EtreHumain n’est pas apparue du jour au lendemain, on est devenu être humain au cours du temps … Il n’y a pas de frontière nette, on est dans un monde continu …
Dire qu’on est plus humain que nos ancêtres d’il y a plusieurs milliers d’années est un point de vue : vue d’ici où nous sommes les représentants des êtres humains.
Un représentant de nos ancêtres pourrait très bien dire qu’ils sont les êtres humains et que nous, nous sommes autre chose; c’est un autre point de vue.
Disons donc simplement que nous sommes différents de nos ancêtres et de nos descendants.
Comment modéliser ?
- A priori, la création ex nihilo me paraît plus facile à implémenter : Je partirai d’une femme initiale (
Femme eve = Femme.getPremiereFemme();
) puis je ferai des appels à la méthodemetAuMonde()
de chaque femme de sa descendance … On devrait bien tomber sur ma mère !
Cependant, en suivant cette façon de faire, il y a une difficulté : combien de femmes intermédiaires ? Je ne saurai le dire !
La seule solution que j’imagine est de ne pas remonter à l’origine mais de partir d’un état initial où préexisterait une femme de ma branche maternelle. - A priori, l’évolution soulève une difficulté originelle insurmontable : D’où partir ?
Lavoisier apporte la solution avec sa célèbre formule « rien ne se perd, rien ne se crée, tout se transforme« . L’évolution, c’est donc ce qui nous transforme, ce qui nous fait passer d’un état initial à un état final ! Je peux donc choisir l’état initial qui me convient : considérer une femme de ma branche maternelle ou même considérer que j’existe déjà !
Du coup, on voit que dans cette modélisation, quelque soit la position adoptée, on part d’un état initial où préexistent certaines entités.
C’est d’ailleurs souvent le cas en POO, c’est pourquoi il existe des librairies qui initialise un graphe d’objets (Comme Spring dans le monde Java).
La réponse à la question posée en introduction est donc : La femme f
vient d’un état initial.
A suivre …