El trastero de José Juan Valid XHTML 1.1 Valid CSS! Estilo de página alternativo
Artículo creado en 2008.
Valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración sobre 53 comentarios.

Porqué no programar en PHP (o Perl)

Introducción

No era mi intención utilizar PHP para programar mi sitio web, pero tampoco quería invertir más dinero del estrictamente necesario para disponer de un hosting (un servidor dedicado en Internet para hospedar mis páginas web). Mi intención primera era utilizar Perl, sí, lo se, no es frecuente que las páginas web estén programadas en Perl pero me había picado la curiosidad y ya había realizado algunos experimentos con él. Desafortunadamente la posibilidad de usar Perl mediante CGI (ya no digamos Active-Perl) es bastante limitada en mi actual hosting. Así pues, di por bueno usar un lenguaje de programación de páginas web tan popular como PHP.

Mi opinión general sobre PHP

Lo siento, no me gusta PHP. Es cierto que este sitio está programado en PHP, lo he programado yo, no he usado ningún framework, lo que quiere decir que no he querido usar el camino más fácil, sino aquel con el que se aprende más, y he disfrutado con ello (y espero seguir haciéndolo); sin embargo, hubiera preferido sin duda otras plataformas para hacerlo. Como muestra diré que aun usando la misma versión de PHP en mi entorno local bajo Windows y la misma versión de PHP en el entorno de hosting bajo Linux, el funcionamiento ¡del mismo código! difiere en uno y otro entorno y me obliga a detectar y corregir (modificando sentencias aparentemente equivalentes) mi aplicación. Aun admitiendo que el error sea mío por no conocer en profundidad la semántica de PHP, esta ambigüedad en la definición no es (desde mi punto de vista) admisible.

Espero no ofender a los PHP-maniacos, pero desde mi punto de vista, PHP posee pocas de las cualidades que en teoría lo hacen atrayente, a saber, esa flexibilidad natural adoptada por Perl (el uso de $_ es fantástico en Perl y aporta una plasticidad muy atractiva. Y peligrosa...) que en PHP se presenta de una forma mucho más rígida. PHP posee además muchas de las desventajas de estos lenguajes (como la falta de tipos estrictos o declaración explícita de variables). Es cierto sin embargo que lo deja en un término medio, en el sentido de que es más flexible que el casi patético ASP (y yo llevo MUCHO programado en ASP) y el tan excesivamente voluble Perl (tanto que a veces se escapa de entre los dedos) que quizás lo haga idóneo para estos menesteres que son programar páginas Web y sea ésta la razón de su popularidad.

Mi opinión sobre los lenguajes script/interpretados

Los lenguajes como Java Script, Visual Basic Script, PHP, Perl y muchos otros, nacen de la necesidad de disponer de un lenguaje sencillo que no requiera de compilación previa, no sean complejos de utilizar (pues pretenden dar un soporte adhoc y no de desarrollo de aplicaciones) y en los que las tareas más comunes se realicen de forma sencilla. No por nada muchos de ellos nacieron como lenguajes de procesamiento de textos (en mi opinión, AWK ha inspirado a muchos de estos lenguajes).

La programación típica de shell como bash, sh, batch, vbscript, etc... son sin duda los precursores de este tipo de lenguajes y no debe olvidarse que el propósito de éstos es suministrar un conjunto reducido de comandos para que el administrador de sistemas pueda automatizar muchas de las tareas frecuentes en un ordenador o red.

Por tanto, este tipo de lenguajes adolecen en muchos de los casos de importantes (para mí, claro) características que un lenguaje de programación debería tener para el desarrollo de completas aplicaciones sean web o no. Es decir, para sencillas páginas o script están bien, pero como plataforma para un framework sobre el que desarrollar completas soluciones (típicamente de negocio), rotundamente, no.

Y efectivamente, tal y como estás pensando, tampoco Perl es el adecuado, los motivos por los que Perl me a parecido gracioso es por motivos puramente "antropológicos" dentro del mundo de los lenguajes de programación y no desde un punto de vista productivo.

Entonces, ¿qué lenguaje es el adecuado?

Responder completamente a la pregunta es cuando menos complejo, y depende de factores que sólo se conocen en el contexto concreto en el que se precise (un lenguaje), sin embargo, si nos centramos en aplicaciones con cierta complejidad (no sea una simple página html), evolucionen en mayor o menor medida en el tiempo (deban adaptarse a ciertos cambios) y deba ser compartida (aunque esto no es preciso), yo exigiría a un lenguaje las siguientes características:

¡OJO! algún lector atento puede quejarse que características como "cantidad de código libre disponible" deberían haberse tenido en cuenta. Lógicamente a la hora de optar por un lenguaje u otro, siempre habría que considerar factores como la cantidad de información o librerías útiles de las que vamos a poder disponer, sin embargo, esto no es una característica del lenguaje es puramente coyuntural y el hecho de que todo el mundo utilice un lenguaje "poco adecuado" no lo hará más adecuado; sin duda sería mucho mejor que todo ese código, información, librerías o soporte disponible lo estuviera en un lenguaje "más capacitado".

...sigo sin saber qué lenguaje es el más adecuado...

Bueno, PHP no es estricto (ni JavaScript, ni Visual Basic Script), Perl tampoco y además no está bien definido (eh! que no lo digo yo, que lo reconocen en el propio manual de Perl) y dada las diferentes versiones que hay de PHP no está bien definido (no, no lo está, incluso hay debates abiertos de cómo deberían comportarse sentencias ¡que están en uso!).

Lenguajes como ADA, Pascal, Java, C++ y últimamente C# y Visual Basic .NET son lenguajes que básicamente ofrecen las mismas características básicas, todos ellos son similarmente estrictos (determinadas licencias del lenguajes no son debidas al propio lenguaje, sino a las clases básicas disponibles en el framework) y poseen características similares, sin embargo, como lenguaje yo me quedaría con C++, herencia múltiple, sobrecarga total de operadores y tipos, su sencilla y flexible gramática y su cercanía con la máquina lo hacen para mí el mejor lenguaje de programación.

Pero. Hay un pero con C++. Popularmente es considerado un lenguaje "difícil" y quizás sea así comparándolo con otros lenguajes, y debe ser por eso que el soporte en los entornos de programación para el desarrollo de aplicaciones empresariales es menor que en otros lenguajes. Programar una aplicación puramente empresarial en C++ resulta sensiblemente más engorroso que en C# (o VB.NET) en el que resulta suave y natural. Y realmente, no se exactamente cual es el motivo. Por poner un claro ejemplo, crear un Web Service en C++ es similar a C#, uno puede crear sus propios métodos de forma fácil y cómoda sin embargo, al exponer un DataTable personalizado a un tipo de dato específico de una base de datos: primero en C++ sólo deja generar sentencias (select, insert, update y delete), mientras que en C# deja generar procedimientos almacenados ¿porqué? y segundo y más importante, en C++ el tipo adaptador generado es mucho más engorroso que en C# ¿porqué?. Pienso que tendrá que ver con que les resulta más complicado conciliar el modo administrado de C++ y las funciones están limitadas desde el entorno (Visual Studio) y no porque el lenguaje lo impida ¿que puede hacer C# que no admita C++?, nada. Sinceramente este aspecto (puramente práctico) no lo entiendo en absoluto.

Sí, experimentos como el anterior te dejan mal sabor de boca, uno no puede usar un lenguaje potente como C++ porque el soporte ¡ajeno al lenguaje! es limitado. Y eso que C++ es (según Microsoft) el lenguaje por excelencia de su plataforma de desarrollo...

No es que C# esté mal, de hecho está muy bien y también Visual Basic .NET (nada que ver con ASP) pequeñas diferencias harán decantar a los programadores por uno u otro. No se dejen engañar por la "mala fama" de Visual Basic .NET es "casi" tan bueno como C#, tiene algunas ventajas desde el punto de vista productivo y del entorno relacionadas sobre todo con intellisense que no posee C# (otra vez me pregunto por qué...) pero C# posee algunas características del lenguaje que no posee Visual Basic .NET y éstas son las que me han hecho optar por C#.

Entonces... ¿tu piensas que el mejor es C#?

En absoluto. Sí es cierto que motivos coyunturales hacen que para mí, C# sea a fecha de hoy el lenguaje preferido para desarrollar aplicaciones empresariales. No dudo en cualquier caso que otros lenguajes similares como Java (en su entorno quizás más popular Eclipse) suministran capacidades similares. Debe tenerse en cuenta que la fuerza que las grandes empresas como Microsoft o IBM hacen, así como los entornos de desarrollo y aplicaciones relacionadas (como el sistema operativo o los motores de base de datos) influyen enormemente a la hora de tomar una decisión u otra.

Pero sin duda Java, Pascal (bueno últimamente llamado Object Pascal), C++, C# o Visual Basic .NET son lenguajes que desde mi punto de vista pueden aportar una productividad que otros no pueden aportar, como PHP o Perl (por citar los más populares).

¿Y dónde queda PHP?, ¿y tu afición a Perl?

Como ya comenté, a las pocas líneas escritas de PHP mi interés por dicho lenguaje decayó enormemente, y el poco que me queda es a fuerza de que mi hosting sólo admite éste (principalmente). En cuanto a Perl es otra cosa, como lenguaje es muy interesante y posee estructuras realmente divertidas, como ejercicio me hacen abrir las posibilidades de programación y buscar estrategias para diseñar algoritmos que con otros lenguajes simplemente, no existen. Lisp, Prolog, Lingo, una calculadora HP, usar Java con CLDC y MIDP, un viejo vídeo VHS o Perl, son ejercicios interesantes de programación que pueden hacerse, pero por muy atrayente que éstos sean, no recomendaría a nadie realizar una aplicación empresarial con ellos.

Conclusión

Mucha gente usa muchos lenguajes, mucha gente usa PHP ¡y les gusta!. Está bien que la gente use diferentes lenguajes y que se animen a crear otros nuevos. Este artículo son sólo comentarios y opiniones, pensamientos dichos en voz alta de un programador más y del que quizás, paradójicamente, encontrarás más artículos sobre PHP que sobre cualquier otro lenguaje.


Opinado el 16/09/10 05:49, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Al inicio yo tenia la misma forma de pensar con respecto a PHP, pero he aprendido la certeza de la frase "Cada herramienta usala para la tarea Adecuada". C,C++ Estan excelentes para aplicaciones nativas de alto rendimiento ( por algo se usan para crear lenguajes y sistemas operativos, asi como cosas de opengl). Para scripting del lado del servidor en aplicaciones web, PHP seria el equivalente a lenguaje C, en el sentido que te deja controlar detalles a bajo nivel como FLUSH, HEADERS,etc. Otros lenguaje
Opinado el 22/02/11 22:08, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Respeto tu opinion yo trabajo con visual basic pero php me parece uno de los mejores lenguajes de programacion para lo que es web pero me parece que el lenguaje de programacion es mas bien una eleccion del programador que esta trabajando igual te felicito si bienn es una cosa sencilla la que realizaste esta muy bien felicitaciones. Saludos y suerte damian cualquier consulta que tengas me podes escribir a damelcuervo@hotmail.com
Opinado el 02/04/11 20:28, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    exelente pagina el programa de guerras tribales anda exelente en el mundo 6 conecta pero no crea y no hace nada solo puedo ver los pueblos no puedo distribuir los recursos ni hacer crecer los pueblos y mucho menos crear tropas me interesaria una version completa sobre todo para sentarme a tomar una cerveza adrian@medanos.net.ar
Opinado el 03/04/11 07:23, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Podr?haberme gustado m? como tambi?podr?haberme gustado menos. El programador escoge, el programador de Visual Basic es torpe.
Opinado el 23/08/11 00:03, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Fue decepcionante no encontrar una razón bien fundada sobre porqué no usar PHP o Perl, hubiera sido mas honesto de tu parte empezar tu artículo con la conclusión.
Opinado el 23/08/11 08:23, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    A "Fue decepcionante...", como mínimo, he concretado 3 puntos (el 4º es discutible) que, objetivamente, NO cumple PHP. Pero en general, describo porqué no lo usaría YO. Quizás es tu afán por criticarme lo que no te ha dejado verlo...
Opinado el 30/08/11 21:19, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Para el que experimenta con variados programas sabe que no se le dá el 100 a uno débido a que a veces encuentra algún pegón en este pero que el otro lo tiene y viceversa. Yo perfectamente entendí de que a pesar de todo José Juan se va hacia PHP debido a ciertas reglas impuestas. No es solo criticar sino ver las cosas como si fuera yo.
Opinado el 20/09/11 21:37, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    parse,, use Perl puede hacer lo mismo que hace PHP
Opinado el 05/04/12 13:42, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    seria bueno que opines sobre los frameworks salu2
Opinado el 20/04/12 05:41, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Excelente articulo
Opinado el 22/06/12 16:07, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Interesante
Opinado el 03/07/12 21:14, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Pregúntaselo a Mark Zuckerberg y Jack Dorsey
Opinado el 15/08/12 18:30, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    muy bueno, me encantaria aprender mass. :D
Opinado el 04/09/12 17:38, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    ah cuentale a facebook y twitter lo mal que es php
Opinado el 25/09/12 00:16, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Eeres rependejo jajajajajaj idiota ignorante!!!
Opinado el 01/11/12 16:54, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    su enunciado fomenta el desanimo a la programacion
Opinado el 15/11/12 21:46, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Interesante artículo
Opinado el 04/02/13 16:28, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    eres muy ignorante!!Facebook esta en php/python
Opinado el 14/02/13 21:23, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    veo tu página y deduzco que no sabes programar
Opinado el 01/04/13 18:51, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Yo deduzco lo mismo
Opinado el 03/05/13 02:26, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    No mames brother calla boca si no sabes que hablas
Opinado el 03/05/13 15:55, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Perfecto articulo, a mi tampoco me gusta nada PHP
Opinado el 17/05/13 15:32, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Jamás podrás comparar 2 sis. operativos Win/Linux
Opinado el 19/05/13 22:43, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    php rules
Opinado el 31/05/13 12:35, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    No tienes ni puta idea...
Opinado el 12/06/13 18:02, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Este tipo escribe en genbeta-dev, vaya tela...
Opinado el 09/09/13 07:38, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    En Perl esta hecho Amazon, y Google, estas mal
Opinado el 12/11/13 03:51, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    
Opinado el 03/01/14 22:28, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    jajaja.. juajaja.. debes aprender a argumentar.
Opinado el 06/03/14 11:13, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    No propones verdaderas alternativas.
Opinado el 24/03/14 04:18, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Que tiene que ver PHP para web, con lo que dices
Opinado el 26/06/14 12:42, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Bajos conocimientos y culpa a PHP...
Opinado el 12/07/14 20:58, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Tu página es un desastre, la hiciste el ASP .net?
Opinado el 12/07/14 21:32, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    "la hiciste el ASP .net?" no ¡en PHP!
Opinado el 07/08/14 00:43, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Tema viejo, articulo escrito por novato. idiota
Opinado el 09/09/14 19:05, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    la verdad se ve no sabes progamar
Opinado el 22/09/14 23:05, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Como comentario emisario del pasado está creíble.
Opinado el 14/07/15 16:19, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    
Opinado el 10/08/15 04:52, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Amigo....tu punto de vista es muy cerrado...suerte
Opinado el 16/09/15 08:14, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Gracias por tu aporte, tu opinion amplia panorama
Opinado el 17/12/15 05:12, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Facebook está en PHP
Opinado el 20/12/15 06:07, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    si no te gusta php entonces crea tu propio lenguaj
Opinado el 21/01/16 22:42, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    <script>alert("test")</script>
Opinado el 16/03/16 16:56, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Pon el "modo estricto" y luego me lo cuentas. Te a
Opinado el 18/03/16 14:11, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    <?php for($i=0; $i<100000; $i++) {echo($i)} ?>
Opinado el 30/03/16 15:39, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    viendo tu página web, pierdes toda la credibilidad
Opinado el 30/03/16 15:53, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    "pierdes toda la credibilidad" ¿por?
Opinado el 18/04/16 05:34, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    php python.. opciones libres!! .net para que?
Opinado el 29/09/16 18:40, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Aprende a programar luego criticas
Opinado el 04/11/16 19:38, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Ya quite este sitio, XD parece de los 90s malísimo
Opinado el 21/11/16 00:21, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Buen artículo. La plataforma .NET es fantastica
Opinado el 07/01/17 13:08, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    Totalmente de acuerdo con este articulo
Opinado el 17/02/17 03:31, valoración ValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoraciónValoración
    <h5>IDN</h5>
¿Te ha gustado? ¡aporta tu opinión!
Valoración:
 0    1    2    3    4    5    6    7    8    9    10

Comentario:
NOTA: si es una petición... ¡pon el e-mail al que responderte o no sabré a dónde escribir!

Código de verificación captcha