• [^] # Re: C++ : RAII et programmation générique

    Posté par . En réponse à la dépêche Sortie de GCC 4.3. Évalué à 4.

    VC++ 6 est un tres mauvais compilateur, c'est un fait reconnu. M'enfin, il faut dire que le C++ est un langage standardisé ISO, et le vendeur de VC++ a quelques petits problemes a respecter les standards qui ont été fait par d'autres (même si dans le cas de C++, ca a fini par s'améliorer).

    Mais bon, si tu ne connais C++ qu'a travers ce compilateur, et que tu refuse d'aller plus loin parce que la norme fait plus de 500 pages, tu ne crois pas que c'est un peu limité comme point de depart pour critiquer comme tu le fais ?

    un langage dont la spec fait 500 pages c'est ------> poubelle.
    Je pense pour ma part qu'une spec de langage, ça doit pas dépasser 80 pages


    Est-ce que les 80 pages en question sont seulement destinée au programmeur qui va utiliser le langage, ou bien elles sont suffisantes pour un fournisseur extérieur qui voudrait implémenter un compilateur sur une architecture à priori inconnue des concepteurs du langage ?

    Un bon langage est minimaliste, pas bloated.

    Non. Un bon langage, c'est d'abord un langage adapté au problème à traiter. Ensuite, on regardera d'autres critères : portabilité, performance, sécurité, pérennité du founisseur, facilité pour trouver des programmeurs, disponibilité d'outils d'instrumentation et debogage, etc. Si on considère ces critères, le seul bon langage parmi ceux que tu cites serait smalltalk... et encore, il faudra peut être gratter pour trouver des programmeurs.

    Evidemment, après, pour se faire plaisir dans le monde universitaire, on peut faire des langages minimalistes, jolis et académiques. Du point de vue recherche, c'est tres bien, je ne critique pas cet aspect, mais du point de vue industriel, ca n'est vraiment pas un critère majeur.

    Parce que franchement, utiliser les opérateurs pour redéfinir () et utiliser le constructeur comme foncteur, c'est tordu de chez tordu.
    N'avaient qu'à implémenter le type block et ça aurait été réglé.


    Ca depend de la definition de "tordu". La redéfinition d'operateur, en particulier operator(), existait avant l'apparition des templates et du besoin de foncteur. A partir de la, il a semblé plus "tordu" de modifier le langage et faire évoluer tous les compilateurs existant, plutot que d'utiliser une fonctionnalite qui existait déjà.

    Ton idée de généraliser l'intersection est très intéressante : je la mettrai bien dans object.

    J'espere que tu ne va pas mettre toutes les "fonctionnalites interessantes" dans object...