PHP versus Perl, primera cata


Como dice John Lim, discutir de lenguajes de programación es como discutir de vinos: a unos les gusta seco, a otros les gusta afrutados. Otros no entienden la discusión, a otros no les gusta nada el vino. En este artículo discuto 10 diferencias importantes entre la programación en Perl y PHP.

Aunque las sintaxis de ambos lenguajes tienen cosas parecidas heredadas del C
y el primer prototipo de PHP estuvo hecho en Perl, actualmente tienen casi nada
que ver, el Perl nació como un lenguaje de scripting para tareas de UNIX,
el PHP fue diseñado específicamente para web. 

Si tuviera que ponerlo en pocas líneas “reglas” diría:

  • La integración de PHP con páginas HTML es muy fácil y directo. Puedes
    “embeber” (empotrar…) PHP en una página HTML ya terminada sin
    ningún problema. Esto significa que hay una clara separación de código y
    datos.
  • El PHP debería ser comparado con el mod_perl (o al menos con CGI::SpeedyCGI),
    ya que son interpretados por un módulo del apache y no por un intérprete
    externo, que genera mas sobrecarga (overhead) al necesitar un fork/exec
    para ejecutar el intérprete. Programar con el mod_perl es algo más
    complicado que programar con Perl como CGI externo directamente, sobre todo
    por la persistencia y visibilidad (scope) de las variables que uses.
    Por ejemplo, las variables globales pueden ser accedidos por todos los
    programas que usen el mod_perl, lo que obliga a un control muy estricto de
    las variables globales. Mirar en http://perl.apache.org/guide/porting.html
    para mas detalles. Hace un par de años, con programas hechos para Perl
    5.004 tuve bastantes problemas de que se ejecuten correctamente con el
    mod_perl, al final lo abandoné porque los programas eran complejos y me iba
    a llevar mucho trabajo pasarlos el mod_perl.
  • El PHP, desde el punto de vista de script para webs, tiene prácticamente
    las mismas posibilidades y potencia que el Perl. Inclusive (y muy
    importante) es _mucho_ mas sencillo en la definición de interfaces (p.e.
    Perl:DBI vs. bases de datos en PHP) a costa de perder algo de flexibilidad.
  • Desde el punto de vista del trabajo “cooperativo” con los
    diseñadores, es mucho mas cómodo el PHP, ya que los diseñadores/maquetadores
    pueden hacer el html normal y luego los programadores meten el código PHP
    necesario. Yo considero esto como una de las mayores ventajas del PHP, ya
    que para hacer sitios web necesitas siempre de diseñadores.
  • El PHP es relativamente nuevo y cada día salen módulos y extensiones
    (por ejemplo, PHP-GTK), está creciendo bastante y hay mogollón de ejemplos
    de código, quizás no tanto como el perl todavía, pero está creciendo
    mucho.
  • EL PHP4 (a diferencia del PHP3) tiene una muy buena gestión de thrashing
    (liberación de variables/datos que ya no son referenciados). Este era un
    problema en PHP3 con los accesos a las base de datos que retornan muchos datos. El
    PHP4 verifica que los datos ya no son referenciados y libera memoria
    inmediatamente.
  • El Zend optimizer incluido en el PHP4 es muy rápido, e inclusive
    hay módulos adicionales para optimizar la compilación (gratuito, se puede
    bajar desde www.zend.com) que es muy bueno cuando los scripts son largos y
    complejos. Ahora también puedes instalar módulos de cache para evitar
    tener que interpretar cada vez el código fuente. Hay una versión comercial
    en Zend (cuesta unas 300.000 Ptas, $1.500, pero es muy buena) y hay otra versión
    libre (APC) en http://apc.communityconnect.com/
  • La integración del PHP es muy buena con el Apache, por ejemplo, las
    cabeceras del HTT, campos de formularios o argumentos en los URLs, se pueden
    acceder directamente como variables globales, sin necesidad de
    interpretarlos. También permite
    trabajar con funciones POSIX tal como haces en C sobre UNIX, por ejemplo:
    semáforos, memoria compartida, acceso a ficheros, funciones de tiempo, etc.
  • Los módulos de acceso a base de datos para Postgres, MySQL, Oracle, ODBC
    genérico, DB2 e Interbase funcionan muy bien. En general no hay problemas
    con las interfaces a bases de datos.
  • Por último, _mi_ esfuerzo de aprendizaje de PHP fue mucho menor que al de
    Perl.
  •  

    En general yo usaría PHP para embeber código en HTML y si tuviera que
    hacer cosas más complejas que no pudiera con el PHP (no se me ocurre nada
    ahora), usaría el Perl. No me haría tantos problemas: elijo lo más
    fácil para lo genérico y si tengo que hacer cosas que me resulten más
    sencillas de programarlo con Perl, lo haría sin pensarlo dos veces: make it
    easy, stupid ;-).Otros enlaces:

     
    –ricardo

    Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=542 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.