Como muchos, aprendí a desarrollar software en la escuela. Bueno, más bien aprendí logica computacional y solución de problemas implementando algoritmos, todo lo necesario para ser un buen programador en 1980 –El problema es que la fecha era 1997–. Entre 1998 y 2000 tuve un lapso de enamoramiento fútil con VisualBasic. Tengo que admitir que era hermoso poder hacer aplicaciones que corrieran en Windoooows –Léase la palabra con emoción–. Todos los días era como navidad.
Sin embargo no fue si no hasta el año 2000 que empece a desarrollar en una forma sería –Mi primer trabajo como desarrollador–. Usando la primera versión de C# como lenguaje de programación en la plataforma .Net con WebForms –Si, lo se. No hay mucho de que sentirse orgulloso. ¡Hoy!–
¿Y que tiene que ver mi pasado vergonzoso con este artículo?
Bueno, quiero establecer una base para que se note que no estoy hablando de este tema a la ligera. Tampoco estoy juzgando a nadie –¡Así que relaja la raja!–. Solo expreso mi opinión sincera, y una retrospectiva sobre los jucios a priori que en mi juventud realice.
Algo de humor gráfico que leí en Over-Caffinated–Un comic de desarrolladores, abandonado– donde un programador se presentaba con otro puede ser apropiado.
Programador 1: Oye ¿A que me dijiste que te dedicas?
Programador 2: Hago todas las subrutinas a bajo nivel para la empresa.
Programador 1: Ahhhh, entonces usas VisualBasic y así ¿No?
Programador 2: PLOP!
Después de aceptar C# como el único y verdadero lenguaje de programación, capaz de redistribuir el poder en el planeta a su antojo –Que al menos, así es como lo veía yo– VisualBasic parecía un juguete para niños de primaria.
Naturalmente, era de esperarse empezar a tratar de lanzar desarrollos propios independientes a los de la empresa en ramos completamente diferentes. Es decir, si yo poseía las armas de los Dioses –otra referencia a como veía C#–. Era obvio que podia usarlas para conquistar el mundo.
Sin embargo, los servidores en 2001, no eran tan baratos como lo son hoy –Especialmente no con esos precios de licencia de Windows 2000 Server–. Es decir, Internet corría HTML plano en su mayoría en nuestro país. Google era un proyecto buena onda de unos chavos que no eran aun los dueños del mundo y toda su información –Si también son dueños de este post, y de tu cuenta de email–.
Entonces, si lo que estaba haciendo era Internet, quizá valdría la pena voltear a las herramientas Open Source –Que para mi ese tema aun era más bien Tabú– Así es como un muchacho de 20 años acostumbrado a usar un IDE y un lenguaje de programación que compila se acerca a PHP por primera vez.
El resultado fue desatroso. No podía creer lo inconveniente que resutaba desarrollar software en un leguaje como este. Tenia ganas de llorar y maldecir –Pero mejor salí con mis amigos a tomar una cerveza y burlarme del lenguaje–.
Si Visual Basic era como un juquete para niños, al menos se equipararía con un Atari. Para mi visión de los lenguajes de programación y para mi entendimiento más bien limitado –como codificador sin curisiodad–. PHP era como un balero, un yoyo. Algo con lo que juegas 2 minutos, te aburres y prendes el Atari.
Y así era entonces…
Cambio a Mac. 8 y 14 años después
En 2008, uno de mis mejores amigos de toda la vida. @cesarreyesa me convencio de comprar un equipo Apple. El cambio de paradigma era increible. Todo funcionaba mejor, no existian los virus, instalar y desinstalar cosas era algo tan sencillo, que empece a pensar que habia desperdiciado por lo menos 5 años de mi vida –Considerando que Mac OS X se lanzo en el 2002–.
Mac tenía una pequeña desventaja. No corría .Net –¡Y no! Mono aquí aun no contaba como plataforma–, toda mi capacidad de desarrollar código se habia ido a la basura. Decidí que ya era hora de abrazar los cambios y que podía lograr cambiar de IIS a Apache y seleccionar un lenguaje de programación que no fuera demasiado estúpido.
PHP estaba eliminado de mi lista, aun lo consideraba un juguete idiota. Pero empece a hacer más y más investigación al respecto y me encontre con Symfony 1, CakePHP y otros Frameworks de programación, una versión nueva del lenguaje de programación que ya usaba clases –A decir verdad es así desde el 3.0 pero los libros de referencia en México eran muy malos y las fuentes en Internet no eran confiables–. Así que decidí empezar a experimentar con ello.
Mi nuevo reomance con PHP y Symfony no llego muy lejos, seguí desarrollando en .Net y creando cosas más rápido en C# que era lo que conocia –También debido a mi entonces aberrante necesidad de programar en la base de datos–. Pero algo cambio, ya no consideraba a PHP como un lenguaje tonto o tan limitado.
12 meses más tarde y después de una serie de eventos más bien fortuitos, en los que mi capacidad de controlar la situaciones decreció –Eso y que la economía del mundo se fue al caño–. Empece a trabajar en una empresa donde mi capacidad para desarrollar software era requerida y también demandada. Comencé a trabajar muy fuerte con WordPress debido a que lo usabamos como CMS en muchos de nuestro clientes.
Empece a tomar decisiones en como manejar las instancias y servicios, migrando todo de servidores dedicados a VPS debido a la escalabilidad que prometen –Esto es antes de la fiebre de la nube–. También a tener otra vez mucho contacto con PHP. Retome mi romance con Symfony para desarrollar APIs y servicios web. Teniamos que tener la capacidad de implementar rápido y crecer en forma sostenible.
Era una cosa de locura. Lo ame. El lenguaje, la plataforma, el control. Pero sobre todo el conocimiento y la capacidad de aprender más sobre el lenguaje a través de ver el código fuente del framework –Open Source–.
Empece a jugar con lenguajes de programación como Ruby. Y durante un tiempo estuve trabajando con Groovy, Spring e Hibernate también. Esto era emocionante. Todos estos lenguajes de programación en mi Macbook Black. La capacidad de desarrollar código era más y más emocionante. Creo que durante esta etapa, no concluimos ningún proyecto al 100%. Pero que divertido era jugar a programar –Aun lo es algunas veces–.
Después de estos años puedo decir que me he enamorado de formas de desarrollo de software interesantes y practicas. De Spring me quedo con algunas cosas como IoC –Disponible para PHP con Laravel–. De Groovy y Ruby closures, iterators y su versatilidad.
¿Por que este es un tiempo emocionante para ser desarrollador en PHP?
Quizá piensas que me he tardado demasiado en hacer este punto, sin embargo creo que es valido considerar que mi entendimiento actual de PHP y mi recomendación como lenguaje de programación esta basada en mi experiencia con otros lenguajes y frameworks.
Frameworks, podemos hablar de frameworks. Como Symfony 2, y como rompio el paradigma de su predecesor convirtiéndose en un grupo de librerías que puede actuar como un framework si así lo deseas; o puedes implementarlos a discreción –Aun me cuesta trabajo adaptarme al modelo mental pero amo Doctrine con todo mi corazón–. De donde salen proyectos como Doctrine, Twig y más cosas hermosas que provienen del genio de Sensio Labs y Fabien Potencier.
Podemos hablar de Laravel y su forma majestuosa de implementar IoC –Pormeto escribir más sobre Inversion Of Control después–. De Slim y su enfoque mínimo. Podemos hablar de clasicos reimaginados –Bueno, casi– como Yii, CakePHP y otros.
Pero no es por ahí donde la emoción viene. La emoción viene de las manos de una empresa que desarrolla la plataforma donde tu y yo pasamos más de 4 horas a la semana. Esa plataforma que visitas todos los días y donde todos tus amigos saben que estás haciendo.
Enter Facebook
Justamente en 2008, fue cuando me suscribí a Facebook y Twitter. Era un momento importante en la industria de las redes sociales, todos estabamos tratando de saber donde estaba el modelo de negocio y como nos podiamos hacer millonarios o controllar el mundo con estas plataformas –Al menos yo lo hacia–.
Pero Facebook es más que una plataforma que tiene la capacidad de reducir la productividad de cualquier empleado de 80 a 0 en menos de 5 minutos. Facebook también es un grupo de ingenieros –Hackers– muy talentosos, con un alto entendimiento de sistemas operativos, lenguajes de programación, servidores, phi, pi, astrofísica, los enigmas del universo, etc, etc.
PHP es un lenguaje de programación que en mi libro tiene 8 de 10. Y eso es por que yo prefiero los lenguajes con más de un tipo de dato. Sin embargo saber llevar bien sus deficiencias. La comunidad de PHP en Internet es enorme y continua creciendo.
Y sin embargo, ¿Sabias que Facebook –el sitio más grande del mundo– esta escrito en PHP?
–PHP y otros Goodies–
Quiza lo más interesante tenia que venir del sitio web más grande del mundo, debido a que ellos son altamente dependientes del lenguaje. Cuentan con personal altamente capacitado y con la necesidad de obtener los mejores resultados y ser capaces de escalar a nuevas alturas.
Lenguaje Hack
Es un lenguaje de programación basado en PHP –Con más de un tipo de datos o Strongly Typed– Es decir, no puedes usar un entero como una cadena sin especificamente convertir el tipo.
Pero bueno un poco de código para explicar esto mejor.
Hack es PHP en esteroides… Es como si PHP y Ruby hubiesen tenido una noche loca de pasión y Hack es el resultado glorioso de esa unión –Ok, No! Hack no es PHP+Ruby es mucho más–.
También esta el HHVM que nos permite precompilar PHP y Hack.
¡PUUM!
–Es el sonido que hicieron tus panties cuando golpearon el suelo. Lo se, a mi me paso también
Con la controversia de PHP 6 y PHP 7. La increible cantidad de desarrolladores profesionales que están trabajando en el lenguaje para implementar frameworks que llevan a PHP a competir nariz con nariz con los Frameworks que los «chichos cool” están usando, así como sus citas a ciegas en lugares románticos con Nginx, Lighthttp y otros 2 caballeros de los servidores.
PHP se esta convirtiendo en la chica más guapa de la fiesta. Y si Quieres más razones para usar PHP por que prefieres Windows y IIS. Bueno, ahí tienes la integración de .Net con el lenguaje.
¿A donde ir después de leer este artículo?
¡Esperate! Antes de que te vayas, dale compartir –Bueno si te gusto, si no, pues no y ya 😀 – Ahora que ya le diste compartir, te presento los vínculos a lugares en la web que debes visitar para hurgar en tu curiosidad de desarrollador-estrella.
- Hacklang.org
- hhvm.com
- Slim Framework
- Symfony Framework
- Laravel Framewrok
- Twig
- Cake PHP *
- Yii *
- Groovy
- Spring Framework
- Ruby –En Español–
- Rails
- Sinatra