Archivo de la etiqueta: php

Esta de moda odiar a PHP

A ver PHP no es el mejor invento de la humanidad, pero tampoco lo ha inventado Microsoft.

Pero esta de moda odiar a PHP. Y que os voy a decir si yo le tengo un poco de cariño, es como ese viejo amigo que tiene sus cosas pero que os lleváis bien.

Os voy a contar mi historia con PHP y porque le tengo cariño y no sigo la moda de odiarlo.

Os cuento corría los 2000, creo que los 2002, en aquellos tiempos ya tenía alguna página (mi vieja linuxtopower) personal hecha con html, iframes y demás aparataje de esas épocas…hay gente que siente vergüenza por sus pintas 15 o 20 años atrás, pero al igual que contados casos de «fashion influencers» no se nos iba a ocurrir hacer una web limpia y clara rollo google en su inicio (porque cada vez es más Yahoo) y menos aún pensar en diseño para smart phones si aún ni existían.

Pero claro os recuerdo que aquellas páginas personales, eran estáticas cuál foto fija en el tiempo (con gigs molona), la única manera de actualizarlas era por medio de ftp, en el mejor de los casos si tenía el webhosting gratuito…éramos jóvenes sin dinero y en el peor un panel web ftp cutre muy cutre…pero que eso si, facilitaba mucho la vida cuando querías cambiar algo en un pc de un instituto, Universidad o cyber que tuviera los puertos capados…porque era un lujo tener Internet en casa.

Las webs eran tan estáticas que la única forma de interactuar con los visitantes era tener el típico contador de visitas gratuito (de otro lado y que solía venir con su correspondientes scripts para soltar banners y popups). Y el otro medio era el típico también libro de visitas que te lo ofrecía o el webhosting o enganchabas con un iframe de otro lado…con si correspondientes anuncios.

¡Y llegó PHP! Pero eran otros tiempos, ahora te dan contenedores y máquinas virtuales de un cupón en las cajas de los cereales. Recuerdo el primer webhosting que daba soporte para PHP gratuito era un tal H2O o algo así.

Y con el PHP llegó la locura de PHPnuke o PostNuke barrocos CMS (¿Seguirán los proyectos vivos?) que todo dios instalaba, instalando todo para al final aprender que la tecnología no soluciona los problemas, porque ponías un PHPnuke de la comunidad heavy de tu pueblo y pasado los meses eso seguía siendo un desierto. Si, ahí descubres lo difícil que es mantener una comunidad.

En aquellos tiempos, si querías hacer una web «dinámica» tenías pocas opciones:

  • Perl, la web de barrapunto está hecha con Perl. Yo he trabajado con Perl y es un horror de lenguaje, con sus sigil que te vuelves loco para desreferenciar una variable dentro de una función. Creo que en aquellos tiempos no había webhostings gratuitos que dieran soporte a Perl.
  • Java, lo tuve que aprender por obligación en la universidad, otro crimen. Primero que el aquellos tiempos todavía Java no era libre (y ahora no lo se) que para hacer algo sencillo tenías que montar un pifostio bien gordo con los servlets y compilarlo. Y otro que no me oli si existió algún webhosting gratuito.
  • PHP, que pienso yo, creo que la killer feature de el fue lo de poder limitar el tiempo de ejecución, la memoria RAM y alguna cosa más, y es lo que hizo que centenares de webhostings gratuitos florecieran porque no era peligroso ofrecer PHP.

Después curre muchos años con PHP, disfrute mucho, y el mundo siguió dando vueltas.

Y en esas estamos ahora está de moda odiar PHP porque:

  • Ha habido mucho manazas que ha hecho guarradas dignas de pasar por juez de la Audiencia Nazional. Si alguna vez joven informático/a te ofrecen un currito fácil y mal pagado de una web en PHP hecha por muchas manos…¡¡Huyeeee!!…porque te encontrarás un servidor con código vomitado de una persona que comió mierda de otro que a su vez era de otro y otro y otro así hasta la versión 2 PHP.
  • Tampoco es que PHP lo haya hecho bien, famoso es el artículo PHP: a fractal of bad design . En eso Python lo hace bastante mejor con su desarrollo basado en el debate sobre los documentos PEP. Y es que, que le vamos a decir al otro hermano deforme, nuestro querido javascript.
  • Porque un desarrollador puro y que irradia luz y modernidad ahora pica el código en javascript o python o Go.
  • Porque un desarrollador consciente de su fatal destino en el matadero y vendido el kilo de carne barato…reiros pero hay pobres desgraciaditos que quieren vivir así de sometidos, pues estos como empresa sería e inútil llena de burrocracia pican código en Java o Microsoft .Net.

Pero PHP tiene mucha vida, hay proyectos muy gordos (y libres…que es lo importante) picados en el: Mediawiki, WordPress, Prestashop…y dicen que Facebook estaba picado en PHP (con inventos como compilador y tal).

Frikerio coleccionista de peluches del…Elefante de PHP

PHP es uno de los lenguajes de programación mas amados y odiados actuales (estoy desde hace tiempo escribiendo un articulo en mis viajes en metro al curro gracias a la app de Android para WordPress a ver si lo remato y os lo ofrezco).

Su mascota es un ElePHPante azul.

Y parece, a mi me da ternura que hay un tipo o tipa o IA que esta haciendo la colección de los peluches de la mascota azul, cual friki de StarWars buscando en un rastrillo en un pueblo perdido de Texas una figurita de Han Solo que salio con los pantalones morados y el pelo rojo por un fallo de la fabrica en los 1973.

La verdad es que no sabía que hubiera tantas versiones diferentes del elefante. Cada empresa ha sacado su versión cuando ha apostado por PHP, incluso los cabrones de Oracle en el 2008, falta uno de Micro$oft o Appl€ para rizar el rizo pero bueno.

Pero sin duda os dejo el link para que le echéis un vistazo.

A Field Guide to Elephpants

Cosas que odio de los lenguajes de programación

Nota: Llevo casi un año escribiendo de a poquito el articulo por el móvil y tal. Le he metido un empujón para que salga antes de terminar el año.

Ya son muchos años, soy un perro viejo en esto de picar código, posiblemente…tu lector puede que seas un tierno cachorrito lleno de ilusión…pero bueno ya te irás siendo un perro apaleado.

Dicen que «no hay bala de plata» a la hora de resolver un problema de programación, que cada lenguaje es bueno para una cosa, y creo que desde mis años perrunos opino que es cierto.

También dicen «cuando tienes un martillo entre manos, todo son clavos», y eso veo que le pasa a los cachorritos, por ejemplo ahora (cuando estoy escribiendo estas líneas) esta de moda el rollo de node Js y javascript, y los cachorritos lo quieren usar para todo.

Pero bueno viendo algunos lenguajes, os voy a relatar mis odios mas ocultos…o no tan ocultos:

  • Perl: lo odio casi completamente, aunque si tuviera que odiar algo particularmente, es los sigils, que son esos pequeños simbolitos que acompañan a las variables para diferenciarlas de palabras reservadas y tal, que en lenguajes como PHP son muy útiles, básicamente porque solo hay el $ y resalta visualmente donde están las variables y te la libertad de usar $return sin problemas por ejemplo. Pero Perl es un infierno de simbolitos, que unos hacen que la variable sea un puntero o un array o un hash. ¿Alguien tiene una chuleta o cheatsheet con lo que hace cada uno y como se puede volver atrás….porque pasa como con los punteros en C que se te pierde la variable…pero mas raro?
  • Javascript: todo lo he escrito en el futuro pasado en Sigo pensando que javascript apesta, resumen no hay sleep, y es multihilo pero no te deja manejarlos. Añado que se esta llenando de capas y capas de abstracción en plan como java.
  • PHP: lo quiero es un fiel compañero que me ha dado de comer muchos años, pero como buen amigo tiene sus pequeñas manías que le respetas pero están ahí. A ver no nos llevemos las manos a la cabeza, pero PHP fue un lenguaje de programación inventado a caballo que refleja un poco los problemas del caos ordenado de la gestión de proyectos de software libre, y no es un lenguaje muy estandarizado su idioma, como el español con los verbos irregulares que sabiamente los niños regularizan pero los castran para que siga siendo así el español. Hay un documento o paper (como dicen los modernitos) muy famoso sobre el caos ordenado que es,  PHP: a fractal of bad design. Quizá lo que a mi me molesta es que no tenga hilos (pero por lo menos no los tiene de verdad, no como javascript que te los niega),  que sea de tipado dinámico las variables que te da problemillas (que han resuelto en el 7 pero que lo están volviendo un poco C). Bueno si hay una cosa si que odio es la lista de parámetros por defecto en las funciones te vuelve loco cuando solo tienes que meter el último y tienes que mirar el código fuente la función para poner a mano los anteriores, python lo arreglo esto bastante bien.
  • Java: la eterna promesa, es como medio novia que te traiciona una y otra vez pero vuelves a sus brazos, mi ultima vez fue cuando comenzó Android, creía que esta vez si…pero no otra vez la traición…sigue siendo un lenguaje que primero tienen sobrecargado el operador + para strings pero tu no puedes, con capas de capas de abstracción para causar erecciones poderosas en teóricos de la programación pero que no se manchan las manos a diario. Es un cristo programar en Android y encima parece que programas como el viejo asqueroso m$-visual basic te salen la aplicación visualmente fea y cuadriculada con miles de lineas y cosas complejas como que no puedes acceder al valor seleccionado de una lista o combobox sino que necesitas otro objeto iterador. He visto lineas de 300 y pico caracteres para abrir una base de datos y no se perderán como lagrimas en la lluvia porque las cárnicas (consultoras) que venden carne de informático al peso siguen con proyectos de mierda en java con miles de capas.
  • Python: que no tenga un switch (perl tampoco lo tiene) y te hace llenar el código lineas y lineas de if – else – elif …hay gente lo pregunta en stackoverflow Replacements for switch statement in Python?, por lo demás mas o menos no tiene mucho problemas, salvo el tema de los tipos mutables y no mutables que es un poco lio pero no mucho. Y bueno que tampoco hay manera de definir variables estáticas dentro de una función…que también lo comentan por stackoverflow What is the Python equivalent of static variables inside a function? . Parece que este lenguaje de programación ha sido tocado por el dedo de dios, me tengo que poner seriamente con django porque puede ser una alternativa a mi querido PHP.
  • C#: otro que odio del todo porque es un producto comercial de micro$oft que lo venden como un lenguaje de programación y es un feto mal parido hijo de m$ visual basic (si lo has sufrido veras que tiene mucha mierda parecida). Pero por desgracia se esta poniendo de moda gracias a Unity3D y parece que la siguiente versión de Godot va a incluirlo en su hermano gemelo libre Mono así que habrá que empezar a aceptarlo.
  • Resto: o ya no se usan o son tan producto comerciales que no merece gastar caracteres en este texto. Y C, ASM es como las matemáticas hay que aprenderlo y respetarlo por ser old school…C++ pues tampoco me pegado mucho para odiarlo.

Hay un wiki que también trata nuestros odios en los lenguajes de programación: YourLanguageSucks

Y vuestros odios sobre lenguajes de programación cuales son…comentad…confesar…calmad vuestra alma.

Intentando aprender un framework de PHP

Siempre he picado el PHP a mano desde cero (bueno tengo un par de ficheros de funciones que he ido llenando con los años).

Y siempre he querido interiorizar el famoso MVC, porque niños programar no consiste en aprender cosas, si no en interiorizarlas y hacerlas parte de tu ser para que sea tan natural hacerlas que no tengas que pensar «¿Qué necesito para hacer esto?».

Se que ahora esta de moda llevar el javascript al server, pero creo que todavía le falta adaptarse a la realidad de que no todos somos unos millonetis que tenemos 100 máquinas virtuales en amazon, que vivimos y disfrutamos de cosas limitadas como servidores compartidos web, y creo que NodeJS todavía no ha dado el paso para una ejecución en esos entornos limitaditos.

Pero con los años siempre mas o menos intento algún framework, siempre pensé que Symfony2 era el elegido, es el mas habla gente, hay curro y tal…pero después de darme varios cabezazos con el, creo que es demasiado javero que se complica para muchas cosas innecesariamente. Además te pide tener fuera del directorio www parte de la web, con lo que si estas en un servidor web muy simplón olvidate.

Después probé a aprender (e interiorizar) FuelPHP, es un framework mas o menos jovenzuelo, no es muy javero, pero tiene el problema NodeJS, que va de guay por la vida y no entienden que PHP solo son ficheros, mola eso de tener una herramienta llamada Oil que te hace de todo, pero que te pida necesariamente el puñetero Oil para todo, eso si es un problema porque ya te hace la puñeta a la gente que tenemos servidores poco accesibles y no tenemos un ssh…en mi caso por suerte tengo ssh pero me imagino el típico currillo de cuñado o amigo informático de «hazme una web chula chula en este servidor de mierda» y que haces si necesitas el oil para desplegar la web y tal.

Por eso ya por descartar, empecé con otro vieja escuela de los frameworks de PHP, el famoso CakePHP. Y la verdad es que lo veo poco javero, y cierto es que tiene una herramienta de terminal para como los otros dos, que en este caso se llama bake, pero no da muchos problemas, además parece mucho mas fácil de aprender que symfony. Y sobre todo no olvidan que una página PHP es un directorio mas o menos lleno de ficheros PHP, este no te pide cosas raras de tener un directorio para el framework fuera del www, y viene todo dentro del directorio de tu proyecto, a parte no esta perdido todo por miles de carpetas como symphony, lo tuyo, tu código lo tienes en el directorio src.

Y hasta aquí puedo leer, porque estoy en plena asimilación como los borgs.