Pocos meses después de que PHP cumpliera 25 años, acaba de lanzarse su versión 8.0. PHP sigue siendo el lenguaje de programación más usado en Internet a la hora de generar páginas web dinámicas (está detrás del 79% de las mismas). Sin ninguna duda, la principal novedad de PHP 8 es la introducción del compilador JIT (Just in Time), que permitirá compilar ciertas partes del código sobre la marcha, en tiempo de ejecución. Esta funcionalidad, que estuvo a punto de ser incluida en la versión 7.4, lleva años siendo desarrollada (...)
|
etiquetas: php , jit
Es tan ligero que permite montar un servidor web en una sencilla Raspberry Pi y es software libre, a mi personalmente me gusta y tengo desde hace años una aplicación en producción que funciona muy bien y es fácil de mantener.
Solo quería compartir mi humilde opinión
Es tan ligero que permite montar un servidor web en una sencilla Raspberry Pi
Ligero si tienes pocas visitas. No sé cómo será ahora, pero en PHP5 cada petición cargaba prácticamente una copia ENTERA de la aplicación, con lo que el uso de memoria se disparaba linealmente por cada solicitud simultánea (y en los picos te podía tumbar… » ver todo el comentario
Java es top, sin duda. Pero es muy "rasposo". He hecho cosas en Java y es una maravilla, con sus problemas. El… » ver todo el comentario
No se si es tanto un tema del lenguaje, pero no las he usado tanto y tan profundamente como en Perl.
Eso sí, la arquitectura de la aplicación la creo yo, desacoplada, siguiendo CQRS y microservicios con gestión de eventos y colas mediante interfaces.
Laravel me da aquello que "para qué voy a crearlo si ya existe". Cosas como el MVC, autentificación y logger. No uso ni eloquent (creo mis propios repositorios).
Python y Ruby no están especializados en la web, pero también son lenguajes de scripting, nacidos en la misma época que PHP (incluso antes) y tienen mayor coherencia y robustez.
Recuerdo trabajarlo en la versión 4 y comienzos de la 5 y tenía bastantes problemas. Entre los que recuerdo estaba que los elementos de los array se obtenían por copia y no por referencia (como es en otros lenguajes), las comparaciones entre tipos diferentes eran bastante problemáticas y caóticas ('' es una cadena vacía, no es NULL, pero para PHP es igual a NULL), entre muchos otros problemas que no recuerdo.
Quizás todavía arrastre esa mala fama de versiones anteriores.
PHP tiene operadores de coincidencia de tipo (=== y !==)
null !== ''
Por eso a la mínima que haya un pequeño agujero, un atacante tiene acceso a cambiar lo que le de la gana.
Se puede mejorar mucho la seguridad de un servidor de PHP solamente ajustando los permisos del directorio y bloqueando que desde la administración se pueda subir modulos o plantillas. Aúnque no todos los programas se llevan bien con eso
Sé que existe conceptos raros como los frameworks isomórficos de JavaScript, pero estoy seguro de que no es a eso a lo que te referías.
Al ser un lenguaje popular y accesible, pocas veces he visto un código que siga SOLID y CQRS bien escrito, estructurado, con clases mínimas y simples.
La gente se pone a hacer cosas en PHP infumables, pero como podrías hacerlas con cualquier lenguaje orientado a Objetos.
Veces no es hacer las cosas mejor del mundo lo mejor si no hacerlas homogénea y lo más standar posible, porque además estos proyectos sufren cambios muy a menudo y muy rápido además de que la rotación del personal es más o menos alta.
Si hablas con el front developer medio puede llegar a dar la sensación que solo existen el Javascript y los motores de plantillas.
Los clientes que piden el uso de herramientas concretas, normalmente son personas que no tienen ni idea pero tienen un sobrino o cuñado experto que les ha aconsejado por el lenguaje de moda, lo que se llama escuchar campanas pero no saber de donde. Hace unos años lo leían de revistas
Claro que otros tantos lo piden porque es lo que usan actualmente.
Si debo elegir yo, para algo medio serio seguramente no usaré PHP, no estoy diciendo de usar PHP para todo, simplemente que descartarlo porque "ya no está de moda" es una soberana estupidez, hay cosas peores, como java.
Lo mismo no tienes claro el concepto de residual, residual mas bien serian lenguajes como Ruby On Rails.
El día que plataformas como wordpress cambien de lenguaje lo mismo te doy razón, pero mientras queda php pa rato.
* Propagación de propiedades automática » esto es algo que realmente ahorra muchas líneas de código. Bravo
* Nuevo operador nullsafe » otra maravilla que ahorra líneas de código y dolores de cabeza
Lo del compilador y esas cosas, seguro que hace que todo vaya un 1000% más rápido y tal. Como la última versión del Firefox.
Edito: Por lo visto el compilador hace que efectivamente todo vaya mucho más rápido, como en Firefox. Por ejemplo, una función tan sencilla como:
$a = 1;
for($i = 0; $i < 10000000; $i++) {
$a++;
}
* PHP 7.3 » 73 msec
* PHP 8 » 42 ms (sin compilador) y 22 ms con compilador JIT habilitado
Que luego la peña dirá noo phyton, o perl o go o no se que... Pues puede ser, no puedo opinar porque por desgracia de momento no llego a más.
Recuerdo en una PyCon que explicaban como habían implementado las tablas hash o diccionarios en PHP y era para llorar. Y parece que no era un caso aislado: eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
El artículo del 2012 no lo he puesto para criticar a las características nuevas del lenguaje, si no porque parece (he dejado claro en todo momento que no tengo mucha experiencia con PHP) que históricamente tomaron muchas decisiones de… » ver todo el comentario
Nunca has tenido que migrar una aplicación de PHP 5 a 7 ¿verdad?
Para proyectos nuevos vale lo que dices, pero cuando tienes un montón de aplicaciones hechas en PHP 5 por diferentes empresas y desarrolladores, con múltiples estilos de programación y frameworks, ni te atrevas a migrarlo a PHP 7 si es que quieres conservar tu salud mental.
imgs.xkcd.com/comics/python_environment.png
Obviamente, uno programa en lo que le toque, según el entorno, pero si la decisión es mía, no toco PHP no con un palo.
Hace 10 años era la opción segura en la web. Hoy día tienes node, Python o Ruby en lenguajes no tipados, golang para APIs ultra rápidas, los javas y .Net para los conservadores y los kotlin o Scala para los javeros resabiados.
Es un lenguaje que ha perdido toda si esencia y razón de ser: Hipertext preprocessor.
Hablas de ese lenguaje que un error ocupa 5 pantallas?
Yo llevo 20 años en esto y te digo que la mitad de los haceros no saben Java , como mucho Spring y con eclipse , que con otros ide's sudarian.
Jamás he comprendido eclipse.
He visto con mis ojos como jodian un git porque no sabía usar una terminal y le salió por sus santos cojones hacerlo con Pycharm y le dije que le ayudaba a hacerlo desde terminal.
Joder, a cada uno que jodiera no un repo, sino una rama, lo ponía a hacer control de versiones con svn, o con CVS.
Vamos, tampoco es que sea un experto y no digo que no tenga sus carencias, pero cuando hemos empezado a usarlo aceptando su comportamiento los problemas han sido escasos.
La gente dice PHP está muerto. Y yo digo PHP no está muerto, está asesinado, lo han matado los sueldos de mierda, en la horquilla salarial de las ofertas de PHP, el máximo suele ser el mínimo de una oferta de back en Python. Y los proyectos de mierda, que parte es la pescadilla que se muerde la cola con el anterior, porque si pagan mal, exigen tiempos que sólo permiten hacer chapuzas rápido y mal.
Cada puta vez que sale php...
Diría que pasó de estar en un servidor dedicado a AWS y ahora Bigdaddy.
La base sigue siendo la misma.
Y de errores de diseño, al principio hubo uno que me quedó grabado. Se guardaban las contraseñas en la BBDD en plano, o algo así. Se informó varias veces y después se corrigió.
github.com/gallir/Meneame
encriptadascifradasHay frameworks muy elaborados en PHP. No es el sin dios de antes.