Ver Mensaje Individual
  #56  
Antiguo 16-10-2011
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Yo diria que peor en si que la sintaxis, a pesar de lo que he discutido, es que no tiene un caso de uso poderoso que lo justifique. Es solo un javascript "mejorado" pero en que que realmente beneficia?

Veamoslo desde el punto de vista de su publico objetivo, programadores de paginas web.

Lo unico que tiene de medio-gracia es que el sistema de libreria, pero:

- No tiene un modelo de DOM mejorado. O sea, algo que realmente destaque VS tener una lib como mootools o Jquery.
- No tiene una mejor respuesta a generar html dinamicamente
- No tiene un mejor modelo de asincronia, que realmente facilite interfaces fluidas
- No hace mas facil aplicar efectos, transiciones ni demas cosas del CSS3, o Canvas o todo eso
- No incorpora un sistema de validación, integración de manejo de formularios a nivel de lenguaje, ni nada parecido
- No veo como reduce el codigo necesario para hacer las tareas tipicas, ni como supera a jquery y familia
- Ni le veo una integracion profunda con html5, css3 ni demas tecnologia emergente

Todo eso se puede resolver con librerias. Que es lo mismo que se hace con JS. La gracia de inventar un nuevo lenguaje es volver en keywords cosas que requieren librerias y mucho codigo redundante.

Un ejemplo, son como apple metio los "blocks" para hacer multi-hilo facil:

Código PHP:
//A partir de aqui la descarga es asincronica, pero el codigo se ve sincronico
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT0), ^{
        
// Esto es en el background

        
UIImage *avatarImage nil
        
NSURL *url = [NSURL URLWithString:urlString];
        
NSData *responseData = [NSData dataWithContentsOfURL:url];
        
avatarImage = [UIImage imageWithData:responseData];
        
NSLog(@"Finishing: %@"urlString);
        
        if (
avatarImage) {
            
//Retorna al thread main para actualizar la GUI sin bloquear
            
dispatch_async(dispatch_get_main_queue(), ^{
                
self.image avatarImage;
            });
            
dispatch_async(dispatch_get_main_queue(), completion);
        }
        else {
            
NSLog(@"-- impossible download: %@"urlString);
        }
    }); 
Blocks es sintaxis que ahorra un monton de escribir con clases tipo thread, asincronismo y todo eso (y en el caso de obj-c, que es muy "verbosed" ahorra un MONTON). Eso es la gracia de un lenguaje...

Otro ejemplo es node.js

Código PHP:
var http = require('http');
http.createServer(function (reqres) {
  
res.writeHead(200, {'Content-Type''text/plain'});
  
res.end('Hello World\n');
}).
listen(1337"127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/'); 
Una extension a JS que hace facil hacer servidores HTTP multi-hilos asincronicos. Esta enfocado en ese caso de uso y se nota...
__________________
El malabarista.
Responder Con Cita