PHP no es para todo

La popularización de los lenguajes de programación, hace que muchas veces, una aplicación que se desarrolló en otro lenguaje, sea portada a ese nuevo lenguaje, para demostrar su potencia, sencillez o capacidades.

Algunas veces, esos nuevos lenguajes, resultan ser muy buenas herramientas que nos permiten trabajar más rápido sin necesidad de centrarnos mucho en problemas típicos y ya salvados desde hace tiempo (como las cadenas de texto y los tamaños de memoria han sido un gran problema a la hora de escribir programas en C/C++).

Lenguajes como Perl, PHP, Python, Tcl, Ruby… son lenguajes que no requieren de compilación, tienen un nivel de programación muy alto y no suelen estar ligados a una plataforma concreta, con lo que el mismo código puede ejecutarse sin problemas en otras plataformas (Windows, GNU/Linux, BSD…), su código es muy fácil de escribir y, en pocas líneas, se hacen muchas operaciones.

No obstante, cabe recordar que, los lenguajes que se escriben con particularidades específicas y especiales, suelen servir de forma muy óptima y potente a esas particularidades, pero de forma contraria, e incluso ser un lastre, en otros entornos de la programación.

Como ejemplo, tal y como dice el titular, PHP, que nació para la web, ahora se emplea como lenguaje de scripting para la consola e incluso con GTK para generar scripts fáciles que permitan automatizar el equipo. Pero, PHP no es para todo, y con esto quiero decir que PHP tiene sus pequeñas limitaciones.

Una aplicación en GTK o en un entorno de ventanas, por ejemplo, debe de tener capacidad multihilo y capacidad para compartición de memoria entre dichos hilos. PHP carece de ello. Es normal, la web no requiere estos mecanismos.

Al igual que para la rápida detección de ciertos tipos de texto y conversión de formatos o cálculo de datos en formato CSV se ha empleado siempre Perl, y ahora se comienza a emplear también Ruby, en línea antecesora del uso de herramientas dispersas como sed, awk y shell script. PHP también se emplea para estos cometidos, pero no es óptimo para ello, puesto que su núcleo de ejecución no está optimizado para una sola ejecución, sino para una repetición de ejecuciones secuenciales y/o paralelas.

Si comparamos la velocidad de ejecución de PHP y Perl, veremos que Perl se ejecuta casi tan eficientemente como C, puesto que está pensado para tareas de administración de sistemas y automatización de tareas, mientras que PHP no requiere de ello para su tarea cotidiana, que es la web, donde el intérprete de PHP no tiene que cargarse en cada ejecución, sino que permanece cargado a espera de ser llamado.

Pero, al igual que PHP no es para todo, los demás también tienen sus limitaciones. Por ejemplo, Perl se ha usado históricamente como CGI, mientras que Perl no es óptimo para la web en sentido de que PHP es más rápido en este contexto (gracias a técnicas de caché y aceleradores que se integran en el motor de Zend), más fácil de desarrollar y mantener.

No hay entradas relacionadas

4 Comments

  1. japh
    Posted 11 septiembre 2008 at 22:12 | Permalink

    Eso de que Perl no es óptimo para la web… a parte de ponerlo en negrita y afirmar que PHP es más rápido en este contexto y más fácil de desarrollar y mantener, tienes alguna prueba? He escrito aplicaciones web en Perl y PHP y en mi modesta opinión Perl es más fácil de mantener (es consistente y tiene sentido, no hace falta mirar la documentación para cada comando, a ver si por ejemplo cuando hay un error devuelve falso o tira una excepción o devuelve un número negativo o un nulo…); por esto opino que Perl es más fácil de mantener.

    Me gustaría que dieras más información. Perl es más lento que PHP? En mi experiencia Perl es más rápido; podrías poner un ejemplo de lo contrario?

    Gracias.

  2. Posted 11 septiembre 2008 at 23:50 | Permalink

    PHP es mas lento procesando textos por una razón: sus expresiones regulares no se “compilan” como ocurre en Perl, donde las expresiones regulares son el alma del lenguaje.

    En cuanto a la velocidad, yo creo que están bastante a la par si usas APC. Pero en general PHP tiene que aprender todavia muchas cosas de Perl.

    Eso de que es mas facil hacer web con X lenguaje que con PHP es discutible, dependera de quien la haga y su experiencia como desarrollador. Soy programador de PHP desde la version 3 y “he visto cosas que jamas creeriais”(TM).

    El problema de PHP es esa ingente masa de desarrolladores que no tienen ni puta idea de lo que estan haciendo y se creen dioses.

  3. Posted 12 septiembre 2008 at 08:52 | Permalink

    He matizado el tema de la velocidad, porque no me había dado cuenta de que sí, había puesto que PHP es más rápido, pero no el porqué lo es. No obstante, una instalación por defecto de PHP no es más rápida que un script Perl que se ejecute mediante CGI.

  4. Martin
    Posted 12 septiembre 2008 at 17:09 | Permalink

    “El problema de PHP es esa ingente masa de desarrolladores que no tienen ni puta idea de lo que estan haciendo y se creen dioses”

    JAJAJAJAJJA!!!! EXCELENTE!!!

    /me aplaude como loco!