IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

java ou c++ ou autre


Sujet :

C++

  1. #41
    Membre du Club
    Inscrit en
    D�cembre 2009
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2009
    Messages : 10
    Par d�faut
    Par rapport a ce sujet le mieux est de ne pas rester pi�ger par un langage, il faut remonter d'un niveau est se concentrer sur la conception et la mani�re d'aborder une probl�matique ou un projet.

    C'est vrai que le langage influence les d�cisions, mais il faut apprendre a surmonter ce complexe du langage et il faut choisir le bon langage pour le bon besoin , donc il faut �tre ouvert a aborder n'importe quel langage sans crainte.

    Par contre il y a des langages qui s'adapte plus a l'�tre humain et d'autres ou l'�tre humain qui doit plus s'adapter avec , par exemple C++ a pris la voie ou c'est le developpeur qui doit plus s'adapter avec , on a eu une d�monstration juste il y a qlq mois ou on a du mal a ajouter des choses a la norme pour simplifier et le rendre plus puissant, �a traine toujours.

    Par contre pour d'autres langages ils font pas mal d'effort pour s'adapter aux d�veloppeurs comme java ou c#, mais apr�s t'aura un debat entre 2 �coles, celle qui est pour tout maitriser jusqu'a la gestion memoire et l'autre pour liberer le developpeur de tout les aspects bas niveau et se concentrer sur le metier, et crois moi les decideurs ecoute les conseils de la 2eme ecole


    finalement ne tombe pas dans le pi�ge java vs c++ ou java vs c# ou autre, chaque langage enrichit tes connaissances et ta mani�re d'aborder les probl�matiques et chacun et tr�s puissant pour une probl�matique, il faut �tre pr�t a aborder n'importe quel langage et surtout laisse ton esprit ouvert a tout langage et concentre toi aussi sur la conception d�s maintenant �a t'aidera bcp par la suite.

  2. #42
    R�dacteur/Mod�rateur
    Avatar de JolyLoic
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    5 463
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 5 463
    Par d�faut
    Citation Envoy� par DesignFirst Voir le message
    Par contre il y a des langages qui s'adapte plus a l'�tre humain et d'autres ou l'�tre humain qui doit plus s'adapter avec , par exemple C++ a pris la voie ou c'est le developpeur qui doit plus s'adapter avec , on a eu une d�monstration juste il y a qlq mois ou on a du mal a ajouter des choses a la norme pour simplifier et le rendre plus puissant, �a traine toujours.
    L� tu parles de vitesse d'�volution du langage, et c'est vrai que le C++ �volue trop lentement � mon go�t (m�me si d'autres langages �voluent parfois trop vite mais sans r�flexion pouss�e, par exemple les lambdas dans C#, ou le fait que pendant longtemps C# ou Java n'ont pas eu les g�n�riques) mais en r�gle g�n�rale, j'ai bien l'impression que le C++ est plus souple et s'adapte mieux au d�veloppeur que par exemple C# (je ne connais pas assez Java pour en parler), car c'est un langage qui propose plusieurs mani�res de programmer, alors que C# a tendance � n'en proposer qu'une, qu'il faut suivre.
    Ma session aux Microsoft TechDays 2013 : D�velopper en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage � la d�couverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'h�sitez pas � me contacter.

  3. #43
    Membre du Club
    Inscrit en
    D�cembre 2009
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2009
    Messages : 10
    Par d�faut
    Citation Envoy� par JolyLoic Voir le message
    car c'est un langage qui propose plusieurs mani�res de programmer, alors que C# a tendance � n'en proposer qu'une, qu'il faut suivre.
    On parle beaucoup du multi paradigme en C++ mais j'ai l'impression que cet avantage n'est exploit� que par quelques d�veloppeurs, et �a ajoute une complexit� pour la majorit� des d�veloppeurs.

    Par exemple pour le proc�durale c'est toujours mal utilis� et �a donne finalement du C like, et pour les templates rare sont ceux qui utilisent leur vrai puissance, en g�n�ral on 'a l'impression que c'est utilis� que pour �viter le copier/coller mais non comme paradigme qui apporte une autre mani�re de concevoir comme le polymorphisme statique.


    Mais si on entame C++ du bon bout c'est tout benef, on apprend �norm�ment de concepts et de m�canismes qui nous permettrons de maitriser la majorit� des langages ais�ment, mais h�las en r�alit� ce langage est de plus en plus consid�r� comme trop complexe et ce pr�jug� des �tudiants leur ajoute d�s le d�part une barri�re suppl�mentaire.

  4. #44
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par DesignFirst Voir le message
    On parle beaucoup du multi paradigme en C++ mais j'ai l'impression que cet avantage n'est exploit� que par quelques d�veloppeurs, et �a ajoute une complexit� pour la majorit� des d�veloppeurs.
    En apparence uniquement...

    Car en pratique, cela am�ne � une programmation plus "naturelle": Il y a certaines fonctions qui n'ont strictement rien � faire dans des classes, m�me s'il s'agit de fonctions "de classes" (statiques) et non de fonctions "d'instance"(non statiques)...

    Obliger le programmeur � cr�er une classe enti�rement artificielle pour respecter le paradigme objet � tout prix est alors un non sens int�gral.
    Par exemple pour le proc�durale c'est toujours mal utilis� et �a donne finalement du C like,
    Dans le pire des cas, peut-�tre...

    Mais utilis� � bon escient, il permet, simplement, de ne pas �tre oblig� de cr�er une classe artificielle
    et pour les templates rare sont ceux qui utilisent leur vrai puissance, en g�n�ral on 'a l'impression que c'est utilis� que pour �viter le copier/coller
    C'est d�j� pas si mal, si on a effectivement remarqu� que le comportement est factorisable ind�pendamment du type de donn�e manipul�
    mais non comme paradigme qui apporte une autre mani�re de concevoir comme le polymorphisme statique.
    Il est vrai que cela n�cessite une approche plus transversale du probl�me que ce que l'on a l'habitude de faire en OO...
    Mais si on entame C++ du bon bout c'est tout benef,
    on apprend �norm�ment de concepts et de m�canismes qui nous permettrons de maitriser la majorit� des langages ais�ment,
    +1
    mais h�las en r�alit� ce langage est de plus en plus consid�r� comme trop complexe et ce pr�jug� des �tudiants leur ajoute d�s le d�part une barri�re suppl�mentaire.
    Le probl�me que l'on rencontre souvent, c'est que les profs qui doivent apprendre C++ � leurs �l�ves ont t�t� � la mamelle du "C++, c'est du C" qui veulent l'apprendre beaucoup trop vite en le prenant par le mauvais bout ...

    Je ne fais aucune objection au fait de commencer l'apprentissage en n'utilisant que le paradigme proc�dural, du moment que l'on utilise directement les possibilit�s qu'il offre (l'utilisation des classes conteneurs, de std::string et de i/o *stream, par exemple, m�me si c'est de mani�re superficielle), quitte � revenir sur ces classes par la suite.

    Par contre, si tu base l'apprentissage sur C with class, il est clair que tu donnera rapidement une mauvaise impression de complexit�, qui risque tr�s fort de d�courager les �l�ves
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  5. #45
    Membre confirm�
    Inscrit en
    Juillet 2009
    Messages
    109
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par d�faut
    bonjour
    comme d'habitude je n'oublie jamais de vous remercier.
    on a principalement parl� de la diff�rence entre C++ et java, et, au final, tu choisi un langage qui rajoute aux inconv�nients de java celui de n'�tre pas vraiment portable, du fait de ses origines "microsoftiennes"...
    Peut on savoir ce qui t'a incit� � ce choix, si, du moins, ce n'est pas indiscret
    c'est vrai on a parl� principalement de c++ et java mais le sujet de la discussion �tait "java ou c++ ou autre"
    De plus je pense que dire que c#
    rajoute aux inconv�nients de java celui de n'�tre pas vraiment portable
    n'est tr�s juste car c# est tr�s puissant par apport � java comme tous les langages .net y compris c++.mais plut�t on peut dire que c# rajoute aux avantages de c++ la simplicit� de java.
    pour la portabilit� c++ souffre du m�me probl�me que c#.J'ai lu aussi dans la faq c# sur ce site que maintenant on peut compiler du codes c#.net sur plusieurs architectures gr�ce au projet MONO.
    Maintenant pour la citation de DesignFirst ,je suis totalement d'accord avec lui,la conception (uml,merise,...) doit pr�c�der tout impl�mentation et nous devons comprendre en globale le COO et la POO et ne pas craindre des langages de programmation et ainsi ne pas tomber dans les pi�ges de java vs c++ ou java vs c# et laisser l'esprit ouvert,ici l'�cole se charge de ces trucs.
    Mais ce qui m'a pouss� � faire un choix est d'une part l'equivalence qui existe entre certains langages(c# et vb par exemple, pourquoi donc les deux) et d'autre part (ce qui est plus int�ressant) est que je developppe des applications sur mesure pour des clients,et chaque fois je choisi un langage pour le faire ce qui a caus� :
    -mes applications ne sont pas optimale du c�t� code et temps de r�alisation (mais bien sur car je ne maitrise aucun langages )
    -la qualit� de mes applications n'est pas en train d'�voluer (car � chaque fois je change de langage et ainsi je recommence du d�but)
    Aussi pour ces raisons que j'ai adopt� c# ,sa productivit�,sa simplicit� et sa puissance(qui d�passe certainement celle de java) vont m'aider � optimiser mes travaux.voil� .

  6. #46
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Ao�t 2004
    Messages
    1 717
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 717
    Par d�faut
    pour la portabilit� c++ souffre du m�me probl�me que c#
    Tu devrais v�rifier tes informations, la portabilit� en C++ n'a rien a voir avec celle du C#. Le C# d�pends d'une implementation .Net (celle de microsoft ou Mono) qui elle m�me doit �tre pr�sente sur la machine cible.
    En C++ si ton code est standard et compil� "correctement" par les compilateurs dispo sur tes machines cible, alors ton code est portable. Sur ordinateur classique (pc/mac) les dis compilateurs sont disponibles gratuitement, donc la seule vrai contrainte deviens le code lui m�me qui peut ou pas utiliser des fonctions sp�cifiques � un OS ou une biblioth�que faisant de m�me.

    Donc non ce n'est pas pareil. Cela dit, �a n'emp�che pas C# d'�tre un choix l�gitime, selon les cas.


    Au passage, justement je me demandais si la portabilit� �tait un point important pour les applications web? Si quelqu'un avec de l'experience en sait quelque chose l� dessus...

  7. #47
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par louzorios Voir le message
    De plus je pense que dire que c# n'est tr�s juste car c# est tr�s puissant par apport � java comme tous les langages .net y compris c++.
    Je pense � l'inverse qu'il souffre des m�mes limites que java par rapport � C++ pour les m�me raisons: la philosophie de C# est, finalement, plus proche de java que de C++
    mais plut�t on peut dire que c# rajoute aux avantages de c++ la simplicit� de java.
    Pas � mon sens...

    Comme je l'ai dit, il rajoute aux restrictions de java des restrictions propre au cot� "propri�taire" du langage.
    pour la portabilit� c++ souffre du m�me probl�me que c#.
    Oh que nenni...

    Si tu �cris un code standard en C++, a la quasi certitude qu'il compilera sur n'importe quelle plateforme et n'importe quel syst�me d'exploitation...

    C# depend du framework .NET ou de son �quivalent MONO... et la portabilit� est loin d'�tre optimale entre les deux
    J'ai lu aussi dans la faq c# sur ce site que maintenant on peut compiler du codes c#.net sur plusieurs architectures gr�ce au projet MONO.
    Effectivement, il y a mono, mais, pour autant que j'en sache, il y a toujours un d�calage entre ce que MONO permet et ce que permet le framework microsoft, ce qui rend la portabilit� plus qu'incertaine

    De plus, il y a des frameworks pr�vus pour C++ dont la portabilit� est largement sup�rieure � celle que l'on rencontre entre MONO et .NET (Qt, par exemple)...
    Mais ce qui m'a pouss� � faire un choix est d'une part l'equivalence qui existe entre certains langages(c# et vb par exemple, pourquoi donc les deux)
    �quivalence sommes toutes relativement normale �tant donn� que les deux langages ont �t� d�velopp�s par la m�me firme, mais cependant toute relative quand m�me
    et d'autre part (ce qui est plus int�ressant) est que je developppe des applications sur mesure pour des clients,et chaque fois je choisi un langage pour le faire ce qui a caus� :
    C'est effectivement une logique coh�rente, lorsque l'on ne d�cide pas de se "sp�cialiser" dans certains types de projets
    -mes applications ne sont pas optimale du c�t� code et temps de r�alisation (mais bien sur car je ne maitrise aucun langages )
    -la qualit� de mes applications n'est pas en train d'�voluer (car � chaque fois je change de langage et ainsi je recommence du d�but)
    Ne dit on pas qu'il faut apprendre � marcher avant de savoir courir

    Il est tout � fait juste que les transitions incessantes entre diff�rents langages ne sont pas faites pour faciliter la maitrise de l'un deux...

    Mais ce n'est pas parce que tu dois "te remettre dans le bain" � chaque fois que tu n'�volue pas dans la maitrise des diff�rents langages, non plus
    Aussi pour ces raisons que j'ai adopt� c# ,sa productivit�,sa simplicit� et sa puissance(qui d�passe certainement celle de java) vont m'aider � optimiser mes travaux.voil� .
    La productivit� et la simplicit� de C# est, selon moi, fort similaire � celle de java, vu qu'ils ont suivi des philosophies finalement fort proches...

    Par contre, si, effectivement, C# profite de la puissance de .NET qui le rend, peut-�tre, plus puissant que java, cela n'emp�che que C++ reste, m�me sans utiliser .NET, tr�s largement sup�rieur aux deux (au contraire, je ne suis pas loin de penser que le fait d'utiliser C++ en .NET revient plut�t � en limiter la puissance )
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  8. #48
    Membre confirm�
    Inscrit en
    Juillet 2009
    Messages
    109
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par d�faut
    merci � vous
    ce que j'ai voulu dire pour la portabilit�
    pour la portabilit� c++ souffre du m�me probl�me que c#
    que si un projet n�cessite une portabilit� alors on va tourner vers java et non pas c++ ni c# .
    de plus
    Pour Koala
    I
    l est tout � fait juste que les transitions incessantes entre diff�rents langages ne sont pas faites pour faciliter la maitrise de l'un deux...

    Mais ce n'est pas parce que tu dois "te remettre dans le bain" � chaque fois que tu n'�volue pas dans la maitrise des diff�rents langages, non plus
    je comprend ici que tu veux que je reste transiter entre diff�rents langages??

  9. #49
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par louzorios Voir le message
    merci � vous
    ce que j'ai voulu dire pour la portabilit�

    que si un projet n�cessite une portabilit� alors on va tourner vers java et non pas c++ ni c# .
    Pas forc�ment...

    C++ est une alternative tr�s correcte lorsque la portabilit� est de mise...

    Pour Koala

    je comprend ici que tu veux que je reste transiter entre diff�rents langages??
    Je ne veux rien du tout...

    Je constate "simplement" que, tant que tu restera programmeur "g�n�raliste", tu risque effectivement de transiter d'un langage � l'autre.

    Le jour o� tu te "sp�cialisera" dans un domaine d'applications particulier, il y a de fortes chances que te sp�cialise de facto dans un langage �galement.

    En attendant, si tu es libre du langage utilis� (comprend: si ton client n'insiste pas pour que tu lui fournisse une application d�velopp�e dans un langage particulier), il te reste toujours le choix de n'utiliser qu'un langage particulier, en restant cependant conscient qu'il risque de ne pas pr�senter "autant de facilit�" qu'un autre langage dans certains cas particuliers.

    Apr�s tout, on a cit� .NET plusieurs fois, si tu dois interfacer une application avec un serveur MsSQL, rien ne t'emp�che d'utiliser C++ avec .NET... Mais il est effectivement vrai que tu *pourrais* avoir plus facile � utiliser .NET avec C#...

    Par contre, si tu choisi C#, qui est tr�s d�pendant de .NET, le jour o� tu n'aura pas la possibilit� de disposer de .NET ou de MONO (en le consid�rant m�me comme compatible), tu auras de s�rieux probl�mes...

    Et la r�flexion est sensiblement identique avec java et sa d�pendance � une machine virtuelle.

    Au final, d'un point de vue purement g�n�raliste, C++ reste le langage qui te permet de partir dans le plus de directions et qui est susceptible de s'adapter � un maximum de situations, m�me si, effectivement, il est toujours possible de trouver une situation particuli�re dans laquelle il serait "pas tout aussi" adapt� qu'un autre langage.
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  10. #50
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par d�faut
    Au passage, justement je me demandais si la portabilit� �tait un point important pour les applications web? Si quelqu'un avec de l'experience en sait quelque chose l� dessus...
    Le co�t de l'h�bergement peut en �tre un. J'ai vu quelqu'un recoder enti�rement un jeu en ligne de l'asp vers du php pour cette raison (facteur 5 � 10 entre le co�t d'un serveur php et d'un serveur asp). C'�tait il y a d�j� pas mal d'ann�es, mais je ne suis pas s�r que �a ait beaucoup chang� depuis.

  11. #51
    Membre �prouv�
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par d�faut
    Citation Envoy� par DesignFirst Voir le message
    es templates rare sont ceux qui utilisent leur vrai puissance, en g�n�ral on 'a l'impression que c'est utilis� que pour �viter le copier/coller mais non comme paradigme qui apporte une autre mani�re de concevoir comme le polymorphisme statique.
    J'ai bien aim� ta remarque sur le copier coller. D'abord, on peut tout � fait remplacer les templates par du copier coller et quelques adaptations � la main. M�me si cela est utilis� pour faire du polymorphisme statique (j'aime pas bien ce terme, je suppose que tu entends par la des m�canismes comme les polices).

    Le principe m�me de la template, c'est la m�taprogrammation, c'est a dire programmer des choses qui vont g�n�rer du code. Code qui peut TOUJOURS �tre g�n�r� � la main plut�t que par l'usage de templates.

    1/ Si tu as besoin de faire un copier coller quelque part, c'est que ta conception est foireuse. Faire un copier coller est un erreur pour diverses raisons, la principale �tant qu'un bug dans ladite partie deviendra tout simplement une horreur � corriger.
    2/ En prenant le probl�me dans l'autre sens, tu verras que la plupars des outils qu'on � en programmation sont divers moyens d'�viter le copier/coller. Tu peux tr�s bien n'�crire aucune fonctions et faire du copier coller de leur contenu � tous vas. Tu peux inclure tes en-t�tes � la main par copier/coller plus que d'utiliser le pr�processeur, etc . . .

    Je crois, � la vus de ces �l�ments, que ta remarque n'a strictement aucun sens.

    Il y avait des arguments plus pertinents sur le sujet (ne pas publier le code par exemple d'une lib, si on utilise les templates - contraintes de taille de l'ex�cutable, etc . . .) mais je ne crois pas qu'ils s'appliquent a ton cas.

  12. #52
    Membre du Club
    Inscrit en
    D�cembre 2009
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2009
    Messages : 10
    Par d�faut
    Citation Envoy� par deadalnix Voir le message
    M�me si cela est utilis� pour faire du polymorphisme statique (j'aime pas bien ce terme, je suppose que tu entends par la des m�canismes comme les polices).
    le terme de polymorphisme statique c'est pas moi qui l'a inventer malheureusement , ce terme est utiliser par tout les experts et guru c++ qui utilisent comme il faut les templates a commencer par Alexander Stepanov.

    Je ne suis pas assez fort pour t'expliquer tr�s bien ce concept, il suffit de chercher sur google "template Static polymorphism" et tu sera �tonn� par le nombre d'articles sur ce sujet.

    Citation Envoy� par deadalnix Voir le message
    Je crois, � la vus de ces �l�ments, que ta remarque n'a strictement aucun sens.
    C'est justement l'objet de ma remarque,la plupart de ceux qui font du C++ ne savent m�me pas la vrai puissance des templates, on croit que c'est juste pour �viter un code r�p�titif.

    avec la programmation g�n�rique on peut faire la conception avec une vision diff�rente du POO avec l'utilisation du polymorphisme statique, traits, type erasure,..

    Malheureusement les enseignants ne montre pas aux �tudiants que la programmation g�n�rique n'est pas une simple question de limiter la duplication du code mais repr�sente une autre mani�re de concevoir.

    Donc finalement l'argument r�current comme quoi C++ est puissant parce qu'il est multi paradigme est a revoir, c'est vrai si les d�veloppeurs maitrisent ces diff�rentes possibilit�s comme il faut, sinon �a devient un grand inconv�nient au lieu que �a soit un avantage.

  13. #53
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par DesignFirst Voir le message
    <snip>

    Malheureusement les enseignants ne montre pas aux �tudiants que la programmation g�n�rique n'est pas une simple question de limiter la duplication du code mais repr�sente une autre mani�re de concevoir.

    Donc finalement l'argument r�current comme quoi C++ est puissant parce qu'il est multi paradigme est a revoir, c'est vrai si les d�veloppeurs maitrisent ces diff�rentes possibilit�s comme il faut, sinon �a devient un grand inconv�nient au lieu que �a soit un avantage.
    Le probl�me n'est pas vraiment qu'un langage supporte plusieurs paradigmes ou non (quoi qu'il est tout � fait vrai qu'un langage multi paradigme pr�sente, ind�niablement, des avantages certains par rapport � d'autres langages mono paradigmes), le probl�me vient, trop souvent, de l'impression, tout � fait fausse, qu'ont les gens qu'il suffit de connaitre la syntaxe d'un langage et de trouver l'outil (compilateur, interpr�teur, machine virtuel + EDI) pour �tre en mesure de programmer...

    Combien de d�butants (autodidactes ou �tudiants en informatique) -- ou de gens �talant volontiers de l'exp�rience, d'ailleurs -- se jettent sur leur clavier et se mettent � vomir du code sans avoir la moindre id�e de la logique qu'ils devront mettre en oeuvre

    Combien de lignes de code utilisant une logique abracadabrante et aberrante par manque d'analyse pr�liminaires

    Combien de fois rencontre-t-on des h�ritages qui n'ont vraiment pas lieu d'�tre ou des projets pr�sentant de r�els probl�mes de conception

    Ce que je souhaite te faire comprendre, c'est que tous les paradigmes ne sont utiles que si tu es, effectivement, en mesure de les utiliser correctement, � bon escient et d'en tirer le meilleur parti.

    Bien sur, on remarque une certaine �volution de la complexit� dans les diff�rents paradigmes: le s�quentiel pr�sente une complexit� moindre que l'OO qui pr�sente, lui-m�me, une complexit� moindre que le g�n�rique, et c'est normal...

    Bien sur, le paradigme g�n�rique ne montre toute sa puissance que s'il est manipul� par des gens qui le maitrisent, mais l'OO est strictement pareil:

    il te serait tout � fait impossible de concevoir quelque chose en respectant le paradigme OO sans maitriser les m�canismes d'h�ritage et de polymorphismes, simplement... parce que cela fait partie int�grante du paradigme...

    De plus, m�me si, comme tu le dis, l'utilisation de la g�n�ricit� n'a pour seul but que d'�viter la duplication de code, c'est d�j� un avantage certain: cela permet dores et d�j� d'�viter les in�vitables erreurs li�es � la duplication, m�me (et surtout ) si elle est effectu�e � coup de copier / coller...

    Tu as surement eu l'occasion de constater tous les probl�mes qui peuvent apparaitre lors d'un copier / coller, simplement parce que l'on n'aura oubli� de renommer a en var_a ou parce que l'on aura oubli� de modifier le type d'une variable int en long long ou en double dans le code dupliqu�...

    Cet avantage est, effectivement, � des ann�es lumi�res de ceux que l'on peut tirer de l'utilisation des trait de caract�res, polices et autres joyeuset�s, mais c'en est d�j� un...

    Ensuite, il y a le probl�me sp�cifique � l'enseignement, mais, en toute honn�tet�, pourrais tu me donner une proportion correcte du nombre de profs de C++ (ou de n'importe quel autre langage) qui le maitrisent eux-m�me ... Elle n'est, AMHA pas tr�s �lev�e

    Or, comment voudrais tu, en dehors de l'int�r�t personnel qu'un �l�ve peut �prouver pour un langage donn� (car c'est valable pour d'autres), qu'il apprenne � maitriser un langage si... son "r�f�rant" ne le maitrise pas lui-m�me, ou pire, s'il ne le consid�re lui-m�me que comme une "�volution" d'un autre langage (que le r�f�rant maitrise peut �tre d'avantage), sur lequel il base sa m�thode d'apprentissage

    Pire encore, quand on sait qu'il est possible d'"apprendre" un langage en quelques mois mais qu'on le maitrise en quelques ann�es (dont un certain nombre pass� � le confronter � la r�alit� de la dure vie), comment voudrais tu envisager un enseignement qui permette d'acqu�rir cette maitrise
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  14. #54
    Membre du Club
    Inscrit en
    D�cembre 2009
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2009
    Messages : 10
    Par d�faut
    Citation Envoy� par koala01 Voir le message

    Ce que je souhaite te faire comprendre, c'est que tous les paradigmes ne sont utiles que si tu es, effectivement, en mesure de les utiliser correctement, � bon escient et d'en tirer le meilleur parti.
    C'est exactement ce que j'ai mentionn� a 2 reprises avant, il faut bien comprendre les concepts de C++ avant d'en tirer parti de sa puissance, mais il y a �norm�ment de raisons qui font que l'�tudiant apprend juste a coder, coder et coder.

    Et la sp�cificit� de C++ par rapport a d'autres langages c'est qu'il faut comprendre ces mecanismes et ces concepts avant de coder b�tement , vu sa richesse.

    Et ma r�serve pour le multi paradigme est surtout qu'il devient un argument pr�f�r� des �vang�listes de C++ , sans prendre en compte que mal comprendre cette puissance , on peut avoir l'effet inverse.

  15. #55
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par d�faut
    Et la sp�cificit� de C++ par rapport a d'autres langages c'est qu'il faut comprendre ces mecanismes et ces concepts avant de coder b�tement , vu sa richesse.
    C'est l� que tu loupes un truc. C'est le cas pour tous les langages.

  16. #56
    Membre du Club
    Inscrit en
    D�cembre 2009
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2009
    Messages : 10
    Par d�faut
    Citation Envoy� par white_tentacle Voir le message
    C'est l� que tu loupes un truc. C'est le cas pour tous les langages.
    �a aussi c'est un argument pr�f�r� des �vang�listes C++

    les langages ne sont pas pareil, il y en a ceux qui sont plus riche que d'autres , par exemple C++ et parmi les langages les plus riches, donc il faut �tre plus vigilant par rapport a d'autres langages qui te limite les possibilit�s et te cadre.

  17. #57
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par DesignFirst Voir le message
    les langages ne sont pas pareil, il y en a ceux qui sont plus riche que d'autres , par exemple C++ et parmi les langages les plus riches, donc il faut �tre plus vigilant par rapport a d'autres langages qui te limite les possibilit�s et te cadre.
    Ah, ca va de soi...

    Mais, � cot� de cela, si les gens prenaient la peine de s'int�resser en priorit� aux diff�rents aspects de diff�rents paradigmes, et de les connaitre en tout cas suffisamment pour ne pas faire de conneries manifestes, le besoin de langages limit�s et encadr�s se ferait beaucoup moins sentir...

    Or, c'est l� que se trouve r�ellement le gros du probl�me: les gens s'imaginent qu'il doit �tre facile de coder (que ce soit en HTML, PHP ou dans un langage de programmation) parce qu'ils savent utiliser correctement (voire de mani�re plus ou moins avanc�e) word ou excell...

    Et, quand ce n'est pas le cas, il s'imaginent que le plus dur est l'apprentissage du langage: apr�s tout, ils ont appris "tellement facilement" l'anglais ou l'italien, apprendre le C++ ne devrait pas poser de probl�me...

    Sauf que, dans les deux cas, le fait de connaitre C++ (ou java, ou C# ou n'importe quel langage de programmation / de script) ne repr�sente qu'une petite partie des probl�mes auxquels nous sommes confront�s en programmatiion... La grosse difficult� r�sidant dans... la conception... qui devrait intervenir bien avant d'�crire la premi�re ligne de code...

    A l'extr�me limite, une personne qui maitrise la th�orie relative � l'un ou l'autre des paradigmes envisag�s "classique" (OO ou proc�dural) sera bien plus en mesure de fournir quelque facilement et rapidement chose qui "tient la route" avec un langage qu'il doit apprendre pour le but particulier du projet qu'un crack dans un langage donn� qui n'a aucune connaissance de la th�orie propre au(x) paradigme(s) mis en oeuvre par le dit langage.

    C'est tr�s bien de savoir qu'il est possible d'utiliser for(), while() ou do while() pour une boucle, mais si l'on ne sait pas, � la base, d�terminer quel type de boucle est pr�f�rable ou comment transformer l'un en l'autre, on ne saura jamais les utiliser correctement
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  18. #58
    Membre du Club
    Inscrit en
    D�cembre 2009
    Messages
    10
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2009
    Messages : 10
    Par d�faut
    Citation Envoy� par koala01 Voir le message
    Sauf que, dans les deux cas, le fait de connaitre C++ (ou java, ou C# ou n'importe quel langage de programmation / de script) ne repr�sente qu'une petite partie des probl�mes auxquels nous sommes confront�s en programmatiion... La grosse difficult� r�sidant dans... la conception... qui devrait intervenir bien avant d'�crire la premi�re ligne de code...
    Tout a fait d'accord, d'ailleurs je me suis enregistrer sur ce forum juste pour r�pondre a l'�tudiant et j'ai fais expr�s que mon nom soit "DesignFirst"

    Et ma premi�re intervention �tait justement ce que tu viens de dire, prendre du temps pour concevoir �a facilitera pas mal de choses.

  19. #59
    Membre chevronn� Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Par d�faut
    Hum, y a pas les generics en java ?
    Je veux pas dire, mais ce qui distingue les langages, c'est pas le multi-paradigme (beaucoup en ont plusieurs)... Mais plus les possibilit� offertes dans chacun.

    Le C++ offre/va offrir un tr�s gros support de la m�ta-programmation. Mais comme pour java, rien oblige son utilisation... Et cela ne nuira pas au performance d'un programme.

    Ce qui me semble int�ressant, ce sont les possibilit� offerte par le C++. Rien interdit de se mettre des limitations. D'ailleurs, j'en connais ici qui programme beaucoup en idiot-proof only d'un point de vue externe, tout en faisant "ce qu'il veulent" en interne. Mais l� encore, c'est un choix, et en rien une obligation. On pourrait tout aussi bien utiliser quelconque biblioth�que pour faire tout faire "comme dans java". L'inverse est toutefois beaucoup plus difficile :p !

    [Parenth�se]
    La programmation proc�dural, y a rien de plus instinctif au niveau local...

    La programmation objet jouit quant � elle d'une relativement instinctive conception global, fournissant des objets et des liens entre eux "comme en vrai".

    La m�ta-programmation n'a rien d'instinctif. En plus, elle est d'une farouche complexit� verbale et mentale oO.

  20. #60
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Ao�t 2004
    Messages
    1 717
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 1 717
    Par d�faut
    La m�ta-programmation n'a rien d'instinctif. En plus, elle est d'une farouche complexit� verbale et mentale
    J'imagine qu'elle est plus instinctive a ceux qui essaient de faire de l'abstraction de concept (des gens a fond dans la philosophie?) que d'autres.

    Personellement je pense que la metaprogrammation en C++ gagnerai a �tre plus "lisible". La syntaxe joue certainement �norm�ment sur l'id�e de complexit� qu'on se fait de la metaprogrammation (les autres languages s'en inspirant, ce qui n'aide pas des masses).

    Je dis �a sans �tre sp�cialiste dans le domaine cela dit, personnellement je cultive une crainte respectueuse (et saine je pense) de la metaprogrammation et ne l'utilise que quand �a me parait la solution la plus immediatement efficace a mon probl�me courant. (je me m�fie des utilisations de bazooka a courte distance de la cible...)

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 3 sur 4 Premi�rePremi�re 1234 Derni�reDerni�re

Discussions similaires

  1. Communication entre deux programmes Java. http ? Rmi ? WS ? Autres ?
    Par tiboudchou dans le forum Entr�e/Sortie
    R�ponses: 8
    Dernier message: 26/03/2009, 12h50
  2. Comment tuer un java.exe individuellement des autres ?
    Par Battosaiii dans le forum Windows XP
    R�ponses: 3
    Dernier message: 18/11/2008, 09h43
  3. R�ponses: 13
    Dernier message: 27/02/2008, 16h01
  4. G�n�rer une classe java � partir d'une autre
    Par hebmaster dans le forum G�n�ral Java
    R�ponses: 5
    Dernier message: 29/05/2006, 16h09
  5. appel d'une class java en javascript ou autre
    Par tit_oune dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 04/04/2006, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo