Quelles sont les différences entre un langage de programmation dynamique et un langage de programmation statique? Quel est le meilleur, ou, en d’autres termes, a une meilleure perspective?

Aucune n’est « mieux ».   Ils optimisent les différentes variables.   Quelle variable que vous souhaitez optimiser dépend de ce que vous essayez d’accomplir.

Toutes les langues sont conçus pour traduire le code lisible en instructions machine.   Un langage dynamique (Lisp, Perl, Python, Ruby) est conçu pour optimiser l’efficacité de programmeur, vous pouvez implémenter une fonctionnalité avec moins de code.   Une langue statique (C, C++, etc.) est conçue pour optimiser l’efficacité matérielle, afin que le code que vous écrivez exécute aussi rapidement que possible.

La cadre définissant la fonction d’un langage dynamique, c’est que tout langage est disponible en tout temps.   Cela signifie que vous pouvez exécuter du code à la compilation et compiler le code au moment de l’exécution.   Ceci, combiné avec les autres permet de fonctions (fonctions de première classe, introspection) Metaprogramming, programmes qui peuvent modifier eux-mêmes.   Cela permet à un programmeur de faire la même tâche avec moins de travail par rapport à une langue statique et dans certains cas permet de faire des choses qui ne peuvent pas simplement être faits du tout dans une langue statique.   Cependant, toute cette magie se fait aux dépens de la vitesse d’exécution.

Public statiques langues ne font pas beaucoup (le cas échéant) magie dans les coulisses, donc il y a beaucoup moins de surcharge.   Parce que la phase de compilation et de la phase d’exécution sont totalement découplés, le compilateur peut fonctionner plus longtemps et générer le code machine mieux optimisé.   Pour certaines tâches code statique peut être de plusieurs ordres de grandeur plus vite qu’un langage dynamique.

Les deux types de langage ont leur place.   Perl, Python et Ruby sont grandes langues pour la plupart des tâches quotidiennes--mais ils sont tous eux-mêmes écrit en C.


Tags: Apprendre à programme, Programmation informatique, Langages de programmation, Comparaisons