June 14, 2011

Nearsoft SummerTalks 2011 day 2 session 2

JavaScript. Quick Overview of the Awesomeness of JavaScript

"Java is to JavaScript what Car is to Carpet", Chris Heilmann

*Hugo Blanco Sandoval

JS es un lenguaje de programación que toma sus principios de diseño de Self y de Scheme.

En JS no existen las clases, todo es un objeto.

1. Basado en prototipos.
2. orientado a Objetos.
3. Dinámico y "Weakly Typed" (los tipos no son estáticos como en otros lenguajes, no tienes que hacer casts explícitos...)
3. Funcional (las funciones son como cualquier tipo de dato)
4. Sintaxis basada en C.
5. Naming Conventions de Java.

Creado por Brian Eich de Netscape (lo diseño e implementó en dos semanas) bajo el nombre de "Moch", luego se le llamó LiveScript.

Microrosft hizo una versión llamada Jscript.

The Good Parts: Objects <-"The good parts", book to look for, recomendado

var myObject = new Object(), //using Object constructor
mObjectLiteral = {
property: [1,2,"A String"],
method: function(value){
return value;
}
};

Object.create = function (o) {
var F = function () {};
F.prototype = o;
return new F();
};

//Access to members
myobjectLiteral.property;
myObjectLiteral[´property´];


The Good Part: Functions

*son funciones de alto orden, o como algunos les dicen, ciudadanos de primera clase.

Las funciones heredan de Function,prototype, por lo tanto SON funciones.

*El scope en las familias de C está dividido en bloques, en java el scope es el contexto en el que se está ejecutando el código en ese momento (función global, etc)

*podemos definir un arreglo vacío abriendo y cerrando corchetes, y un objeto vacío abriendo y cerrando llaves.

*js soporta recursión, funciones anónimas...

The Good Parts: JSON

JavaScript Object Notation

*Un objeto JSON es una serie ordenada de valores.

The JSON rules:

-Six kind of values: objects, arrays, strings, numbers, booleans, null.
-Whitespace may be inserted before or after any value.
-An object is an unordered container of name/value pairs. A name can be any string.
-The JSON Array is an ordered sequence of values. A value can be any JSON value, including arrays and objects.

Nodejs

nodejs ->javascript fuera del browser usando el motor de *

Its an event-driven I/O framework for the V( JavaScript engine on Unix-like platforms. It is intended for writing scalable network programs such as web servers.

*Programacion asíncrona específicamente dirigida a los eventos de entrada/salida

Unlike most JavaScript, is not executed in a web browsers, but is instead a form of server-side Java Script. Node.js implements some CommonJS specifications. Node.js includesa REPL environment for interactive testing.

*muy joven, muy popular.

Apache CouchDB -bd no relacional

Apache CouchDB is a document-oriented database that can be quieried and indexed in a MapReduce fashion using JavaScript. CouchDB also offers incremental replication with bidirectional conflict detention and resolution.

*Casandra (db) es la que usan en FB.


*Tenemos js en todas las capas de la aplicación, defines tu base de datos, defines tus views, defines tus maps y empiezas a guardar objetos, usas nodejs como server, haces una interfaz de usuario...


Languages that compile to javascript

*thr world´s new virtual machine

-coffee script <-usa una sintaxis similar a la de
-coco
-milescript (commercial)
-opal
-pyjamas <-w/python
-google web toolkit (GWT)
-clojurejs
-spock

Books!

JavaScropt: The Good Parts (Douglas *, ed OReilly)
DOM Scripting <-básico, pero va de menos a más, al final AJAX, técnicas más complejas
Head First JavaScript
Bulletproof AJAX

disclaimer: something wrong? not my problem :P but fix it in the comments







No comments: