• [^] # Re: Mon dieu !!

    Posté par . En réponse à la dépêche Dillo 0.6.5. Évalué à 2.

    Mais bon lorsque'Eiffel (un bon exemple de langage OO soit dit en passant) propose "l'optimisation" du code, il ne fait que le transcrire en C
    Je ne pense que la génération de code C soit lié à une "optimisation" comme tu le dis, mais simplement au fait que le C est portable.
    De cette façon on laisse le compilateur Eiffel se concentrer sur des optimisations de haut-niveau (celles spécifiques au langage Eiffel) alors que le compilateur C s'occupe des optimisations de bas niveau (celle relative à une architecture cible comme par exemple la pénurie de registre sur x86).
    L'inconvénient est que l'on perd en qualité du code généré : puisque les deux compilateurs ne peuvent "communiquer" cela nous prive de certaines optimisations.
    Mais Eiffel étant un projet universitaire, pense tu que l'équipe qui travaille dessus dispose des fonds nécessaire pour écrire le million de ligne de code supplémentaire qui permettrait de se passer de l'étape C ?
    Le C++ a subit le même chemin, son premier compilateur (cfront) générait du code C, alors que tout les compilateurs industriels actuels (Sun pro CC, Visual C++, g++, ..) générent directement de l'assembleur.
    Si Eiffel n'a pas cette chance c'est simplement parce que ce langage n'est pas assez populaire.

    En tout cas merci de me traiter d'autiste en passant, mais le jour où ton OS et toutes les applis tournent en Java, soit tu dis adieu à la vitesse soit adieu à la couche d'ozone
    Le seul avantage d'un langage de bas-niveau comme le C (ou l'assembleur) sur C++, c'est une plus faible consommation de ressource (mémoire) pas une meilleure rapidité.
    Dans l'industrie le C (et l'ASM) est toujours utilisé dans le domaine de l'embarqué pour cette raison.
    Un noyau peut-être considére comme un programme temps réel d'où la nécessité du C (et puis la plus faible consommation mémoire importe ici)
    Quand à Java c'est vrai que la portabilité à forcément une contrepartie en terme de performance. Et puis le code Java est souvent plus lisible donc plus maintenable.

    Les langages de bas niveau sont AMHA plus intéressants intellectuellement pour connaître sa machine
    On peut programmer en langage de haut-niveau tout en connaissant d'autres langages de bas niveau (perso j'ai fait de l'assembleur Intel avant même si maintenant j'utilise surtout C++)

    Je crois qu'il est beaucoup plus dur de maîtriser en langage bas niveau qu'un langage haut niveau
    Pourtant la majorité des programmeurs C++ ont fait un ou deux ans de "C pur" avant, donc qui peut le plus peut le moins !
    Pour avoir utilisé les deux langages, j'ai l'impression qu'il y a plus de subtilité dans C++ (par exemple connait-tu la différence entre un "static_cast", un "const_cast", un "dynamic_cast" et un "reinterpret_cast" ?) que dans C.