[solicitud] Ideas para una guía/charla/artículillo...

4 views
Skip to first unread message

gnz/vnk

unread,
Nov 15, 2011, 3:04:33 AM11/15/11
to javascript-es
Buenos días a todos y a todas.

Desde hace un tiempo llevo dando vueltas a una idea para escribir...
algo. Lo digo así porque el formato (artículo, presentación, etc)
puede variar, lo que me importa ahora mismo es definir el contenido. Y
por esto os escribo, para que opinéis y, si os parece, aportéis las
ideas que se os ocurran.

El *tema* del escrito sería el siguiente: La naturaleza de Javascript.

Me explico. Existen muchos libros, tutoriales, guías, introducciones,
etc, a Javascript. Pero casi invariablemente se centran en explicar
los detalles, dejando de lado la idea general. Por poner un ejemplo,
en montones de sitios se explican muchos "trucos" (detallitos tontos
que se presentan casi como inexplicables o mágicos) pero en casi
ningún caso se explica lo que hay detrás, por qué las cosas son de un
cierto modo.

Mi intención es la de escribir un texto introductorio. Pero para
alguien que no se preocupa por detalles de sintaxis o similares
(porque los puede encontrar explicados en cualquier otro sitio). Para
alguien que lo que quiere es una visión de la esencia, de lo que hace
diferente a Javascript de otro lenguaje que pueda ya conocer y al que
puede estar ya acostumbrado. Más concretamente... hay una fuerte
corriente de programadores que vienen de ciertos lenguage y que se
empeñan en querer que JS se parezca a esos lenguajes, en seguir
haciendo las cosas de la forma que es familiar para ellos. Yo creo que
en la mayoría de los casos esto ocurre porque en ningún sitio se
explica con claridad esa "diferencia esencial", que no está en que
1+"2" sea 3 o sea 12, sino en saber qué significa this, qué alcance
tiene una variable o que las funciones son valores. En fin, espero que
con esto entendáis lo que busco.

Lo que os quiero pedir es que reviséis las ideas que se me han
ocurrido como tabla de contenidos. Que me digáis qué falta, qué sobra,
qué creéis que sería mejor agrupar de otro modo, qué creéis que sería
mejor explicar por separado... en fin, todo lo que se os ocurra. Tened
en cuenta que, como digo, buscamos la "esencia", lo fundamental, lo
que define al lenguaje.

(Cuando vaya teniendo algunos fragmentos escritos en algún estado
visible, y si os interesa, me encantaría enviároslos para que los
reviséis :) Pero sólo si queréis, claro)


Bueno, al lío:

TOC:
- Valores y nombres. (pequeña introducción a las variables como
nombres de cosas y explicación de los tipos de valores existentes. las
funciones son valores)
- Alcance, resolución de referencias (var/let, this, prototipos)
- Funciones y objetos (generadores(constructores) y literales)
- Closures (lo pongo más que nada por los follones que se hace la
gente con esto)

Como veis no es mucho, pero es que es eso lo que busco. El puñado de
ideas que, dejando de lado detalles, son imprescindibles para sentar
las *bases* para que un programador con conocimientos de otro lenguaje
no intente amoldar JS a su lenguaje conocido, sino que comprenda la
naturaleza de JS y sea capaz de adaptarse él, su forma de pensar.

En fin, cualquier sugerencia será bienvenida. Incluso si queréis
proponer un TOC entero completamente distinto xD


Pasadlo bien,
Gonzalo

Jose Antonio Perez

unread,
Nov 16, 2011, 5:39:31 AM11/16/11
to javasc...@googlegroups.com
Es un objetivo muy interesante:

" ... para que un programador con conocimientos de otro lenguaje no intente amoldar JS a su lenguaje conocido, sino que comprenda la naturaleza de JS y sea capaz de adaptarse él, su forma de pensar."

Desde esa perspectiva la esencia del lenguaje son las Clausuras (Scheme) y los Prototipos (Self) , así que éstos tal vez deberían tener  también un capítulo propio, en el que se podría recoger el uso de las funciones como constructores. En el borrador de TOC que nos has mostrado los tienes a los pobres ahí, al final de una lista entre paréntesis :^)

A medida que vayas generando texto ve enviándolo y así aprendemos ;^)

Un saludo.
Jose.

gnz/vnk

unread,
Nov 16, 2011, 5:52:07 AM11/16/11
to javasc...@googlegroups.com
Sí... está claro que los prototipos deberían recibir su propia atención...

Estaban ahí por... bueno, porque guardan una cierta relación con la
resolución de referencias, nada más. Pero sí, me parece bien darles un
espacio propio :)

Gracias!

2011/11/16 Jose Antonio Perez <jose...@gmail.com>:

AltIvan

unread,
Nov 16, 2011, 9:40:08 AM11/16/11
to javascript-es
Otra de las cosas que hace único a Javascript es que se puede cambiar
el contexto de una función, usando otro valor para la palabra clave
'this' haciendo uso de los metodos Call y Apply de una funcion. En
otros lenguages como C++ eso es no es posible.

gnz/vnk

unread,
Nov 16, 2011, 1:00:30 PM11/16/11
to javasc...@googlegroups.com

Sí, 'this' lo tengo incluido en la parte de alcance y de resolución de
referencias.

Muchas gracias por el comentario de todos modos.

Jose Antonio Perez

unread,
Nov 16, 2011, 3:50:26 PM11/16/11
to javasc...@googlegroups.com
Desde mi punto de vista el uso del termino "contexto", relacionándolo con el concepto "función" vinculándolo al *ThisBinding*, lleva a algunas confusiones desafortunadas.  Creo que en el documento que estas elaborando deberías evitar dicho uso.

gnz/vnk

unread,
Nov 16, 2011, 4:51:37 PM11/16/11
to javasc...@googlegroups.com

Bueno, no entiendo del todo el problema de "contexto" (explica más, porfa) pero lo cierto es que es una palabra que no suelo usar, así que supongo que no me costará demasiado evitarla... espero :)

AltIvan

unread,
Nov 16, 2011, 7:32:22 PM11/16/11
to javascript-es
> Bueno, no entiendo del todo el problema de "contexto" (explica más, porfa)
> pero lo cierto es que es una palabra que no suelo usar, así que supongo que
> no me costará demasiado evitarla... espero :)

En realidad si puede dar para problemas

function externa(){
var privada = ""
function interna(){
alert("privada")
}
}

Aqui se puede decir que la funcion interna tiene acceso a la variable
"privada" gracias a que se encuentra en el mismo contexto. Para evitar
confusiones si es mejor decir que call y apply solo cambian el valor
asociado a la palabra clave "this" y también pueden pasar argumentos a
la función.

Raúl Martín

unread,
Nov 16, 2011, 5:20:14 PM11/16/11
to javasc...@googlegroups.com

Lo primero.
Tengo ganas de ver los resultados. Llevo mucho tiempo trabajando con js y es complicado hacerle ver a la gente por que hago algunas cosas como las hago.
De hecho a mi me vendrá de perlas, muchas veces hago cosas de manera automatica.

Si puedo ayudar en algo...

Un saludo y animo

gnz/vnk

unread,
Nov 16, 2011, 11:37:38 PM11/16/11
to javasc...@googlegroups.com
> En realidad si puede dar para problemas

Perdón. replantearé mi frase. no entiendo muy bien el problema de usar *la*palabra* "contexto".

Juan Ignacio Dopazo

unread,
Nov 17, 2011, 8:06:04 AM11/17/11
to javasc...@googlegroups.com


2011/11/17 gnz/vnk <gnz.g...@gmail.com>

> En realidad si puede dar para problemas

Perdón. replantearé mi frase. no entiendo muy bien el problema de usar *la*palabra* "contexto".

Creo que José quiere decir que la palabra "contexto" está en la misma familia de palabras que "ámbito". Y siendo que la primera se usa para referirse al valor de |this| y la segunda para referirse al conjunto de variables definidas dentro de una función/bloque (scope), puede darse a confusión.


Juan

gnz/vnk

unread,
Nov 17, 2011, 8:37:10 AM11/17/11
to javasc...@googlegroups.com
> Creo que José quiere decir que la palabra "contexto" está en la misma
> familia de palabras que "ámbito". Y siendo que la primera se usa para
> referirse al valor de |this| y la segunda para referirse al conjunto de
> variables definidas dentro de una función/bloque (scope), puede darse a
> confusión.

Aaham... Bueno, entonces ¿alguna sugerencia al respecto? ¿Uso alguna
palabra que os parezca que puede resultar más clara? ¿Directamente no
uso la palabra "contexto"? Yo, como decía, no tengo mucho problema por
no usarla, pero si tenéis alguna buena sugerencia soy todo oídos. (De
todos modos, ya enviaré los textos para que me digáis si se entiende o
no, claro)

Satyam

unread,
Nov 17, 2011, 8:43:35 AM11/17/11
to javasc...@googlegroups.com
On 11/17/2011 02:37 PM, gnz/vnk wrote:
>> Creo que Jos� quiere decir que la palabra "contexto" est� en la misma
>> familia de palabras que "�mbito". Y siendo que la primera se usa para

>> referirse al valor de |this| y la segunda para referirse al conjunto de
>> variables definidas dentro de una funci�n/bloque (scope), puede darse a
>> confusi�n.

> Aaham... Bueno, entonces �alguna sugerencia al respecto? �Uso alguna
> palabra que os parezca que puede resultar m�s clara? �Directamente no
> uso la palabra "contexto"? Yo, como dec�a, no tengo mucho problema por
> no usarla, pero si ten�is alguna buena sugerencia soy todo o�dos. (De
> todos modos, ya enviar� los textos para que me dig�is si se entiende o
> no, claro)
>
�sala pues, adem�s, es de uso corriente, pero aseg�rate de dejar en
claro su significado y ser consistente en su uso.
Reply all
Reply to author
Forward
0 new messages