Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
1) Cite-moi de tels langages.
2) Que veut dire "pleinement objet" ?
3) Qu'est-ce, pour toi, que le paradigme objet ?
4) Remarque : des langages "qui fonctionnent" est une phrase qui ne veut
rien dire.
1) Cite-moi de tels langages.
2) Que veut dire "pleinement objet" ?
3) Qu'est-ce, pour toi, que le paradigme objet ?
4) Remarque : des langages "qui fonctionnent" est une phrase qui ne veut
rien dire.
1) Cite-moi de tels langages.
2) Que veut dire "pleinement objet" ?
3) Qu'est-ce, pour toi, que le paradigme objet ?
4) Remarque : des langages "qui fonctionnent" est une phrase qui ne veut
rien dire.
Wykaaa a écrit :1) Cite-moi de tels langages.
2) Que veut dire "pleinement objet" ?
3) Qu'est-ce, pour toi, que le paradigme objet ?
4) Remarque : des langages "qui fonctionnent" est une phrase qui ne
veut rien dire.
Je vous vois parler de l'orienté objet et du coup j'aurais des petites
questions de béotien (pardon de m'immiscer).
Je découvre l'OO à travers un langage (comme tout le monde je suppose au
début) et j'aurais voulu savoir si le "Modèle objet" était quelque chose
de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
J'ai l'impression qu'un langage OO, cherche à implémenter ce que
j'appelle le "modèle objet" (je suis incapable de vous en donner une
définition) et que en gros on a : d'un côté des concepts qui relèvent du
modèle objet et de l'autre des choses qui relèvent plus des rouages
internes du langage. La distinction entre les deux n'est pas toujours
simple.
J'imagine que pour avoir une idée plus précise de ce qu'est le modèle
objet, il est bien pratique de connaître plusieurs langage OO. Comme ça,
là distinction entre ce qui relève des particularités du langage et ce
qui relève du modèle objet se fait plus facilement.
Mais je me disais peut-être que le modèle objet était un paradigme qui
n'a jamais été précisément formalisé. Quand je vois quelques discussions
et les points de désaccord assez fréquents, j'ai un peu (à tort ou à
raison) cette impression.
Voici mes questions :
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
2) Connaissez vous des références qui expliquent le plus précisément
possible ce qu'est l'OO en tant que modèle, au delà de particularités de
tel ou tel langage ? Ou à l'inverse, connaissez vous des références qui,
à travers des exemples dans différents langages, dégagent précisément le
modèle objet sous-jacent et commun à tous ces langages ? (n'importe
quelles références m'intéressent avec comme critères bonus : en français
et pas trop abscons)
Merci d'avance.
Wykaaa a écrit :
1) Cite-moi de tels langages.
2) Que veut dire "pleinement objet" ?
3) Qu'est-ce, pour toi, que le paradigme objet ?
4) Remarque : des langages "qui fonctionnent" est une phrase qui ne
veut rien dire.
Je vous vois parler de l'orienté objet et du coup j'aurais des petites
questions de béotien (pardon de m'immiscer).
Je découvre l'OO à travers un langage (comme tout le monde je suppose au
début) et j'aurais voulu savoir si le "Modèle objet" était quelque chose
de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
J'ai l'impression qu'un langage OO, cherche à implémenter ce que
j'appelle le "modèle objet" (je suis incapable de vous en donner une
définition) et que en gros on a : d'un côté des concepts qui relèvent du
modèle objet et de l'autre des choses qui relèvent plus des rouages
internes du langage. La distinction entre les deux n'est pas toujours
simple.
J'imagine que pour avoir une idée plus précise de ce qu'est le modèle
objet, il est bien pratique de connaître plusieurs langage OO. Comme ça,
là distinction entre ce qui relève des particularités du langage et ce
qui relève du modèle objet se fait plus facilement.
Mais je me disais peut-être que le modèle objet était un paradigme qui
n'a jamais été précisément formalisé. Quand je vois quelques discussions
et les points de désaccord assez fréquents, j'ai un peu (à tort ou à
raison) cette impression.
Voici mes questions :
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
2) Connaissez vous des références qui expliquent le plus précisément
possible ce qu'est l'OO en tant que modèle, au delà de particularités de
tel ou tel langage ? Ou à l'inverse, connaissez vous des références qui,
à travers des exemples dans différents langages, dégagent précisément le
modèle objet sous-jacent et commun à tous ces langages ? (n'importe
quelles références m'intéressent avec comme critères bonus : en français
et pas trop abscons)
Merci d'avance.
Wykaaa a écrit :1) Cite-moi de tels langages.
2) Que veut dire "pleinement objet" ?
3) Qu'est-ce, pour toi, que le paradigme objet ?
4) Remarque : des langages "qui fonctionnent" est une phrase qui ne
veut rien dire.
Je vous vois parler de l'orienté objet et du coup j'aurais des petites
questions de béotien (pardon de m'immiscer).
Je découvre l'OO à travers un langage (comme tout le monde je suppose au
début) et j'aurais voulu savoir si le "Modèle objet" était quelque chose
de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
J'ai l'impression qu'un langage OO, cherche à implémenter ce que
j'appelle le "modèle objet" (je suis incapable de vous en donner une
définition) et que en gros on a : d'un côté des concepts qui relèvent du
modèle objet et de l'autre des choses qui relèvent plus des rouages
internes du langage. La distinction entre les deux n'est pas toujours
simple.
J'imagine que pour avoir une idée plus précise de ce qu'est le modèle
objet, il est bien pratique de connaître plusieurs langage OO. Comme ça,
là distinction entre ce qui relève des particularités du langage et ce
qui relève du modèle objet se fait plus facilement.
Mais je me disais peut-être que le modèle objet était un paradigme qui
n'a jamais été précisément formalisé. Quand je vois quelques discussions
et les points de désaccord assez fréquents, j'ai un peu (à tort ou à
raison) cette impression.
Voici mes questions :
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
2) Connaissez vous des références qui expliquent le plus précisément
possible ce qu'est l'OO en tant que modèle, au delà de particularités de
tel ou tel langage ? Ou à l'inverse, connaissez vous des références qui,
à travers des exemples dans différents langages, dégagent précisément le
modèle objet sous-jacent et commun à tous ces langages ? (n'importe
quelles références m'intéressent avec comme critères bonus : en français
et pas trop abscons)
Merci d'avance.
Je découvre l'OO à travers un langage (comme tout le monde je suppose
au début) et j'aurais voulu savoir si le "Modèle objet" était quelque
chose de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
A travers quel langage ?
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
La réponse est non dans l'absolu. [couic]
- le concept d'encapsulation qui permet à un objet (une classe donc) de
ne montrer à l'extérieur que ce qui est nécessaire à son utilisation.
Sur le Web, en français et pas abscon, il y a un cours UML pas mal fait
à : http://uml.free.fr/
Je découvre l'OO à travers un langage (comme tout le monde je suppose
au début) et j'aurais voulu savoir si le "Modèle objet" était quelque
chose de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
A travers quel langage ?
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
La réponse est non dans l'absolu. [couic]
- le concept d'encapsulation qui permet à un objet (une classe donc) de
ne montrer à l'extérieur que ce qui est nécessaire à son utilisation.
Sur le Web, en français et pas abscon, il y a un cours UML pas mal fait
à : http://uml.free.fr/
Je découvre l'OO à travers un langage (comme tout le monde je suppose
au début) et j'aurais voulu savoir si le "Modèle objet" était quelque
chose de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
A travers quel langage ?
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
La réponse est non dans l'absolu. [couic]
- le concept d'encapsulation qui permet à un objet (une classe donc) de
ne montrer à l'extérieur que ce qui est nécessaire à son utilisation.
Sur le Web, en français et pas abscon, il y a un cours UML pas mal fait
à : http://uml.free.fr/
Wykaaa a écrit :Je découvre l'OO à travers un langage (comme tout le monde je suppose
au début) et j'aurais voulu savoir si le "Modèle objet" était quelque
chose de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
A travers quel langage ?
Ah, je ne ne voulais pas le préciser car je ne voulais pas rentrer dans
des polémiques du style "le langage X st mieux que Y", mais puisque que
tu veux savoir, c'est à travers Python que je découvre l'OO (ça aurait
pu être un autre).
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
La réponse est non dans l'absolu. [couic]
Ok. Si j'ai bien compris n'existe pas un unique et universel modèle
objet en programmation, mais plusieurs. Celui décrit par le méta-langage
UML par exemple en est, mais il y a le modèle objet décrit par Booch qui
en est un autre. Et sans doute en existe-t-il d'autres. De plus,
j'imagine que ces modèles doivent avoir leur part d'ambiguïtés,
d'imprécisions comme souvent, non ?
- le concept d'encapsulation qui permet à un objet (une classe donc)
de ne montrer à l'extérieur que ce qui est nécessaire à son utilisation.
Heu, une classe et les objets produits avec cette classe c'est
différent, non ? c'est ton "... permet à un objet (une classe donc)..."
qui me perturbe.
Sur le Web, en français et pas abscon, il y a un cours UML pas mal
fait à : http://uml.free.fr/
Merci bien pour le lien.
Tiens, en tapant "Conception et programmation orientée objet" sur
google, je tombe sur ce cours : http://rainet.enic.fr/unit/A43/index.htm
Ça a l'air vachement bien. :-)
Merci pour ta longue réponse.
Wykaaa a écrit :
Je découvre l'OO à travers un langage (comme tout le monde je suppose
au début) et j'aurais voulu savoir si le "Modèle objet" était quelque
chose de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
A travers quel langage ?
Ah, je ne ne voulais pas le préciser car je ne voulais pas rentrer dans
des polémiques du style "le langage X st mieux que Y", mais puisque que
tu veux savoir, c'est à travers Python que je découvre l'OO (ça aurait
pu être un autre).
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
La réponse est non dans l'absolu. [couic]
Ok. Si j'ai bien compris n'existe pas un unique et universel modèle
objet en programmation, mais plusieurs. Celui décrit par le méta-langage
UML par exemple en est, mais il y a le modèle objet décrit par Booch qui
en est un autre. Et sans doute en existe-t-il d'autres. De plus,
j'imagine que ces modèles doivent avoir leur part d'ambiguïtés,
d'imprécisions comme souvent, non ?
- le concept d'encapsulation qui permet à un objet (une classe donc)
de ne montrer à l'extérieur que ce qui est nécessaire à son utilisation.
Heu, une classe et les objets produits avec cette classe c'est
différent, non ? c'est ton "... permet à un objet (une classe donc)..."
qui me perturbe.
Sur le Web, en français et pas abscon, il y a un cours UML pas mal
fait à : http://uml.free.fr/
Merci bien pour le lien.
Tiens, en tapant "Conception et programmation orientée objet" sur
google, je tombe sur ce cours : http://rainet.enic.fr/unit/A43/index.htm
Ça a l'air vachement bien. :-)
Merci pour ta longue réponse.
Wykaaa a écrit :Je découvre l'OO à travers un langage (comme tout le monde je suppose
au début) et j'aurais voulu savoir si le "Modèle objet" était quelque
chose de défini précisément où si c'était un peu le flou. J'essaye de
m'expliquer un peu.
A travers quel langage ?
Ah, je ne ne voulais pas le préciser car je ne voulais pas rentrer dans
des polémiques du style "le langage X st mieux que Y", mais puisque que
tu veux savoir, c'est à travers Python que je découvre l'OO (ça aurait
pu être un autre).
1) L'OO (ou le "Modèle objet") est-ce un modèle qui a été un jour
rigoureusement formalisé ? Peut-être qu'il existe plusieurs modèles
objets d'ailleurs ?
La réponse est non dans l'absolu. [couic]
Ok. Si j'ai bien compris n'existe pas un unique et universel modèle
objet en programmation, mais plusieurs. Celui décrit par le méta-langage
UML par exemple en est, mais il y a le modèle objet décrit par Booch qui
en est un autre. Et sans doute en existe-t-il d'autres. De plus,
j'imagine que ces modèles doivent avoir leur part d'ambiguïtés,
d'imprécisions comme souvent, non ?
- le concept d'encapsulation qui permet à un objet (une classe donc)
de ne montrer à l'extérieur que ce qui est nécessaire à son utilisation.
Heu, une classe et les objets produits avec cette classe c'est
différent, non ? c'est ton "... permet à un objet (une classe donc)..."
qui me perturbe.
Sur le Web, en français et pas abscon, il y a un cours UML pas mal
fait à : http://uml.free.fr/
Merci bien pour le lien.
Tiens, en tapant "Conception et programmation orientée objet" sur
google, je tombe sur ce cours : http://rainet.enic.fr/unit/A43/index.htm
Ça a l'air vachement bien. :-)
Merci pour ta longue réponse.
Heu, une classe et les objets produits avec cette classe c'est
différent, non ? c'est ton "... permet à un objet (une classe
donc)..." qui me perturbe.
Excuse-moi.
Il faut préciser une chose à propos du mot objet.
Il n'a pas le même sens suivant que l'on parle de "conception objet" ou
de "programmation objet". [couic]
Heu, une classe et les objets produits avec cette classe c'est
différent, non ? c'est ton "... permet à un objet (une classe
donc)..." qui me perturbe.
Excuse-moi.
Il faut préciser une chose à propos du mot objet.
Il n'a pas le même sens suivant que l'on parle de "conception objet" ou
de "programmation objet". [couic]
Heu, une classe et les objets produits avec cette classe c'est
différent, non ? c'est ton "... permet à un objet (une classe
donc)..." qui me perturbe.
Excuse-moi.
Il faut préciser une chose à propos du mot objet.
Il n'a pas le même sens suivant que l'on parle de "conception objet" ou
de "programmation objet". [couic]
--{ Wykaaa a plopé ceci: }--Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
En voulant polémiquer (en Aout, c'est vendredi tous les jours, non ?)
le problème du typage fort, c'est que parfois on n'a pas le type
exact que l'on souhaite (les décimaux pour faire de la compta en C)
ou un typage trop strict (en Ada, tu vas au marché, tu achètes deux
pommes et trois poires; revenu à la maison, il n'est pas possible
de savoir combien de fruits tu as acheté :). Voilà...
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
foo = mantra("La vérité est dans Wikipédia");
Hop, je retourne à mes coredumps. Bon appétit à tous.
--{ Wykaaa a plopé ceci: }--
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
En voulant polémiquer (en Aout, c'est vendredi tous les jours, non ?)
le problème du typage fort, c'est que parfois on n'a pas le type
exact que l'on souhaite (les décimaux pour faire de la compta en C)
ou un typage trop strict (en Ada, tu vas au marché, tu achètes deux
pommes et trois poires; revenu à la maison, il n'est pas possible
de savoir combien de fruits tu as acheté :). Voilà...
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
foo = mantra("La vérité est dans Wikipédia");
Hop, je retourne à mes coredumps. Bon appétit à tous.
--{ Wykaaa a plopé ceci: }--Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
En voulant polémiquer (en Aout, c'est vendredi tous les jours, non ?)
le problème du typage fort, c'est que parfois on n'a pas le type
exact que l'on souhaite (les décimaux pour faire de la compta en C)
ou un typage trop strict (en Ada, tu vas au marché, tu achètes deux
pommes et trois poires; revenu à la maison, il n'est pas possible
de savoir combien de fruits tu as acheté :). Voilà...
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
foo = mantra("La vérité est dans Wikipédia");
Hop, je retourne à mes coredumps. Bon appétit à tous.
Marc Espie a écrit :In article <48b9bc3d$0$874$,
Wykaaa wrote:Il existe des langages orientes objets sans heritage, qui fonctionnent
et qui sont pleinement objets.
1) Cite-moi de tels langages.
Self
Si j'en crois : http://research.sun.com/self/, la dernière version date
de juin 2006. Il n'y a pas une activité débordante sur ce langage...http://en.wikipedia.org/wiki/Self_(programming_language)
Et bien on ne peut pas dire que cet article soit de qualité (cf., par
exemple, le passage sur héritage/délégation). En fait, en Self, on sait
même faire de l'héritage multiple (cf.
http://research.sun.com/self/release_4.0/Self-4.0/Tutorial/Language/ImportantObjects/MultipleInheritance.html).
Ce n'est donc pas un bon exemple de langage objet sans héritage !!
Merci de ne pas donner de référence sur Wikipedia qui n'est absolument
pas une source fiable concernant le logiciel.
En ce qui me concerne, mes principales références sont les revues de
l'ACM et de l'IEEE. Elles me paraissent autrement sérieuses.
Pourquoi ne pas citer JavaScript qui me paraît le plus connu (surtout
avec AJAX)
2) Que veut dire "pleinement objet" ?
qui sont consideres comme langages objets par la communaute qui s'interesse
un peu en langages objets en dehors du cadre fortement type a la java/c++
Cette réponse est très orientée et partisane. Pourquoi, d'emblée, mettre
sur la table, à nouveau, la querelle sur le fort typage ?
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
3) Qu'est-ce, pour toi, que le paradigme objet ?
objet + methodes...
C'est un peu maigre comme définition car encore faut-il avoir
parfaitement défini ce qu'est un "objet".
Un objet définit-il un type ?
Objet au sens de l'analyse, de la conception, de la programmation ??
Quant aux méthodes, c'est juste un autre nom pour "sous-programme".
Si l'objet n'était que ça, le sujet ne mériterait pas autant de litérature.
pas forcement heritage, les langages bases sur la notion de prototype
fonctionnent par clonage d'objets existants, plus specialisation, et ca
marche aussi.
Les langages à base de prototype doivent être distingués des langages
objets même s'ils manipulent (soi-disant) des objets...
Par exemple, je ne considère pas que JavaScript est véritablement un
langage à objets. Par contre c'est effectivement un langage à base de
prototype.
Cote theorique, les gens qui etudient ce genre de choses ont pondu le
omega-calcul, qui se rapproche du lambda-calcul, mais en rajoutant juste
ce qu'il faut pour modeliser les appels par methodes.
Confere
http://en.wikipedia.org/wiki/Object-oriented_programming_language
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
et en particulier la liste des `prototype-based languages'.
Oui, ben justement...Pour les "pères" de l'objet (en particulier Grady Booch), objet =>
héritage et polymorphisme d'héritage.
Grady Booch a pondu une certaine methodologie tres industrielle, mais
il n'est heureusement pas tout seul... il existe d'autres facons de
faire de l'objet qu'avec un typage statique tres strict.
C'est justement l'intérêt d'avoir une méthodologie très industrielle,
comme tu dis. C'est la première fois que je vois reprocher qu'une
méthode soit industrielle. D'habitude on reproche plutôt qu'elle ne le
soit pas assez !
Je vois mal les logiciels spatiaux, militaires, centrales nucléaires,
etc. écrits avec des langages où l'héritage est dynamique...
Les langages à base de prototypes ou non fortement typés ont
certainement leur utilité mais dans les domaines que j'ai cités il n'est
même pas envisageable d'étudier leur emploi...
Marc Espie a écrit :
In article <48b9bc3d$0$874$ba4acef3@news.orange.fr>,
Wykaaa <wykaaa@yahoo.fr> wrote:
Il existe des langages orientes objets sans heritage, qui fonctionnent
et qui sont pleinement objets.
1) Cite-moi de tels langages.
Self
Si j'en crois : http://research.sun.com/self/, la dernière version date
de juin 2006. Il n'y a pas une activité débordante sur ce langage...
http://en.wikipedia.org/wiki/Self_(programming_language)
Et bien on ne peut pas dire que cet article soit de qualité (cf., par
exemple, le passage sur héritage/délégation). En fait, en Self, on sait
même faire de l'héritage multiple (cf.
http://research.sun.com/self/release_4.0/Self-4.0/Tutorial/Language/ImportantObjects/MultipleInheritance.html).
Ce n'est donc pas un bon exemple de langage objet sans héritage !!
Merci de ne pas donner de référence sur Wikipedia qui n'est absolument
pas une source fiable concernant le logiciel.
En ce qui me concerne, mes principales références sont les revues de
l'ACM et de l'IEEE. Elles me paraissent autrement sérieuses.
Pourquoi ne pas citer JavaScript qui me paraît le plus connu (surtout
avec AJAX)
2) Que veut dire "pleinement objet" ?
qui sont consideres comme langages objets par la communaute qui s'interesse
un peu en langages objets en dehors du cadre fortement type a la java/c++
Cette réponse est très orientée et partisane. Pourquoi, d'emblée, mettre
sur la table, à nouveau, la querelle sur le fort typage ?
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
3) Qu'est-ce, pour toi, que le paradigme objet ?
objet + methodes...
C'est un peu maigre comme définition car encore faut-il avoir
parfaitement défini ce qu'est un "objet".
Un objet définit-il un type ?
Objet au sens de l'analyse, de la conception, de la programmation ??
Quant aux méthodes, c'est juste un autre nom pour "sous-programme".
Si l'objet n'était que ça, le sujet ne mériterait pas autant de litérature.
pas forcement heritage, les langages bases sur la notion de prototype
fonctionnent par clonage d'objets existants, plus specialisation, et ca
marche aussi.
Les langages à base de prototype doivent être distingués des langages
objets même s'ils manipulent (soi-disant) des objets...
Par exemple, je ne considère pas que JavaScript est véritablement un
langage à objets. Par contre c'est effectivement un langage à base de
prototype.
Cote theorique, les gens qui etudient ce genre de choses ont pondu le
omega-calcul, qui se rapproche du lambda-calcul, mais en rajoutant juste
ce qu'il faut pour modeliser les appels par methodes.
Confere
http://en.wikipedia.org/wiki/Object-oriented_programming_language
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
et en particulier la liste des `prototype-based languages'.
Oui, ben justement...
Pour les "pères" de l'objet (en particulier Grady Booch), objet =>
héritage et polymorphisme d'héritage.
Grady Booch a pondu une certaine methodologie tres industrielle, mais
il n'est heureusement pas tout seul... il existe d'autres facons de
faire de l'objet qu'avec un typage statique tres strict.
C'est justement l'intérêt d'avoir une méthodologie très industrielle,
comme tu dis. C'est la première fois que je vois reprocher qu'une
méthode soit industrielle. D'habitude on reproche plutôt qu'elle ne le
soit pas assez !
Je vois mal les logiciels spatiaux, militaires, centrales nucléaires,
etc. écrits avec des langages où l'héritage est dynamique...
Les langages à base de prototypes ou non fortement typés ont
certainement leur utilité mais dans les domaines que j'ai cités il n'est
même pas envisageable d'étudier leur emploi...
Marc Espie a écrit :In article <48b9bc3d$0$874$,
Wykaaa wrote:Il existe des langages orientes objets sans heritage, qui fonctionnent
et qui sont pleinement objets.
1) Cite-moi de tels langages.
Self
Si j'en crois : http://research.sun.com/self/, la dernière version date
de juin 2006. Il n'y a pas une activité débordante sur ce langage...http://en.wikipedia.org/wiki/Self_(programming_language)
Et bien on ne peut pas dire que cet article soit de qualité (cf., par
exemple, le passage sur héritage/délégation). En fait, en Self, on sait
même faire de l'héritage multiple (cf.
http://research.sun.com/self/release_4.0/Self-4.0/Tutorial/Language/ImportantObjects/MultipleInheritance.html).
Ce n'est donc pas un bon exemple de langage objet sans héritage !!
Merci de ne pas donner de référence sur Wikipedia qui n'est absolument
pas une source fiable concernant le logiciel.
En ce qui me concerne, mes principales références sont les revues de
l'ACM et de l'IEEE. Elles me paraissent autrement sérieuses.
Pourquoi ne pas citer JavaScript qui me paraît le plus connu (surtout
avec AJAX)
2) Que veut dire "pleinement objet" ?
qui sont consideres comme langages objets par la communaute qui s'interesse
un peu en langages objets en dehors du cadre fortement type a la java/c++
Cette réponse est très orientée et partisane. Pourquoi, d'emblée, mettre
sur la table, à nouveau, la querelle sur le fort typage ?
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
3) Qu'est-ce, pour toi, que le paradigme objet ?
objet + methodes...
C'est un peu maigre comme définition car encore faut-il avoir
parfaitement défini ce qu'est un "objet".
Un objet définit-il un type ?
Objet au sens de l'analyse, de la conception, de la programmation ??
Quant aux méthodes, c'est juste un autre nom pour "sous-programme".
Si l'objet n'était que ça, le sujet ne mériterait pas autant de litérature.
pas forcement heritage, les langages bases sur la notion de prototype
fonctionnent par clonage d'objets existants, plus specialisation, et ca
marche aussi.
Les langages à base de prototype doivent être distingués des langages
objets même s'ils manipulent (soi-disant) des objets...
Par exemple, je ne considère pas que JavaScript est véritablement un
langage à objets. Par contre c'est effectivement un langage à base de
prototype.
Cote theorique, les gens qui etudient ce genre de choses ont pondu le
omega-calcul, qui se rapproche du lambda-calcul, mais en rajoutant juste
ce qu'il faut pour modeliser les appels par methodes.
Confere
http://en.wikipedia.org/wiki/Object-oriented_programming_language
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
et en particulier la liste des `prototype-based languages'.
Oui, ben justement...Pour les "pères" de l'objet (en particulier Grady Booch), objet =>
héritage et polymorphisme d'héritage.
Grady Booch a pondu une certaine methodologie tres industrielle, mais
il n'est heureusement pas tout seul... il existe d'autres facons de
faire de l'objet qu'avec un typage statique tres strict.
C'est justement l'intérêt d'avoir une méthodologie très industrielle,
comme tu dis. C'est la première fois que je vois reprocher qu'une
méthode soit industrielle. D'habitude on reproche plutôt qu'elle ne le
soit pas assez !
Je vois mal les logiciels spatiaux, militaires, centrales nucléaires,
etc. écrits avec des langages où l'héritage est dynamique...
Les langages à base de prototypes ou non fortement typés ont
certainement leur utilité mais dans les domaines que j'ai cités il n'est
même pas envisageable d'étudier leur emploi...
Donc, pour résumer, l'approche objet s'appuie sur 4 concepts majeurs
de base :
- le concept d'abstraction (se matérialise par la notion de classe
dans un langage de programmation objet)
- le concept d'encapsulation qui permet à un objet (une classe donc)
de ne montrer à l'extérieur que ce qui est nécessaire à son
utilisation.
Ce concept est matérialisé dans les LOO (langages orientés objet) par
les directives de contrôle d'accès (private, protected, public)
- le concept de modularité (au sens objet) qui s'ppuie sur 2
principes :
- La forte cohésion : un objet ne traite que d'une seule
abstraction et il la traite entièrement
- Le faible couplage : minimisation des dépendances entre classes
et encapsulation
ATTENTION : cette notion de modularité est piégeuse car dans les
langages on a aussi la notion de package (regroupement de plusieurs
classes). Le faible couplage est souvent mis en oeuvre, dans les
grosses applications, au niveau des packages et non au niveau des
classes car la granularité est trop fine.
- Enfin le concept de hiérarchie. Il est mis en oeuvre, dans les LOO,
à travers l'héritage mais aussi à travers la composition/agrégation
d'objets.
Donc, pour résumer, l'approche objet s'appuie sur 4 concepts majeurs
de base :
- le concept d'abstraction (se matérialise par la notion de classe
dans un langage de programmation objet)
- le concept d'encapsulation qui permet à un objet (une classe donc)
de ne montrer à l'extérieur que ce qui est nécessaire à son
utilisation.
Ce concept est matérialisé dans les LOO (langages orientés objet) par
les directives de contrôle d'accès (private, protected, public)
- le concept de modularité (au sens objet) qui s'ppuie sur 2
principes :
- La forte cohésion : un objet ne traite que d'une seule
abstraction et il la traite entièrement
- Le faible couplage : minimisation des dépendances entre classes
et encapsulation
ATTENTION : cette notion de modularité est piégeuse car dans les
langages on a aussi la notion de package (regroupement de plusieurs
classes). Le faible couplage est souvent mis en oeuvre, dans les
grosses applications, au niveau des packages et non au niveau des
classes car la granularité est trop fine.
- Enfin le concept de hiérarchie. Il est mis en oeuvre, dans les LOO,
à travers l'héritage mais aussi à travers la composition/agrégation
d'objets.
Donc, pour résumer, l'approche objet s'appuie sur 4 concepts majeurs
de base :
- le concept d'abstraction (se matérialise par la notion de classe
dans un langage de programmation objet)
- le concept d'encapsulation qui permet à un objet (une classe donc)
de ne montrer à l'extérieur que ce qui est nécessaire à son
utilisation.
Ce concept est matérialisé dans les LOO (langages orientés objet) par
les directives de contrôle d'accès (private, protected, public)
- le concept de modularité (au sens objet) qui s'ppuie sur 2
principes :
- La forte cohésion : un objet ne traite que d'une seule
abstraction et il la traite entièrement
- Le faible couplage : minimisation des dépendances entre classes
et encapsulation
ATTENTION : cette notion de modularité est piégeuse car dans les
langages on a aussi la notion de package (regroupement de plusieurs
classes). Le faible couplage est souvent mis en oeuvre, dans les
grosses applications, au niveau des packages et non au niveau des
classes car la granularité est trop fine.
- Enfin le concept de hiérarchie. Il est mis en oeuvre, dans les LOO,
à travers l'héritage mais aussi à travers la composition/agrégation
d'objets.
In article <48ba661b$0$930$,
Wykaaa wrote:Marc Espie a écrit :In article <48b9bc3d$0$874$,
Wykaaa wrote:Il existe des langages orientes objets sans heritage, qui fonctionnent
et qui sont pleinement objets.
1) Cite-moi de tels langages.
Self
Si j'en crois : http://research.sun.com/self/, la dernière version date
de juin 2006. Il n'y a pas une activité débordante sur ce langage...http://en.wikipedia.org/wiki/Self_(programming_language)
Et bien on ne peut pas dire que cet article soit de qualité (cf., par
exemple, le passage sur héritage/délégation). En fait, en Self, on sait
même faire de l'héritage multiple (cf.
http://research.sun.com/self/release_4.0/Self-4.0/Tutorial/Language/ImportantObjects/MultipleInheritance.html).
Ce n'est donc pas un bon exemple de langage objet sans héritage !!
Pour self, je n'ai pas verifie en detail, ca fait longtemps que j'ai
regarde ces articles, et j'ai sans doute confondu avec un autre langage
objets bases sur les prototypes.
Merci de ne pas donner de référence sur Wikipedia qui n'est absolument
pas une source fiable concernant le logiciel.
Merci de ne pas eriger tes dogmes en realite objective, je n'ai pas
forcement le temps de trop creuser, mais les langages a prototypes sont
objets.
En ce qui me concerne, mes principales références sont les revues de
l'ACM et de l'IEEE. Elles me paraissent autrement sérieuses.
Ca m'etonnerait que tu les lises toutes. Tu as du rater celles qui
parlent d'approche objet dans les langages a prototype.
Pourquoi ne pas citer JavaScript qui me paraît le plus connu (surtout
avec AJAX)
Parce que je pratique encore moins javascript que d'autres langages.
2) Que veut dire "pleinement objet" ?
qui sont consideres comme langages objets par la communaute qui s'interesse
un peu en langages objets en dehors du cadre fortement type a la java/c++Cette réponse est très orientée et partisane. Pourquoi, d'emblée, mettre
sur la table, à nouveau, la querelle sur le fort typage ?
Parce qu'elle me semble a la base de l'insistance que tu as a mettre
l'heritage au centre de l'oriente-objet.
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
Donc des preoccupations industrielles qui ne sont pas forcement en phase
avec des envies d'expressivite.
Pour ma part, j'en ai un peu ras-la-casquette de la vision de plus en
plus etriquee des langages de programmation, on aurait du avoir un ou
deux nouveaux vrais langages ces dix dernieres annees, a la place on a
eu java.
3) Qu'est-ce, pour toi, que le paradigme objet ?
objet + methodes...
C'est un peu maigre comme définition car encore faut-il avoir
parfaitement défini ce qu'est un "objet".
Oui, j'avoue que j'ai la flemme, et comme de toutes facons tu es
parti pour camper sur tes positions, je n'ai pas forcement envie de
passer du temps a developper, ca ne servira pas a grand chose.
Mais manque de bol, t'as pas besoin de grand chose de plus...
Il suffit d'avoir des `objets' avec un mecanisme d'appel/de passage
de message qui invoque quelque chose de dependant de l'objet utilise
pour pouvoir parler de langage objet.
Un objet définit-il un type ?
Non, c'est un concept orthogonal. Tu peux tres bien faire de l'objet
sans typage, de meme que tu peux tres bien faire de la recursivite avec
le combinateur Y.
Objet au sens de l'analyse, de la conception, de la programmation ??
Quant aux méthodes, c'est juste un autre nom pour "sous-programme".
Si l'objet n'était que ça, le sujet ne mériterait pas autant de litérature.pas forcement heritage, les langages bases sur la notion de prototype
fonctionnent par clonage d'objets existants, plus specialisation, et ca
marche aussi.
Les langages à base de prototype doivent être distingués des langages
objets même s'ils manipulent (soi-disant) des objets...
Okay, donc ta definition est auto-referente, puisque les langages
objets n'incluent que les langages dont tu consideres qu'ils sont
objets, en laissant de cote des langages legitimement consideres comme
objets, juste parce qu'ils n'ont pas certaines proprietes que tu consideres
comme capitales, et que je considere comme orthogonales pour definir un
langage objet.Par exemple, je ne considère pas que JavaScript est véritablement un
langage à objets. Par contre c'est effectivement un langage à base de
prototype.
Libre a toi. Cote expressivite, pourtant, javascript est objets.
Cote theorique, les gens qui etudient ce genre de choses ont pondu le
omega-calcul, qui se rapproche du lambda-calcul, mais en rajoutant juste
ce qu'il faut pour modeliser les appels par methodes.Confere
http://en.wikipedia.org/wiki/Object-oriented_programming_language
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
Continue de t'ancrer dans tes certitudes, ca n'engage que toi.
Je note que tu ne commentes meme pas sur l'omega-calcul, as tu rate ce
passage de mon intervention.
Je suis, pour ma part, extremement heureux que wikipedia n'ait pas ete
nettoye par des censeurs dans ton genre et represente la diversite
des approches objets. wikipedia est une encyclopedie generaliste, pas
specialement orientee industrielle, et fort heureusement, il y a traine
des articles d'informatique avec des vrais bouts de reference a de la
recherche active dedans.
et en particulier la liste des `prototype-based languages'.
Oui, ben justement...Pour les "pères" de l'objet (en particulier Grady Booch), objet =>
héritage et polymorphisme d'héritage.
Grady Booch a pondu une certaine methodologie tres industrielle, mais
il n'est heureusement pas tout seul... il existe d'autres facons de
faire de l'objet qu'avec un typage statique tres strict.C'est justement l'intérêt d'avoir une méthodologie très industrielle,
comme tu dis. C'est la première fois que je vois reprocher qu'une
méthode soit industrielle. D'habitude on reproche plutôt qu'elle ne le
soit pas assez !
Ca depend de ce que tu veux faire. Si tu veux rester toute ta vie
avec des langages pas tres bandants, retourne faire du ada...
heureusement que parfois des gens sortent un peu des sentiers battus
et inventent de nouveaux concepts, ou declinent ceux existants sur
des pentes glissantes, sinon on ferait tous du fortranIV.
Je vois mal les logiciels spatiaux, militaires, centrales nucléaires,
etc. écrits avec des langages où l'héritage est dynamique...Les langages à base de prototypes ou non fortement typés ont
certainement leur utilité mais dans les domaines que j'ai cités il n'est
même pas envisageable d'étudier leur emploi...
Rien a foutre, ca n'a, encore une fois, aucun rapport avec la notion
de langage objet.
Ce dont tu me parles, c'est de la methodologie industrielle a la Grady
Booch et UML, qui s'appuie sur le concept d'objet, dans une acception
extremement specifique et terriblement restrictive... un peu une envie
de tout classifier, de tout rentrer dans des cases.
In article <48ba661b$0$930$ba4acef3@news.orange.fr>,
Wykaaa <wykaaa@yahoo.fr> wrote:
Marc Espie a écrit :
In article <48b9bc3d$0$874$ba4acef3@news.orange.fr>,
Wykaaa <wykaaa@yahoo.fr> wrote:
Il existe des langages orientes objets sans heritage, qui fonctionnent
et qui sont pleinement objets.
1) Cite-moi de tels langages.
Self
Si j'en crois : http://research.sun.com/self/, la dernière version date
de juin 2006. Il n'y a pas une activité débordante sur ce langage...
http://en.wikipedia.org/wiki/Self_(programming_language)
Et bien on ne peut pas dire que cet article soit de qualité (cf., par
exemple, le passage sur héritage/délégation). En fait, en Self, on sait
même faire de l'héritage multiple (cf.
http://research.sun.com/self/release_4.0/Self-4.0/Tutorial/Language/ImportantObjects/MultipleInheritance.html).
Ce n'est donc pas un bon exemple de langage objet sans héritage !!
Pour self, je n'ai pas verifie en detail, ca fait longtemps que j'ai
regarde ces articles, et j'ai sans doute confondu avec un autre langage
objets bases sur les prototypes.
Merci de ne pas donner de référence sur Wikipedia qui n'est absolument
pas une source fiable concernant le logiciel.
Merci de ne pas eriger tes dogmes en realite objective, je n'ai pas
forcement le temps de trop creuser, mais les langages a prototypes sont
objets.
En ce qui me concerne, mes principales références sont les revues de
l'ACM et de l'IEEE. Elles me paraissent autrement sérieuses.
Ca m'etonnerait que tu les lises toutes. Tu as du rater celles qui
parlent d'approche objet dans les langages a prototype.
Pourquoi ne pas citer JavaScript qui me paraît le plus connu (surtout
avec AJAX)
Parce que je pratique encore moins javascript que d'autres langages.
2) Que veut dire "pleinement objet" ?
qui sont consideres comme langages objets par la communaute qui s'interesse
un peu en langages objets en dehors du cadre fortement type a la java/c++
Cette réponse est très orientée et partisane. Pourquoi, d'emblée, mettre
sur la table, à nouveau, la querelle sur le fort typage ?
Parce qu'elle me semble a la base de l'insistance que tu as a mettre
l'heritage au centre de l'oriente-objet.
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
Donc des preoccupations industrielles qui ne sont pas forcement en phase
avec des envies d'expressivite.
Pour ma part, j'en ai un peu ras-la-casquette de la vision de plus en
plus etriquee des langages de programmation, on aurait du avoir un ou
deux nouveaux vrais langages ces dix dernieres annees, a la place on a
eu java.
3) Qu'est-ce, pour toi, que le paradigme objet ?
objet + methodes...
C'est un peu maigre comme définition car encore faut-il avoir
parfaitement défini ce qu'est un "objet".
Oui, j'avoue que j'ai la flemme, et comme de toutes facons tu es
parti pour camper sur tes positions, je n'ai pas forcement envie de
passer du temps a developper, ca ne servira pas a grand chose.
Mais manque de bol, t'as pas besoin de grand chose de plus...
Il suffit d'avoir des `objets' avec un mecanisme d'appel/de passage
de message qui invoque quelque chose de dependant de l'objet utilise
pour pouvoir parler de langage objet.
Un objet définit-il un type ?
Non, c'est un concept orthogonal. Tu peux tres bien faire de l'objet
sans typage, de meme que tu peux tres bien faire de la recursivite avec
le combinateur Y.
Objet au sens de l'analyse, de la conception, de la programmation ??
Quant aux méthodes, c'est juste un autre nom pour "sous-programme".
Si l'objet n'était que ça, le sujet ne mériterait pas autant de litérature.
pas forcement heritage, les langages bases sur la notion de prototype
fonctionnent par clonage d'objets existants, plus specialisation, et ca
marche aussi.
Les langages à base de prototype doivent être distingués des langages
objets même s'ils manipulent (soi-disant) des objets...
Okay, donc ta definition est auto-referente, puisque les langages
objets n'incluent que les langages dont tu consideres qu'ils sont
objets, en laissant de cote des langages legitimement consideres comme
objets, juste parce qu'ils n'ont pas certaines proprietes que tu consideres
comme capitales, et que je considere comme orthogonales pour definir un
langage objet.
Par exemple, je ne considère pas que JavaScript est véritablement un
langage à objets. Par contre c'est effectivement un langage à base de
prototype.
Libre a toi. Cote expressivite, pourtant, javascript est objets.
Cote theorique, les gens qui etudient ce genre de choses ont pondu le
omega-calcul, qui se rapproche du lambda-calcul, mais en rajoutant juste
ce qu'il faut pour modeliser les appels par methodes.
Confere
http://en.wikipedia.org/wiki/Object-oriented_programming_language
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
Continue de t'ancrer dans tes certitudes, ca n'engage que toi.
Je note que tu ne commentes meme pas sur l'omega-calcul, as tu rate ce
passage de mon intervention.
Je suis, pour ma part, extremement heureux que wikipedia n'ait pas ete
nettoye par des censeurs dans ton genre et represente la diversite
des approches objets. wikipedia est une encyclopedie generaliste, pas
specialement orientee industrielle, et fort heureusement, il y a traine
des articles d'informatique avec des vrais bouts de reference a de la
recherche active dedans.
et en particulier la liste des `prototype-based languages'.
Oui, ben justement...
Pour les "pères" de l'objet (en particulier Grady Booch), objet =>
héritage et polymorphisme d'héritage.
Grady Booch a pondu une certaine methodologie tres industrielle, mais
il n'est heureusement pas tout seul... il existe d'autres facons de
faire de l'objet qu'avec un typage statique tres strict.
C'est justement l'intérêt d'avoir une méthodologie très industrielle,
comme tu dis. C'est la première fois que je vois reprocher qu'une
méthode soit industrielle. D'habitude on reproche plutôt qu'elle ne le
soit pas assez !
Ca depend de ce que tu veux faire. Si tu veux rester toute ta vie
avec des langages pas tres bandants, retourne faire du ada...
heureusement que parfois des gens sortent un peu des sentiers battus
et inventent de nouveaux concepts, ou declinent ceux existants sur
des pentes glissantes, sinon on ferait tous du fortranIV.
Je vois mal les logiciels spatiaux, militaires, centrales nucléaires,
etc. écrits avec des langages où l'héritage est dynamique...
Les langages à base de prototypes ou non fortement typés ont
certainement leur utilité mais dans les domaines que j'ai cités il n'est
même pas envisageable d'étudier leur emploi...
Rien a foutre, ca n'a, encore une fois, aucun rapport avec la notion
de langage objet.
Ce dont tu me parles, c'est de la methodologie industrielle a la Grady
Booch et UML, qui s'appuie sur le concept d'objet, dans une acception
extremement specifique et terriblement restrictive... un peu une envie
de tout classifier, de tout rentrer dans des cases.
In article <48ba661b$0$930$,
Wykaaa wrote:Marc Espie a écrit :In article <48b9bc3d$0$874$,
Wykaaa wrote:Il existe des langages orientes objets sans heritage, qui fonctionnent
et qui sont pleinement objets.
1) Cite-moi de tels langages.
Self
Si j'en crois : http://research.sun.com/self/, la dernière version date
de juin 2006. Il n'y a pas une activité débordante sur ce langage...http://en.wikipedia.org/wiki/Self_(programming_language)
Et bien on ne peut pas dire que cet article soit de qualité (cf., par
exemple, le passage sur héritage/délégation). En fait, en Self, on sait
même faire de l'héritage multiple (cf.
http://research.sun.com/self/release_4.0/Self-4.0/Tutorial/Language/ImportantObjects/MultipleInheritance.html).
Ce n'est donc pas un bon exemple de langage objet sans héritage !!
Pour self, je n'ai pas verifie en detail, ca fait longtemps que j'ai
regarde ces articles, et j'ai sans doute confondu avec un autre langage
objets bases sur les prototypes.
Merci de ne pas donner de référence sur Wikipedia qui n'est absolument
pas une source fiable concernant le logiciel.
Merci de ne pas eriger tes dogmes en realite objective, je n'ai pas
forcement le temps de trop creuser, mais les langages a prototypes sont
objets.
En ce qui me concerne, mes principales références sont les revues de
l'ACM et de l'IEEE. Elles me paraissent autrement sérieuses.
Ca m'etonnerait que tu les lises toutes. Tu as du rater celles qui
parlent d'approche objet dans les langages a prototype.
Pourquoi ne pas citer JavaScript qui me paraît le plus connu (surtout
avec AJAX)
Parce que je pratique encore moins javascript que d'autres langages.
2) Que veut dire "pleinement objet" ?
qui sont consideres comme langages objets par la communaute qui s'interesse
un peu en langages objets en dehors du cadre fortement type a la java/c++Cette réponse est très orientée et partisane. Pourquoi, d'emblée, mettre
sur la table, à nouveau, la querelle sur le fort typage ?
Parce qu'elle me semble a la base de l'insistance que tu as a mettre
l'heritage au centre de l'oriente-objet.
Des tonnes de littérature existent sur le sujet et, sans polémiquer, le
fort typage a un intérêt certain pour construire des logiciels de
qualité (meilleure fiabilité, programmation sûre (au sens anglo-saxon du
terme : safe programming), coût moindre des phases de tests, etc.)
Donc des preoccupations industrielles qui ne sont pas forcement en phase
avec des envies d'expressivite.
Pour ma part, j'en ai un peu ras-la-casquette de la vision de plus en
plus etriquee des langages de programmation, on aurait du avoir un ou
deux nouveaux vrais langages ces dix dernieres annees, a la place on a
eu java.
3) Qu'est-ce, pour toi, que le paradigme objet ?
objet + methodes...
C'est un peu maigre comme définition car encore faut-il avoir
parfaitement défini ce qu'est un "objet".
Oui, j'avoue que j'ai la flemme, et comme de toutes facons tu es
parti pour camper sur tes positions, je n'ai pas forcement envie de
passer du temps a developper, ca ne servira pas a grand chose.
Mais manque de bol, t'as pas besoin de grand chose de plus...
Il suffit d'avoir des `objets' avec un mecanisme d'appel/de passage
de message qui invoque quelque chose de dependant de l'objet utilise
pour pouvoir parler de langage objet.
Un objet définit-il un type ?
Non, c'est un concept orthogonal. Tu peux tres bien faire de l'objet
sans typage, de meme que tu peux tres bien faire de la recursivite avec
le combinateur Y.
Objet au sens de l'analyse, de la conception, de la programmation ??
Quant aux méthodes, c'est juste un autre nom pour "sous-programme".
Si l'objet n'était que ça, le sujet ne mériterait pas autant de litérature.pas forcement heritage, les langages bases sur la notion de prototype
fonctionnent par clonage d'objets existants, plus specialisation, et ca
marche aussi.
Les langages à base de prototype doivent être distingués des langages
objets même s'ils manipulent (soi-disant) des objets...
Okay, donc ta definition est auto-referente, puisque les langages
objets n'incluent que les langages dont tu consideres qu'ils sont
objets, en laissant de cote des langages legitimement consideres comme
objets, juste parce qu'ils n'ont pas certaines proprietes que tu consideres
comme capitales, et que je considere comme orthogonales pour definir un
langage objet.Par exemple, je ne considère pas que JavaScript est véritablement un
langage à objets. Par contre c'est effectivement un langage à base de
prototype.
Libre a toi. Cote expressivite, pourtant, javascript est objets.
Cote theorique, les gens qui etudient ce genre de choses ont pondu le
omega-calcul, qui se rapproche du lambda-calcul, mais en rajoutant juste
ce qu'il faut pour modeliser les appels par methodes.Confere
http://en.wikipedia.org/wiki/Object-oriented_programming_language
Type même de l'article qui engendre la confusion sur les langages objet.
Tout est mélangé. Cet article est vraiment du grand n'importe quoi et me
conforte dans l'idée que Wikipedia est tout sauf une référence sérieuse
concernant le logiciel...
Continue de t'ancrer dans tes certitudes, ca n'engage que toi.
Je note que tu ne commentes meme pas sur l'omega-calcul, as tu rate ce
passage de mon intervention.
Je suis, pour ma part, extremement heureux que wikipedia n'ait pas ete
nettoye par des censeurs dans ton genre et represente la diversite
des approches objets. wikipedia est une encyclopedie generaliste, pas
specialement orientee industrielle, et fort heureusement, il y a traine
des articles d'informatique avec des vrais bouts de reference a de la
recherche active dedans.
et en particulier la liste des `prototype-based languages'.
Oui, ben justement...Pour les "pères" de l'objet (en particulier Grady Booch), objet =>
héritage et polymorphisme d'héritage.
Grady Booch a pondu une certaine methodologie tres industrielle, mais
il n'est heureusement pas tout seul... il existe d'autres facons de
faire de l'objet qu'avec un typage statique tres strict.C'est justement l'intérêt d'avoir une méthodologie très industrielle,
comme tu dis. C'est la première fois que je vois reprocher qu'une
méthode soit industrielle. D'habitude on reproche plutôt qu'elle ne le
soit pas assez !
Ca depend de ce que tu veux faire. Si tu veux rester toute ta vie
avec des langages pas tres bandants, retourne faire du ada...
heureusement que parfois des gens sortent un peu des sentiers battus
et inventent de nouveaux concepts, ou declinent ceux existants sur
des pentes glissantes, sinon on ferait tous du fortranIV.
Je vois mal les logiciels spatiaux, militaires, centrales nucléaires,
etc. écrits avec des langages où l'héritage est dynamique...Les langages à base de prototypes ou non fortement typés ont
certainement leur utilité mais dans les domaines que j'ai cités il n'est
même pas envisageable d'étudier leur emploi...
Rien a foutre, ca n'a, encore une fois, aucun rapport avec la notion
de langage objet.
Ce dont tu me parles, c'est de la methodologie industrielle a la Grady
Booch et UML, qui s'appuie sur le concept d'objet, dans une acception
extremement specifique et terriblement restrictive... un peu une envie
de tout classifier, de tout rentrer dans des cases.