Arrete c'est bon, tu prends justement l'exemple qui evidement contredit ce que je venais de dire. Si tu savais lire tu verrai que je parlais d'une appli et pas d'un algo particulier.
si tu passe par référence, il y a une indirection de plus
Le cout perdu a l'indirection est extremement faible dans une grosse appli.
Je me rappele encore mes profs me repeter qu'il ne sert a rien de se battre sur ce genre d'optimisations et d'essayer plutot d'optimiser l'algo lui meme.
Arreter de jouer sur les mots, si tu avais pris la peine de me lire depuis le debut tu verrais qu'on pense exactement la meme chose.
De toute facon la notion d'objet, a mes yeux, n'est pas dependante du langage mais plutot de la facon dont le developpeur utilise les fonctionnalités du langage utilisé. Elles ne sont la que pour l'aider et formaliser syntaxiquement ce concept.
C++ est un langage objet, puisqu'il reprend les principaux principes, mais, comme pratiquement tous les langages et pour des raisons de facilité d'utilisation il va plus loin et propose des fonctionnalités qui sorte du cadre de la conception purement objet.
On peut, en Java, caster un objet en une de ses sous-classes, si l'objet est du bon type (si c'était ça que tu voulais dire). Mais en C++ aussi, grâce à dynamic_cast.
Le typage dynamique permet juste de determiner le type d'un objet a l'execution. Il n'y a pas de controle a la compilation. Dans l'exemple que tu as cite le "cast" est controle a la compilation. L'un des avantages est de ne plus avoir de table de fonctions virtuelles et de pouvoir ajouter a l'execution un nouvel objet.
Une derniere chose, UML permet effectivement de modeliser l'heritage multiple, mais UML n'a pas inventer la conception objet.
Dans un monde objet l'heritage n'a pas vraiment de sens, on lui prefere la notion d'extension (equivalente a l'heritage simple) pour specialiser l'objet et la notion d'interface pour ajouter un comportement. Generalement l'extension implement l'interface et etend un objet pour lui ajouter le comportement de cette interface. Je ne sais pas si c tres clair ce que je viens d'ecrire ;)
C++ n'est pas un "vrai" langage objet et pour plusieurs raisons (heritage multiple entre autre a la place d'interface) mais aussi le fait qu'il ne supporte pas le typage dynamique ...
et tout ceci pour beaucoup moins cher que s'ils devaient développer leur propre OS
et AIX ??? A mon avis c'est plus un effet de mode de vendre Linux avec leurs stations de travail que de mettre de l'AIX. Leurs clients doivent en effet leur demander Linux car il pense que tout est gratuit et que ca leur reviendra a moins cher.
Je ne sais pas, fait une proposition :) mais le terme genericité me convient personnelement.
Le typage dynamique permet d'effectuer une edition de lien veritablement dynamique ou le branchement vers la bonne fonction est determinée a l'execution. Certe cela est possible en C++ grace a la table des fonction virtuelle, mais il ne s'agit pas vraiment d'une vrai liaison dynamique car on ne peut pas changer l'objet pendant l'execution par exemple.
Une derniere chose Caml n'est pas statiquement typé car il fait de l'inference de type.
Je ne parlais pas de genericité au sens de polymorphisme (j'aurais du employer un autre terme que genericité).
Pour ce qui est du typage dynamique/statique, je trouve plus pratique de se poser la question du type d'un objet au runtime qu'a la compilaition (ce qui est necessaire a tout langage veritablement objet).
C# ca pue un peu parce c'est de Microsoft
Oui et c'est bien ca le probleme. En choisissant ce langage, tu depend de microsoft et des evolutions de ce langage, meme s'il est normalisé. Regarde ce qui s'est passé pour java (Microsoft a tenté de s'approprié ce langage en ajoutant des extensions qui lui etait propre et en le rendant peu a peu incompatible avec le java de sun)
En choisissant C# tu renforce lq position dominante de Microsoft et tu te retrouves face a deux choix :
- Accepter les évolutions de Microsoft, au risque de contredire tes principes sur les logiciels libres,
- Te restreindre a l'implementation "standard" qui de toute facon n'aura aucun avenir car elle ne sera supporté pas personne et ne sera plus compatible avec ce que fait microsoft.
C'est mon avis, vous aurez devinez que je suis contre l'introduction de C# et surtout .Net sous Linux meme si je pense que c'est un excellent langage/Framework (mais encore a des annees lumieres d'ObjC/GNUStep ;)
Il me semble que cette personne a deja analyser le probleme et hesite entre plusieurs langages.
C'est bien aussi d'avoir plusieurs temoinages differents pour trancher, nan ?
Mais le principal critere a mon avis est de prendre le langage avec lequel tu es le plus a l'aise. Un autre critere est de prendre un langage connu par la majorité et fournissant de nombreuses library.
Tes contraintes ne sont pas suffisement fortes par rapport aux deux criteres precedents AMA.
Ton second point ne veut rien dire, avec les bonnes lib, tu peux avoir un garbage collector, tu peux faire de la prog objet, ....
Pour le troisieme point je ne dirais rien, bien utilisé et en s'interdisant d'utiliser certaines fonctionnalités, le C++ n'est pas lourdingue (templates, heritage multiple, const a tout va, ...)
Le quatrieme point peut etre eviter en utilisant des smarts pointers, un garbage collector ou tout simplement en apprenant a gerer soit meme la memoire.
Finalement, le typage statique fort n'est pas forcement ce qu'il y a de plus pratique (quid de la genericité)
Adapté mais pas forcement indispensable. Je prefere de plus un projet ne l'utilisant pas qu'un projet l'utilisant mal et surtout a toute les sauces : "regardé qu'il est bo mon diagramme"
Et je pense que le risque, que l'on retrouve systematiquement, est de plus se concentrer sur la forme que sur le fond, sans vraiment prendre de recule.
Chui un ptit jeune moi, alors tout ce qui est avant 1980 ca se melange un peu ;)
En fait j'ai pris comme reference un calculateur acheté par ma fac dans les annees 60 foncitonnant a base de carte perforée (dixit l'une de mes profs qui a connue cette epoque la, et elle n'a pas 60 piges, d'ou ma fourchette 60-70)
C'est vrai ke les premiers ordinateurs datent de la seconde guerre, mais leur utilisation par des vrais informaticiens et par ceux qui ont inventés l'informatique est bcq plus tard.
Bonne remarque, mais en se replongeant dans les annees 60-70, au temps des premiers ordinateurs, ceux-ci n'etaient pas concu de la meme maniere (pas de RAM, ...). En fait les programmes en assembleurs etaient directement interpretes par la machine (c'est l'epoque des cartes perforees), la traduction assembleur->code binaire etaient faite en hardware. Me trompe-je ?
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à 1.
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à 1.
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à 1.
Le cout perdu a l'indirection est extremement faible dans une grosse appli.
Je me rappele encore mes profs me repeter qu'il ne sert a rien de se battre sur ce genre d'optimisations et d'essayer plutot d'optimiser l'algo lui meme.
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à 4.
Arreter de jouer sur les mots, si tu avais pris la peine de me lire depuis le debut tu verrais qu'on pense exactement la meme chose.
De toute facon la notion d'objet, a mes yeux, n'est pas dependante du langage mais plutot de la facon dont le developpeur utilise les fonctionnalités du langage utilisé. Elles ne sont la que pour l'aider et formaliser syntaxiquement ce concept.
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à 2.
C++ est un langage objet, puisqu'il reprend les principaux principes, mais, comme pratiquement tous les langages et pour des raisons de facilité d'utilisation il va plus loin et propose des fonctionnalités qui sorte du cadre de la conception purement objet.
On peut, en Java, caster un objet en une de ses sous-classes, si l'objet est du bon type (si c'était ça que tu voulais dire). Mais en C++ aussi, grâce à dynamic_cast.
Le typage dynamique permet juste de determiner le type d'un objet a l'execution. Il n'y a pas de controle a la compilation. Dans l'exemple que tu as cite le "cast" est controle a la compilation. L'un des avantages est de ne plus avoir de table de fonctions virtuelles et de pouvoir ajouter a l'execution un nouvel objet.
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à -3.
Dans un monde objet l'heritage n'a pas vraiment de sens, on lui prefere la notion d'extension (equivalente a l'heritage simple) pour specialiser l'objet et la notion d'interface pour ajouter un comportement. Generalement l'extension implement l'interface et etend un objet pour lui ajouter le comportement de cette interface. Je ne sais pas si c tres clair ce que je viens d'ecrire ;)
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à -2.
C++ n'est pas un "vrai" langage objet et pour plusieurs raisons (heritage multiple entre autre a la place d'interface) mais aussi le fait qu'il ne supporte pas le typage dynamique ...
[^] # Re: IBM demande à Sun de "libérer" Java
Posté par Anonyme . En réponse à la dépêche IBM demande à Sun de "libérer" Java. Évalué à 2.
et AIX ??? A mon avis c'est plus un effet de mode de vendre Linux avec leurs stations de travail que de mettre de l'AIX. Leurs clients doivent en effet leur demander Linux car il pense que tout est gratuit et que ca leur reviendra a moins cher.
[^] # Re: Quel langage choisir.
Posté par Anonyme . En réponse au journal Quel langage choisir.. Évalué à 1.
Le typage dynamique permet d'effectuer une edition de lien veritablement dynamique ou le branchement vers la bonne fonction est determinée a l'execution. Certe cela est possible en C++ grace a la table des fonction virtuelle, mais il ne s'agit pas vraiment d'une vrai liaison dynamique car on ne peut pas changer l'objet pendant l'execution par exemple.
Une derniere chose Caml n'est pas statiquement typé car il fait de l'inference de type.
[^] # Re: Quel langage choisir.
Posté par Anonyme . En réponse au journal Quel langage choisir.. Évalué à 2.
Pour ce qui est du typage dynamique/statique, je trouve plus pratique de se poser la question du type d'un objet au runtime qu'a la compilaition (ce qui est necessaire a tout langage veritablement objet).
[^] # Re: Quel langage choisir.
Posté par Anonyme . En réponse au journal Quel langage choisir.. Évalué à 2.
C# ca pue un peu parce c'est de Microsoft
Oui et c'est bien ca le probleme. En choisissant ce langage, tu depend de microsoft et des evolutions de ce langage, meme s'il est normalisé. Regarde ce qui s'est passé pour java (Microsoft a tenté de s'approprié ce langage en ajoutant des extensions qui lui etait propre et en le rendant peu a peu incompatible avec le java de sun)
En choisissant C# tu renforce lq position dominante de Microsoft et tu te retrouves face a deux choix :
- Accepter les évolutions de Microsoft, au risque de contredire tes principes sur les logiciels libres,
- Te restreindre a l'implementation "standard" qui de toute facon n'aura aucun avenir car elle ne sera supporté pas personne et ne sera plus compatible avec ce que fait microsoft.
C'est mon avis, vous aurez devinez que je suis contre l'introduction de C# et surtout .Net sous Linux meme si je pense que c'est un excellent langage/Framework (mais encore a des annees lumieres d'ObjC/GNUStep ;)
[^] # Re: Quel langage choisir.
Posté par Anonyme . En réponse au journal Quel langage choisir.. Évalué à 1.
C'est bien aussi d'avoir plusieurs temoinages differents pour trancher, nan ?
# Re: Quel langage choisir.
Posté par Anonyme . En réponse au journal Quel langage choisir.. Évalué à 4.
Sinon OCaml, ruby est pas mal du tout.
Mais le principal critere a mon avis est de prendre le langage avec lequel tu es le plus a l'aise. Un autre critere est de prendre un langage connu par la majorité et fournissant de nombreuses library.
Tes contraintes ne sont pas suffisement fortes par rapport aux deux criteres precedents AMA.
Ton second point ne veut rien dire, avec les bonnes lib, tu peux avoir un garbage collector, tu peux faire de la prog objet, ....
Pour le troisieme point je ne dirais rien, bien utilisé et en s'interdisant d'utiliser certaines fonctionnalités, le C++ n'est pas lourdingue (templates, heritage multiple, const a tout va, ...)
Le quatrieme point peut etre eviter en utilisant des smarts pointers, un garbage collector ou tout simplement en apprenant a gerer soit meme la memoire.
Finalement, le typage statique fort n'est pas forcement ce qu'il y a de plus pratique (quid de la genericité)
[^] # Re: Quel langage choisir.
Posté par Anonyme . En réponse au journal Quel langage choisir.. Évalué à 2.
http://linuxfr.org/~ilaioului/3952.html(...)
# Re: Quel langage choisir.
Posté par Anonyme . En réponse au journal Quel langage choisir.. Évalué à 0.
[^] # Re: Modélisateur UML gratuit: Poseidon CE
Posté par Anonyme . En réponse au journal Modélisateur UML gratuit: Poseidon CE. Évalué à -1.
[^] # Re: Modélisateur UML gratuit: Poseidon CE
Posté par Anonyme . En réponse au journal Modélisateur UML gratuit: Poseidon CE. Évalué à 1.
Et je pense que le risque, que l'on retrouve systematiquement, est de plus se concentrer sur la forme que sur le fond, sans vraiment prendre de recule.
[^] # Re: Modélisateur UML gratuit: Poseidon CE
Posté par Anonyme . En réponse au journal Modélisateur UML gratuit: Poseidon CE. Évalué à -1.
[^] # Re: Modélisateur UML gratuit: Poseidon CE
Posté par Anonyme . En réponse au journal Modélisateur UML gratuit: Poseidon CE. Évalué à 0.
[^] # Re: Attentat au yahourt!
Posté par Anonyme . En réponse au journal Attentat au yahourt!. Évalué à 2.
c'est juste le resultat de leur campagne sur l'insecurite.
# Re: Un concurent pour google :
Posté par Anonyme . En réponse au journal Un concurent pour google :. Évalué à 3.
www.dir.com
et c'est free ki l'a fait !!!
[^] # Re: L'oeuf ou la poule ?
Posté par Anonyme . En réponse au journal L'oeuf ou la poule ?. Évalué à 1.
En fait j'ai pris comme reference un calculateur acheté par ma fac dans les annees 60 foncitonnant a base de carte perforée (dixit l'une de mes profs qui a connue cette epoque la, et elle n'a pas 60 piges, d'ou ma fourchette 60-70)
C'est vrai ke les premiers ordinateurs datent de la seconde guerre, mais leur utilisation par des vrais informaticiens et par ceux qui ont inventés l'informatique est bcq plus tard.
[^] # Re: L'oeuf ou la poule ?
Posté par Anonyme . En réponse au journal L'oeuf ou la poule ?. Évalué à 1.
[^] # Re: L'oeuf ou la poule ?
Posté par Anonyme . En réponse au journal L'oeuf ou la poule ?. Évalué à 1.
[^] # Re: L'oeuf ou la poule ?
Posté par Anonyme . En réponse au journal L'oeuf ou la poule ?. Évalué à 2.