"Miguel Moquillon" wrote:
la bonne question serait
Quelle est _ta_ définition d'un langage vraiment objet ?
Non.
La définition _usuelle_ et centrale de l'objet est celle donnée, par
exemple, par Marc, et comme il l'a dit, un langage objet est un langage
qui
offre un support aux principes centraux du paradigme objet. Au vue de
ceci,
je suis désolé, mais JavaScript n'offre pas ce support.
je ne suis pas du tout d'accord
mais c'est surtout que les principes centraux du paradigme objet
je les definis comme cela
- abstraction
- encapsulation
- modularité
- hierarchie
et JavaScript supporte facilement ces 4 principes
apparemment tu te bases plus sur la théorie que sur l'usage d'un
langage,
ce qui est dommage amha.
Au contraire, ce qui est dommage est d'avoir une connaissance d'un sujet
que
par l'usage d'un outil limité.
c'est _toi_ qui pense que JavaScript est limité
et je peux te jurer que non :)
si tu regardes l'evolution de langages comme Java ou C#
tu verras qu'il y a bcp de concepts dynamiques qui leurs sont rajoutés
"apres coup"
ces meme concepts dynamiques existant deja en JavaScript
Les langages, quelqu'ils soient, ne sont que
des outils plus ou moins limités pour exprimer, composer un système objet.
Pour bien appréhender le développement objet,
on est d'accord
AMHA, il faut de toute façon
passer par la "théorie", sachant qu'elle est en constant évolution.
je ne dis pas qu'il ne faut pas de théorie, mais bon
les langages aussi sont en constantes evolution
des langages comme Python et JavaScript n'ayant pas de typage statique
au depart se tournent vers de l'annotation de type par exemple
Je m'appuie sur les/des concepts du paradigme objet et sur mon expérience
pour réaliser un système, dans la mesure du possible, objet et de façon
aussi objet. Les langages m'aident ou non à réaliser au mieux cet
objectif.
Et non l'inverse.
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
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
quelques references
"Classes vs Prototypes " OOPSLA 89
http://www.laputan.org/reflection/warfare.html
"Classes versus Prototypes in Object-Oriented Languages" ACM/IEEE 86
http://www.cs.washington.edu/research/constraints/object-oriented/fjcc-86.html
"Is JavaScript an Object-Oriented Language?" Dr Dobb's Journal 2001
http://www.ddj.com/documents/s=1697/ddj0108l/
"Object-Based Languages" sern CA (software engineering research network)
http://sern.ucalgary.ca/courses/SENG/609.03/W98/Abadi/AbadiCh4.html
la derniere reference que je pense serieuse est tres claire amha
"OO Languages need not be based on classes.
Object may be thought of as a more primitive concept than class:
* Object-based languages may be just a powerful as class-based languages,
and may even simulate classes"
trad:
Les langages OO n'ont pas besoin d'etre basés sur les classes.
Les objets peuvent etre considérés comme un concept plus primitif que les
classes.
* Les langages basés sur les objets pourraient bien etre aussi puissant que
les langages basés sur les classes, et pourraient meme simuler les classes
et a propos de references
Waldemar Horwat une des personnes qui a beaucoup contribué a la
standardisation et au design de JavaScript, lis ce genre de choses
http://www.mozilla.org/js/language/bibliography.html
ce qui peut donner une idée par quoi le desing de JavaScrip a été influencé.
zwetan