HISTORIA Y EVOLUCION DE PHP
PHP es un lenguaje interpretado de propósito general ampliamente usado, diseñado especialmente para desarrollo web y que puede ser incrustado dentro de código HTML. Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y creando páginas web como salida. Es un lenguaje creado por una gran comunidad de personas, el sistema fue originalmente diseñado en Perl, por el programador danés-canadiense Rasmus Lerdorf en el año 1994 para mostrar su currículum y guardar ciertos datos, como la cantidad de tráfico que su página web recibía, como un CGI escrito en C que permitía la interpretación de un número limitado de comandos.
El gran parecido que posee PHP con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones.
PHP/FI: El sistema fue denominado “Personal Home Page Tools”, publicado el 8 de junio de 1995 y adquirió relativo éxito gracias a que otras personas pidieron a Rasmus que les permitiese utilizar sus programas en sus propias páginas. Dada la aceptación del primer PHP y de manera adicional, su creador diseñó un sistema para procesar formularios al que le atribuyó el nombre de FI (Form Interpreter) y el conjunto de estas dos herramientas, sería la primera versión compacta del lenguaje: PHP/FI.
Según se requería más funcionalidad, Rasmus fue escribiendo una implementación C mucho mayor, que era capaz de comunicarse con bases de datos, y permitía a los usuarios desarrollar sencillas aplicaciones Web dinámicas. Rasmus eligió liberar el código fuente de PHP/FI para que cualquiera pudiese utilizarlo, así como arreglar errores y mejorar el código.
PHP/FI 2.0:La siguiente gran contribución al lenguaje se realizó a mediados de 1997, cuando se volvió a programar el analizador sintáctico, se incluyeron nuevas funcionalidades como el soporte a nuevos protocolos de Internet y el soporte a la gran mayoría de las bases de datos comerciales, obteniendo PHP/FI 2.0. que tuvo un seguimiento estimado de miles de usuarios en todo el mundo, con aproximadamente 50.000 dominios informando que lo tenían instalado, sumando alrededor del 1% de los dominios de Internet. Mientras había mucha gente contribuyendo con bits de código a este proyecto, en su mayor parte el proyecto aún era de una sola persona. No se liberó oficialmente sino hasta Noviembre de 1997, después de gastar la mayoría de su vida en desarrollos beta.
PHP 3.0: PHP 3.0 era la primera versión que se parecía fielmente al PHP tal y como lo conocemos hoy en día. Fue creado por dos programadores israelíes Andi Gutmans y Zeev Zuraski en 1997 reescribiéndolo completamente, luego que encontraran que PHP/FI 2.0 tenía pocas posibilidades para desarrollar su propia aplicación comercial. En un esfuerzo para cooperar y empezar a construir sobre la base de PHP/FI existente, Andi, Rasmus y Zeev decidieron cooperar y anunciar PHP 3.0 como el sucesor oficial de PHP/FI 2.0, interrumpiéndose en su mayor parte el desarrollo de PHP/FI 2.0.
Una de las mejores características de PHP 3.0 era su gran extensibilidad que atrajo a docenas de desarrolladores para unirse y enviar nuevos módulos de extensión. Además de proveer a los usuarios finales de una sólida infraestructura para muchísimas bases de datos, protocolos y APIs. Otras características clave introducidas en PHP 3.0 fueron el soporte de sintaxis orientado a objetos y una sintaxis de lenguaje mucho más potente y consistente. Este lenguaje fue liberado bajo un nuevo nombre, que borraba la implicación de uso personal limitado que tenía el nombre PHP/FI 2.0, se llamó 'PHP' a secas, con el significado de ser un acrónimo recursivo que significa PHP Hypertext Pre-processor. PHP 3.0 se liberó oficialmente en Junio de 1998, después de haber gastado unos 9 meses en pruebas públicas. A finales de 1998, PHP 3.0 estaba instalado en aproximadamente un 10% de los servidores Web en Internet.
PHP 4: En el invierno de 1998, poco después del lanzamiento oficial de PHP 3.0, Andi Gutmans y Zeev Suraski comenzaron a trabajar en la reescritura del núcleo de PHP. Los objetivos de diseño fueron mejorar la ejecución de aplicaciones complejas, y mejorar la modularidad del código base de PHP. Estas aplicaciones se hicieron posibles por las nuevas características de PHP 3.0 y el apoyo de una gran variedad de bases de datos y APIs de terceros, pero PHP 3.0 no fue diseñado para el mantenimiento tan complejo de aplicaciones eficientemente. Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo que hoy se conoce como 'Motor Zend' que alcanzó estos objetivos de diseño satisfactoriamente, añadiendo un sistema más avanzado de análisis de etiquetas en dos fases análisis/ejecución. También fundaron Zend Technologies en Ramat Gan, Israel.
PHP 4.0, basado en este motor Zend Engine 1.0, y acoplado con un gran rango de nuevas características adicionales, fue oficialmente liberado en Mayo de 2000. Algunas mejoras de esta nueva versión son su rapidez, gracias a que primero se compila y luego se ejecuta, su mayor independencia del servidor web creando versiones de PHP nativas para más plataformas, un API más elaborado y con más funciones, soporte para la mayoría de los servidores Web, sesiones HTTP, buffers de salida, formas más seguras de controlar las entradas de usuario y muchas nuevas construcciones de lenguaje.
PHP 5: fue lanzado el 13 de Julio de 2004 después de un largo desarrollo. Está básicamente impulsado por su núcleo, Zend Engine 2.0 que contiene un nuevo modelo de objetos y docenas de nuevas opciones. La versión más reciente de PHP es la 5.3.3 (22 de julio de 2010), que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:
ü Mejor soporte para la Programación Orientada a Objetos, que en versiones anteriores era extremadamente rudimentario.
ü Mejoras de rendimiento.
ü Mejor soporte para MySQL con extensión completamente reescrita.
ü Mejor soporte a XML ( XPath, DOM, etc. ).
ü Soporte nativo para SQLite.
ü Soporte integrado para SOAP.
ü Iteradores de datos.
ü Manejo de excepciones.
ü Mejoras con la implementación con Oracle.
Enlace a video: http://www.vimeo.com/15650794
COMPARACIÓN ENTRE PHP Y JAVA
Algunas veces es necesario hacer algunas comparaciones entre ciertos lenguajes, que ofrezcan alguna orientación sobre cuál de ellos es el más adecuado según la necesidad que se tiene. En este caso, se va a hacer una breve comparación entre dos lenguajes de programación actualmente muy populares en el desarrollo de aplicaciones web, PHP y Java. Esta comparación tiene sentido sólo si se mira desde la programación del lado servidor, ya que Java es un lenguaje tanto para programación de escritorio como para programación del lado servidor, mientras que PHP es sólo para programación del lado servidor.
Anteriormente, la discusión sobre cuál de los dos lenguajes era más potente se basaba principalmente en el tamaño del equipo de desarrollo. Si se trataba de un equipo de desarrollo pequeño, en el que la cercanía entre los miembros es fácil, o de la construcción de un sitio web simple, PHP era probablemente la mejor opción pues proporcionaba un rápido desarrollo. Por otro lado, si se trataba de un sistema complejo con un gran número de miembros en el equipo de desarrollo y se necesitara de una arquitectura bien estructurada y estandarizada, por ejemplo en el caso de escenarios corporativos, Java resultaba ser la mejor elección.
Actualmente, PHP tiene una plétora de buenos IDEs (Entorno de desarrollo integrado) para el desarrollo, y soporta POO tan efectivamente como Java. Sin embargo, las grandes corporaciones que ya tienen un sistema entero en Java y desarrolladores experimentados en Java, difícilmente se cambiarían a PHP por este simple hecho, pues no tendría sentido. No obstante, las pequeñas compañías tienen más capacidad de construir una base para sus sistemas sobre PHP. En el futuro, aunque lejano, PHP entrará en las grandes corporaciones cuando se incluya su manejo más ampliamente en los planes de estudio de las universidades, y las pequeñas compañías, que contratan graduados con fluidez en PHP, se conviertan en grandes corporaciones.
A continuación, se mencionan algunos puntos comparativos entre los dos lenguajes:
ü PHP fue creado específicamente para la web, como un lenguaje de script del lado servidor para incrustar en páginas HTML, mientras que Java fue inicialmente destinado para el software cliente y applets en el navegador y ahora es además una infraestructura clave para muchas aplicaciones web.
ü Java es construido sobre tipado estático (las variables deben tener un tipo declarado). PHP usa tipado dinámico (las variables asumen el tipo del valor más recientemente contenido en ellas y pueden cambiar su tipo para satisfacer casteos o conversiones implícitos). Ambos lenguajes tienen tipos primitivos.
ü Después de la versión de PHP 5, un punto clave en la introducción de un paradigma de objetos serio, PHP está evolucionando hacia la programación orientada a objetos y ha tomado más de los productos java. Por su parte, Java fue creado bajo el paradigma orientado a objetos desde su origen.
ü Las clases, funciones y estructuras de datos PHP, cuando no emplean infraestructura externa como cachés o bases de datos, son creadas en un script y son desechadas al final de la solicitud. Las aplicaciones Java por su parte se mantienen en memoria entre solicitudes. PHP trae a ejecución solo lo que necesita, y se paga con la incapacidad de correr tareas periódicas. Las aplicaciones Java pueden iniciar múltiples hilos, pero su gestión es mucho más compleja.
ü PHP es simple para desplegar en su forma básica (scripts .php), pero esto significa que cada vez más a menudo el desarrollador promedio tiene que usar frameworks que construyan características de infraestructura estándar sobre el interpretador PHP. Irónicamente. Los frameworks de Java tienen características nativas que se adhieren a un estándar, los contenedores servlets. Las capacidades de PHP son obstaculizadas por la ausencia de estándares.
ü PHP ofrece una gran cantidad de funciones estáticas, mientras que en java la mayoría de ellas se encapsulan como métodos de objetos (cadena1.equals(cadena2) en Java y str_cmp(cadena1, cadena2) en PHP).
ü La carencia de espacios de nombres en PHP adiciona un espacio de dominios oscuro de un proyecto PHP, pues no es fácil ver las relaciones entre los objetos en términos de una jerarquía organizacional, mientras que en Java esto es una necesidad.
ü Para ganar funcionalidad adicional, en PHP se tiene que importar archivos en lugar de clases, lo cual es conceptualmente diferente. Las clases estáticas pueden tener el mismo efecto en Java. El comportamiento por defecto en Java es usar instancias de clases mientras en PHP para muchos aun parece ser usar colecciones de funciones y librerías de funciones.
ü PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor web en forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza. Java, por su parte utiliza una serie de mecanismos de seguridad, con el fin de dificultar la escritura de programas maliciosos que pudiesen afectar la integridad de las aplicaciones y los datos de los usuarios (el “security manager” por ejemplo, o incluso la misma máquina virtual que evita el acceso directo a los recursos del sistema).
Enlace a video: http://www.vimeo.com/15650963
COMPARACIÓN ENTRE PHP Y .NET
ü A continuación se mencionan algunos aspectos de comparación entre PHP y .NET con el mismo objetivo anterior, ofrecer algún tipo de orientación sobre cuál opción es la más adecuada de acuerdo a la situación:
ü Asp.Net es un lenguaje optimizado y compilado, es decir, el código que escriba se reduce a un conjunto de instrucciones específicas de la máquina antes de ser guardado como un archivo ejecutable. Php por el contrario es un lenguaje interpretado, lo que significa que se guarda como el código escrito y se ejecuta directamente desde el mismo.
ü PHP es un lenguaje relativamente más sencillo de usar que ASP.net. Inicialmente, PHP fu escrito en el lenguaje de programación C para sustituir a un conjunto de scripts de Perl. Esa es la razón por la cual la codificación en PHP sigue siendo simple, incluso hoy en día. ASP.net tiene un montón de opciones cuando se trata de lenguajes (C #, J #, C, VB.net.) Por lo tanto, ASP.net tiene mejor oferta. Pero PHP no es menos, ya que puede trabajar muy bien, incluso con sus mínimas herramientas de lenguaje.
ü PHP tiene mucho mejor soporte para el sistema de gestor base de datos MySQL. ASP.net también tiene soporte para MySQL, pero PHP es unánimemente aclamado por las masas y las clases por igual, por su gran apoyo para este sistema gestor de base de datos.
ü Quienes usan tanto PHP como ASP.net también mantienen su opinión de que PHP es mejor en cuanto al apoyo integrado con otro sistema de gestión de base de datos (SQLite).
ü PHP tiene un muy buen soporte para la programación orientada a objetos. ASP.net también proporciona un soporte muy bueno para programación orientada a objetos.
ü Debido a que PHP es open source el soporte provisto puede venir libremente de todas partes del mundo. En la mayoría de los casos, las soluciones de PHP se hacen al instante. Mientras que ASP.net puede tomar un poco más de tiempo para dar soluciones, pues es propiedad de Microsoft, y es el equipo de desarrollo de Microsoft que tendrá que responder a la consulta de soporte.
ü PHP es un lenguaje de programación de código abierto, lo que significa que es libre para cualquiera lo use. ASP.net está disponible para los usuarios de Windows cuando lo compran.
ü ASP.net se compila en la memoria en código binario por lo que puede necesitar más tiempo en proceso, ya que los códigos deben ser recuperados de la memoria. Sin embargo, PHP no se compila en la memoria como ASP.net. Se interpreta en tiempo de ejecución. Esa es la razón por la cual la codificación PHP puede conducir a una mayor velocidad y eficiencia, incluso.
ü Los gastos de hosting, tanto en PHP y ASP.net son bastante baratos.
ü ASP.Net requiere una licencia de Microsoft, además tiene una sola plataforma y sólo se ejecutan en los servidores web de Microsoft. PHP es libre y open source y tiene muchos IDEs gratuitos disponibles que son muy impresionantes y bien soportados (por ejemplo, Eclipse), y se ejecuta en el servidor Apache, que es de código abierto, además de tener soporte de múltiples plataformas.
ü PHP es más fácil de aprender debido a su estructura básica del lenguaje de scripting y construcción de funcionalidad. Por su parte ASP.Net requiere un conocimiento básico de conceptos orientado a objetos.
ü ASP.Net se ejecuta sobre ISS. PHP se ejecuta sobre IIS 6.0 e IIS 7.0.
ü Las aplicaciones ASP.Net pueden ser desarrolladas con la impresionante IDE Visual Studio.Net que ofrece amplia gama de características, que hacen mucho más fácil la codificación y el desarrollo productivo. La mayoría de los IDEs PHP, por su parte requieren gran cantidad de complementos con el fin de añadir funciones similares a Visual Studio.
ü PHP no tiene soporte nativo para AJAX, requiere complementos. ASP.Net incorpora soporte para AJAX desde Net Framework 3.5
ü El Framework de .NET (el motor sobre el que se ejecuta ASP.Net) tiene capacidades de manejo de errores más sofisticadas que PHP.
ü ASP.Net permite una mejor separación del diseño y la lógica de la aplicación usando de páginas de código subyacente (code-behind) y controles de usuario.
Enlace a video: http://www.vimeo.com/15651092
REFERENCIAS
[1] ALVAREZ, Miguel Angel. Breve historia de PHP. [on line]. 2009. Citado el 1 de Octubre de 2010. Disponible en http://www.desarrolloweb.com/articulos/436.php
[2] Apéndice A_ Historia de PHP y proyectos relacionados. [on line]. 2000. Citado el 29 de septiembre de 2010. Disponible en http://www.hospedajeydominios.com/mambo/documentacion-manual_php-pagina-history.html
[3] BUYTAERT, Dries. Why PHP (and not Java)?. [on line]. 2006. Citado el 30 de septiembre de 2010. Disponible en http://buytaert.net/why-php-and-not-java
[4] JAVAZ, Jasir. Php Vs ASP.net: a simple comparison. 2010. Citado el 1 de Octubre de 2010. Disponible en http://enewsz.com/2010/01/19/php-vs-asp-net-a-simple-comparison/
[5] Historia de PHP y proyectos relacionados. [on line]. 2009. Citado el 29 de septiembre de 2010. Disponible en http://www.php.net/manual/es/history.php.php
[6]Historia de PHP. [on line]. 2010. Citado el 29 de septiembre de 2010. Disponible en http://www.supertutoriales.com/web-14.html
[7] MENCHACA MÉNDEZ, Rolando. Arquitectura de la Máquina Virtual Java. [on line]. 2000. Citado el 1 de octubre de 2010. Disponible en http://www.revista.unam.mx/vol.1/num2/art4/index.html
[8] NASPINSKY. Asp.Net vs php : speed comparison. 2009. Citado el 1 de Octubre de 2010. Disponible en http://naspinski.net/post/AspNet-vs-php--speed-comparison.aspx
[9] SIRONI, Giorgio. Java versus PHP [on line]. 2010. Citado el 30 de septiembre de 2010. Disponible en http://giorgiosironi.blogspot.com/2010/04/java-versus-php.html
[10] PÉREZ VALDÉS, Damián. Los diferentes lenguajes de programación para la web. 2007. Citado el 30 de septiembre de 2010. Disponible en http://www.maestrosdelweb.com/principiantes/los-diferentes-lenguajes-de-programacion-para-la-web/
[11] PHP Vs ASP.net. 2007. Citado el 1 de Octubre de 2010. Disponible en http://www.bizfive.com/articles/web-design/comparing-php-and-asp.net/
[12] RASEUR, Richard. PHP vs Java for Webapps- Quality & Maintainability of Code. 2010. Citado el 30 de septiembre de 2010. Disponible en http://www.richardrauser.com/index.php/2010/01/18/php-vs-java-for-webapps-quality-maintanability-of-code/
[13] TOSUN, Hasari. PHP vs. Java. Citado el 30 de septiembre de 2010. Disponible en http://www.cs.montana.edu/~tosun/phpvsjava.pdf