|
Publicité ' | ||||||||||||||||||||||||
|
|
#1041 |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 257 ![]() |
Salut, je ne pense pas que l'introspection ait été ajoutée a java pour pallier un manque mais tout simplement parce que ca apporte des fonctionnalités intéréssantes.
Par exemple un système de plugin en tire parti a merveille, on définit une interface, et on ne connait pas les implémentations. Ces dernières sont ajoutées plus tard et on ne change qu'un fichier de config pour définir l'implémentation que l'on veut utiliser. Cela peut même se faire dynamiquement sans redémarrer. Sinon sans rapport avec l'introspection : j'entend partout que les templates c'est bien mieux que les generics. Oui mais en quoi ? J'ai utilisé les 2, mais je n'ai pas une aussi grande expérience du c++ que du java et donc je n'ai pas vu d'avantage décisif aux templates, quelqu'un pourrait il éclairer ma lanterne ? |
|
|
00
|
|
|
#1042 | |
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Citation:
J"vais fait un billet un peu plus complet sur le sujet : Les Generics ne sont pas des Templates comme les autres ! a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
|
00
|
|
|
#1043 |
![]() ![]() Inscription : juin 2005 Messages : 8 570 ![]() |
adiGuba > dans le blog tu te trompes. Une méthode peut être template sans que la classe à laquelle elle appartient le soit. Et si la classe est template aussi, la méthode peut en plus l'être également.
Enfin bon ![]() D'ailleurs j'ai une question. Est-ce que ce genre de chosess se fait en Java avec les Generics ?
__________________
/!\ A French community for Haskell /!\ Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++ Le guide pour bien débuter en C++ |
|
00
|
|
|
#1044 | ||
|
Membre éclairé
![]() ![]() Inscription : août 2007 Messages : 279 ![]() |
adiGuba, tu résumes bien les objectifs initiaux des templates C++, tels qu'ils étaient perçus en 1994 lors de la présentation de la STL. Depuis, le moins qu'on puisse dire, c'est que que les templates C++ se sont révélés formidablement plus puissants que prévu, d'ailleurs à la surprise des spécialistes du langage.
Citation:
Citation:
Je ne souhaite pas du tout entrer dans la controverse Java/C++, simplement souligner qu'il y a une différence bien plus grande entre les templates C++ et les Generics de Java qu'indiqué dans le blog (l'instanciation multiple de code n'est qu'un détail sans intérêt vis-à-vis de ce qui est effectivement apporté par les templates en termes de conception). |
||
|
|
00
|
|
|
#1045 | |||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Citation:
Mais pour moi le principal n'était pas vraiment là : je voulais plutôt mettre le focus sur le fait que malgré une syntaxe proche il ne s'agit pas du tout des mêmes notions... Citation:
Pour quelque chose de similaire j'utiliserais des interface générics... Citation:
![]() Par contre vous me titiller avec ce principe de "concepts"... il faudra que j'y jettes un coup d'oeil lorsque j'aurais un peu de temps a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||
|
00
|
|
|
#1046 |
![]() ![]() Inscription : juin 2005 Messages : 8 570 ![]() |
On a un projet d'article en cours sur les concepts de C++0x.
Fais une recherche dans le forum C++ t'auras quelques éléments
__________________
/!\ A French community for Haskell /!\ Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++ Le guide pour bien débuter en C++ |
|
00
|
|
|
#1047 | |
![]() ![]() Inscription : juin 2006 Messages : 6 929 ![]() |
Citation:
Les classes de policies se font mais pas de la même manière. Par contre, il n'est pas possible d'avoir un moment un code qui ressemble à : Mais il y a d'autres manières de faire suivant ce que tu veux exactement faire.
__________________
Je ne répondrai à aucune question technique en privé |
|
|
|
00
|
|
|
#1048 |
![]() ![]() Inscription : juin 2005 Messages : 8 570 ![]() |
Le fait est que pas mal des techniques avancées d'utilisation des templates permettent d'avoir un semblant de réflexivité. Enfin, on peut décrire une classe à la compilation, en tout cas.
Et il me semble bien qu'en Java tout est déjà pré-maché ![]() Après, pour les policies, l'application la plus connue est celle issue du bouquin d'Alexandrescu : La bibliothèque Loki.
__________________
/!\ A French community for Haskell /!\ Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++ Le guide pour bien débuter en C++ |
|
00
|
|
|
#1049 | |
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Citation:
Je veux dire, Hashkell impose un paradigme spécifique aussi, tout comme C/C++, ainsi que tous les autres langages. Alors pourquoi est-ce dommage que Java/C# imposent le modèle objet ?... Au final, plutôt que d'être imposé par un langage le choix du paradigme ne reste-t-il pas un choix de l'équipe de développement, du client et/ou du chef de projet... ? Je veux dire, si ton client, chef de projet, ton équipe et/ou toi-même ne souhaitent pas développer en objet, rien ne vous impose d'utiliser un langage objet. Je vois un cas où ça peut être dommage : le cas où tu as envie d'utiliser une technologie qui n'est disponible que dans un langage spécifique, mais que tu souhaites utiliser un autre langage ou paradigme que celui imposé par le langage en question (par exemple wpf supportant mal c++/cli). A noter que les templates en tant que meta-programmation n'ont pas forcément un intérêt phénoménal en java ou en c#, puisque ces langages permettent de générer du code, typé, lors de l'exécution. |
|
|
|
00
|
|
|
#1050 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
En fonction du problème, certaines approches sont beaucoup plus efficaces que d'autres. Je préfère quand je peux choisir la vision des choses à adopter, sans avoir à changer de langage (ce qui est rarement pratique).
Le système de templates est turing-complet et reste plus puissant que l'approche des generics. Il permet aussi plus de généricité et n'est pas restreint par les interfaces. Il a aussi ses inconvénients, mais j'imagine que tout cela a été détaillé au cours des 70 pages de discussion. |
|
|
00
|
|
|
#1051 | ||
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Citation:
Citation:
Je pensais plus à l'AOP et, en ce qui concerne C# en tout cas (je ne sais pas si Java a un équivalent, mais ça m'étonnerait pas) de la possibilité de générer du code MSIL au runtime. |
||
|
|
00
|
|
|
#1052 | |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
Citation:
Dans certains cas, on peut ne pas vouloir de classe, or Java nous l'impose. Je trouve ça juste "dommage", mais ce n'est pas vraiment un problème, en soi. Mais si tu veux quelque chose qui n'est pas faisable en Java, regarde du côté des templates, de la généricité et de la méta-programmation. Comme je l'ai dit, je suis convaincu que tout a déjà été abordé et je n'ai pas envie de m'étendre. |
|
|
|
00
|
|
|
#1053 |
![]() ![]() Inscription : juin 2005 Messages : 8 570 ![]() |
A ce sujet, lire "Modern C++ Design" et "C++ Template Metaprogramming" (2 oeuvres qui couvrent assez bien la programmation générique et la conception générique).
__________________
/!\ A French community for Haskell /!\ Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++ Le guide pour bien débuter en C++ |
|
00
|
|
|
#1054 | |
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Citation:
Pour ce qui est du paradigme fonctionnel, logique ou autre préférable dans certains cas, je suis tout à fait d'accord. J'ai juste du mal à voir exactement où se situe cette question quand on compare c/c++ et java/c# |
|
|
|
00
|
|
|
#1055 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2003 Messages : 4 325 ![]() |
Dans une moindre mesure le C++ les supporte.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
00
|
|
|
#1056 |
![]() ![]() Inscription : juin 2005 Messages : 8 570 ![]() |
Comme pour pas mal de choses, la souplesse du C++ permet de "simuler" ou encore "approcher" des techniques/paradigmes de programmation qui ne sont à l'origine pas fait pour le C++.
__________________
/!\ A French community for Haskell /!\ Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++ Le guide pour bien débuter en C++ |
|
00
|
|
|
#1057 |
|
Membre Expert
![]() Chris CamelArchitecte de système d'information Inscription : novembre 2006 Messages : 1 237 ![]() |
En java, l'application des aspects peuvent se faire dynamiquement, avec donc génération du bytecode au runtime.
|
|
|
00
|
|
|
#1058 | |
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 222 ![]() |
Donc pour conclure
Citation:
|
|
|
|
00
|
|
|
#1059 |
![]() ![]() Inscription : juin 2005 Messages : 8 570 ![]() |
Qu'est-ce qu'il ne faut pas lire ...
__________________
/!\ A French community for Haskell /!\ Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++ Le guide pour bien débuter en C++ |
|
00
|
|
|
#1060 |
|
Membre Expert
![]() Inscription : avril 2004 Messages : 1 132 ![]() |
Donc.... le C++, c'est de l'assembleur qui s'exécute dans une machine virtuelle ?...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com