Bonjour,
Je me demande quels sont les différences entre programmation interprété et programmation compilé et java ?
Quelle différences de performaces y a t'il ?
Quelles différences de sécurité ?
...
Bonjour,
Je me demande quels sont les différences entre programmation interprété et programmation compilé et java ?
Quelle différences de performaces y a t'il ?
Quelles différences de sécurité ?
...
la principale différence entre un script et autre chose, c'est qu'un script n'est qu'un ensemble de commandes, qui, ELLES, sont soit d'autres scripts, soit ces AUTRES CHOSES...
Un script en tant que tel ne fait rien du tout, si il n'y a pas quelqu'un qui s'est tapé de faire un certain nombre de programmes , qui du coup vont devenir des commandes...
On a saisi que tu n'aimes pas les langages interprétés, néanmoins tu fait ici preuve d'une grande méconnaissance du domaine, ce que tu décris est un shellscript seulement, et même dans un shellscript d'ailleurs il y a un certain nombre de commandes qui n'entrent pas dans ta description.
Un langage compilé est un langage dont les codes sources doivent être compilés (autrement dit "transformés") par un compilateur en langage machine, c'est à dire en une suite d'instruction directement exécutable par le processeur de ton ordinateur (je simplifie un peu ici mais sinon il faudrait que je commence à décrire le rôle de l'OS...).
A contrario un langage interprété est un langage dont les codes sources ne sont pas compilés en langage machine (directement exécutable par l'ordinateur), mais restent en l'état et sont interprétés par un interpréteur, autrement dit un programme (compilé lui en langage machine) qui va parser (déchiffrer et transformer en une structure de donnée) le code source et exécuter les instructions qui s'y trouvent.
Jusque là les choses étaient simples et on pouvait dire : les langages compilés sont performants, les langages interprétés sont horriblement lent, malheureusement (pour la simplicité de l'explication) ou heureusement (pour le progrès de l'informatique), la plupart des langages dits "interprétés" utilisent aujourd'hui une approche hybride dans laquelle leur code source peut-être compilé vers une forme intermédiaire dite "bytecode" qui n'est pas le langage de ta machine, mais plutôt une sorte de langage machine adapté à la VM (Machine Virtuelle) qui va l'exécuter.
Les VM sont généralement nettement plus rapides que les interpréteurs d'antan, et pour rajouter à la confusion, un certain nombre d'entre elles utilise ce qu'on appelle de la compilation JIT (Just In Time/Juste à temps) qui compile pendant l'exécution un bout de bytecode en langage machine natif pour l'exécuter directement sur le processeur !
C'est l'approche adoptée par exemple par Java et .NET, et ces deux plateformes sont franchement très rapides, se rapprochant vraiment de la vitesse des langages compilés comme le C++, et même la dépassant dans certains cas bien particuliers.
--
Jedaï
Salut,
Ta question avait un sens avant, à l'époque décrite par Jedai où les langages interprétés étaient horriblement lent. Maintenant, avec la compilation JIT, les limites des deux types deviennent bien plus flou : on peut quasiment tout faire en Java !
Mais si on parle en revanche de langage de script, leur fonction à la base est (majoritairement) l'automatisation de taches répétitives : traitement de logs, création de comptes utilisateurs, récupération périodique de données sur un site web, administration réseau, installation de logiciels... Mais rien n'empêche d'utiliser un langage de script pour faire une application lourde.
j'ajouterais que, outre les problèmes de sécurité (voir la discussion sur les clients-serveurs et la sécurité http://www.developpez.net/forums/sho...d.php?t=254692), il peut y avoir également des problèmes de vitesse, suivant ce que l'on veut faire..
Par exemple, pour une application sensée faire du maillage 3D ou de l'image de synthèse, ou dans laquelle le temps de réaction graphique avec un grand nombre d'objets est en cause, on choisira bien évidemment un langage compilé (exemple typique d'une application de maillage : 100 000 vecteurs), pour accèder au plus vite aux fonctions graphiques.
A l'inverse, pour une appli grand public destinée au Web, ou avec un faible nombre de graphisme devant être modifiés en temps réel, on optera plus pour un langage style Java, Php, etc..
De la même manière, pour un programme de calcul scientifique, on optera vraisemblablement pour un langage compilé. Mais pour effectuer ce calcul tous les jours toutes les 3 heures, on utilisera vraisemblablement un script, qui appellera ce programme....
Mais la question est vaste....
Partager