Durante los 26 años de historia de PHP, el lenguaje ha sido desarrollado activamente por una gran cantidad de personas, tales como Ramsus Lerdorf, Zeev Suraski, Andi Gutmans, Nikita Popov y mucho muchos otros. En 2021, PHP está preparado para otra vuelta en su evolución.
|
etiquetas: php , fundación , nikita popov
Hoy en día PHP está muy bien, pero siempre depende del desarrollador el como lo utilice, igual pasa con otros lenguajes. Pero obviamente PHP es para desarrollo web, no mucho más.
¿Tu uso habitual es Inteligencia Artificial? Python (principalmente)
¿Desarrollo Web? PHP, Javascript (TypeScript)
¿App móviles? Java
Y luego tienes Go, Rust, y un sin fin.
Ah, y por favor, no empecemos un flame war, por favor, que os veo.
Para inteligencia artificial siempre he creído que lo ideal eran lenguajes declarativos como LISP o ML.
PHP ha ganado mucho en los últimos años (después del desastroso intento de PHP 6), con PHP 7.x y PHP 8.0 la velocidad y la actualización de muchos conceptos de programación lo hacen un lenguaje perfectamente válido para ese concepto difuso que el es el desarrollo web.
El curso que hice de IA solo usamos Python y no recuerdo que hayan mencionado ningún otro lenguaje, así que
Hoy en día PHP está muy bien, pero siempre depende del desarrollador el como lo utilice, igual pasa con otros lenguajes. Pero obviamente PHP es para desarrollo web, no mucho más.
Te veo un poco desfasado.
Es más si la usas para IA, puede ser útil también usarlo en la web. Así reduces el número de lenguajes.
Y ya que estamos, ¿por qué hay gente que migra PHP a Go o nodeJS?
¿A qué lenguajes dices que migran su "stack"?
Backend: Node.js (Javascript o Typescript), Spring Boot (Java), .Net (C#).
Frontend: Angular (Typescript), React (Javascript y TS también), VUE (Javascript)
Yo soy front con Angular y por ejemplo en bancos como el BBVA o Inversis el Back está en Java con Spring, en Gestamp por ejemplo se tiende hacia .Net aunque también hay cosas en Java incluso Python.
Como dato curioso en Front React es muy popular en el mundo más que Angular, pero en España creo que este último es más popular sobre todo en grandes corporaciones.
- inconsistencia en la nomenclatura de algunos métodos antiguos (que van desapareciendo poco a poco, por suerte)
- la guarrada que permite mezclar HTML y PHP en un mismo archivo...
- el símbolo de dólar para denotar variables.. , de eso no creo que se vaya a librar nunca.
Y en cuanto a "debilidades", el caso más claro es el mal soporte para ejecución concurrente de código (y esto incluye tanto hilos, como programación asíncrona), pero es algo que parece estar a la vuelta de la esquina, la introducción de PHP 7.x hace años, y más recientemente 8.x ha allanado el camino para introducir mejoras que resuelvan estos problemas.
Respecto a IA... depende de lo que estés haciendo, supongo que te refieres a IA "clásica".
Yo para grandes proyectos usaría Typescript que al final es JS.
Y ya que estamos, ¿por qué hay gente que migra PHP a Go o nodeJS? <-- Habrá que preguntárselo a ellos
El ejemplo más claro es packaging y distribución: Aquí Python apesta por todo lo alto (se pueden escribir miles de líneas sobre ello), y no proveen ni siquiera features básicas como "espacios de nombres" para la distribución de paquetes (ya ni hablemos de firmado), con lo que ataques como typosquatting son exageradamente sencillos de practicar. Esto se resolvió en PHP hace ya muchos, muchos años.
Se pueden hacer proyectos muy muy profesionales y con un altísimo rendimiento tanto en la 7.4 como en la 8.
Lo demás, para los haters.
P.D.: Si quereis os puedo hablar de mi libro.
- mejor soporte para programación asíncrona
- en el caso específico de Go, mayor rendimiento. (No aplica tanto para NodeJS, o al menos ya no, antes sí podía ser un factor).
- En los bootcamps ya casi no se enseña PHP, sino JS+TS, porque permite formar a desarrolladores "fullstack", así que si quieres contratar a programadores recién salidos del horno y con sueldos bajos... te sale más a cuenta que tu stack se base en NodeJS (eso no aplica a Go).
Python muchas veces no se contempla como opción porque... es JODIDAMENTE LENTO, y su ecosistema de paquetes es un maldito desastre (nota: mucha gente no lo ve como un desastre porque o bien no han podido comparar con nada más, o bien no han hecho nada mínimamente complejo que toque aspectos como distribución de software). Que sí, por lo general, si no se hacen virguerías, es suficiente, pero los ecosistemas de NodeJS y el de PHP son mucho más maduros si se trabaja en web.
Golang por potencia, es un c 'family friendly'
No es la peor de las opciones, pero es que para usar PHP usas Python. La gran ventaja de PHP es que los programadores de la empresa tengan el conocimiento.
#9 Yo no he conseguido ver a nadie, de verdad "difuminar" la línea entre back y front.
Sí, puedes usar el mismo lenguaje, pero al final muy poquitas cosas se aprovechan en front y en back, poquito código reutilizas.
La idea es esa, claro. Lo he visto con en Kotlin. Empresas que, aprovechando que el desarrollo android es en kotlin y que kotlin transcompila a JS, lo usan en todos lados. Al final no sé si les ha salido rentable no usar una opción más segura como JS o TS, pero sí que sé que no han aprovechado "las ventajas" que teóricamente tendría a la hora de ahorrar código.
Ahora que me acuerdo también lo vi con JS. Pero aquí les salió regular como a todo el mundo que ha intentado hacer apps android e ios con cualquier sistema "global". Al final se ven lanzando PR y arreglando nativescript.
Ahora microsoft ha sacado la evolución de Xamarin, la presentaron la semana pasada. Otro """fracaso""" de "unir tecnologías", ya que en iOS funciona decentemente pero va muy mal con versiones antiguas android.
perdón por el tocho
Python es un lenguaje de script, para usar encapsulado. Dentro de un software de cálculo, de animación, de un erp, etc. No para hacer un proyecto desde 0.
No lo veo. Los costes de mantenimiento o de ejecutar el proyecto con calidad son muy elevados a el uso de otras tecnologías, por no hablar del rendimiento.
Python está de moda pq tensor Flow usa python, pq odoo usa python, y si un sinfín de entornos que requieren scripting, pero ni de coña lo saques de ahí, eso es de pobres.
Añade ruido visual innecesario (el resaltado de sintaxis es más que suficiente para saber que un identificador corresponde a una variable, no hacen falta símbolos extra) que sólo parece gustar a una minoría muy pequeña, y además impone ciertas limitaciones arbitrarias a la hora de hacer evolucionar el lenguaje.
Aparte de eso... un minuto de silencio por el doble dólar: $$var , una de las features más problemáticas de PHP, que pueden resultar interesantes para novatos, pero que cualquiera con un mínimo de experiencia aprende a meter en la categoría de "ni con un palo de 15 metros de longitud".
Desde luego no es para hacerte un backend. Si usas python para un proyecto grande, fuera de un entorno que te lo controle (odoo, por ejemplo) es que no entiendiste la película.
* github.com/eusonlito/crypto - Plataforma de gestion de cryptos.
* github.com/eusonlito/Password-Manager - Gestor de contraseñas web.
Alguien ha hablado de jsx (o tsx) para mezclar javascript y html (o typescrypt y html).
Lo invento Facebook y lo peor que antes lo intento con PHP que existe (pero no se usa por suerte) en.wikipedia.org/wiki/XHP
Yo sigo haciendo apps para móviles usando Ionic, si necesito ya funcionalidades del móvil procuro hacerlas de forma nativa, en Java, mira por dónde, ya que es el lenguaje que se usa para móviles Android. Lo veo más práctico que dejarme llevar por "modas".
De hecho, Kothlin ni me he molestado en aprenderlo.
$result = ${(new $a())->{$b}()}
Una auténtica maravilla de la ingeniería, y todo por no saber instanciar objetos o usar herencias, porque resolvía un problema muy típico de clases que especializan una clase padre, vamos, algo que se resuelve con una factoría o similar, pero ese artista de cuyo nombre no quiero acordarme decidió que era mejor esa línea infecta de código
Flutter es una cosa de estas a medio camino entre lo hibrido/multiplataforma y lo nativo... no tengo claro cómo funcionan las tripas, pero es uno de esos lenguajes que nacen en plan "un anillo para gobernarlos a todos". Tengo ganas de probarlo.
PD ¿ionic con capacitor o sigues en cordova?
Bienvenido al mundo actual donde lo que hoy vale, mañana no, y por supuesto no va por funcionalidades / capacidades del lenguaje sino por moda y marketing de la empresa que mas invierta en publicidad de su lenguaje / API / entorno de desarrollo.
"si necesito ya funcionalidades del móvil procuro hacerlas de forma nativa, en Java". Yo diria que aunque Android es el sistema operativo basado en Java, hablar de funcionalidades nativas en Java es mucho decir. Yo diria funcionalidades de Android, mas que nativas. Lo más nativo seria ensamblador y en su defecto C y C++ que si te dan acceso nativo al hardware. Android/Java si o si necesitan de C/C++/Ensamblador por debajo para acceder al hardware, pero como basicamente todo en la informatica. Los lenguajes modernos en su mayoria son todo moda, y basicamente capas y capas encima de maquinas virtuales que por debajo usan C/C++ y Ensamblador para acceder al sistema operativo y el hardware.
Ojo: Me parece genial que compartas el código y ambos proyectos tienen buena pinta en general, pero si te metes en un sitio como menéame a vender la calidad profesional de los mismos... no me he podido aguantar
Y así con todo, no tengo claro que esté maduro de verdad, sigue con cordova
Su uso en backend "solo" se justifica para aplicaciones móviles.
El estandar actual para escribir apps nativas es Kotlin para Android y Swift para iOS.
Para mí es la primer opción para el fullstack, aunque entiendo que si tienes que hacer una API pura puedas preferir go o rust, si te importa más la eficiencia que el tiempo de desarrollo, pero a la larga si hay posibilidad de tener que compartir librerías con el front, usar javascript es una ventaja.
Esos espacios de nombres tienen "dueños", por lo que nadie puede publicar paquetes dentro de los espacios de nombres que tú controlas. Eso dificulta mucho que nadie cree paquetes malignos con nombres parecidos, es mucho más fácil de identificar visualmente.
Todos se nutren entre sí, por ejemplo php ha metido recientemente funciones flecha (cogidas de typescript) y cosas así. Pero al final el ecosistema, la enorme cantidad de proyectos y de información que hay en php, la curva de aprendizaje... y sobretodo dos cosas: la flexibilidad que tiene este lenguaje y el rendimiento (que también van mejorando cada versión, vuela con pocos recursos) lo hacen un lenguaje muy muy bueno en mi opinión.
Pues no te dejes C++ como si se te hubiera olvidado. Aquí huele a javato.
Tal vez sea así en España, en el extranjero por dónde me he movido se referían a gente técnicamente buena y que no vendiese humo. Nada que ver con las ideas que tenéis
#54 en concreto hablo de gente que pueden perfectamente contratar por ~80k
La migración del stack por lo que he visto suele ser a microservicios, a elección del equipo o rama de ingeniería, pero vamos golang, algún sabor de Java, nodejs, python..
Si PHP, ha dejado de ser tan relevante unos años, habrá impactado en la cantidad de gente haya decidido usarlo
Luego tienes la problemática de que para correrlo en Docker es un desperdicio puesto que o corres dos dockers separados, uno con nginx y otro con php-fpm lo cual tienes sus problemas de seguridad, o corres los dos procesos en el mismo docker lo cual aumenta la complejidad de la gestión del ciclo de vida y la respuesta a errores. Y no, php-pm no es una solución porque tiene problemas graves de memoria.
1000 por decir algo, pero vamos, que todo lo que se salga de un miniscript tiene que respetar MVC (o arder en el infierno)