Frameworks de JavaScript en el lado del cliente en 2017

En un post anterior ya hablamos sobre la evolución del desarrollo web del lado del cliente. Tal como anunciamos entonces, hoy es el turno de los frameworks del lado del cliente. Los frameworks no son nuevos en el desarrollo de aplicaciones de gran envergadura. De hecho, la mayoría de lenguajes consolidados tienen una gran variedad de frameworks. Por ejemplo en el mundo Java son ampliamente conocidos Java Server Faces (JSF), Struts o Spring; en PHP encontramos Laravel, Yii o Symfony. Las principales ventajas que aportan los frameworks son las siguientes: Desarrollo rápido. Crear un proyecto desde cero suele conllevar un elevado coste en tiempo. Por eso, los frameworks proporcionan la estructura del proyecto y un conjunto de bibliotecas preconfiguradas que ahorran tiempo en el comienzo de los nuevos proyectos. Muchas tareas son delegadas a los frameworks permitiendo a los desarrolladores centrarse exclusivamente en las funcionalidades de su software. Incorporación/Rotación de nuevos miembros a los equipos de desarrollo. Uno de los mayores problemas en el desarrollo de software es la rotación de miembros en los equipos de desarrollo, puesto que la incorporación de un nuevo miembro conlleva un coste en aprender la arquitectura del proyecto. Esto es minimizado utilizando un framework, ya que éste obliga a adaptarse a una arquitectura concreta, de modo que cualquier persona que conozca el framework podrá incorporarse rápidamente al desarrollo de cualquier aplicación basada en ella (puesto que conoce la manera de trabajar del framework), minimizando el coste para la empresa. Seguridad/Rendimiento. Los frameworks suelen ser creados y mantenidos por equipos de desarrollo diferentes y externos a nuestra organización. Esto permite que esta organización esté...

Evolución del desarrollo web del lado del cliente

En los últimos años ha habido una gran demanda de desarrolladores de software debido a la inclusión de los sistemas informáticos en prácticamente todo los aspectos del día a día de las personas. A las clásicas demandas de tecnologías tales como C, C++, JAVA, .NET, SQL han surgido un nuevo elenco de nuevas tecnologías tales como JavaScript, ECMAScript, nodeJS, AngularJS, React, Angular 2.0+, VueJS, ember, gulp, webpack, TDD, BDD, CI, CD, etc. El nuevo conjunto de tecnologías que se solicitan como puestos de trabajo pertenecen al desarrollo de aplicaciones web. Una de las mayores críticas de los profesionales del sector (Ingenieros y desarrolladores en general) es el rápido cambio de tecnologías que sufre el desarrollo Web en el lado del cliente (o front-end). Historia del lenguaje de programación JavaScript Antes de poder afrontar los últimos avances en el desarrollo de aplicaciones Web hay que comprender por qué y cómo se ha llegado a esta situación, y para ello se va a presentar la evolución que ha sufrido el desarrollo del lado del cliente hasta llegar a nuestros días (Julio 2017). Hay que retomarse a los orígenes de la Web cuando existían principalmente dos navegadores Web populares para los usuarios: Internet Explorer y Netscape. Internet Explorer hasta hace poco ha sido el navegador por excelencia de la compañía Microsoft y es sobradamente conocido por la mayoría de los lectores, hoy en día ha sido sustituido por Microsoft Edge. Menos conocido es el navegador Netscape, el cual fue el primero que plantó cara al dominio de Internet Explorer y del cual deriva hoy en día Mozilla Firefox. Para el desarrollo de scripts...

¿Cómo está hoy la enseñanza de la programación en la infancia?

Ya hemos hablado en este blog del aprendizaje de la programación en la infancia. En este artículo vamos a hacer un poco de historia de la enseñanza de la programación en la escuela en España, después daremos una visión general de la situación actual, tanto en España como en Europa, y acabaremos centrándonos en lo que pasa en Cataluña, como botón de muestra de cuál es la realidad. La enseñanza de la programación en las escuelas no es algo nuevo. A mediados de los 80, el proyecto Atenea del gobierno español dotaba a los centros escolares de equipos y programas para introducir la informática en la educación. Entre estos programas estaban los lenguajes de programación Logo y Basic. En aquellos momentos muchas escuelas aprovecharon los equipos y los lenguajes que tenían disponibles para dar clases de programación a sus alumnos. Sin embargo, en los 90 se puso en duda la utilidad de la programación en el aula y en años posteriores se introdujo la ofimática y se dejó de lado la programación. Esta situación se mantuvo así hasta bien entrada la primera década del 2000, cuando la aparición de programas como Scratch (2005) y la popularización de la expresión pensamiento computacional (2006) volvieron a dar valor al aprendizaje de la programación en la escuela. En Europa, la European Schoolnet, una institución compuesta por los 31 ministerios de educación de la Unión Europea, publicó un informe en el 20141 donde puede leerse que la programación formaba parte del currículum de 12 países: Bulgaria, Chipre, República Checa, Dinamarca, Estonia, Grecia, Irlanda, Italia, Lituania, Polonia, Portugal y Reino Unido. La mayoría de estos países incluyen...

Una nueva contribución encaminada a facilitar la gestión de nodos multiprotocolo de Guifi.net

(Trobareu versió en català més avall) Durante el primer semestre de 2017, Eloi Carbó, uno de los estudiantes de TFM del Máster Universitario en Software Libre de la UOC, ha desarrollado un proyecto de investigación y desarrollo de software en el contexto de las redes abiertas en general y de Guifi.net en particular. Esta red implementa diferentes protocolos y paradigmas técnicos para interconectar usuarios situados en tramos de red diferentes. Uno de los problemas que tienen que afrontar los administradores es la correcta integración entre estos tramos de red con diferentes tecnologías de comunicación. El proyecto “LEDE Firmware optimization for wired deployments using BGP and BMX6 for routing by enhancing and extending Bird Daemon’s configuration and UI integration” pretende abordar dos problemas fundamentales: En primer lugar, depurar y completar con nuevas funcionalidades las herramientas disponibles para configurar de forma gráfica, mediante una interfaz web, determinados nodos de red que emplean BGP, uno de los protocolos que hacen posible las comunicaciones entre proveedores de acceso a Internet. Esto permitiría a los administradores gestionar la configuración de los diferentes protocolos sin necesidad de acceder a línea de comandos, cosa que generalmente puede ser un impedimento para administradores menos experimentados. Además, con esta interfaz se consigue esconder la complejidad de configuración bajo una interfaz amigable, eliminando la necesidad de aprender la sintaxis específica de la herramienta utilizada (Bird Daemon). En segundo lugar, investigar cuál sería la mejor manera de modificar el código fuente de uno de los programas empleados a tal efecto (Bird Daemon), para añadir integración con nuevas herramientas de supervisión y control de las comunicaciones y así obtener información de...

Robótica y programación educativas

Llevamos ya algún tiempo escuchando las bondades del uso educativo de la robótica y la programación, tanto que ya parece que todos aquellos que somos padres o/y maestros deberíamos tener alguna herramienta que nos permitiese introducir a nuestros hijos o alumnos, en este fascinante mundo. Evidentemente no es así, pero dada la cantidad de herramientas disponibles y lo útiles y entretenidas que resultan para los niños muchas de ellas, vale la pena echarles un ojo y valorar si deseamos o no usarlas. En este artículo vamos a hacer un breve repaso por algunas de ellas, intentando explicar sus características, aunque sin entrar a fondo en sus ventajas e inconvenientes. Dividiremos el artículo en dos apartados, uno de software y el otro de hardware, aunque, inevitablemente, en el apartado de hardware nos tocará en muchas ocasiones hablar también de software. Por otra parte, casi todo el software del que hablaremos aquí es gratuito, mientras que para el hardware será necesario hacer algún tipo de inversión económica que variará según el producto y donde se compre. Como la robótica y la programación son interesantes para todos los públicos, también incluimos recursos sobre programación y robótica para todas las edades. Para acabar comentar que no está todo lo que hay. Hemos hecho un resumen a partir de aquello que conocemos. Sin embargo, las posibilidades son casi infinitas y continuamente nuevos proyectos ven la luz ampliando el abanico de posibilidades. Software En este apartado veremos plataformas y aplicaciones software que permiten introducir(nos) en la programación. Empezaremos por aquellas que permiten aprender a programar de una manera sencilla y con un conjunto de instrucciones...

Angular.js o cómo programar aplicaciones interactivas con código libre

La semana pasada en una comida post vacacional con un ex-compañero de trabajo, me preguntaba que se utilizaba ahora mismo para construir aplicaciones web. Y creo que es un tema extremadamente interesante ya que en estos temas, la comunidad del software libre tiene mucho que decir. Al hilo de mi últimos post sobre Bootstrap le comenté que Angular.js es su excelente compañero de viaje. A alguien igual le pueda sorprender que Javascript se ha convertido ya en uno de los lenguajes más usados en el desarrollo de aplicaciones, de hecho es el número uno desde hace ya varios años en los proyectos subidos a GitHub. Y es aquí precisamente donde Angular.js da el DO de pecho. Angular.js se comenzó a crear en el año 2009 y fue el proyecto de dos programadores (Misko Hevery y Adam Abrons) que pretendían realizar un framework para desarrollar aplicaciones en Javascript que permitiera programar tanto la parte frontal o interfaz de usuario como la lógica de negocio del back-office y al que llamaron GetAngular. Por ese tiempo, Hevery trabaja en un proyecto en Google, donde junto a otros 2 programadores intentaban construir un servicio llamado Google Feedback. Pero tras escribir 17.000 líneas de código y convertirse en algo realmente difícil de mantener y evolucionar, propuso reescribir la aplicación utilizando su framework. En dos semanas rescribió la aplicación y pasó de esas infernales 17.000 líneas de código a tan solo 1.500. Gracias a esto Google comenzó a fijarse en este framework, decidió usarlo internamente (¿no suena esto un poco a la historia de Bootstrap y Twitter?) y creó un equipo dentro de Google para...