Sobre lenguajes de programación, framework, frontend y otras palabras raras

Hola mundo!

No me ha pasado ni una, ni dos, ni tres veces que estando en una reunión con un cliente se me escapa algún anglicismo de estos, veo su cara y tengo que hacer un stop para explicar que es cada cosa. Y es que soy así, no puedo soltar backoffice y esperar que todo el mundo sepa que es. Pues para eso es este post, poner de una manera clara y sin tecnicismos que es cada cosa.

Todo este post va a estar enfocado sobretodo a la programación web, lo digo porque seguro que hay muchas cosas quisquillosas que se pueden interpretar.

Servidores y clientes

Primero de todo dejaré claro una cosa, cliente y servidor. Servidor ya hemos visto en como funciona Internet, es ese ordenador conectado a internet y que hospeda los archivos que forman tu web. El otro es el cliente, que es cualquier dispositivo que pide datos a ese servidor. Por lo tanto el mobil, la tablet o el ordenador entran en este grupo.

¿Porqué os explico esto? Porque hay lenguajes de programación que se ejecutan en el servidor, provocan todos los calculos y hacen llegar un html ya montado al cliente y por el contrario también hay que hacen llegar unos ficheros al cliente y es el cliente el que se encarga de montar todo el html.

Como veis el objetivo es conseguir un html bien estructurado, ya sea porque el servidor nos lo da montado o porque obliga al cliente a hacer el trabajo. También implica quien hace el esfuerzo y es por eso que a veces se necesita un servidor muy potente y otras veces con uno más pequeño ya vale. A efectos prácticos es quien lo trabaja o un carnicero y te da las hamburguesas preparadas o a ti te llega la carne picada y las haces tu (o tu chef 😉 )

Lenguajes de programación

Es el idioma en el que está escrito el código y permite crear todo lo que ves, hacer funciones, algoritmos, objetos,… no voy a explicar como funcionan y es como las cervezas, cada programador tiene su favorita.

Los lenguajes de programación son muchos pero el primer lenguaje de programación que voy a nombrar por ser casi el padre de los actuales y aun perdura es el «C» de 1972 y su hijo C++ de 1979. Pero esto es antes de la era de internet, por lo tanto sólo los digo porque suenen.

Los lenguajes de programación que se utilizan mucho y habrás sentido hablar son PHP, JAVA y JAVASCRIPT (que aunque el nombre se parezca son cosas muy diferentes) Todos estos nacieron en 1995 y a día de hoy casi todo lo habitual está basado en estos. De estos PHP es un lenguaje de lado de servidor y JAVA puede hacerse servir en los dos lados (¿A quien no le ha salido el mensaje de instalarse las librerías?) Por otro lado, Javascript nació como un lenguaje de cliente pero con el nacimiento de Node.js se puede ejecutar del lado de servidor.

En Grafreak somos expertos en PHP y Javascript. Y es que, a parte de poder desarrollar cualquier cosa con estos lenguajes, tanto WordPress como Prestashop están escritos en estos lenguajes.

Framework

Otra palabra muy usada en el mundo de la programación y que suena muy rara. Esto es un conjunto de funciones y objetos que facilitan programar en un lenguaje especifico. También incorpora una estructura base con la que no debes pensar las cosas desde 0, si no ya sabiendo como van a estar los arcihvos organizados e importantísimo siguiendo unas buenas prácticas y con unas documentación a tu abasto. Las razones principales son:

  • El código es más limpio, estructurado y ordenado.
  • Te permite trabajar mucho más rápido.
  • Puedes reutilizar mucho código.
  • Aumenta la seguridad de tus desarrollos.
  • Mejora el trabajo en equipo. Al usar un framework, habrá más programadores que lo entiendan rápido y podrán trabajar contigo.

Los principales frameworks que se utilizan ahora son:
Para JavaScript: Angular de Google, React de Facebook, VueJS y Meteor.
Para PHP: Laravel, Zend y Symfony

Por muy loco que parezca, he trabajado con todos ellos 😉

Las APPs que hemos desarrollado llevan Meteor y Angular, React es el motor de Gutenberg en WordPress, Zend se utiliza en Magento y Symfony está integrado en el Prestashop. De Laravel y VueJS hemos realizado cosas sueltas para clientes que lo pedían así.

Cabe decir que CSS también tiene sus propios framework, que permiten diseñar muy rápido y tener unas reglas responsive de primeras sin tener que estar repensando las columnas y sus comportamientos. Los frameworks con los que trabajamos nosotros son Bootstrap y Bulma.

No puedo acabar la sección con el comentario de que si tienes pensado algo muy sencillo y sin escalabilidad no hace falta meterte en el uso de framework, pero en el caso contrario si no lo haces te estarás metiendo en un berenjenal. Consulta con tu equipo de expertos web y que hagan un buen analisis técnico previo para saber que es lo mejor.

Frontend y backend

A ver no quiero crear controversia pero mucha gente confunde estos conceptos y se utilizan muy a loco. Pero espero dejarlo bien claro en los siguientes párrafos.

El frontend es todo lo que se puede ver y/o interactuar con él, por ejemplo la página web que se ve, una intranet cuando estás logado, la parte de adminisctación de la web y todo lo que implique interacción de usuario. Implica controlar el javascript, el css, el html e toda la parte visual de los lenguajes que se hagan servir.

Por el contrario el backend sería alguien que controla el servidor, las bases de datos y lo que se devuelve. Son los que programan para que nos devuelvan el que y como lo queremos (que si nos ponemos técnicos y para que suene la palabras serian las REST API)

A ver un ejemplo de como interactuarían:
– Queremos que el servidor nos devuelva los datos de todos los productos que están en la base de datos con un campo de combinaciones, se encargaría un técnico de backend.
– Queremos que los productos se muestren en columna de 4 y caso de que tengan combinaciones salga icono de «más en la ficha», se encargaría un técnico de frontend.
– Tenemos que cambiar a todos los usuarios un campo en base de datos y que si cumplen una condición se les marque otro campo, sería el técnico de backend.
– Que en el administrador de la web salga una nueva opción, es el de frontend.

Cuando se busca un programador normalmente se pide que sea de un lado o del otro, aunque existe la figura (en la cual yo me incluyo) estaría el fullstack que implica conocer y saber de los dos ámbitos. Y es que habría casos que podríamos discutir si los debe hacer uno, otro o ambos porque podríamos pensar alguna funcionalidad muy complicada.

Backoffice y los CMS

Mucha gente, e incluyo a programadores, confunden el backend con el backoffice y eso no está bien. Como he explicado en el punto anterior, backend es todo lo que queda en el fondo, las consultas y las cosas técnicas del servidor, por encontrar el sinónimo correcto backoffice es el gestor/administrador de la web.

Estos gestores antes se creaban a medida o el webmaster debía entrar en base de datos y tocar los archivos de la web. Por suerte surgieron los CMS, que su significado es «content management system» o sistema de gestor de contenidos. El CMS por tener millones de webs es WordPress y después vendrían los específicos de tiendas online, Prestashop y Magento.

Entonces como ultimo apunte, si cogemos la definición de framework (es un conjunto de funciones y objetos) podemos extrapolar que WordPress también se comporta como un framework.


Y hasta aquí. Puede ser que algún término quede ambiguo pero espero que con lo que has leido en el artículo entiendas este párrafo.

«WordPress es un CMS que está programado en PHP. Ahora le han puesto el editor Gutenberg que hace el frontend del backoffice con React. Le he pedido al programador de backend que prepare la API para que pueda recuperar los metadatos del artículo. Así en el frontend del cliente se verá mejor.»

Aquí la dejo. Si teneis algún comentario sereis bienvenidos.

Hasta pronto!

Ultimas noticias