JavaScript: ¿Es profundo el objetivo correcto?
Estoy muy emocionado de ser parte deCampamento de palabras en MiamiEl tema “Aprendiendo JavaScript en profundidad” de ‘s. Sin embargo, el hecho de que cinco de las siete charlas sean sobre marcos de JavaScript refleja una reacción preocupante que veo ante el llamado de Matt Mullenweg a los desarrolladores de WordPress para que “aprendan JavaScript en profundidad”.
Los frameworks de JavaScript como Backbone, que es el que utiliza WordPress, son excelentes formas de simplificar tareas complejas de JavaScript. Pero sería una tontería pensar que aprender un framework MVC de JavaScript es aprender JavaScript en profundidad.
JavaScript: ¿Es profundo el objetivo correcto?
No me malinterpreten, estoy dando dos charlas sobre AngularJS porque creo que Angular es un framework de JavaScript simple que produce excelentes resultados. Definitivamente no soy un desarrollador avanzado de JavaScript. Soy mucho mejor con PHP y AngularJS me brinda una manera de crear rápidamente buenas aplicaciones del lado del cliente que adoptan principios de diseño que tienen sentido para mí.
Conozco los fundamentos de JavaScript, así que cuando digo que AngularJS es simple o fácil, sé que eso es un poco chovinista. Si bien no tengo una formación en informática (de hecho, mi formación académica es en estudios ambientales), he dedicado tiempo a comprender los patrones y principios básicos del desarrollo de software y cómo se aplican a PHP.
Si asistes a mi charla de introducción a AngularJS en WordCamp Miami sin haber aprendido nada sobre JavaScript o diseño de software en general, no podrás seguirla.
La primera vez que intenté aprender Angular fue un desastre. En ese momento, no entendía del todo los cierres de JavaScript y en qué se diferenciaba el desarrollo orientado a objetos de JavaScript de PHP. Además, nunca había experimentado con el patrón MVC antes.
No me malinterpreten, estoy muy entusiasmado con el programa de JavaScript en WordCamp Miami. Espero que muchas personas asistan a las sesiones, encuentren el marco que les resulte útil y creen cosas increíbles con él y la API REST de WordPress.
Backbone, AngularJS, Ember y React, por ejemplo, son formas “fáciles” de comenzar a desarrollar aplicaciones del lado del cliente con JavaScript impulsado por API; sin embargo, no estoy convencido de que conduzcan directamente a una comprensión profunda de JavaScript.
Más fácil es bueno
En realidad, fue bastante divertido escuchar a Matt Mullenweg hablar sobre aprender JavaScript en profundidad cuando su equipo usó React para facilitar el rediseño del administrador de WordPress.com (no es que haya nada malo en eso).
Me gusta lo fácil. Soy desarrollador de WordPress. Tengo una carrera porque WordPress es una forma sencilla de empezar con el desarrollo PHP. Puedo trabajar con JavaScript porque jQuery (una forma sencilla de empezar con el desarrollo JavaScript) fue todo lo que necesité en términos de JavaScript durante años para hacer mi trabajo.
Estas herramientas de desarrollo relativamente fáciles (aunque no lo eran tanto cuando empecé) me permitieron aprender a usar algo como AngularJS muy rápidamente cuando lo necesitaba. Si dejas un comentario en esta publicación, verás que el comentario aparece en la página sin necesidad de actualizarla. Si otra persona deja un comentario mientras tienes esta página abierta, aparecerá en la pantalla en 15 segundos.
Me gusta pensar que eso es genial. Tal vez soy parcial porque escribí la mayor parte del complemento, que se llama Epoch y es posible gracias a Postmatic, que lo hace posible. Escribí la parte del lado del cliente de ese complemento en jQuery y JavaScript simple.
Funciona, pero requiere mucho PHP personalizado para crear la API y formatear los datos según sea necesario. Al momento de escribir este artículo, estoy reescribiendo Epoch para usar la API REST de WordPress en lugar de mi API personalizada, y también estoy usando AngularJS.
Estoy bastante seguro de que el resultado final será mucho mejor y más rápido. Definitivamente será más simple y más limpio. Si bien el código JavaScript que escribí para la versión 1 de Epoch no utiliza un marco MVC de JavaScript sofisticado y con el tiempo se volvió un poco complicado con las correcciones de errores, aun así aprendí mucho sobre JavaScript al escribirlo.
Aprendí muchas cosas sobre los fundamentos de JavaScript y la manipulación del DOM que Angular me habría ocultado detrás de toda su magia.
Si WordPress realmente está entrando en una era de interfaces impulsadas por API, herramientas como Angular y Backbone lo harán aún más fácil.
Mantengámonos al margen de las guerras marco
Aun así, el enfoque en los marcos me asusta. Esto no se debe solo a que me parezca absurdo el debate de que “mi marco es mejor que el tuyo”.
Me preocupa que esto esté reforzando la idea de que WordPress es todo acerca de JavaScript o que lo será en un futuro cercano. Gran parte de esto tiene que ver con que WordPress.com ha abierto el código fuente de las mejoras de la interfaz de administración que han implementado en los últimos dos años. Pero, como desarrolladores de WordPress, deberíamos poder entender que las noticias sobre Automattic no tienen que ver con WordPress como software.
El enfoque en mejorar la interfaz visual es importante para modernizar WordPress, y los frameworks MVC de JavaScript son una parte importante de eso. Pero WordPress es una aplicación PHP del lado del servidor. Sí, se podría hacer algo como que WordPress es node.Js, pero eso no es lo que hace WordPress y no es lo que hizo Automattic con Calypso.
Aprenda PHP en profundidad
Si eres un desarrollador de WordPress, dado que estamos en la era de la interfaz JavaScript basada en API, entonces debes comprender que tus habilidades en PHP son más importantes que nunca. La interfaz JavaScript necesita una aplicación sólida del lado del servidor, la mayoría de las veces elijo WordPress, algunas colecciones de complementos y otros componentes, todo escrito en PHP.
En este momento, muchos elementos básicos de WordPress y los complementos más populares de WordPress no se escribieron de una manera que se pueda adaptar fácilmente para integrarlos en los puntos finales de la API REST. Cambiar eso requerirá mucho trabajo. Trabajo que se escribirá en PHP.
En el futuro, el núcleo de WordPress, así como nuestros complementos y tal vez nuestros temas, tendrán que hacer un mejor trabajo de desacoplamiento de la lógica y el CRUD de la visualización. Los mismos sistemas de bajo nivel deberán servir tanto a las interfaces de administración y temas tradicionales de WordPress como a los puntos finales de la API REST.
Los nuevos complementos tienen una ventaja en este aspecto, pero se requiere disciplina y más trabajo para crear un complemento que cumpla con los requisitos que mencioné anteriormente. Adaptar un complemento más antiguo para cumplir con estas exigencias sin romper la compatibilidad con versiones anteriores es más complicado.
Si eres un desarrollador de WordPress entusiasmado con el futuro de WordPress impulsado por interfaces JavaScript basadas en API, entonces deberías aprender más sobre JavaScript. Y sí, elegir un marco de JavaScript para aprender (recomiendo AngularJS) te ayudará a iniciarte en el desarrollo de JavaScript. Lo más importante es que debes desafiarte a ti mismo para escribir mejor PHP y desarrollar un fuerte respeto por la separación de preocupaciones y el principio de responsabilidad única.
Deja una respuesta