Comunidad de diseño web y desarrollo en internet online

La revolución de Javascript

De un lenguaje de script, Javascript se ha convertido en los últimos años en la plataforma de desarrollo más usada en el mundo. Hoy, Javascript se está reinventando gracias a proyectos como Coffeescript, DART, Node.js y jQuery.

Javascript es un lenguaje de script muy simple. Orientado a objetos (como Actionscript 2, sin clases) y basado en la sintaxis ECMAScript, derivado de C. Fue pensado para crear sencillas interacciones en la web, pero hoy es uno de los lenguajes criticos de las plataformas modernas.

TODAS las webapps usan Javascript. Facebook, Google (con Instant), Twitter o Maps funcionarían muy limitado o serían imposibles sin JS.

La primera revolución fueron los Just in Time Compilers (JIT compiler) como Tamarin de Adobe. Los motores JIT en los navegadores hicieron a JS un lenguaje MUY VELOZ. Chrome tiene V8, Firefox tiene JägerMonkey y cada browser tiene un JIT Compiler que hace que JS tenga tanta velocidad como la tuvo alguna vez Java.

Pero la revolución más fuerte está en el lenguaje. Cuatro tecnologías quieren cambiar la forma en la que escribimos Javascript y tu tienes que elegir alguna. ¿Aun haces Javascript desnudo sin ningún framework o compilador? Estás en el pasado:


DART


DART es el esfuerzo de Google por crear un Javascript más Java. Tu programas en DART con su sintaxis propia, al estilo Java y si estás en Chrome, te corre nativo. Si estás en otro navegador, DART es capaz de "compilarse" a Javascript normal. Por lo que funciona en todos los navegadores.

Las ventajas: DART es un lenguaje orientado a objetos real. Namespaces, clases, herencias, interfaces, patrones de diseño, todo lo que esperas en un lenguaje robusto y poderoso con toda la ingeniería de software aplicable. Por ejemplo, así se hace un hola mundo:

Código :

class HelloDartTest {
  static testMain() {
    print("Hello, Darter!");
  }
}

main() {
  HelloDartTest.testMain();
}

Las desventajas: Ese hola mundo de unas 5 lineas de código se convierten en !17mil lineas de Javascript compilado! Aun está en proceso el lenguaje y el compilador (alpha) pero la necesidad de precompilación antes de usarlo hace que DART aun sea una opción, aunque prometedora, verde.


Node.js


Node.js es la capacidad de usar Javascript del lado del servidor, igual que usarías PHP. Puedes programar con JS toda tu aplicación. ¿Otra ventaja? Comparten ambito de variables. Puedes compartir datos JSON entre cliente y servidor de manera transparente, sin variables de sesión ni cookies. ¿Otra ventaja? Es realtime. Con el uso de websockets, AJAX pooling, proxy http y otras técnicas, Node.js crea una conexión de intercambio de datos en tiempo real con el server.

Hacer un chat por ejemplo, es tan idiota como poner esto en el server:

Código :

var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
  socket.on('chat', function (data) {
    socket.emit('room', { mensaje: data.mensaje });
  });
});

Y esto en el JS del HTML:

Código :

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('room', function (data) {
    //codigo para poner mensaje nuevo en la conversación
  });
  // código para enviar como cliente un mensaje al chat
  socket.emit('chat', { nick: "freddier", mensaje: campo.value });
</script>

¿Desventajas? Es su propio server, no se pega a Apache o similares. Aun está un poco verde aunque ya hay frameworks enteros de desarrollo de webapps como ExpressJS que es lo que Django es a Python o PHP es a... PHP.


CoffeeScript


Coffeescript es una revolución muy interesante. Muy similar a DART, CoffeeScript es un precompilador de Javascript en el que programas en una sintaxis muy similar a Python y el software te genera los JS. Es JS de toda la vida, pero con una sintaxis mejor y una librería nativa mejor.

Como ejemplo, este es el hola mundo de CoffeeScript, con funciones, declaración de objetos JSON e invocación:

Código :

mensaje =
    parte1: "hola "
    parte2: "mundo"
holaMundo = ->
    alert mensaje.parte1 + mensaje.parte2 + "!"
holaMundo()

Y este el resultado compilado en Javascript:

Código :

var holaMundo, mensaje;
mensaje = {
  parte1: "hola ",
  parte2: "mundo"
};
holaMundo = function() {
  return alert(mensaje.parte1 + mensaje.parte2 + "!");
};
holaMundo();


Es bastante eficiente y robusto y todo se convierte a JS nativo. Si te gusta más Python o Ruby que Java, entonces CoffeeScript es el camino. Si eres más Java y tradicional, apuestale a DART.


jQuery, jQuery UI y jQuery Mobile


jQuery es el framework más famoso por excelencia y Cristalab tiene infinidades de tutoriales de jQuery. jQuery UI es la extensión de jQuery cargada de componentes de interfaz que permite crear apps completas basadas en el navegador. Pero la gente de jQuery ha creado algo más hermoso en jQuery Mobile.

Con la ayuda de Adobe y su Theme Roller, jQuery Mobile permite crear completamente aplicaciones web para todo tipo de teléfonos móviles y tabletas sin necesidad de HTML. Define TODO en JS. Define headers, secciones, botones, sliders, diseños, colores, pantallas, efectos. TODO. jQuery Mobile se encarga de convertirlo a algo visual, lindo, veloz y que funcione en TODOS los teléfonos modernos y no tan modernos.

Y si sumamos PhoneGap (que ahora es de Adobe) o Adobe AIR, podemos con ese mismo código crear una app nativa multiplataforma para iPhone, iPad o Androids.

El fin de la incompatibilidad


La magia detrás de cosas como DART, jQuery, Node.js y Coffeescript es que son 100% retrocompatibles con todos los navegadores, incluso los viejos. Ya pasó el tiempo en el que un script no te funcionaba en ciertos IE u otra cosa rara no arrancaba en Firefox o Chrome. Ahora programas una vez y lo ves igual en todas partes.


Excepto claro, si aun haces JS desnudo de siempre. Que es muy testosterónico, pero poco productivo. Los frameworks hacen fácil la vida, los grandes jugadores los usan. No hay por qué no usarlos.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate