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.
Por Kompanhero el 14 de Octubre de 2011
Llevo alrededor de un año trabajando con Jquery y aún le sigo encontrando nuevas funcionalidades (No sé si eso hable bien de Jquery o mal de mí ) Pero DART me llama mucho la atención principalmente por dos razones: Soy un orgulloso fanboy de Google y JAVA es mi lenguaje de programación favorito
Por One el 14 de Octubre de 2011
Se pueden hacer bastantes virguerias con un par de lineas de código.
Por MmO el 14 de Octubre de 2011
Código :
Por pablon el 14 de Octubre de 2011
Por Xavi el 14 de Octubre de 2011
Por Aoyama el 14 de Octubre de 2011
Por esutoraiki el 14 de Octubre de 2011
Por Lexas el 14 de Octubre de 2011
Por miguelwill el 14 de Octubre de 2011
falta mencionar las bondades de Mootools (seria bueno mencionar que es lo que dicen los creadores de cada framework con respecto a su creación, que es lo que se quería obtener )
así se tendrá una visión mucho mas amplia
Por ThonyFD el 14 de Octubre de 2011
Por cryptt3r el 14 de Octubre de 2011
Por Aoyama el 14 de Octubre de 2011
Lexas :
Puedes probar con jQuery no es muy complicado y siempre puedes intercambiar
Por Akasha el 14 de Octubre de 2011
Por Billy el 15 de Octubre de 2011
Por Lexas el 15 de Octubre de 2011
Aoyama :
Lexas :
Puedes probar con jQuery no es muy complicado y siempre puedes intercambiar
Claro!, gracias
Por docma el 15 de Octubre de 2011
Por Otaku RzO el 15 de Octubre de 2011
Por gosunkugi el 15 de Octubre de 2011
Por Pablo el 15 de Octubre de 2011
Por Deivtox el 16 de Octubre de 2011
Clabbers, no soy muy bueno con el desarrollo Web, a mi me gustaba desarrollar para escritorio, pero Cristalab y mejorando.la ( cvander y freddie, sobre todo freddie)me ha cambiado el pensamiento, ahora quiero involucrarme mas con la web, asi que si en momentos comento tonterias u oraciones que no van, corrijanme para que aprenda, y claro sus opiniones, criticas son bien recibidas .
Por Lexas el 16 de Octubre de 2011
Por harklesmaster el 16 de Octubre de 2011
Me gusto mucho coffeescript, pero no se en realidad como usarlo, ya que mi proveedor de hosting no me permite meter comandos (en mejorando.la mostraron como correrlo por terminal, por lo que esto no lo puedo hacer); si llegasen a hacer un articulo sobre los frameworks y como usarlos, estaria de 10.
Saludos
Por Lexas el 16 de Octubre de 2011
harklesmaster :
Me gusto mucho coffeescript, pero no se en realidad como usarlo, ya que mi proveedor de hosting no me permite meter comandos (en mejorando.la mostraron como correrlo por terminal, por lo que esto no lo puedo hacer); si llegasen a hacer un articulo sobre los frameworks y como usarlos, estaria de 10.
Saludos
Eso es algo que suelo señalar a menudo, los tutoriales solo explican cómo usar las herramientas, pero no cómo implementarlas, por lo tanto le viene sirviendo solo a quienes tengan un hosting propio, dedicado o trabajen para empresas medianas a grandes.
Por harklesmaster el 16 de Octubre de 2011
Si se pone esto en tu sitio ,en la cabecera:
<script src="https://raw.github.com/jashkenas/coffee-script/master/extras/coffee-script.js"></script>
<script type="text/coffeescript">
square = (x) -> x * x
alert square(4)
</script>
funciona.
Y tienes razon, es un articulo, ya veremos si despues se vienen tutoriales, pero da gusto ver que el apoyo a la comunidad desarrolladora es buena, un ejemplo, freddy vega con mejorando.la (no me lo pierdo ).
Me gusto mucho coffeescript desde que lo vi en la conferencia de mejorando.la , pero aun no encuentro como sacar las capas tomando como referencia las ids de las capas =/.
Por DevCH el 16 de Octubre de 2011
Por miguelwill el 17 de Octubre de 2011
JQuery esta echo para optimizar/mejorar la programación con el DOM (y facilitarla)
en cambio
Mootools esta echo para optimizar la programación en JS (cualquier cosa que se pueda hacer), por lo que sus enfoques son bastante diferentes.
saludos
Por Keith_NT el 17 de Octubre de 2011
Freddie :
Me quedo con DART.
Por edwin55 el 17 de Octubre de 2011
jquery para moviles se ve cool, aunque aun no lo he utilizado.
Por aamenabar el 18 de Octubre de 2011
Yo aún mezclo javascript con jQuery (por ahí dicen que si es nativo es mejor).
y no me vuelve loco la sintaxis en línea que se usa para jQuery, sobre todo si estás asignando funciones anónimas a un montón de eventos de un montón de objetos.
DART promete lo que no se logró con la propuesta ECMA 4, lo que me tinca mucho y es lo qué más echo de menos de Flash, la higiene y potencia de AS3.
Coincido que Mootools debe estar mencionado, pero es un framework mucho más de nicho, es como YUI.
Por Freddie el 19 de Octubre de 2011
Xavi-blog :
aamenabar :
Por Djiner el 20 de Octubre de 2011
buena estuvo eso de:
"...como ExpressJS que es lo que Django es a Python o PHP es a... PHP."
Por cristian_cena el 03 de Noviembre de 2011
Por jaime el 10 de Noviembre de 2011
SproutCore
JavascriptMVC
Backbone.js
Cappuccino/Objective-J
AKShell
Los multiples y flexibles patrones de disenio que podemos aplicar en JavaScript.
Los/Las productos/plataformas mencionados/mencinadas son en realidad excelentes (No puedo decir lo mismo de Dart aun y el estar atado a JAVA no me emociona para nada) pero creo que es una lista muy poco informativa en la que no podemos apreciar la cantitad de recursos con los que contamos para desarrollar JavaScript.
FrontEnd Javascript no es solo jQuery.
Saludos.
Por Freddie el 11 de Noviembre de 2011
Por el 16 de Noviembre de 2011
Por cristian_cena el 04 de Diciembre de 2011
Por Daniel Zegarra el 11 de Enero de 2012
Por angelvargaspool el 19 de Enero de 2012