• [^] # Re: Le bilan

    Posté par . En réponse au journal Le C++ du futur. Évalué à 4.

    Et il y a aussi du vraiment pas objet (les types primitifs par exemple)

    Tout le problème, avec la plupart des fanas de l'OO, c'est que si on met autre chose dans leur monde, ils râlent. Bonté divine d'intaigristes !-)

    Ce qui était dit là, c'est que les élément d'OO de c++ ne sont pas des demies fonctionnalités objet. (Pas comme le implement de java, par exemple.)

    l'exemple est extréme

    Non, l'exemple est juste inapproprié :
    - les enchaînements de ns-qualification (les enfilades de ::) n'ont rien à voir avec le langage ;
    - les const int (*const & )[9], faut se plaindre du côté de C (voire peut-être même des prédécesseurs de C)... et encore, dedans, c'est écrit dans « le bon sens » ;
    - le class boost::unit_test::basic_cstring<char const>... bah c'est super rare, les templates aussi simples que ça !

    Par exemple l'initialisation de variables d'instances statiques [...] C'est complétement merdique comme truc

    Encore une fois, ce genre de problème ne vient pas tant de ce qui a été apporté à C pour en faire C++ qu'à ce qui n'en a pas été enlevé au passage. Là, il me semble que ça garde un rapport avec la pauvreté effarante du préprocesseur en général, et de #include en l'occurence.

    J'ai été définitivement convaincu que « tout le préprocesseur est mal » le jour où j'ai compris que ceci était parfaitement valide et fait pour l'être :

    // .h
    struct ma_struct { int un_champ ; }

    // .c
    #include ".h"
    ;
    int toutvabien = 1 ;


    Bien sûr, j'ai compris ça après avoir passé deux heures à comprendre qu'il manquait le « ; frauduleux » du .c quelque part. Et comme si ça ne suffisait pas, ça m'est arrivé juste après la période où j'ai eu à faire du java (donc c'est encore retombé sur sa tête, pour m'avoir embrouillé mes pinceaux ;)

    Mais bon, comme je disais, ce n'est pas un problème de C++.

    Java et C# ont une syntaxe bien plus simple !

    Je ne connais pas C#, mais pour mon expérience passée de java, « limitée en termes d'expressivité » me viendrait plus facilement à l'esprit que « simple » pour en qualifier la syntaxe...

    Je me demande si Java est pas passé devant quand même...

    Hmm... et à part à sun, à qui ça change quoi ? Tout ce qu'il y a à savoir, c'est qu'il y en a beaucoup. Suffisamment pour les deux langages au moins, en tout cas.