Vous avez demandé un lien ou d'une autre source, mais il n'est pas vraiment un. L'information est répartie sur de nombreux endroits différents. Ce qui constitue réellement une erreur de conception, et comptez-vous juste syntaxique et sémantique des problèmes dans la définition du langage, ou avez-vous d'inclure pragmatique des choses comme la plate-forme et de la bibliothèque standard spécifique des questions de mise en œuvre? On pourrait dire que Python est le dynamisme est une erreur de conception à partir d'un point de vue des performances, car il est difficile de faire une simple mise en œuvre efficace, et c'est difficile (je n'ai pas dit impossible) de faire une IDE de complétion de code, refactoring, et d'autres belles choses. Dans le même temps, on pourrait soutenir que pour les pros de la dynamique des langues.
Peut-être une approche pour commencer à penser à cela est de regarder les changements de langue à partir de Python 2.x à 3.x. Certaines personnes bien sûr arguer que print
étant une fonction n'est pas pratique, alors que d'autres pensent que c'est une amélioration. Dans l'ensemble, il n'y a pas beaucoup de changements, et la plupart d'entre eux sont assez petites et subtiles. Par exemple, map()
et filter()
retour itérateurs au lieu de listes, range()
se comporte comme xrange()
, et dict
méthodes comme dict.keys()
retour affichages de listes. Ensuite, il y a quelques changements liés à des nombres entiers, et l'un des grands changements est binaire/chaîne de traitement des données. Il est maintenant de texte et de données, et le texte est toujours Unicode. Il y a plusieurs syntaxique des changements, mais ils sont plus au sujet de la cohérence de la refonte de l'ensemble de la langue.
De ce point de vue, il semble que Python a été très bien conçu sur la langue (syntaxe et sematics) niveau depuis au moins 2.x. Vous pouvez toujours argumenter sur l'indentation du bloc basé sur la syntaxe, mais nous savons tous qui ne mène nulle part... ;-)
Une autre approche est de regarder quelles sont les autres implémentations de Python tentent de répondre. La plupart d'entre eux l'adresse de la performance, d'une certaine façon, certains traitent de questions soulevées par la plateforme, et certains d'ajouter ou d'apporter des modifications à la langue elle-même à plus de résoudre efficacement certains types de tâches. Unladen swallow veut faire de Python beaucoup plus rapide par l'optimisation de l'exécution des octets de la compilation et de l'exécution des différentes phases. Stackless ajoute des fonctionnalités pour efficace, fortement filetée applications en ajoutant des constructions comme les microthreads et tasklets, des canaux, afin de permettre bidirectionnel tasklet de la communication, de la planification à l'exécution tasklets collaboration ou de manière préventive, et de la sérialisation de suspendre et de reprendre la tasklet exécution. Jython permet à l'aide de Python sur la plate-forme Java et IronPython sur le .Net plate-forme. Cython est un Python dialecte qui permet d'appeler les fonctions C et de la déclaration de types C, permettant au compilateur de générer efficace du code C à partir de Cython code. Hangar de la Peau apporte implicite typage statique en Python et génère du C++ pour les programmes autonomes ou des modules d'extension. PyPy implémente Python dans un sous-ensemble de Python, et les changements de certains détails de mise en œuvre comme l'ajout de la collecte des ordures au lieu de comptage de référence. L'objectif est de permettre langage Python et la mise en oeuvre de développement pour devenir plus efficace en raison de la hausse du niveau de langue. Py V8 ponts en Python et en JavaScript par le moteur JavaScript V8 – vous pourriez dire que c'est la résolution d'une plate-forme de question. Psyco est un type spécial de JIT qui génère dynamiquement des versions spéciales du code en cours d'exécution pour les données en cours de traitement, ce qui peut donner des accélérations pour votre code Python sans avoir à écrire optimisé C modules.
De ces, quelque chose peut être dit à propos de l'état actuel de Python en regardant PEP-3146 qui décrit comment Unladen Swallow seraient fusionnés en Disponible. Ce PEP est accepté et est donc le Python des développeurs de jugement de ce qui est le plus faisable, la direction à prendre pour le moment. Remarque il traite de la performance, et non pas la langue en soi.
Alors, vraiment, je dirais que Python principale de la conception des problèmes sont dans le domaine de la performance, mais elles sont fondamentalement les mêmes défis que toute dynamique de la langue doit faire face, et le Python de la famille des langues et des implémentations essaient de régler les problèmes. Comme pour d'emblée la conception des erreurs comme celles qui figurent dans Javascript: les bonnes parties, je pense que le sens de "erreur" doivent être définies de façon plus explicite, mais vous voudrez peut-être vérifier ce qui suit pour les pensées et les opinions: