69 votes

Qu'est ce qu'un "vrai" langage de programmation?

Récemment, un professeur a dit "PHP n'est pas un vrai langage de programmation", mais seulement a donné, à mon avis, la faiblesse de la justification:

  • Ce n'est pas compilé.
  • C'est scripté.
  • Il ne fonctionne pas sur toutes les plateformes.

Est que PHP est pas considéré comme un "vrai" langage de programmation? Qu'est ce qu'un "vrai" langage de programmation? Doit un langage compilé pour être pris au sérieux?

Arrière-plan

J'ai fait une induction de la leçon dans mon Informatique de Niveau de Classe dans l'école il y a deux jours – nous sommes à l'aide de Java pour la première année de cours. Je suis familier avec Java, mais ont une assez bonne emprise sur la programmation générale de base (les variables, les fonctions, l'orientation de l'objet, les boucles, etc.).

Notre première tâche de l'enseignant a couru à travers ridiculement rapide. Elle n'a pas pris la peine d'expliquer tous les concepts, comment ils fonctionnent, ou ce que vous voulez de façon réaliste les utiliser pour, et semblait prendre un grand plaisir en regardant la plupart des étudiants (qui ont été, dans l'ensemble, les nouvelles de la programmation) se tortiller dans leurs sièges à ne pas avoir qu'une vague idée de ce qu'elle était sur à propos de. Avec le recul, je pense qu'elle a traversé très rapidement pour voir qui pouvait vraiment le "gérer" la prise de Calcul d'Un Niveau, puisque les élèves ont encore une chance de changer leurs sujets avant le mois de septembre commence.

La première et la seule tâche était d'écrire un Java application de ligne de commande pour convertir du binaire à dénaire (décimal). Nous avons eu deux heures de cours d'initiation pour ce faire, et après explication de la façon dont le système binaire travaux, nous avons dû commencer, malgré tout, dans l'ensemble, personne ne l'a vraiment avoir la moindre idée de par où commencer. Après une heure, certains ont été plus loin que les autres, mais personne n'avait vraiment réalisé quelque chose de significatif. L'enseignant est devenu si confus, elle a appelé dans un autre professeur d'à côté. Il vint à aider les gens et de voir où aller.

Sans vantardise, je l'ai probablement fait ont le plus d'expérience dans la classe et avait été le plus loin dans l'exercice. Il m'a demandé si j'avais eu du tout d'expérience; j'ai dit oui, surtout en PHP, et en plaisantant dit que je pouvais écrire quelque chose à convertir en binaire à dénaire, en quelques lignes de PHP, alors que l'application Java a été en croissance rapide en plusieurs écrans de code.

Il a répondu, "PHP n'est pas un vrai langage de programmation!"...! Après discussion, il a donné les trois raisons ci-dessus. Cependant, je l'ai souligné, vous pouvez utiliser PHP sur toute plate-forme qui utilise Apache, mais je ne pense pas qu'il sait vraiment de quoi Apache est et a été de n'en avoir aucun!

101voto

Mark Byers Points 318575

Nous devons d'abord savoir ce qu'est un langage de programmation. À son minimum, un langage de programmation est quelque chose qui est lu par l'ordinateur et l'instruit pour effectuer certaines opérations. Beaucoup de gens serait également s'attendre à un langage de programmation pour être Turing. Toutefois il pourrait y avoir des situations où un domaine spécifique de la langue n'est pas Turing complet, mais il est encore utile de langage de programmation, pour ce domaine spécifique. Les langages de programmation peut être compilé ou interprété, et ils pourraient fonctionner sur plusieurs plates-formes ou juste un seul. Des besoins différents nécessitent différents langages de programmation. Clairement PHP est un langage de programmation.

Ma définition de "vrai" langage de programmation serait tout langage de programmation qui a au moins une utilisation pratique dans le monde réel. C'est par opposition à une ésotériques langage de programmation qui a généralement pas d'utilisation pratique. Depuis PHP est largement utilisé pour résoudre les vrais problèmes facilement répond à cette exigence pour être un véritable langage de programmation, même si c'est sans doute pas un très belle langue.

PHP est un pragmatique de la langue. Il a été créé à partir d'un besoin spécifique pour être en mesure de faire rapidement des pages web (le nom se trouvait initialement à des fins Personnelles les Pages d'Accueil), et la langue a été étendue que nécessaire. Puisqu'il n'y avait aucune arrière-plan théorique ou de solides principes de conception de la conduite de sa création (il n'y a même pas une spécification formelle de la langue) c'est moins propre que beaucoup d'autres langues modernes. Des fonctionnalités comme la gestion des caractères étrangers / les caractères unicode sont évidemment ajoutée après coup et de ne pas proprement intégré avec le reste de la langue. Ce désordre et le manque de rigueur théorique provoque de nombreuses personnes (notamment universitaires) à ne pas aimer la langue, ce qui peut être une partie de la raison pourquoi votre professeur n'est pas tenu de PHP comme "réel" de la langue.

Toutefois PHP est bon dans ce qu'il a été conçu pour et de nombreux sites à utiliser, même les très gros sites comme Facebook, Yahoo! et Wikipedia.

58voto

Quentin Points 325526

Ce n'est pas compilé

Elle peut être.

C'est scripté

Ah! La ruse de la technique de la répétition d'un argument après la reformuler pour que ça sonne comme un argument différent.

Il ne fonctionne pas sur toutes les plateformes

Ni Java.

On dirait que vous n'avez vraiment un mauvais professeur.

34voto

Dipstick Points 4869

Bien sûr, PHP est un langage de programmation. Il signifiait probablement qu'il n'est pas un "vrai" langage de programmation dans le même sens que les "vrais" hommes ne mangent pas de quiche.

20voto

TNi Points 2766

définir:langage de programmation

Il semble, d'après cela, que PHP est un langage de programmation. Si c'est un vrai langage de programmation est entièrement subjective. Si c'est un bon langage est aussi subjectif. Certes, il est le plus souvent pas utilisé comme une application du langage de programmation, mais il peut être utilisé pour développer shell applications via la CLI. Je ne l'ai jamais fait, donc ma compréhension de celui-ci est sommaire, mais c'est possible.

Maintenant, est PHP "script" (je prendre ceci au moyen d'un langage de script), et il tourne sur toutes les plateformes? Vous de juger:

PHP: Hypertext Preprocessor est largement utilisé, langage de scripting général qui a été initialement conçu pour le développement web pour produire des pages web dynamiques. À cette fin, le code PHP est inclus dans le document source HTML et interprété par un serveur web avec un module de traitement PHP qui génère le document d'une page web. Comme un langage de programmation, le code PHP est traité par un interprète application en ligne de commande en mode exécution souhaités système d'exploitation opérations et de la production de programme de sortie de son canal de sortie standard. Il peut aussi fonctionner comme une application graphique. PHP est disponible comme un processeur pour la plupart des serveurs web modernes et comme interprète autonome sur la plupart des systèmes d'exploitation et plates-formes informatiques.

Source: http://en.wikipedia.org/wiki/PHP

Java même fonctionner sur toutes les plateformes? Pas de. Seulement ceux pour lesquels il existe une JVM.

Enfin, une langue doivent être compilés? Beaucoup ne le sont pas. Même Java n'est pas compilé de la même façon en C ou C++. Et puis vous auriez également besoin de prendre un coup d'oeil à Perl, Python, etc.

Personnellement, je pense que PHP est un véritable langage de programmation. J'ai commencé il y et facilement déplacé sur de C/C++ et Java. Je ne voudrais pas l'utiliser dans le même but que Java, et son design est différent de Java, mais cela ne veut pas dire grand-chose. C'était plus facile à apprendre que le Java pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X