Pregunta

estaba leyendo un artículo/entrevista (Guerra de idiomas:PHP vs.Rubí (por Jeffrey Way;marzo de 2011)) por un desarrollador de Envato que usa Ruby.Dice: "PHP es un marco web disfrazado de lenguaje".

No explicó esa afirmación, por lo que me pregunté si eso es cierto y, de ser así, cómo.Investigué un poco pero no pude encontrar ninguna información sobre este tema.Me pregunto cómo es cierta esta afirmación y qué hace que PHP no sea un lenguaje de programación.¿Y por qué otros lenguajes como Python o Ruby no encajan en esa categoría?

¿Fue útil?

Solución

oficialmente:

PHP es un lenguaje de scripting de propósito general de uso general que es especialmente adecuado para el desarrollo web y se puede incrustar en HTML.

de acuerdo con http://us.php.net/

Pero eso no es necesariamente una descripción muy apt.

PHP es un lenguaje informático completo de Turing. Sin embargo, cualquier distribución de PHP vendrá con una enorme de bibliotecas estándar, tanto que las bibliotecas estándar PHP podrían clasificarse como un marco.

Por lo tanto, cuando se vea de esta manera, PHP es:

un marco con su propio lenguaje de scripting completo de Turing.

o

un idioma envuelto en un marco web masivo, de donde no se puede eliminar.

Sin embargo, si nos fijamos en el nombre "PHP: Hypertext Preprocessor" (PHP), esto implica que PHP es un "preprocesador" (que preprocesa el hipertexto), ni un marco, ni un idioma, sino una pieza de software.

Cuando lo mira de esa manera, PHP es una aplicación que ejecuta scripts en un idioma propietario, con acceso a un gran marco interno diseñado para procesar hipertexto.

Por lo tanto: PHP no puede clasificarse correctamente como un marco o como idioma. La verdad es que hay un lenguaje, un marco y una aplicación, que todos tienen el mismo nombre (¡porque todos se enrollan en una cosa)! Por lo tanto, "PHP" puede referirse a cualquier parte del sistema.

Otros consejos

No tengo fuentes, pero la declaración tiene cierto sentido, incluso si podría ser un intento de provocar la controversia.

php es definitivamente un idioma, y mucho no es un marco, pero si observa el manual de PHP versus, por ejemplo, la especificación C o C ++, el cuerpo de funcionalidad que ofrece PHP tiene elementosEso se consideraría en el dominio de un marco: PDO, manejo XML, y así sucesivamente, esto es lo que normalmente se incluiría en un marco como QT.

El problema con PHP es que no es sólo un lenguaje de programación, sino un ecosistema completo que consta de:

  • El propio lenguaje de programación PHP
  • Un tiempo de ejecución que puede conectarse a un servidor web (a través de mod_php o CGI/FastCGI), y proporciona muchas maneras de interactuar con él
  • Una gran biblioteca de funciones y clases integradas, muchas de ellas relacionadas con la web.

PHP proporciona características en el propio lenguaje que son muy específicas de la programación web, como las superglobales ($_SERVER, $_GET, $_POST, $_COOKIE, etc.), saltando entre el modo PHP y el modo HTML usando <?php ?> etiquetas, etc., y su semántica se basa en el modelo de ejecución de un proceso por solicitud que era la norma en los primeros días de la programación web del lado del servidor.PHP comenzó como una herramienta de secuencias de comandos web y solo más tarde evolucionó hasta convertirse en un lenguaje de programación (algo) de propósito general;la versión CLI y otras funciones que no son web, aunque a menudo se pueden usar con bastante eficacia, son una idea de último momento y, con suficiente exposición al lenguaje y su ecosistema, esto puede resultar dolorosamente obvio en ocasiones.

Por el contrario, la mayoría de los demás lenguajes de programación fueron diseñados como lenguajes de programación de aplicaciones o sistemas de propósito general desde el principio, y todo lo específico de la programación web viene en bibliotecas.Si desea hacer programación web en, digamos, Python, necesita un marco web, o al menos una biblioteca para implementar enlaces de servidor web y cosas como análisis de solicitudes, plantillas HTML y administración de sesiones, y probablemente también algunos enlaces de bases de datos (a menos que Eres muy duro y escribes todo eso desde cero).

PHP tiene todas estas cosas integradas de forma predeterminada, y es por eso que a la gente le gusta decir que PHP es un marco web en sí mismo.

Para una aplicación web "¡Hola, mundo!" en Python, normalmente configuraría un virtualenv, instalaría algunas bibliotecas, configuraría alguna plantilla para el marco web, definiría rutas y escribiría un controlador que genere una respuesta con "¡Hola, mundo!" en el cuerpo;en PHP es cuestión de escribir <?php echo "Hello, world!" en index.php, copiándolo al docroot de Apache y habilitando mod_php.El resto (conectarse al servidor, analizar solicitudes, generar respuestas, etc.) todavía sucede, pero PHP se encarga de ello por usted.

PHP no es un idioma web.Ha incorporado características para realizar la programación en la aplicación web.Desarrollar una aplicación web en PHP es muy fácil en comparación con otros idiomas como Java, ASP, C #.

Si desea desarrollar una aplicación web que no sea tan grande y usa la base de datos con menos tamaño (pocos GB), puede desarrollar la aplicación web PHP.Hay muchas compañías de anfitrionas web que brindan un alojamiento web basado en PHP que cobra un precio muy menos con todas las funciones. PAINTANING A PHP Site es menos comparado con Java / ASP.PHP es una aplicación web de peso ligero.

Ryan probablemente está formando su opinión basada en una perspectiva histórica. Históricamente, PHP estaba destinado a ser un idioma web. Históricamente, se diseñaron muchas características en el idioma para este caso de uso, y de hecho, PHP solía representar "Página de inicio personal". http://www.nusphere.com/php/php_history.htm

Pero ahora, PHP ha desarrollado mucho y personalmente argumentaría esto no es realmente verdadero más.

solo 2 ejemplos:

hilos solo se agregaron al idioma recientemente. Durante mucho tiempo, simplemente no fue posible. Los hilos son algo que no tiene sentido en un entorno web (en su lugar, tiende a patear un proceso de fondo completamente nuevo o pasar un mensaje a través de un que a un trabajador en otro lugar). http://uk3.php.net/manual/en/book.pthreads.php

Gestión de memoria y recursos. PHP proporciona un método __destruct () en los objetos, por lo que puede limpiar los recursos. Pero para empezar, esto solo se llamaba en el cierre del guión. Ahora, en un entorno web, esto tiene sentido, ya que solo desea que su script se ejecute 0,5 segundos en Max, por lo que el cierre de guiones nunca está lejos. Pero para un fondo de larga duración o script de cáscara, esto es terrible. Las versiones posteriores de PHP solucionaron esto. http://php.net/manual/en/language.decon.php

Sin embargo, generalmente, en general, tenderá a encontrar PHP utilizado en un contexto de Web y Servidor y no un contexto de la aplicación de escritorio, por lo que es donde está mucho del enfoque.

Licenciado bajo: CC-BY-SA con atribución
scroll top