Frameworks, lenguajes de programación: Codificar desde cero frente a usar un framework
Para refrescar un poco las diferencias entre estos dos términos: un lenguaje de programación es esencialmente la forma en que nos comunicamos con los ordenadores y les decimos qué hacer mediante el uso de la sintaxis y la semántica.
Un marco de trabajo, por otro lado, es una colección de programas reunidos para llevar a cabo una tarea, hacer la codificación más eficiente y, en general, hacer la vida de los codificadores más fácil.
Ahora los dos no son exactamente opuestos entre sí, pero hay un debate en curso en la comunidad de programación en cuanto a lo que es más importante para los codificadores para estar más familiarizado con: Los lenguajes de programación (las tuercas y los tornillos) o los frameworks (más rápidos y, a veces, más funcionales).
Algunos de los frameworks más populares de los que habrás oído hablar son Ruby on Rails y Angular.JS, entre otros. Pero tanto los lenguajes de programación como los frameworks que los acompañan siguen subiendo y bajando cada día.
Entonces, ¿qué significa esto para ti?
Helen Beal (DevOps Institute.)
Sheen Brisals (The LEGO Group)
MLOPS: ENTREGA CONTINUA DE SISTEMAS DE APRENDIZAJE MÁQUINA
Hauke Brammer (finpair GmbH)
Frameworks vs. soluciones personalizadas
En un mundo perfecto, sabrías todo lo que hay que saber tanto de los frameworks como de los lenguajes. Pero no vivimos en un mundo perfecto y tu tiempo es muy valioso.
Veamos las diferencias entre ambas opciones y por qué es más probable que te beneficies de un amplio conocimiento de los frameworks frente a conocer a fondo todos los entresijos del lenguaje de programación.
Construir desde cero
El desarrollo no es fácil, así que ¿por qué complicarse las cosas?
Es una ecuación bastante simple, en su nivel más fundamental: ¿Por qué empezar desde cero cuando puedes aprovechar las herramientas ya diseñadas para ayudarte en tus esfuerzos de programación?
La cuestión es que muchos frameworks han hecho gran parte del trabajo por ti y pueden crear una experiencia más eficiente en tu extremo.
Seguro, puede que no estés totalmente de acuerdo con cada decisión que el creador del framework tomó. Incluso puede ser capaz de hacerlo mejor si transfiere el lenguaje a su sintaxis de codificación preferida. Pero todo esto tiene un costo de tiempo.
Transferir todo a su lenguaje de elección podría tomar días y posiblemente incluso años, dependiendo de lo vasto que es el marco o lo que es exactamente lo que está buscando copiar.
Puede que no consigas todo lo que buscas del framework, o al menos, no exactamente como lo preferirías, pero la alternativa es empezar de cero, y eso no es realmente viable teniendo en cuenta las limitaciones de tiempo que se nos impone por el mero hecho de ser mortales y no tener una cantidad indefinida de tiempo para juguetear con todo para que sea exactamente como queremos.
SEE TAMBIÉN: Tendencias tecnológicas 2017: Estos son los mejores frameworks
Los frameworks simplifican las cosas
Aquí tienes un vistazo bastante práctico a todas las formas en las que Ruby on Rails ayuda a los usuarios a reducir algunas de las minucias de interminables horas de codificación.
Pequeñas cosas como la eliminación de puntos y comas y otros pequeños trucos ingeniosos permiten a los programadores cortar algunas esquinas aquí y allá y no ser penalizados.
Por supuesto, todavía se necesita un conocimiento bastante completo de Ruby con el fin de trabajar en Rails, pero al final del día, no es necesario ser un programador experto en Ruby para pasar a Rails.
Sigues codificando, pero un montón de pequeños detalles y aspectos más frustrantes de la codificación se limpiarán gracias a los buenos frameworks, y eso es un plus que no querrás perderte.
Ya tienes que preocuparte de muchos otros aspectos de tu código, desde el diseño general hasta las cuestiones de seguridad, así que ¿por qué no dejar que el framework haga parte del trabajo pesado por ti?
La automatización está tomando el control
Hubo un tiempo en el que cada pulsación del teclado tenía que ser exacta para que tu programa funcionara como querías. Pero con el progreso tecnológico llega la suavización de los bordes.
Ya no hay que revisar miles de líneas de código con un peine de dientes finos. En su lugar, muchos de esos añadidos sin sentido o pasos en falso son despojados por compiladores y protocolos automatizados diseñados para encontrar estos trozos de código innecesarios.
Esta evolución ha restado importancia a lo preciso y familiarizado que tienes que estar con un código en particular porque las consecuencias de cometer un error o no hacer las cosas exactamente bien eran mucho mayores.
Aprende las herramientas adecuadas para el trabajo
Como mencioné al principio de este artículo, la codificación evoluciona. Cambia. Crece.
Y una de las formas en que ha crecido es la dependencia de la interfaz de programa de aplicación (API) y de los algoritmos para ayudarte a realizar la tarea que te propones.
Los frameworks, por ejemplo, suelen definir e implementar algoritmos, y acertar con los algoritmos puede ser a veces más crucial para el éxito de tu programación que los detalles de la sintaxis.
De nuevo, puedes reconfigurar estos algoritmos, pero te arriesgas a cometer un error que podría hacer descarrilar tu proyecto. Del mismo modo, es otra cuestión de tiempo. ¿Por qué añadir horas de trabajo y aumentar el riesgo de alterar tu código cuando puedes encontrar formas de arreglártelas con un algoritmo que ya funciona y es perfectamente viable implementado por el framework?
De nuevo, puede que no te dé todo lo que quieres. Pero como dice la canción de los Rolling Stones, te dará lo que necesitas.
SEE TAMBIÉN: Nuevo número de JAX Magazine – ¿Qué es lo próximo para los frameworks?
Lo que los frameworks añaden que los lenguajes de programación no
Los frameworks y los lenguajes de programación están entrelazados. No es algo binario. No es una cosa o la otra. Trabajan en conjunto y los programadores deben conocer ambos bastante bien para ser realmente efectivos. Por supuesto, a veces te enfrentarás a situaciones que requieren soluciones complejas que un framework no podrá resolver. Por ejemplo, a veces un problema único requerirá un conjunto específico de soluciones que un marco no puede proporcionar, y por lo tanto debes volver a la programación.
Pero aquí está la cosa – sólo puedes centrarte con tu tiempo en el aprendizaje de ambos marcos y los lenguajes que mejoran. El tiempo es un recurso y tienes que gastarlo sabiamente. Y una vez que tengas un conocimiento lo suficientemente amplio de ambos frameworks y lenguajes de programación, ¿en cuál deberías invertir más tiempo para aprender? ¿Cuál te hará, en última instancia, mejor programador?
La respuesta es frameworks. Te harán más rápido, más eficiente y menos propenso a cometer un error humano tonto. Son el equivalente a una autopista frente a la conducción en ciudad. Las autopistas son más ágiles y han eliminado muchos obstáculos como edificios y luces. Claro, puede que no siempre te guste la dirección de una autopista, o que pienses que hay que arreglar un bache, o que creas que sería más eficiente desviar ciertos tramos, pero no vas a salir de tu coche y empezar a reconstruirla a mano, ¿verdad?
Porque si el objetivo es viajar más rápido y de forma más eficiente, entonces reconstruir la autopista llevaría demasiado tiempo en comparación con usarla tal y como está.
Ese es básicamente el trato que estás consiguiendo con los frameworks. Más rápido, eficiente y seguro. Tal vez no siempre a sus especificaciones exactas, pero, dada la alternativa, los frameworks están aquí para hacer su vida más fácil y simplemente ofrecen más de lo que los lenguajes de programación por sí solos pueden.