Probablemente creas que javascript sirve para hacer sitios web dinámicos y ya. La razón de esto es porque inicialmente fue pensado con ese objetivo. Pero desde hace un tiempo que este querido lenguaje decidió moverse por otras ramas de la informática. 

Front end

Empecemos por dónde comenzó, el Front-End. Javascript se utiliza principalmente en sitios y aplicaciones web porque el navegador ya soporta este lenguaje.

Entonces, ¿cómo se crean estas plataformas? Bueno, para eso se usan frameworks y bibliotecas. Por ejemplo, una biblioteca muy popular que se usa para esto es React, otra es Angular, y otra es Vue. Aunque hay otra opción que está comenzando a usarse, Svelte. Estas bibliotecas y frameworks se utilizan para crear aplicaciones dentro del navegador.

Si te preguntas por qué son necesarias usarlas, es porque generalmente al crear estos sitios añadimos interactividad – como botones, animaciones, sliders, etc–, Entonces para poder controlar esto en una aplicación que va creciendo poco a poco se utiliza frameworks y bibliotecas. Porque si lo hicieramos desde cero al final llegaríamos a la misma respuesta o una respuesta similar.

Lo que nos ofrecen estos frameworks y bibliotecas es poder crear esa interactividad de una forma más sencilla.

Pero como te dije anteriormente, javascript no sólo sirve para esto.

Back end

No sólo funciona en el navegador sino que también puede usarse del lado del servidor. Para esto se utiliza un entorno de ejecución llamado Node.js. Si no sabes de qué se trata, básicamente Node es un intérprete de javascript que se utiliza dentro del sistema operativo. De esta manera, ya no sólo se usa Javascript para crear páginas o sitios web sino también para crear otro tipo de desarrollo. Y desde el nacimiento de Node.js javascript dejó de enfocarse tan sólo en el navegador.

Si ya conoces algo del frontend, por ejemplo, HTML5, CSS3 y Javascript, y ya conocen algunas bibliotecas o frameworks, lo siguiente sería aprender un poco más de Node.js. No solamente porque es una parte esencial para otros tipos de desarrollos sino porque también te permite entender cómo funciona el desarrollo web front end profesional. Es que muchas tecnologías frontend utilizan esta herramienta por debajo. Pero el enfoque principal de Node es permitirle a Javascript ejecutar aplicaciones del servidor. Por ejemplo, algunos frameworks que sirven para crear aplicaciones del servidor al estilo de php, java, c#, etc. Un framework de este estilo y muy conocido sería Express.

Express permite poder crear aplicaciones del servidor típicas como API’s y aplicaciones multi páginas. O también nos permite crear aplicaciones un poco más modernas, utilizando conceptos como GraphQL, websocket y demás. Entonces este framework te da las cosas básicas hechas y en las cosas más avanzadas te deja elegir qué quieres hacer.

Pero también hay alternativas, como Hapi. Un framework de node que es bastante utilizado. Es muy parecido a Express pero es un poco más moderna, en el sentido de que tiene módulos mejor organizados que Express.

Luego también hay otro framework, LoopBack, que es patrocinado por IBM y que se diferencia de la anterior por decirte cómo hacer las cosas: crear componentes, como llamar componentes del servidor, etc.

Y hasta acá es el desarrollo típico. Ambos conocemos algo de Frontend o Backend. Pero también se pueden hacer otros tipos de desarrollos.

Aplicaciones de Escritorio

Aquí entraría Electron, un framework que nos permite crear aplicaciones de escritorio utilizando conceptos de HTML5, CSS3 y Javascript. Electron utiliza Node para comunicarse con el sitema operativo, y utiliza HTML5, CSS3 y JavaScript para poder desarrollar la interfaz. Electron se ha utilizado en aplicaciones muy populares como Visual Studio Code, Twitch, Microsoft Team, Figma, y otros.

Otras alternativas podrían ser nw.js y NodeGui, estos dos son menos populares que Electron. Principalmente porque no están siendo utilizadas por aplicaciones que utilizamos en nuestro día a día, asi que no se actualizan constantemente.

Aplicaciones móviles

Incluso se puede crear aplicaciones móviles con Javascript. Para esto tienes a Ionic, un framework que te posibilita crear aplicaciones móviles utilizando tanto Angular, como React y Vue. Ahora también puedes hacer aplicaciones móviles bastante simples de poder crearse, porque  cuenta con componentes ya creados para utilizar (alertas, botones, tarjetas y otras cosas). Tampoco es la única alternativa, también está React Native y NativeScript.

CLIS

Pero no todo tiene que ser algo visual, como desarrolladores utilizamos otras cosas que no tienen interfaz gráfica. Estoy hablando de los CLI (Comande Line Interface), las aplicaciones de consola que utilizamos a diario. Por ejemplo existen consolas que te permiten interactuar con API’s, o te permiten utilizar frameworks para crear proyectos y demás. Esos programas de consola también se tienen que programar y para eso también existen frameworks. Una opción sería Commander.js, que básicamente te permite crear nuevos comandos para dar ayuda, decir la versión de tu herramienta de consola, etc. Si creías que era fácil crear una aplicación de consola, en realidad tiene los mismo problemas que cualquier tipo de aplicación (poder instalarlo, poder hacerlo crecer, y sobre todo lograr que funcione en distintos sistemas operativos).

Commander.js no es el único, porque también está Inquirer.js, este nos ofrece poder ir haciendo preguntas, listas ordenadas, alternativas, o poder escoger opciones y demás dentro de la consola.

Videojuegos

Y muy aparte de aplicaciones de escritorio o aplicaciones de consola también se pueden programar videojuegos que funcionen tanto dentro del navegador como fuera del navegador.

Para esto también existen frameworks aunque en Javascript es posible hacerlo desde cero abriendo un canvas y dibujar pixel por pixel, frame a frame lo que quieres hacer. Pero en realidad la forma más sencilla es hacerlo utilizando algún motor de videojuegos, por ejemplo, algunos de estos son Gdevelop, el cual te permite a través de un IDE ir arrastrando elementos para crear tu videojuego.

Otro también es Melonjs, el cual es una alternativa muy similar aunque un poco más pequeña. Incluso también existen otros framework que tienen planes pagados, como por ejemplo Impact. Este framework te permite crear videojuegos en 2D que incluso son adaptados a  dispositivos móviles. Otro muy parecido a Impact es Babylonjs, que basicamente te permitir hacer lo mismo pero enfocándose en los videojuegos 3D.

Y si te preguntas cómo es posible crear elementos 3D dentro del navegador es porque existe una biblioteca dentro del navegador llamada WebGL, que para trabajar con esta existen otras bibliotecas ya que es un poquito difícil usarla de forma nativa. Por ejemplo, una de estas  bibliotecas es Three.js la cual permite poder utilizar esta API llamada WebGL para poder crear videojuegos, animaciones, entre otras cosas.

Música

Y si alguna vez te preguntaste cómo podrías hacer que los elementos reproduzcan un sonido al pulsar sobre ellos, la razón de que se pueda es que el navegador tiene una API que está relacionada con Audio. Y una biblioteca que nos permite hacer eso es Tonejs que, como su nombre lo indica, nos permite crear tonos para componer música. No es la única, también está howler.js, este te permite añadir audio que hayas compuesto previamente en otro software.

Hardware

Y muy aparte de esto, Javascript también sirve para hacer Hardware. Si alguna vez has tenido una placa de Arduino o Raspberry Pi también  puedes programarlas con javascript.  Jhonny Five es una biblioteca muy simple para poder programar placas electrónicas. Pero no sólo sirve para cosas básicas, también hay una plataforma llamada Node-red que está enfocada a  IOT (Internet Of Things) utilizando javascript como lenguaje. Entonces también puedes crear una red de dispositivos electrónicos que se pueden comunicar a través de la nube utilizando esta  plataforma que ofrece IBM.

Aunque esto no termina acá, ya que Javascript funciona para muchas cosas más, creo que son suficientes motivos para adentrarse en este poderoso lenguaje.

Dejar respuesta

Please enter your comment!
Please enter your name here