Hace 3 años | Por ccguy a genbeta.com
Publicado hace 3 años por ccguy a genbeta.com

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 (...)

Comentarios

j

#22 Fácil de mantener. Punto importante. No hay mucha magia en PHP, comparado con Java, que puede llegar a ser un infierno de gestionar, modificar, mantener...Se suele hablar de Java y PHP como si fueran para lo mismo.

m

#22 #33 Yo hace años que migré una aplicación de PHP a Java precisamente por los puntos fuertes que consideráis de PHP que para mí eran justo lo contrario:

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 la máquina). Los mismo con las conexiones a base de datos, al no haber pool-s que reciclasen estas. Java en cambio era (no sé si habrán arreglado esto en PHP) infinitamente más estable en cuanto a consumo de memoria. Prácticamente lo mismo con 10 solicitudes simultaneas que con 100, ya lo que hace la aplicación web es gestionar los hilos y usar los mismos objetos entre todas las solicitudes.
Por no hablar de que al tener sistemas de gestión de transacciones a base de datos (capacidad de hacer rollbacks), no te encuentras inconsistencias en los datos.

Fácil de mantener. Punto importante
El simple hecho de que Java tiene tipado fuerte (y mejores IDE-s) lo hace también infinitamente más fácil de mantener. Pero es que además, una de las grandes debilidades de PHP era (Y es improbable que lo hayan corregido, porque lo haría incompatible entre versiones) la poca consistencia en la definición de funciones/métodos. Dos funciones (y estoy hablando del mismo php "base", no de librerías externas) que reciben los mismos parámetros, podían recibirlos en un orden completamente diferente.

Por no hablar de muchos de los patrones de diseño incorporados como tipos en el propio JDK.

j

#77 PHP sigue manteniendo el mismo problema, carga toda la aplicación para ejecutar una solicitud. Al menos en Laravel, que es lo que conozco. Las transacciones a BBDD más tendrían que ver con la versión de la BBDD que se usara. Es verdad que el tipado, que es la gran mejora que desde la versión 7 si no me equivoco, además del manejo de memoria, porque evita muchos errores.

Java es top, sin duda. Pero es muy "rasposo". He hecho cosas en Java y es una maravilla, con sus problemas. El que yo me encontré es el "dependency hell" que le llaman. Conflictos de versiones y librerías que hacen que el coste de arreglar el problema sea altísimo. En PHP los problemas suelen ser más fáciles de arreglar por la propia arquitectura de las aplicaciones.

harapo

#22 bueno, las expresiones regulares son potentes per se.
No se si es tanto un tema del lenguaje, pero no las he usado tanto y tan profundamente como en Perl.

thorpedo

#5 ahora la mayoría de los proyectos se hacen con Symfony o Cake que ya te obligan a hacer algo "decente" con OOP. Pero como todo la última responsabilidad depende del programador.

r

#7 Mas bien Laravel se lo ha comido todo

Herrerii

#32 Laravel es el hermano pequeño de symfony. En proyectos tochos un laravel a lo mejor se queda cortito.

mariKarmo

#80 Laravel es un Framework. Yo lo he usado en proyectos tochos.

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).

Ramsay_Bolton

#80 me atreveria a decir que cuanto mas grande el proyecto, un framework mas minimalista es mejor.

EspecimenMalo

#5 recientemente me he ido de una empresa por esto que comentas. Me asignaron un proyecto de estas características y ni hablar

sillycon

#5 #64 PHP es un lenguaje de scripting de desarrollo rápido especializado para la web. Lo que hace lo hace muy bien, no se le puede pedir la coherencia estructural de un lenguaje académico de propósito general.

P

#85 "PHP es un lenguaje de scripting de desarrollo rápido especializado para la web"

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.

maloconocido

#85 para ser de scripting soporta bastantes paradigmas: programación estructurada, funcional y orientación a objetos con herencia, polimorfismo y traits

D

#5 lo mismo le pasa a Perl

P

#3 La sintaxis del lenguaje también fue muy criticada hasta las primeras versiones del 5, antes de la implementación de los "namespaces" y "uses".

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.

ppma

#64
PHP tiene operadores de coincidencia de tipo (=== y !==)
null !== ''

maloconocido

#64 PHP tiene al menos desde la versión 5 copy on write https://www.php.net/manual/en/internals2.variables.intro.php

s

#3 La mayoria de esos problemas, derivan que lo que se ejecuta es un monton de ficheros, metido en un directorio, generalmente con los permisos a 777, de forma que el administrador del CMS pueda subir, modulos nuevos y plantillas, sin preocuparse de chorradas como la separación de entornos o securizar las cosas.
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

a

#55 Sí, y los que dicen que PHP está muerto y no lo usa nadie, cuando se usa casi en el 80% de las webs de todo el mundo.

D

#11 React es para front y PHP para back.

D

#13 ambos los puedes usar para ambas cosas. Aunque si lo más normal es que uses react para front y PHP para back... Bueno PHP le pasaba como a java con jsp. Que se usaba para front tb.

D

#15

D

#30 he sido programador en PHP, lo digo por si me envías el vídeo tildandlme de ignorante.

D

#35 No, si de lo que parece que no tienes idea es de React, ya que estás confundiendo un framework/librería de JavaScript que se ejecuta en el cliente (navegador web, móvil con React Native...) con un lenguaje de programación/intérprete. ¿Quizá te referías a NodeJS?

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.

I

#45 Aunque no creo que se refiera a esto, que sepas que existe también React-PHP (https://reactphp.org/) un framework para usar PHP con un bucle de eventos, promesas y esas cosas, similar a lo que hace nodejs.

D

#48 no, me refería a nodeJS

D

#45 sí ha sido un lapsus en lo de backend estaba pensando en nosejs. El lapsus viene del JavaScript. No tengo ni idea de que es un fw isomorfico.

h3ndrix

#52 Quizás se refiera con isomórfico a lo que hace Meteor.js o Nuxt, que en el mismo código debes distinguir si se ejecuta en servidor o en cliente (en el navegador).

D

#13 Ha demostrado mucho en 6 palabras... O quizá es GPT-3 juntando palabras que aparecen frecuentemente juntas roll

torkato

Larga vida a PHP y a Laravel

dani.oro.5

PHP es el motor de plantillas más potente. Es tan flexible que algunos escriben toda la aplicación con esto.

maloconocido

#23 +1 (no puedo votar)

Voidnull

Mi reconocimiento al pedazo de trol que supo distinguir la noticia más cizañera del mes y arrojarla con más inquina que el jurado de Masterchef ante una tortilla de patatas sin cebolla.

D

#46 Y viendo lo mucho que se parecen Spring Boot y Symfony...

harapo

#46 me parece bien el odio que demuestras, los javeros merecemos la horca, pero has de saber que quienes más están criticando no son javeros, sino los infames noderos , que saben que cualquier soplido les va a desmenuzar el chiringuito de librerías, frameworks, paquetes y MacBooks que tienen montado.

KimDeal

#76 desconocía ese peligro que amenaza a la sociedad. Malditos noderos!

PauMarí

#76 odio como está estructurado nodejs pero es maravilloso como funciona... No soy el único entonces?

mariKarmo

La culpa de que algunas apps en PHP sean una mierda no es por el lenguaje, es por la arquitectura y el diseño.

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.

D

Buff PHP... Su tiempo y paso, no supo aprovechar el momento que tuvo.

D

#9 los poceros también tienen trabajo que no les falta y eso no quiere decir que no estén sacando todo el día mierda. Jajjaja, no, fuera bromas, yo dejé PHP porque eso de dejar que las cosas se hagan bien dependiendo tanto del programador no terminaban bien casi nunca. En proyectos grandes era mortal y caótico, los Bugs te los comías por todos lados, te sacaban versiones incompatibles, no había de y librerías en condiciones, hablo en el año 2008 aprox. Hace unos 10 años que lo deje.

elGude

#59 pues te has perdido muchas cosas. Yo llevo casi desde ese año currando en PHP con Symfony y es una gozada. Cierto que me he topado con proyectos en PHP a pelo sin sentido, pero son los que menos.

D

#83 suerte tienes, yo todos los que me topaba estaban a pelo, sin orientación a objetos, sin una arq bien definida... Un desastres. Total que para hacer pequeñas webs y cosas personales lo veía bien pero para currar de ello profesionalmente no lo veía así que a otra cosa. Igualmente la historia nunca se sabe, JavaScript parecía muerto cuando llegó React y angular y lo resucitó y mira ahora...

elGude

#87 yo ahora fundamentalmente me dedico al black de proyectos y suelo trabajar solo con mi código o de compañeros, con una gran calidad.

D

#94 supongo que son pequeñas app, o pequeños proyectos. En los proyectos que yo me muevo solemos ser igual 16-20 personas. Cada uno de su padre y de su madre, la mayoría muy buenos, pero aún siendo buenos se necesitan unas normas y unos procedimientos, fw, herramientas, etc, bien definido para que cuando te levantes un día con el pie izquierdo no la líes parda. Para que todo sea homogéneo, etc. A
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.

elGude

#96 pequeños equipos y proyectos muy grandes, hace un años estaba trabajando en una empresa de gestión de conexiones a Internet vía satélite y estaba hecha en Symfony.

sillycon

#59 Díselo a Wordpress que ocupa un porcentaje muy gordo de la web.

D

#89 pues no se, será en organizaciónes pequeñas, yo en las empresas grandes que me muevo PHP o no está o poco se le ve. Y si vas a hacer búsquedas en Linkedin, indeeed,... Puedes comparar las ofertas de trabajo en PHP, java, ..., Con eso te haces la idea del uso que tiene.

harapo

#9 esto es muy interesante.
Si hablas con el front developer medio puede llegar a dar la sensación que solo existen el Javascript y los motores de plantillas.

mariKarmo

#9 totalmente de acuerdo con lo que dices. Llevo con PHP 15 años y se me rifan en las empresas.

Idomeneo

#8 Facebook todavía lo usa (para el front). Eso sí, con HHVM y otros inventos.

D

#10 lo estará pasando todo a ReactJS

NapalMe

#8 Como si al cliente le importase una mierda que herramienta has usado mientras funcione como pide.

D

#28 tienes clientes poco exigentes. Los hay que intentan velar por la mantenibilidad del código y esas cosas. Ya sabes.

NapalMe

#37 Como si el mantenimiento del código dependiera del lenguaje. Si para que un programador haga bien su trabajo, dependemos de una herramienta que le obligue, el problema no está en el lenguaje.
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 lol
Claro que otros tantos lo piden porque es lo que usan actualmente.

Alvarro53

#62 si te dedicas a hacer las páginas web de las fruterías te tu barrio vale, pero como hagas algo medio serio el cliente normalmente no basa sus opiniones en lo que dice su sobrino...

D

#73 pues no, la segunda parte aún, lo de arq y lenguaje que ya usan si suele tener peso, pero sobrinos en las aplicaciones que yo trabajo no haya ni uno opinando como es lógico.

NapalMe

#90 Pues me parece muy bien, y que siga así.

NapalMe

#73 En que basan los clientes sus opiniones es un misterio, siempre sorprenden.
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.

Herrerii

#8 Ya ya, php ya no lo usa nadie, en mi época de universitario (hace ya 15 años) se decía lo mismo de Cobol y mis compañeros que lo aprendieron son ahora los que mas dinero ganan. PHP es el nuevo cobol lol

D

#81 jajaja no java va camino de ser el nuevo COBOL. PHP va camino de ser residual y/o desaparecer. Igualmente en la informática pasa como en el resto de profesiones, cuanto más aburrida es más pasta se gana.

Herrerii

#82 Pues para ser residual en web es el lenguaje mas utilizada en el lado del servidor

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.

D

De lo que se comenta en la noticia, lo que más me gusta:

* 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++)

* PHP 7.3 » 73 msec
* PHP 8 » 42 ms (sin compilador) y 22 ms con compilador JIT habilitado

D

#c-50" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3418358/order/50">#50 todo tiene sus cosas buenas y malas. Yo hablo de lo que conozco, conozco c, c++, PHP, C#, Java, JavaScript. Y de todo eso me quedo con java y con JavaScript ambos con sus respectivos fw. En java con spring principalmente y en front con react o angular, los dos los uso por igual.

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.

Alvarro53

#56 usas react y angular igual de poco no? Porque para confundirlo con NodeJS...

D

#75 jajajaja, no los confundo, pensaba en JavaScript, en el lenguaje no en el fw, igual que en java hablo de spring como si fuera java. Hablamos de PHP, java, React JS,... Y venía a decir que puedes usar nodeJS en back y ReactJS o Angular en Front igual que puedes hacer con PHP. Refiriéndome o intentando decir JavaScript. Pero si parece que no lo he usado por mi comentario, es lo que hay. Pero la verdad es que he hecho proyectos gordos en ambos ReactJS y Angular2+, del que conozco mucho menos es de nodeJS.

maloconocido

#c-56" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3418358/order/56">#56 C# lo conocerás de oídas, si te quedas con Java y JavaScript es por la pasta

robustiano

"Numerosas novedades", y seguramente sin compatibilidad hacia atrás, para hacerse caquita... wall

llorencs

#47 Si entiendo por el comentario es que defiende una rotura de la retrocompatibilidad porque las viejas versiones de PHP tenían muchos errores de diseño.

D

#47 ¿Conoces el drama que fue el paso de Python 2 a la versión 3? Metieron cambios muy fuertes y hubo mucho dolor y oposición, pero el lenguaje salió reforzado. Además, estaban hablando de diccionarios y si algo se toman en serio en Python, son los diccionarios.

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 diseño aparentemente dudosas (como todos) y que, en mi opinión, es bueno enmendarlas si no lo han hecho en estos años.

Vamos, que era más una alabanza a romper cosas para poder evolucionar y adaptarse que una crítica a un lenguaje libre, al que le deseo lo mejor y que innoven para que nos beneficiemos todos.

P

#12 "cuánto más rompan la retrocompatibilidad y arreglen los errores del pasado, mejor"

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.

sillycon

#6 Mientras no pase como el Python que tienes que tener veintisiete versiones distintas instaladas y no sabes cuál se va a ejecutar cada vez...

https://imgs.xkcd.com/comics/python_environment.png

robustiano

#88 Los entornos virtuales de Python son tus hamijos...

cosmonauta

Estuve con PHP desde 5.1. Hace al menos dos años que lo dejé.

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.

l

#24 Por lo que he visto el lenguaje ha mejorado mucho, pero, como tú dices, teniendo una maravilla como Ruby, o Node.js para usar 1 único lenguaje en todo, no le veo ya ninguna ventaja para lo que fue su terreno.

ur_quan_master

Ya está casi al nivel de Java 0.8 en los noventa.

ur_quan_master

#20 NetBeans hasta la muerte y para todo lo demás ant.

Jamás he comprendido eclipse.

harapo

#29 jajajajaja

D

#20 el error ocupa 5 pantallas porque quieres.

KimDeal

#41 vale. Cuanto ocupa el hola mundo en java?

D

#44 en java sin spring ni nada pues nada una mierda. Java con spring y todos sus satélites de alrededor mínimo 40mb y muchas veces unos 200mb.

thorpedo

#41 todo en esta vida es modificable y configurable pero el comportamiento por defecto es ese. Cuando quieras discutimos del tunning de la jvm que cuando quieras , que es un puto infierno cuando te metes en harina .

M

#20 Pues si vieras la nueva hornada de desarrolladores que dicen ser Putin y lo que saben es usar el ratoncito en su mac blanco en en asqueroso IDE de Pycharm.

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.

harapo

#68 los problemas con Git son algo muy frecuente, y que a mí me sorprende muchísimo.

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.

D

#72 En el tiempo que llevo usando GIT he visto problemas que en su mayor parte estaban ocasionados por gente que se empeñaba en usarlo como SVN y no intentaban entender que aunque sirvan para lo mismo no funcionan igual.

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.

D

#16 jajjajaj

M

Yo repito mi cantinela:

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.

rubiopanza

Buenas. ¿Es aquí lo de hacer comentarios para parecer experto?

Cada puta vez que sale php...

llorencs

#25 Sí, estuvo en AWS. Ahora creo que lo pusieron en BigDaddy, lo último que leí.

Diría que pasó de estar en un servidor dedicado a AWS y ahora Bigdaddy.

D

A ver si migran MNM y deja de ir como el culo.

thorpedo

#2 Desconozco si esta hecho en php pero en un sitio como MNM sospecho que el problema estará mas en la escritura en las BD que otra cosa.

thorpedo

#21 supongo que habrán tocado muchas cosas. Lo que recuerdo haber leído que estaba en AWS

llorencs

#36 Le metieron algo de Python por lo que veo. Pero sigue siendo PHP la base. Y algún script en perl (pseudónimo que uso por un tiempo en Menéame).

ejkai

#21 creo que la expresión más habitual es "en claro" (en contraposición con guardarlas encriptadas).

maloconocido

#49 encriptadas cifradas cry

joffer

#2 a mí me va bien la verdad

neo1999

#14 A mí también, siempre desde navegador ya sea en el móvil o en el pc. No he probado la aplicación ni quiero.

Strafer

El operador nullsafe es amor ahora, ya si eso en una década o dos que se pueda usar sin temores de retrocompatibilidad...

D

Php en 2020?

maloconocido

#27 y más, con la de sitios que hay escritos en PHP... Wikipedia, WordPress, Facebook, Yahoo!, MailChimp, Tumblr...

Programé en PHP con drupal hace 10 años antes de pasarme a .net. No volvería nunca.

M

#63 Jajaja.

Waskachu

Todavía alguien programa usando esa mierda? Todos mis respetos; tu familia y yo te apoyamos.

I

#26 Dime ¿qué otra 'mierda' la tienes disponible en cualquier servidor de hosting de medio pelo y por medio duro e incluso gratis si de descuidas? PHP es fácil de mantener, fácil de desarrollar y fácil de desplegar.

1 2