Je n'ai pas trop de temps, aussi je répond assez rapidement. Je suis
désolé
par avance pour toutes fautes d'orthographes ou autres erreurs.
bah pas mieux j'avais pas le temps du tout ;)
- abstraction
- encapsulation
- modularité
- hierarchie
Je suppose que quand tu parles de hiérarchie, tu penses au typage ou à la
classification selon le typage de Liskov ou celui de Cook.
entre autre
Sinon, pour faire simple et court, abstraction + encapsulation +
modularité
est décrit par un seul principe : l'objet.
Les concepts fondamentaux de l'objet sont à mes yeux, pour résumer:
- ADT,
- sous-typage ou classification (sachant que la classification est pour
moi
et par expérience la meilleur expression du typage en objet),
- polymorphisme
le probleme pour moi avec l'ADT c'est qu'on donne une trop grand importance
au type dans le sens de son identité
je prefere rester sur les 4 principes precedents et de ces 4 principes
decouler d'autres principes comme le polymorphisme
ou comme ces autres principes:
- the open closed principle
- the Liskov sustitution principle
- the dependency inversion principle
- the reuse release equivalency principle
etc...
et JavaScript supporte facilement ces 4 principes
JavaScript comme C peuvent supporter, autrement dit, donner le moyen de
les
implémenter, ces principes avec plus ou moins du boulot. Ce qui ne veut
pas
dire qu'ils _offrent_ le support de ces principes.
Ce n'est pas parce que en javaScript tu as Object que ceci en fait un
langage objet. En tout cas, mon expérience avec me confirme dans cette
appréciation.
le type objet en Javascript est un type primitif
et une fois de plus tu ne definis pas ce qu'est vraiment un langage objet
pour toi
[snip]
avec un langage comme JavaScript on est au plus pres des objets,
ce n'est pas un mal et cela n'empeche pas du tout (au contraire je
trouve
que c'est pls facile)
la realisation de systemes objets
On est plus près de l'objet avec Eiffel que JavaScript, avec Python que
JavaScript.
et pourquoi ?
là tu affirmes quelquechose tu ne donnes pas d'arguments qui soutiennent
cela
meme si JavaScript a un model objet basé sur les prototype et la
delegation au contraire des plus traditionnels models objets basés sur
les
classes ce sont juste 2 approches differentes a l'orientation objet
Je suis d'accord que les classes ou les prototypes sont deux approches du
paradigme objet.
Maintenant, JavaScript est un langage à prototypes de fonctions et non
d'objets. Pour avoir une vision réelle de ce qu'est un langage objet à
prototypes, cf. Self, Slate, io, lisaac, etc.
humm tu simplifies bcp trop JavaScript amha en disant cela
oui certes les constructeurs objet sont des fonctions,
mais leur mecanisme est objet
en fait chaque fonction est un constructeur objet en puissance
car des que l;ont definis une fonction celle-ci a automatiquement
une propriete prototype heritant par delegation de l'objet prototype
mais en soit l'objet Function est un objet, qui lui aussi hrite de l'objet
Object
le concept est assez puissant amha :)
quelques references
[ ... ]
Je lirais ces références un peu plus tard (il est possible, mise à part
celui sur JavaScript, comme pour le dernier, que je les ai déjà lu). Quant
à la dernière référence, ce n'est pas pour autant que cela fait de
JavaScript un langage objet. Il existe plusieur formes de prototypage
comme
il existe plusieurs formes de modules ou types structurés. Dire que
JavaScript est un langage objet revient à dire que Ada 83 est aussi un
langage objet sous prétexte qu'il supporte la modularité et le
sous-typage !
ces articles disent principalement que etre basé sur les prototypes
permet autant sinon plus que etre basé sur les classes
et meme si il existe plusieurs formes de prototypage (avec ou sans traits
par exemple)
reste que le fait d'etre basé sur les prototypes, meme dans la plus basique
des definitions,
permet de faire de l'orienté objet.
apres on en revient au meme probleme: etre un langage qui permet de faire de
l'orienté objet
ou etre un langage objet
et sur ce je repette ma question
quel est pour toi un langage vraiment objet ?
Mais peut-être qu'à la lecture de l'article sur JavaScript, je changerais
mon opinion sur celui-ci.
peut-etre mais apparement tu as deja des idées tres arretés sur JavaScript
zwetan