dimanche 15 novembre 2009

A0044 La Programmation peut-elle être sans objet ?

Si nous voulons Faire Radicalement Autrement,  nous allons devoir nous attaquer à la Programmation Orientée Objet (et Java va bien nous y aider).
Vaste programme qui fera l'objet de plusieurs billets.

Commençons par l'étymologie de "Programmation Objet"
Programmation, c'est "écrire à l'avance" (pro -gramma)
Objet: c'est "quelque chose qui fait obstacle, qui git devant nous" (ob- jacere)

NB: tout ça, c'est du grec et /ou du latin; ils étaient assez mélangés à l'époque; l'interopérabilité marche bien entre langages naturels, surtout avant l'invention de l'imprimerie. Pas besoin d'ontologie en XML.

Donc, en gros, "Programmation Objet" ça veut dire " décrire à l'avance les obstacles que l'on va rencontrer plus tard sur notre route".

Partis comme ça, on ne risque pas d'aller bien loin.

Nous avons déjà commencé à nous attaquer à la programmation toute seule (voir le billet A0005), et à l'objet tout seul (voir le billet A0039 - objets et modèles c'est pareil)

Mais nous devons aussi ambitionner de dissoudre le couple  "Programmation" et "Objet", c'est à dire nous intéresser à:

"La Programmation sans Objet" et "Les Objets sans Programmation"

Cela nous conduira à parler de "La Programmation Logique"
A suivre ...

1 commentaire:

ogerard a dit…

Les langages naturels sont un peu traîtres, flous et remplis d'exceptions.

objacere par exemple n'a pas été utilisé par les latins et en tout cas n'est pas attesté par mes sources (comme le grand dictionnaire du latin de Lewis et Short, accessible électroniquement par Perseus). Obiectus (adjectif ou nom) y est dérivé de obicire ou obiicire (pour utiliser l'infinitif actif comme les grammaires françaises).

Alors que jacio a un sens largement passif (le verbe a donné entre autres gésir, joncher, jachère), et une connotation disons horizontale (par exemple pour un être humain, rester allongé quand on est malade), obicio a un sens souvent actif, cognitif et dynamique : placer devant soi (pour examiner), placer de profil (pour mieux voir le profil se découper sur le fond -- cela nous rappelle qu'observer c'est aussi choisir son point de vue), mais aussi apporter à la vue d'autrui, mettre en avant, placer comme un bouclier, dresser contre, brandir (d'où "objection" en français), jeter à quelqu'un pour détourner son attention, pour satisfaire son vice.

Parmi les interprétations que l'on peut en tirer de cette très riche étymologie, la plupart sont aussi défavorables que la vôtre. Par exemple :

Programmation Objet :

- Prévoir en dur, les contre-arguments aux critiques de l'utilisateur avant même l'écriture du code.

- Faire de chaque ingrédient de la modélisation un rempart contre la modification du programme.

- Jeter en pâture aux codeurs les noms de baptême de formulaires à cases multiples et notices pléthoriques qui leur donnent l'impression de faire de l'informatique.


On pourrait remarquer aussi que beaucoup de discussions théoriques sur la programmation objet passent beaucoup de temps à analyser les problèmes d'héritages entre objets, classes, ... alors qu'il n'y a très souvent pas de patrimoine utile à transmettre (pas de code à réutiliser sans payer une lourde taxe de relecture et de mise à jour).