PDF de programación - Eloquent Javascript en Español

Imágen de pdf Eloquent Javascript en Español

Eloquent Javascript en Españolgráfica de visualizaciones

Publicado el 23 de Octubre del 2018
12.497 visualizaciones desde el 23 de Octubre del 2018
1,5 MB
155 paginas
Creado hace 3a (21/06/2016)
Table of Contents

Eloquent JavaScript
Introducción
1. Valores, Tipos y Operadores
2. Estructura del Programa
3. Funciones
4. Estructuras de Datos: Objetos y Arreglos
5. Funciones de Order Superior
6. La Vida Secreta De Los Objetos
7. Proyecto: Vida Electronica

1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9

1

Eloquent JavaScript

Eloquent Javascript en Español

2

Introducción

Introducción

Este libro trata de como hacer que las computadoras hagan lo que tú quieres que hagan.
Las computadoras son tan comunes como los desatornilladores hoy en día, pero tienen
mucha más complejidad oculta y, por lo tanto, son más difíciles de operar y entender. Para
muchos siguen siendo cosas extrañas, un poco amenazadoras.

Hemos encontrado dos formas efectivas de cerrar la brecha ente nosotros, suaves
organismos biológicos con talento para el razonamiento social y espacial, y las
computadoras, manipuladoras sin sentimientos de datos sin sentido. La primera es usar
nuestros sentidos del mundo físico y construir interfaces que imitan ese mundo y nos
permiten manipular figuras en una pantalla con nuestros dedos. Esto funciona muy bien
para interacciones casuales con la máquina.

Pero aún no hemos encontrado una buena forma de usar la interfaz gráfica para comunicar
a la computadora cosas que el diseñador de interfaces no anticipó. Para interfaces abiertas,
como indicarle a la computadora que ejecute tareas arbitrarias, hemos tenido más suerte
con otra estrategia, que hace uso de nuestro talento para el lenguaje: enseñarle a la
computadora uno.

Los lenguajes humanos permiten que palabras y frases se combinen en muchas diferentes
formas, lo cuál nos permite decir una amplia variedad de cosas. Los lenguajes
computacionales, aunque son gramaticalmente menos flexibles, siguen un principio similar.

La computación casual se ha extendido mucho en los últimos 20 años, y las interfaces
basadas en el lenguaje, que alguna vez fueron la forma predeterminada en la que las
personas interactuaban con las computadoras, han sido reemplazadas en gran medida por
interfaces gráficas. Pero todavía están ahí, si sabes donde buscar. Uno de estos lenguajes,
JavaScript, está presente en casi todos los navegadores web existentes y por lo tanto,
disponible en prácticamente todos los dispositivos de consumo.

3

Introducción

Este libro trata de hacer que te familiarices lo suficiente con este lenguaje para que puedas
hacer que la computadora haga lo que tú quieras.

En la Programación

No ilumino a aquellos que no están deseosos de aprender, tampoco despierto a
quienes no están ansiosos de darse una explicación a sí mismos. Si les he presentado
una esquina del cuadro y ellos no vienen con las otras tres, no debería recorrer otra
vez los puntos." Confucio

A parte de explicar JavaScript, te introduciré en los principios básicos de la programación.
Programar, resulta difícil. Las reglas fundamentales típicamente son simples y claras. Pero
los programas contruidos sobre esas reglas tienden a volverse lo suficientemente complejos
para introducir sus propias reglas y más complejidad. En cierta forma, estás construyendo
tu propio laberinto y podrías perderte en él.

Habrá ocasiones en las que al leer este libro te sentirás terriblemente frustrado. Si eres
nuevo programando, tendrás mucho material nuevo para digerir. Mucho de este material
después será combinado en formas que requerirán que hagas conexiones adicionales.

Es tu responsabilidad realizar el esfuerzo necesario. Cuando se te haga difícil seguir este
libro, no concluyas rápidamente nada acerca de tus capacidades. Tu eres bueno—sólo
necesitas mantener el paso. Toma un respiro, vuelve a leer el material, y siempre asegúrate
de leer y entender los programas de ejemplo y los ejercicios. Aprender es un trabajo duro,
pero todo lo que aprendas ahora es tuyo y hará el aprendizaje cada vez más fácil.

El programador de computadoras es el creador de universos de los cuales él sólo es
responsable. Universos de complejidad virtualmente ilimitada pueden ser creados en la
forma de programas de computadora."

Joseph Weizenbaum, Computer Power and Human Reason

Un programa es muchas cosas. Es una pieza de texto escrita por un programador, es la
fuerza que dirije a la computadora para hacer lo que hace, son datos en la memoria de la
computadora, y aún así controla las acciones realizadas en esta misma memoria. Las
analogías que tratan de comparar a las computadoras con objetos que conocemos tienden
a quedarse cortas. Una que se ajusta superficialmente es la de máquina, un montón de
piezas separadas que se relacionan, y para hacerlo funcionar, tenemos que considerar las
formas en que esas piezas se interconectan y contribuyen al funcionamiento del todo.

Una computadora es una máquina que actua como anfitriona de estas máquinas
inmateriales. Las computadoras por sí mismas sólo pueden hacer cosas estúpidamente
simples. La razón por la que son tan poderosas es que hacen esas cosas a una velocidad

4

Introducción

increíblemente rápida. Un programa puede combinar ingeniosamente un número enorme de
esas acciones simples para lograr cosas muy complicadas.

Para algunos de nosotros, escribir programas de computadoras es un juego fascinante. Un
programa es un construcción del pensamiento. No tiene costo construirlo, no pesa nada, y
crece fácilmente bajo nuestras manos tecleando.

Pero si no tenemos cuidado, el tamaño y la complejidad de un programa se saldrán de
control, confundiendo incluso a la persona que lo creó. Mantener los programas bajo control
es el principal problema de la programación. Cuando funcionan, es hermoso. El arte de
programar es la habilidad de controlar la complejidad. Un gran programa está dominado,
hecho simple en su complejidad.

Muchos programadores creen que esta complejidad es mejor controlada usando sólo un
pequeño conjunto de técnicas bien entendidas en sus programas. Estos han compuesto
reglas estrictas (“mejores prácticas”) que prescriben la forma que los programas deberían
tener, y los más celosos de ellos considerarán a aquellos que se salen de esta pequeña
zona segura como malos programadores.

¡Qué hostilidad hacia la riqueza de la programación, la de tratar de reducirla a algo simple y
predecible, tratar de hacer tabú a todos los programas extraños y bellos! El panorama de
todas las técnicas de programación es enorme, fascinante en su diversidad, y permanece
inexplorado en gran parte. Ciertamente es peligroso, ira seduciendo al programador novato
con todo tipo de confusiones, pero eso sólo significa que debes de andar con cuidado y
estar alerta. Conforme vayas aprendiendo, siempre habrá nuevos retos y nuevo territorio
por explorar. Los programadores que se nieguen a explorar dejarán de progresar, olvidarán
su alegría, y se aburrirán con su trabajo.

Por qué el lenguaje importa

En el principio, cuando nació la computación, no había lenguajes de programación. Los
progrmas lucían algo así:

00110001 00000000 00000000
00110001 00000001 00000001
00110011 00000001 00000010
01010001 00001011 00000010
00100010 00000010 00001000
01000011 00000001 00000000
01000001 00000001 00000001
00010000 00000010 00000000
01100010 00000000 00000000

5

Introducción

Eso es un programa para sumar los números del 1 al 10 e imprimir el resultado: 1 + 2 +
... + 10 = 55 . Podría correr en una simple, hipotética máquina. Para programar las
primeras computadoras, era necesario configurar grandes conjuntos de interruptores en la
posición correcta o perforar tiras de tarjetas e introducirlas en la computadora.
Probablemente te puedes imaginar cuan tedioso y propenso al error era este procedimiento.
Incluso escribir programas simples requería gran inteligencia y disciplina. Los programas
complejos eran casi inconcebibles.

Claro, introducir manualmente estos oscuros patrones de bits (los unos y ceros) dieron al
programador un profundo sentimiento de ser un poderoso mago. Y eso ha valido algo en
términos de satisfacción en el trabajo.

Cada línea del programa anterior contiene una instrucción. Podría ser escrita en español
como sigue:

1. Guarda el número 0 en la dirección de memoria 0.
2. Guarda el número 1 en la dirección de memoria 1.
3. Guarda el valor de la dirección de memoria 1 en la dirección 2.
4. Resta 11 del valor en la dirección de memoria 2.
5. Si el valor en la dirección de memoria 2 es el número 0, continúa con la instrucción 9.
6. Suma el valor de la dirección de memoria 1 al valor de la dirección de memoria 0.
7. Suma 1 al valor de la dirección de memoria 1.
8. Continúa con la instrucción 3.
9. Devuelve el valor de la dirección de memoria 0.

Aunque eso es más legible que una sopa de bits, sigue sin ser agradable. Podría ayudar
usar nombres en los números para las instrucciones y direcciones de memoria.

Pon “total” igual a 0.
Pon “conteo” igual a 1.
[bucle]
Pon “comparación” igual a “conteo”.
Resta 11 de “comparación”.
Si “comparación” es cero, continúa en [final].
Suma “conteo” a “total”.
Suma 1 a “conteo”.
Continúa en [bucle].
[final]
Devuelve “total”.

6

Introducción

¿Puedes entender cómo funciona el programa en este punto? Las primeras dos líneas
ponen en dos locaciones de memoria sus valores iniciales: total será usado para
construir el resultado del cálculo y conteo mantendrá el registro del número en el que
estamos trabajando en este momento. Las líneas que usan comparación son
probablemente las más raras. El programa quiere ver si conteo es igual a 11 para saber si
puede terminar. A causa de que nuestra máquina hipotética es más bien primitiva, solo
puede probar si un número es cero y tomar una decisión (o salto) basada en eso. Así que
usa la dirección de memoria etiquetada como comparación para calcular el valor de conteo
- 11 y toma una decisión basada en ese valor. Las próximas dos líneas suman el valor de
conteo al resultado e incrementan conteo en 1 cada vez que el programa ha decido que
conteo no es todavía 11.

Este es el mismo programa en
  • Links de descarga
http://lwp-l.com/pdf14015

Comentarios de: Eloquent Javascript en Español (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad