Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. JavaScript

¿Qué es JavaScript?

by
Difficulty:BeginnerLength:LongLanguages:

Spanish (Español) translation by David Castrillón (you can also view the original English article)

Decir que JavaScript está en aumento en el desarrollo web sería un eufemismo. De hecho, hace años, el famoso programador Jeff Atwood acuñó la Ley de Atwood en la que declaraba:

Cualquier aplicación que puede ser escrita en JavaScript, eventualmente será escrita en JavaScript.

En el momento de escribir este artículo, hay muchos frameworks de JavaScript y librerías lo cual hace abrumador saber por dónde empezar, especialmente si eres un principiante.

Y sé que mucho de lo que publicamos aquí está dirigido a quienes ya tienen experiencia en escribir aplicaciones web o hacen algo en desarrollo web. Pero ese no es el público objetivo de este artículo.

En cambio, esto está siendo escrito específicamente para aquellos de ustedes que nunca (o apenas) han escrito una línea de JavaScript y desean aprender más sobre el lenguaje y entender lo que hay en él. Además, queremos cubrir cómo se utiliza y qué pueden esperar de él.

En definitiva, si eres un profesional, entonces este artículo no es para ti; sin embargo, si estás curioso por entrar en el mundo de JavaScript pero no estás seguro por dónde comenzar, entonces tal vez este artículo te ayudará a ponerte en la dirección correcta.

Comencemos..

JavaScript Definido

Probablemente has escuchado de que JavaScript es denominado "un lenguaje de script del lado del cliente ", que es otra manera de decir que es un lenguaje de programación que se ejecuta en un navegador web.

Por otra parte, Wikipedia lo define de esta manera:

JavaScript es un lenguaje de programación de alto nivel, dinámico, sin tipo e interpretado. Se ha estandarizado en la especificación del lenguaje ECMAScript.

Todo lo anterior es cierto (con diversos grados de complejidad), pero también cabe destacar que también se puede ejecutar JavaScript en el lado del servidor. Aunque esto está muy por delante de nosotros. A cambio, en primer lugar hablemos sobre algunos de los puntos anteriores y hablaremos de JavaScript del lado del servidor en otro artículo más adelante.

  • Alto nivel. Cuando un lenguaje de programación es de alto nivel, es considerado que ha sido construido sin necesidad de saber más detalles sobre el equipo subyacente. No tienes que gestionar la memoria, no tienes que saber qué tipo de procesador se está ejecutando, y no tienes que lidiar con cosas como punteros (tal como ocurre en lenguajes como C o Assembly).
  • Dinámico. Los lenguajes que son dinámicos permiten a los desarrolladores extender ciertos aspectos del lenguaje añadiendo nuevo código o introducir nuevos objetos (como un objeto Post ) mientras que el programa se está ejecutando versus la necesidad de compilar el programa. Esta es una característica poderosa de JavaScript.
  • Sin tipado. Si tienes alguna experiencia en programación, entonces probablemente te has cruzado con ciertos tipos de lenguajes que necesitan declarar el tipo de variable con la que estás trabajando. Por ejemplo, tal vez la variable almacenará un string o un valor boolean. En JavaScript, esto no es necesario. En cambio, simplemente se declara una variable con la palabra clave var.
  • Interpretado. Cuando un lenguaje es un lenguaje compilado, el código que tu escribes es convertido en un código binario ejecutable que puedes distribuir a otros. En Windows, estos archivos se denominan archivos EXE. En OS X, estos son a menudo programas que descargas desde la App Store o que arrastras en tu directorio de aplicaciones. JavaScript se interpreta, lo que significa que no hay ningún compilador. En cambio, el código es interpretado (tal como es PHP), así que hay una pieza de software intermediaria llamada el compilador, que se ubica entre el código que has escrito y el computador para traducir las instrucciones de ida y vuelta.
  • Estandarizado. JavaScript está estandarizado (su nombre oficial es ECMAScript) lo que significa que cualquier navegador que implemente el estándar ofrecerá las mismas funciones que cualquier otro navegador. Si no fuera estandarizado, entonces Chrome podría dar ciertas características que Edge no y viceversa.

Ahora que hemos cubierto los atributos del lenguaje, podemos discutir ciertos aspectos y matices sobre él.

Aunque todo lo anterior es importante, también es esencial conocer cómo el lenguaje trabaja (especialmente si has trabajado con otros idiomas) para que no vayas en desarrollo con ideas preconcebidas acerca de cómo podría funcionar o cómo debería funcionar.

Por el contrario, prefiero cubrir el cómo funciona para que puedas comenzar a escribir código y entender exactamente lo que estás haciendo.

Sobre el Lengiaje

Por encima de todo, JavaScript es un lenguaje de programación orientado a objetos, pero es probable que difiera un poco de lo que se ve normalmente (si previamente has utilizado un lenguaje de programación orientado a objetos).

JavaScript es lo que se ha llamado un lenguaje prototipado. Esto significa que todos los objetos en JavaScript, como String, se basan en prototipos.

Esto nos permite, como desarrolladores, añadir funcionalidad adicional a los objetos a través del uso de herencia prototipada:

La programación basada en prototipos, es un estilo de programación orientada a objetos en el que la reutilización del comportamiento (conocido como herencia) se realiza mediante un proceso de clonación de los objetos existentes que sirven de prototipos.

Yo diría que si nunca has trabajado con un lenguaje orientado a objetos antes, entonces puedes tener una ventaja en este punto porque no tienes ningún modelo conceptual que cambiar, para poder pensar acerca de cómo funciona esto.

Si, por el contrario, has trabajado en estos tipos de lenguajes creo que vale la pena distinguir cómo la herencia prototipada difiere de la herencia clásica:

  • En la herencia clásica, nosotros, como desarrolladores, escribiremos una clase. Pueden crearse varios objetos desde esta sola clase. Además, podemos entonces escribir otra clase que hereda de esta clase y crea instancias de estas clases. En esta situación, las subclases comparten código con su clase base. Así que cuando se creas una instancia de una subclase, estás recibiendo la funcionalidad de la subclase y la clase padre.
  • En herencia prototipada, no existe algo como clases. En su lugar, simplemente defines un objeto e introduces cualquier funcionalidad si es necesario. Cuando quieres agregar funcionalidad a un objeto existente, lo haces agregandola al prototipo del objeto. Si intentas llamar a un método en un objeto como Number entonces primero buscará el método en ese objeto. Si no lo encuentra, entonces se moverá en la cadena hasta que encuentre el método (que puede vivir en el objeto base).

Finalmente y tal vez lo más importante a tener en cuenta, es que cuando haces un cambio a un objeto a través de su prototipo, entonces es accesible a todo el que usa ese objeto (al menos en el contexto de su entorno).

Es realmente potente, es genial, pero también toma un ligero cambio en el pensamiento si no estás acostumbrado a trabajar en un ambiente como ese.

¿Cómo utilizamos JavaScript?

En cuanto a cómo realmente ponemos a JavaScript en uso, en última instancia depende de cuáles son tus metas. En un momento dado, trabajar con JavaScript significó que debías "hacer que algo suceda" en una página web. Estaba destinado a controlar el comportamiento.

Esto podría ser introducir un elemento, quitar (u ocultar) un elemento, o cosas así. Entonces la web avanzó un poco y los navegadores pudieron hacer llamadas asíncronas al servidor, dirigir la respuesta y luego cambiar el estado de la página en función de esta respuesta.

Todo esto se logra a través de Ajax. Si estás leyendo esto, estás familiarizado con el término. Si no, lo puedes pensar como una forma de JavaScript para realizar una llamada al servidor que aloja la página y luego manejar la respuesta que recibe, todo sin necesidad de recargar la página.

Pero maduró incluso hasta más allá de eso.

Google ha desarrollado un muy sofisticado motor de análisis de JavaScript conocido como V8, y otros navegadores también están trabajando para proporcionar el óptimo rendimiento de JavaScript.

The landing page for Chrome V8 Googles JavaScript Engine

De hecho, ahora somos capaces de escribir JavaScript en el servidor usando herramientas como Node.js. Además, somos incluso capaces de crear aplicaciones híbridas que se ejecutan en nuestros dispositivos móviles. Esto significa que somos capaces de crear soluciones para nuestros teléfonos, nuestras tabletas y nuestros equipos de escritorio mediante el uso de JavaScript.

The homepage for Nodejs a runtime engine for writing JavaScript on the server

Y esto proviene de un lenguaje que una vez fue utilizado como una forma de animar las cosas en una pantalla. Todo esto quiere decir es que si eres nuevo en JavaScript, no lo subestimes.

"¿Qué debo esperar del lenguaje?"

Todo lo anterior es interesante de leer y es divertido ver lo que somos capaces de hacer, pero desde una perspectiva puramente práctica, ¿qué podemos esperar del lenguaje JavaScript?

Independientemente de si eres nuevo en el lenguaje o estás buscando aprender un nuevo lenguaje pues tienes otras bases, tienes un nivel de expectativas en cuanto a lo que el lenguaje te puede ofrecer.

Y aunque ya hemos hablado sobre el funcionamiento del lenguaje desde una perspectiva interna, realmente no hemos hablado de los objetos que están disponibles en el lenguaje, y mucho menos de las APIs. Para ser honesto, cubrir las API´s y las funciones integradas en el lenguaje sería un artículo en si mismo.

¿Pero que cubre sus objetos integrados? Eso es algo que podemos revisar antes de terminar este artículo:

  • Objeto. El objeto base del que todos los demás objetos heredan algunas de sus funciones básicas.
  • Función. Ya que JavaScript es realmente orientado a objetos, esto significa que todo es un objeto, incluyendo las funciones. Así que cuando se crea una nueva función, se está creando una referencia a un objeto con un tipo de función. Y las funciones tienen propiedades que se pueden inspeccionar durante el tiempo de ejecución (por ejemplo, los argumentos pasados en él).
  • Valor booleano. Este objeto sirve como un contenedor de un objeto de valor booleano. En muchas idiomas, los valores booleanos son un tipo de datos que son true o false. En JavaScript, todavía puedes trabajar con esos valores, pero deben ser entendidos como objetos.
  • Número. En muchos lenguajes de programación, hay tipos primitivos como float, int, doble, y así sucesivamente. En JavaScript, hay sólo un tipo de número, y también es un objeto.
  • Fecha. Trabajar con fechas en la programación nunca es divertido, especialmente cuando se introducen las zonas horarias. No puedo decir que JavaScript va a resolver todos tus problemas relacionados con las zonas horarias, pero puede hacer un poco más fácil trabajar con las fechas (desde año y mes a día, hora, minutos y segundos).
  • Cadena. Casi cada lenguaje de programación tiene un tipo de datos primitivo de cadena. JavaScript no es muy diferente salvo que, como era de esperar, la cadena es un objeto con propiedades propias.

Recuerda que todos los tipos que ves arriba son objetos con propiedades (y funciones) propias que se pueden llamar. Esto no significa que tienes que llamar constructores para crear instancias de las variables. Es decir, se pueden crear cadenas y booleanos y números como este:

Pero, en última instancia, siguen siendo objetos.

Para ser claros, estos son los objetos básicos. Hay objetos mucho más avanzados que vale la pena explorar, sobre todo si vas a trabajar con manejo de errores, varios tipos de colecciones más allá de los Arrays , y así sucesivamente.

Si estás interesado en leer más acerca de estos, entonces te recomiendo revisar esta página en la red de desarrolladores de Mozilla.

¿Qué librerías y Frameworks están disponibles?

Si te has mantenido al día con los diferentes frameworks, bibliotecas y otras herramientas que existen en la economía de JavaScript, entonces no estás de ninguna manera atrás en qué tan vibrante se ha convertido esta economía. 

Pero este artículo está dirigido a aquellos que quieren empezar con JavaScript. Ahora que tienes una comprensión básica de cómo el lenguaje está estructurado y cómo funciona, es hora de mirar en las librerías y frameworks ofrecidas para ayudar a facilitar el desarrollo web o de aplicaciones.

  • jQuery es una librería que tiene como objetivo proporcionar una API de navegadores que te permite "escribir menos, hacer más".
  • Angular es un framework de JavaScript que tiene como objetivo hacer una página de aplicaciones más fácil.
  • React es una librería JavaScript para crear interfaces de usuario.
  • Backbone pretende dar estructura a aplicaciones web mediante el uso de modelos, colecciones y vistas.
  • Ember.js es otro framework para la "creación de aplicaciones web ambiciosas".
  • Y mucho más.

Esto está lejos de ser una lista completa de lo que está disponible, pero es un comienzo, y es un puñado de opciones con las cuales familiarizarse con JavaScript o al menos tener en cuenta, incluso si no trabajas con ellas.

Y al empezar a aprender JavaScript y empezar a recoger algunas de estas herramientas, puedes encontrar cuán populares son algunas de ellas cuando se trata de algunas de tus aplicaciones favoritas.

Aprender JavaScript

Como puedes esperar, Envato es todo para "enseñar habilidades a millones de personas en todo el mundo". ¿Así que qué sería un post como este si no incluyera enlaces a algunos de nuestros artículos y cursos más populares de Javascript?

Todos estos recursos son ideales para comenzar con JavaScript y añadirlo a tu repertorio de habilidades de desarrollo web.

Conclusión

En cuanto a desarrollo web, JavaScript está aquí para quedarse. Aunque puedas no usar lo que se ha considerado como "vainilla JavaScript" y optar por una de las muchas librerías o frameworks que están disponibles, JavaScript es un lenguaje que casi todo desarrollador web debe saber.

Por supuesto, no todo el mundo trabaja en el front-end. Algunos son puramente desarrolladores de lado del servidor; algunos son puramente desarrolladores de lado del cliente. Sin embargo, todos tenemos que trabajar juntos para asegurarnos de que las distintas partes de nuestras aplicaciones se comunican una con la otra.

Para ello, es al menos importante entender cómo se envían los datos desde el lado del cliente hacia el lado del servidor mediante JavaScript, y cómo se procesa en el lado del servidor y regresa al lado del cliente para ser utilizado en cualquier manera.

No seas tan rápido para salirte de JavaScript sólo porque no eres un desarrollador front-end. Las probabilidades son, de que alguien con quien estás trabajando lo está usando y vas a necesitar unir partes de la aplicación juntos.

Concedido, este artículo solo acaricia la superficie. Como dije al principio, el propósito del artículo es explicar qué es JavaScript, cómo se utiliza y qué esperar de él, especialmente para aquellos que acaban de empezar con el lenguaje.

Si has disfrutado este artículo, puedes también revisar mis cursos y tutoriales en mi página de perfil, y, si te interesa, puedes leer más artículos sobre WordPress y desarrollo WordPress en mi blog.

Recursos Adicionales

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.