Si miramos los antecedentes de la programación web, debemos ir cuando se creó por primera vez la World Wide Web.
Aunque Internet como tal se inventó en los años 60, no fue hasta los años 90 que no se creó el primer cliente web que interpretaba una página para mostrar.
Conforme ha ido evolucionando los ordenadores, la información a tratar y mostrar de una página también ha ido cambiando, y ya podríamos hablar de lenguajes de programación web.
Veamos algunos conceptos necesarios para los que quieran ser programadores web, y de este modo tener la mejor elección a la hora de utilizar aplicaciones para el desarrollo.
¿Qué conceptos básicos tengo que saber para la programación web?
Hay que entender los elementos necesarios de arquitectura para que funcione Internet, sin entrar en detalle lo que es una dirección IP, la DNS, la petición HTTP, etc…
Nos centraremos en lo que es un servidor y lo que es un cliente, ya que es una particularidad de como funciona internet.
Pero también otras cosas como Android (recordemos que está programado en Java) cuando los datos están en un servidor (ya que lo habitual es que el servidor esté en internet, ofreciendo un servicio específico en vez de ofrecer un blog con artículos, por ejemplo).
Programación web entorno servidor
El servidor es dónde se almacenan las páginas y sus datos (hablo de sus datos porque puede tener una base de datos que le de soporte).
Al estar almacenadas las páginas en él, hay lenguajes que procesan datos y envía a los ordenadores las páginas ya formateadas para que las entienda.
Por ejemplo, puede recibir una petición, la procesa y devuelve un conjunto de información visible para el usuario.
Programación web entorno cliente
Cuando estás navegando, al recibir las páginas HTML es posible que también procese información, y no sólo interpretar las etiquetas HTML.
Se crearon lenguajes para que se ejecutasen directamente desde el programa navegador, así que no es necesario que sean tratados en el servidor.
De esta manera, tenemos una mezcla para decidir qué lenguajes de programación utilizar, si en el lado del cliente o en el lado del servidor.
Además, tenemos una gran variedad de lenguajes a elegir, algunos más populares que otros.
Normalmente para el navegador suelen ser estándar y suelen ser los mismos, pero del lado del servidor hay mucha variedad, y tenemos que tener claro, sobretodo a la hora de contratar un hosting, que lenguajes soporta (además de las bases de datos) para saber en que programar.
Ahora veamos las partes implicadas para crear una web desde cero.
Inicio de una página web
Antes de nada, lo primero es hacer un análisis funcional, para determinar que partes debería incluir un site.
Una vez analizada las necesidades, debes estructurar toda la información para saber como lo vas a mostrar.
Se hace cuando quieres hacer aplicaciones en cualquier plataforma, veamos ahora viene la parte del diseño y la maquetación.
Diseño gráfico web
Crear una página web implica configurar la interfaz para saber cómo los usuarios van a interactuar con ella.
De este modo, no es sólo lo bien o bonita que se vea, sino que hay que tener en cuenta una serie de conceptos para que cuando estemos navegando por una página sea:
- navegable
- interactiva
- usable
También hay que valorar la parte multimedia, que es como integras todos los textos, imágenes, enlaces, vídeos y audios.
Como ves, nada de esto es programación, así que un diseñador no tiene que saber nada de programar.
Maquetación web
Ahora que ya tenemos el diseño, debemos transformar todo esto para que el browser que tengamos (como Edge, Internet Explorer, Firefox, Chrone o Safari, entre muchos otros), pueda reproducirlo sin que se produzca errores.
Esta es la parte de maquetar una página, dónde empezamos a crear los archivos necesarios, como HTML, CSS o ficheros JS para poder crear la interfaz para el usuario.
Programación web
Aunque los ficheros JS es dónde están todas las funciones necesarias en Javascript, la creación de éstas es la que hace un programador.
También la programación en otros lenguajes, sobretodo en la parte servidor. Un programador podría maquetar, pero no debería de hacer nada de diseño porque tampoco es la especialidad que le toca.
Ahora vamos a ver los diferentes lenguajes que están implicados en la programación web.
Lenguaje HTML
HTML no es un lenguaje de programación, porque no se programa, es un lenguaje de marcado.
En un lenguaje de marcas, como se le suele llamar, pones etiquetas con contenido especial para darle una estructura. Lo dicho, poner etiquetas no es escribir código.
En HTML, esas etiquetas son las que entiende el navegador para mostrar la información, por lo tanto se ejecuta en el navegador.
Otro tipo de lenguajes de marca sería XML, que sirve para definir una jerarquía a los datos. La evolución pasó por XHTML, siendo más estricto, pero de esta manera se podía entender mejor un documento de este tipo.
Actualmente tenemos HTML5 como el etiquetado más moderno para su desarrollo.
Lenguaje Javascript
Este lenguaje se creó para el antiguo navegador Netscape. No es el más nuevo del mundo, pero al final se ha hecho un estándar y se puede ejecutar en cualquier navegador actualmente.
Es un lenguaje interpretado, así que su código no se compila si no que lo interpreta el navegador para ejecutarlo.
Es muy versátil porque no es necesario declarar variables, y su sintaxis es muy parecida a java (aunque comparten nombre, no tiene nada que ver uno con otro).
Ahora veremos algunas opciones que han surgido, que no son lenguajes pero nos ayuda a la hora de hacer aplicaciones o páginas de internet.
JQuery
Dentro de esta categoría podemos hablar de JQuery, que no podemos considerar como otros de los tantos lenguajes de programación, por qué es una biblioteca dónde está agrupado todo lo que podamos necesitar a la hora de programar.
AngularJS
Google creó esta biblioteca como alternativa a JQuery, ya que ofrece un front-end más moderno al aplicar el patrón MVC (Modelo→Vista→Controlador).
ReactJS
Y como no, Facebook no se quedó atrás y creó su propia librería o biblioteca basada en este lenguaje.
Lenguaje CSS
Este es otro lenguaje de marcas, y se utiliza para definir la parte visual del documento HTML.
En una página HTML tenemos toda la información y los datos, y en el documento CSS le damos el formato para mostrar esos datos (hablamos del color, tamaño, tipo de fuente, etc.).
Igualmente se utiliza el formato CSS para crear aplicaciones móviles, imaginate la potencia de usar este lenguaje de marcado.
Lenguaje PHP
Empezamos a hablar de lenguajes de programación que se ejecutan en la parte del servidor, y el más popular de todos (y de los mejores) es el lenguaje PHP.
Se creó sólo para hacer páginas web (no como ASP, que fue una evolución de Visual Basic, o Django, que es un framework de Python.
PHP es un lenguaje interpretado, pero lo ejecuta el hosting (sobre cualquier sistema operativo), de esta manera permite que las páginas ya vengan con el resultado formateado.
Es muy fácil de aprender, desde la versión PHP 5 es orientado a objetos, y es utilizado por la gran mayoría de frameworks del mundo de internet, cómo WordPress, Joomla y Drupal.
De esta manera, si aprendes PHP podrás especializarte en estos CMS tan populares.
Lenguaje ASP
El lenguaje ASP es de Microsoft, utilizando Visual Basic Script y combinando su sintaxis con la del HTML, aunque todavía se puede utilizar para hacer WebServices (para poder enviar y recibir datos entre aplicaciones).
Más tarde, al aparecer el .NET Framework, evolucionó a ASP .NET, estando disponibles para varios lenguajes como Visual Basic .NET o C#.
Si tienes un servidor propio, o quieras montar páginas web dentro de una red como puede ser una empresa, es la opción ideal si ya conoces toda la parte de tecnología .NET.
Lenguaje CGI
El lenguaje CGI es de las primeras formas de hacer desarrollo en páginas web.
Recordemos que con las etiquetas HTML todo se hace de forma estática, así que sin él no hubiera sido posible empezar a usar estas herramientas para compartir información cuando internet era arcaico: contadores, envío de formularios, primeros accesos a bases de datos, poder crear foros y un largo etcétera.
El CGI está basado en scripts, de esta manera puede escribirse en varios tipos de lenguajes de programación, siendo el más popular Perl.
Lenguaje Python y Django
Django es un framework, basado en uno de los más populares de los lenguajes de programación actuales: Python.
Es una de las herramientas de desarrollo de moda, y permite generar sistemas enteros para gestionar en una página web (por ejemplo, para hacer aplicaciones ERP).
Lenguaje JSP
Muy parecido al lenguaje ASP, pero con sintaxis de java (Java Server Pages), se basa en los servlets de java para su programación por parte del servidor.
Es obligatorio tener instalado Tomcat para que funcione correctamente.
Lenguaje Ruby on Rails
Al igual que la relación de Python con Django, para Ruby está Ruby on Rails para la programación de páginas.
Igualmente, es multiplataforma y OpenSource (como Java), así puede ser una buena herramienta para programación.
ActionScript y Flash
Las webs con tecnología Flash (cada vez más en desuso gracias a la versatilidad de HTML5) es posible programarlas usando ActionScript (se escribe de una manera muy parecida a java).
De esta manera, las interfaces interactivas y animaciones de Flash podían ser mucho más potente gracias al sistema que permitía desarrollar su propio código.
Aplicaciones para el desarrollo de la programación web
Hemos visto algunos de los muchos de los lenguajes de programación web que podemos encontrar actualmente.
Para el desarrollo de estos lenguajes, es útil conocer cual son las diferentes aplicaciones que te pueden ayudar en tu tarea.
También vamos a hablar de frameworks y lo que es un gestor de contenidos (también lo encontrarás por sus siglas en inglés CMS).
Eclipse
Eclipse es muy conocido en la actualidad por ser unos de los mejores software de escritorio para poder programar en java, pero este IDE también se puede adaptar para escribir código en otros lenguajes cómo PHP o JSP.
Es una gran opción a tener en cuenta, ya que es multiplataforma y viene con un montón de opciones y plugins para ahorrarte horas y horas de programación.
También se usa para Android y hacer aplicaciones para móviles, escribir código en c++ y un largo etc.
Editores de texto avanzados
Para aprender programación, es muy habitual en un principio ver que con el Bloc de Notas de Windows puedes escribir tu primer fichero HTML (o tu primer programa en java).
Según vemos, este programa no es la mejor opción que tenemos, ya que podemos encontrar multitud de programas de escritorio que no dejan de ser editores de texto avanzados, dónde podemos darle formato, identar correctamente, etc. sin necesitar un IDE integrado.
Cómo ves todo son ventajas, veamos algunas de las muchas opciones que existen son:
- Visual Studio Code.
- Notepad++.
- Brackets.
- Sublime Text.
- Aptana Studio.
Gestor de contenidos más populares (CMS)
La gran mayoría de estos CMS están programados en MySQL y PHP, así que te puedes hacer una idea de cuál debería ser tu futuro para aprender a desarrollar para sistemas web.
Si quieres hacer una página sin tener conocimientos técnicos, la mejor manera de iniciar de alguno de estos gestores de contenidos (el 95% de las páginas que visitas son de alguno de estos CMS).
La mayoría de hostings ya tienen preparado un autoinstalador, así que solo tienes que elegir un theme (la parte visual de tu web), añadir los plugins que consideres necesarios, y adaptar el contenido a lo que necesites.
Algunos de estos gestores son:
- WordPress.
- Drupal.
- Joomla.
Cursos de programación web
Si quieres aprender programación web, la opción más fácil es hacer un curso, ya sea online o presencial.
De ambas maneras encontrarás muchos cursos, pero espero que la información que te he dado te permita buscar algo más concreto, ya se aprender desde cero o para especializarte en un lenguaje de programación web.
También te puede interesar algún curso de HTML5 y CSS, que no es programar sino maquetar, pero que es imprescindible si no tienes ningún conocimiento inicial sobre html o programación.
Conclusión final
Hemos hecho un buen repaso a varias cosas relacionadas con los lenguajes de programación web, empezando por lo más fácil, que son los conceptos generales hasta los distintas opciones que tenemos para aprender a hacer webs.