Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Director/a TFM:
Carlos Alfredo Lázaro Carrascosa
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
II
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Índice de Contenidos
Resumen ............................................................................................................................... 1
Abstract ................................................................................................................................ 1
1. Introducción ............................................................................................................... 2
2. Parte I: Marco Teórico .............................................................................................. 6
2.1 Análisis de lenguajes web ......................................................................................... 6
2.1.1. HTLM5....................................................................................................... 6
2.1.2. PHP............................................................................................................. 8
2.1.3. JavaScript ................................................................................................. 10
2.1.4. Perl ........................................................................................................... 12
2.1.5. Python....................................................................................................... 13
2.1.6. JAVA ........................................................................................................ 15
2.2 Combinaciones de lenguajes más utilizadas ......................................................... 16
2.2.1. HTML +CSS + JS .................................................................................... 16
2.2.2. PHP + HTML + MySQL .......................................................................... 16
2.3 Otros lenguajes o tecnologías ................................................................................. 17
2.3.1. AJAX ........................................................................................................ 17
2.3.2. Microsoft .NET ........................................................................................ 19
2.3.3. Flash ......................................................................................................... 19
4. Conclusiones ............................................................................................................. 34
5. Bibliografía ............................................................................................................... 36
III
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
IV
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Resumen
Abstract
In these days, the inclusion of new technologies, in any of its multiple modalities, is
becoming more common in the educational environment. One of these modalities (and
possibly the most important one) is the use of services and / or web platforms in the
educational field, for many purposes: integral educational platform, sharing files and
messages, flipped classroom, applying gamified environments, etc. In this Final Master's
Project, a detailed analysis of the main web programming languages currently existing is
carried out, in order to serve as a reference guide, and also indicates the most
recommended uses for them. On the other hand, a series of very useful and increasingly
common web tools are analyzed in educational environments, to subsequently relate to
the programming languages in which they have been developed or even allow new
developments, especially in those of open source.
Keywords: educational platform, web education, new technologies in education, web
programming languages.
1
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
1. Introducción
2
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Petición HTTP
HTML + CSS
Servidor web
Servidor
3
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
4
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
De esta forma, para construir diversas aplicaciones web con un grado de complejidad
determinado, es necesario realizar combinaciones de lenguajes de programación de diversos
tipos, tal y como se muestra en puntos sucesivos de este documento. Así, para representar
una página web, será muy habitual utilizar HTML junto con CSS. Si, además, se pretende
dotar a la página de funcionalidades e interacción con el usuario (formularios, envío de
información, registro, etc.), será muy probable que se deba utilizar JavaScript.
En caso de ser necesario realizar cualquier tipo de interacción con un servidor
remoto, entrarán en uso los lenguajes del lado servidor. Por ejemplo, si la página web incluye
la opción de enviar un formulario o de registrarse para acceder a un determinado contenido,
es muy probable que en el lado servidor se utilice PHP + MySQL para validar al usuario y
permitirle acceder a un contenido determinado según sus permisos. [3]
En los siguientes puntos de este Trabajo se exponen los principales lenguajes web,
tanto en el lado del servidor como en el lado del cliente, junto a las principales aplicaciones
que ofrecen cada uno de ellos, para finalmente poner el foco en las posibles aplicaciones en
el ámbito educativo. De esta forma, en la Parte I se introducen de manera general los
principales lenguajes de programación web, junto con sus combinaciones más utilizadas.
Posteriormente, en la Parte II, se realiza un análisis de algunas de las principales
herramientas web utilizadas en el ámbito de la Educación, y que están basadas en los
lenguajes presentados en la Parte I. Para finalizar, se exponen las principales conclusiones
extraídas de este análisis teórico y práctico.
5
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
2.1.1. HTLM5
6
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Por otro lado, entre sus novedades también se encuentra la posibilidad de acceder a
webs sin tener conexión de internet (mediante el uso de un mecanismo que permite a
aplicaciones basadas en web especificar recursos para almacenar en caché), la posibilidad
de introducir header y footer para cada sección, la reducción de la necesidad de plug-ins para
acceder a todo el contenido de una web, la posibilidad de editar documentos de manera
online (por ejemplo, Google Docs), etc. Además de lo anterior, se han mejorado la utilización
7
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
de los formularios web, creándose nuevos atributos (type) y elementos (output). Así mismo,
el funcionamiento del DOCTYPE en HTML5 es más sencillo de utilizar, permitiendo un
código más liviano [5].
En referencia al acceso al dispositivo, HTML5 permite utilizar la cámara del equipo,
permitiendo el acceso al API de la misma. También se permite la localización de la posición
del usuario o detectar la orientación del dispositivo para cambiarla en caso de ser necesario.
En cuanto a las hojas de estilo CSS, en esta versión se permite la utilización de
elementos más complejos, permitiendo nuevas características de diseño del fondo, bordes de
formas más sofisticados, tipografía mejorada y nuevos diseños de presentación.
Un ejemplo sencillo de utilización de HTML5 puede ser el siguiente:
2.1.2. PHP
8
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
potencia aún más su utilización y expansión, dado que resulta igual de amigable a
programadores que estén acostumbrados a trabajar con lenguajes orientados a objetos o
estructurados [9].
Se trata de un lenguaje del lado del servidor. Una vez el cliente realiza una petición
al servidor web para recibir una página web, el servidor ejecuta el intérprete de PHP (sólo
procesa el código existente entre las etiquetas indicadas con anterioridad), que procesa el
script para generar dinámicamente el contenido. Por último, el servidor envía al cliente la
página web con el resultado. Por tanto, el software del servidor web se encuentra a la espera
de solicitudes de archivos listos para servir, que deben llegar a través de un navegador web
desde el lado cliente. Una vez se lleva a cabo esa petición, el archivo PHP es procesado por
el intérprete que se encuentra en el servidor web [8] [10].
Sus aplicaciones son muy diversas, pudiendo destacar entre ellas la recopilación de
datos de formularios, el contenido dinámico en páginas, tratamiento de cookies, etc. Además,
mediante ciertas extensiones permite la creación de ficheros PDF, de texto o imágenes y su
almacenamiento en el sistema de ficheros mediante la creación de una caché en el lado del
servidor. Los principales CMS existentes (WordPress, Joomla! O Drupal) así como otras
múltiples herramientas o plataformas web están desarrolladas en PHP [8].
Por otro lado, además de en el entorno web, PHP puede ser utilizado para realizar
scripts desde la línea de comandos o para desarrollar aplicaciones de escritorio, aunque para
ello no sea probablemente el lenguaje de programación más adecuado, al no haberse ideado
precisamente para ello.
9
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
2.1.3. JavaScript
10
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
para ordenadores y otros dispositivos como móviles, tanto del lado servidor como del lado
cliente [5].
Cabe indicar que en HTML5 se han incluido multitud de APIs JavaScript (Un API
es un grupo de funciones utilizadas para realizar una o varias tareas), disponibles en todos
los navegadores actuales, y existiendo APIs incluso para trabajar con periféricos u otros
elementos de cada dispositivo. De esta forma, mediante su utilización se puede acceder a
otros recursos como la pantalla o la cámara del dispositivo, a memoria para almacenar datos,
flujos de datos con servidores, etc. lo que indica hasta qué punto han crecido las posibilidades
de utilización [5].
Centrándonos en el entorno web, HTML5 ha ocasionado la estandarización de
JavaScript, tanto para los fabricantes de quipos como para los navegadores. De hecho, hoy
en día JavaScript es el motor principal de la mayor parte de las aplicaciones que utilizamos
en nuestro día a día, como Google, Facebook, Twitter, etc.
Fuente: www.w3schools.com
11
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
como versiones anteriores a Explorer 10. Existen así mismo técnicas para aportar
compatibilidad con estos navegadores antiguos, mediante la utilización por ejemplo de
“degradaciones amigables” de las aplicaciones web.
Una vez que el lenguaje, síntesis y aplicación es familiar, es importante conocer
determinadas librerías, que son de gran utilidad para desarrollos rápidos y cómodos. Algunas
de las librerías más conocidas son:
Así mismo, en el proceso de aprendizaje será fundamental conocer las nuevas características
de JavaScript, gracias a las APIs incluidas en HTML5, fundamental para extender las
inmensas posibilidades de este lenguaje.
2.1.4. Perl
12
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
2.1.5. Python
13
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Se trata de un lenguaje de alto nivel, que tiene una característica muy peculiar, y es
que no es necesario declarar variables ni argumentos, por lo que típicamente la extensión de
los programas Python es más reducida en comparación con otros. En el caso de las variables,
se definen de manera dinámica y pueden tomar distintos valores de distinto tipo (por
ejemplo, un número o una cadena de texto) [18].
Fue creado a principios de los noventa por Guido van Rossum, como un lenguaje de
programación multiparadigma, es decir, permite programación orientada a objetos,
programación funcional o programación imperativa. Una de sus principales características
es su facilidad de extensión, lo que hace sencillo agregar nuevos módulos al intérprete, o
bien enlazar programas en Python con otras bibliotecas en otros lenguajes [19].
Por otro lado, Python cuenta con un interesante modo interactivo, cuya característica
principal es que permite visualizar de manera inmediata el resultado de una expresión
determinada, por lo que es muy sencillo comprobar si el código es o no correcto.
Fuente: www.python.org
En relación con el entorno web, existe un framework gratis y de código abierto escrito
en Python, llamado Django [20], que fue creado con el fin de fomentar desarrollos web
potentes y complejos, de una manera más rápida y sencilla. Incluye gran variedad de
contenido extra para facilitar la gestión de contenidos web, como la gestión de usuarios,
administración de contenidos, mapas del sitio, canales RSS, etc., garantizando al mismo
tiempo la seguridad. Para ello, cuenta con un sistema de autenticación de usuarios robusto,
proporciona ayuda para evitar errores relacionados con SQL, falsificación de solicitudes
entre sitios o clickjacking (técnica maliciosa que consiste en engañar al usuario para que
pulse en un enlace determinado sin darse cuenta). Además, Django es una herramienta
14
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
2.1.6. JAVA
15
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
web para poder ejecutarse, lo que a su vez posibilita la creación de programas ligeros que
puedan ejecutarse con sólo cargar una página web en concreto.
En el entorno de servidor, se utilizan ampliamente los servlets, que son programas
JAVA utilizados para responder las peticiones de los clientes. Es una aplicación muy similar
a los applets, pero en este caso en el entorno del servidor, en lugar de en un navegador web.
Así mismo, la tecnología JSP (Java Server Pages) permite implementar y desarrollar
páginas web incluyendo contenido dinámico, por lo que se puede afirmar que se trata
de una forma alternativa de crear servlets. Básicamente, una página web con JSP es
una página con HTML a la que se añade código JAVA, y cuyo archivo tendría la
extensión .jsp en lugar de .html, para que el servidor detecte que esa página en
concreto requiere un tratamiento especial.
En esta línea, en el lado del cliente, Java Web Start es un software que posibilita la
ejecución de aplicaciones JAVA que se encuentran en un servidor web, directamente desde
un navegador. De esta manera, se consigue distribuir fácilmente el software en cuestión.
16
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
DB2, etc.) que se manipula habitualmente utilizando el lenguaje de base de datos SQL,
aunque también puede ser manipulado por otros lenguajes, como PHP. Se puede utilizar bajo
cualquiera de los principales Sistemas Operativos existentes (Linux, Mac OS X, Solaris,
Windows, etc.) y se utiliza habitualmente para desarrollar aplicaciones web.
A su vez, es posible insertar código PHP en HTML y viceversa, es decir, dentro del
propio código PHP podemos insertar a su vez código HTML. Por tanto, es posible introducir
y utilizar un lenguaje embebido en el otro, lo que es muy útil para diversas aplicaciones. Por
ejemplo, esta combinación se suele utilizar para guardar datos de un formulario web en una
base de datos.
De esta forma, la combinación de estos lenguajes de programación permite crear
páginas web dinámicas y aplicaciones web, almacenando los datos en la base de datos
MySQL y manejando los procesos de consultas y modificación a través de PHP. Una
aplicación muy habitual de esta combinación es la implementación de un acceso a una web
determinada, en la que hay que validarse vía navegador mediante usuario y contraseña.
2.3.1. AJAX
17
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
• Ocurre un evento
Navegador • Se crea un HttpRequest y se envía
• Procesa la petición
Servidor HttpRequest
• Crea y envía una respuesta
JavaScript
DOM XMLHttpRequest
18
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
JavaScript une todas las tecnologías. Por su parte, DOM se utiliza para modificar
dinámicamente la presentación de la página, mediante el uso de XHTML y/o CSS. Por su
parte, XMLHttpRequest se utiliza para intercambiar información de manera asíncrona,
mediante el uso de XML y JSON. Por tanto, uno de los inconvenientes es que, para
desarrollar aplicaciones mediante AJAX, es necesario conocer estas tecnologías [26].
A día de hoy, es una tecnología muy extendida, compatible con todos los navegadores
del mercado. De hecho, existen muchas aplicaciones de uso habitual que están basadas en
AJAX, como Gmail, Google Maps, Windows Live Mail, Google Docs, Flickr, etc.
2.3.3. Flash
Flash [28] es una tecnología creada por Adobe para crear animaciones que pueden
ser utilizadas en páginas web. Históricamente ha tenido una gran importancia en el desarrollo
de páginas web con contenido animado, llegándose a convertir en una tecnología básica en
el entorno web. Sin embargo, en los últimos años su utilización está perdiendo peso
considerablemente, en comparación con otras tecnologías, debido entre otras cosas a
vulnerabilidades de seguridad y a la aparición de HTML5 y CSS3. Además, muchos
smartphones no soportan la reproducción de contenidos Flash en sus navegadores, lo que es
otro impedimento para su progresiva decadencia.
Está previsto que en 2020 se elimine Flash de los principales navegadores, aunque
algunos lo harán antes. [28]
19
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
20
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
21
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Fuente: Moodle.org
22
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
23
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
o dudas acerca de su utilización. Existe una gran variedad de instituciones académicas que
utilizan Moodle como principal plataforma educativa.
24
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Fuente: www.edmodo.com
26
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Fuente: www.educa2.madrid.org
Se trata no sólo de una plataforma educativa como tal, sino que vas más allá. Es un
portal que ofrece el acceso y/o la implementación de múltiples plataformas posibles, con lo
que ofrece un gran número de materiales y posibilidades para toda la comunidad educativa.
27
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Además, se caracteriza por ser un portal que utiliza software libre de código abierto, que
fomenta la colaboración entre usuarios, independiente y seguro.
Es importante tener en cuenta que existen portales similares en otras Comunidades
Autónomas, que cuentan con similares funcionalidades y posibilidades, como por ejemplo
EducaEx.
La gran mayoría de estos portales se han desarrollado mediante la combinación de
los lenguajes HTML, CSS y JavaScript, a los que hay que añadir JQuery. En el lado del
servidor, se utiliza PHP junto a MySQL, fundamentalmente para el registro de los usuarios
frente a los directorios activos.
28
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Fuente: codecombat.com
Tal y como se afirma en su portal web oficial [35], está “Diseñado pensando en los
profesores”. Esta afirmación está fundamentada sobre la base del apoyo que se preseta a los
profesores para de ser necesario ayudarles, también a ellos, a incrementar su nivel de
conocimientos. Además, el juego se encuentra disponible en varios idiomas, lo que hace más
sencilla su utilización.
Se trata de un proyecto que parte de la idea de enseñar mediante juegos, para hacer
atractivo algo que puede resultar muy tedioso y complicado, como es aprender a programar.
El juego, además, combina el aprendizaje de la programación con la adquisición de logros e
insignias, resolución de problemas lógicos, etc., lo que sin duda lo hace más llamativo e
interesante para los alumnos.
En cuanto a su implementación, el juego está desarrollado en HTML5 y un lenguaje
denominado CoffeScript, cuya regla es “Es solo JavaScript” [36]. Es un lenguaje que
programación que, evidentemente, está basado en JavaScript, e incluso se compila sobre el
mismo, aunque tiene algunos cambios puntuales en cuanto a sintaxis. Así mismo, en
CodeCombat se utiliza también CSS y jQuery. [35]
29
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
30
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Entre los principales recursos que ofrece se incluyen artículos, plantillas para juegos,
estudios o libros sobre cómo aplicar la gamificación en el aula, junto a diversas experiencias
reales. Es importante tener en cuenta que existe material aplicable a todos los niveles
educativos: primaria, secundaria y Universidad. Así mismo, incluye enlaces a otros
videojuegos online, también desarrollados en Wix.
Fuente: http://gamificatuaula.wixsite.com/ahora
3.3 AppInventor
31
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Por otro lado, la aplicación presenta una segunda parte, denominada bloques. En la
misma es en la que se programa la funcionalidad que tendrán los elementos añadidos en la
parte de diseño. Como se comentó anteriormente, esta programación se hace de una manera
muy visual a través de programación por bloques. La manera de realizar la programación es
muy intuitiva: seleccionamos en el listado de la izquierda el elemento para el que queremos
programar la funcionalidad, y en la parte de la derecha añadimos los bloques necesarios
según dicha funcionalidad: condicionales, bucles, cadenas de texto, números, etc. En la
siguiente imagen se muestra un detalle de esta pantalla:
32
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
33
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
4. Conclusiones
34
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Por otro lado, durante la realización de este Trabajo Fin de Máster, me ha sido posible
comprobar y entender diversos puntos relacionados con lo indicado anteriormente. En
primer lugar, es muy destacable la gran variedad y diversidad de lenguajes de programación
web que existe, además de los múltiples propósitos para los que pueden ser utilizados cada
uno de ellos. Sin embargo, es bien cierto que cada uno de ellos suele tener una utilización
específica, siendo la más habitual la combinación de HTML + CSS + JavaScript en el lado
del cliente. Sin ir más lejos, se trata (según el w3) de los tres lenguajes de programación
básicos que todo desarrollador web debería conocer.
Personalmente, opino que las posibilidades en cuanto a las aplicaciones educativas
del entorno web son cuantiosas y muy a considerar. Al fin y al cabo, el límite en este campo
está en la propia imaginación del educador, ya que mediante el uso de cualquiera de los
lenguajes web estudiados (e incluso de otros que no se han podido considerar) se puede
implementar cualquier proyecto educativo que se nos ocurra. Sin embargo, según se ha
podido mostrar en este Trabajo Fin de Máster, no hace falta tener grandes conocimientos
informáticos para poder acceder a todo un mundo de posibilidades, en cuanto a herramientas
educativas se refiere.
35
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
5. Bibliografía
36
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
Universidad de Deusto, «¿Qué es y para qué sirve Ajax?,» 2017. [En línea].
[26]
Available: https://www.deustoformacion.com/blog/programacion-diseno-web/que-es-
para-que-sirve-ajax.
37
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
38
Estudio sobre diferentes lenguajes para la web,
Agustín Fernández Herrera
y sobre su aplicación en contextos educativos
39