• [^] # Re: De l'intérêt de ces paradigmes ?

    Posté par . En réponse au journal Des paradigmes alternatifs. Évalué à 0.

    Python, ruby (et d'autre) par contre imposent des abstractions qui se révèlent souvent être un désastre au niveau prédictabilité et même évaluation de la complexité. En python, par exemple, toutes les variables sont des références et sont liées via leur nom. Cela a pour conséquence directe qu'à l'insu de ton plein grè, il est possible qu'un anodin a.c soit en réalité un accès à une hash table (table des symboles). Par conséquent, un algo que tu crois en O(n) est tout à coup en O(n * t), t étant la complexité d'accès à la table de hash.

    Sous Linux tu te retrouve avec un mécanisme de pagination de mémoire qui fait que l'accès à la mémoire peut être beaucoup plus complexe que ce que ton algo le laisse penser (chargement d'une nouvelle page mémoire par exemple).

    Oui même en C tu as des mécanisme sous jacent. L'idée c'est qu'il faut les connaître et savoir s'en servir (c'est ce que l'on appel communément savoir programmer dans ce langage). En python (je connais pas ruby), tu as des mécanismes qui permettent de ne pas avoir les problèmes dont tu parle (notamment avec ce qu'ils appellent je crois les "nouveaux objets").

    Donc nous sommes d'accord un langage que l'on maîtrise pas ou mal est une plaie pour faire de la structure de données, mais c'est aussi une plaît pour tout le reste.

    Pour ce qui est du C, explique moi comment tu fait pour dans ta structure de donnée :

    • assurer la consistance de ta structure (que les invariants qui sont liées à ta structure soient toujours valides)
    • pouvoir contenir n'importe quel type de données sans passer par l'ignoble void* (parce qu'avec ça tu n'a plus aucune aide fournis par ton compilateur et c'est à l'utilisateur de se débrouiller pour savoir à tout moment ce qu'il traite et il se retrouveras à faire du transtypage de partout)

    paradigme objet : masquage de l'implémentation, polymorphisme, vrai découplage entre le code et la structure de données

    L'encapsulation me semble être exactement l'inverse de ce que tu dis.

    Je comprends pas ce que tu veux dire.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)