sábado, 14 de junio de 2014

JavaScript la guía definitiva I

En el post http://javascriptissexy.com/how-to-learn-javascript-properly/ nos recomiendan leer dos libros y uno de ellos es JavaScript la guía definitiva de David Flanagan. Según el plan de trabajo hay que leer la introducción y los primeros dos capítulos. Debajo hay una lista con lo más importante de esa parte del libro:

Este libro cubre el lenguaje JavaScript y las API de JavaScript implementadas por los navegadores web.
(http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones
Interfaz de programación de aplicaciones (IPA) o API (del inglés Application Programming Interface) es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas generalmente en las bibliotecas.)
(http://www.ddw.com.ar/blog/tecnologia-software-aplicaciones-y-servicios-web/331-que-es-y-para-que-sirve-una-api
API significa Interfaz de Programación de Aplicaciones, y su definición formal le da poca información útil a alguien que no entiende mucho de informática. Una API es una "llave de acceso" a funciones que nos permiten hacer uso de un servicio web provisto por un tercero, dentro de una aplicación web propia, de manera segura.

Ejemplos de APIs:

  • Google Maps a través de su acceso a "API" nos permite ponerle datos e información útil sobre sus mapas, y presentarlos con ciertas búsquedas o funciones personalizadas, desde nuestra propia aplicación
  • Paypal con su "API" nos permite hacer operaciones de pagos electrónicos usando nuestro propio sistema web, sin necesidad de acceder/operar en la web de Paypal
  • Algunos Booking Engines (centrales de reservas de hoteles y tickets aereos) abren sus aplicaciones a partir de APIs para permitir que terceros re-vendan desde sus propios sistemas
  • Twitter ha permitido el desarrollo de un gran número de sistemas alternativos y servicios web que operan a través de su API
  • UPS y DHL (operadoras logísticas internacionales) brindan acceso a sus sistemas desde APIs, para permitirles a los sitios de comercio electrónico poder calcular el costo de envío de los productos vendidos según ciertos parámetros
  • Facebook Connect cede a través del API ciertos datos para registrar automáticamente usuarios en otros sitios web, dándoles la posibilidad de registrarse y loguearse con sus propias cuentas de Facebook
API, entonces es una interfaz para dar un acceso limitado a la  base de datos de un servicio web, evitando que se conozca o acceda al propio código fuente de la apliación original.
Pero no solo las APIs permiten interacciones entre diferentes sitios web, sino que también sirven para permitir a ciertas aplicaciones, programas y widgets de escritorio, acceder a los datos o procesar transacciones en la aplicación madre.)
(¿Qué es una API? 
Una API (Application Programming Interface en inglés) constituye un conjunto de rutinas, procedimientos, protocolos, funciones y herramientas que una determinada biblioteca pone a disposición para que sean utilizados por otro software como una capa de abstracción. En otras palabras, es una interfaz que permite la comunicación entre distintos componentes software. Representa, entonces, un método para alcanzar abstracción a la hora de programar, en particular en la relación entre niveles superiores e inferiores del software. 

De esta forma, podemos decir que una de las funciones centrales de una API es la de ofrecer un grupo de funciones generales, como sería la de dibujar uno o más íconos en la pantalla. Esto tiene como resultado principal que los programadores se vean beneficiados gracias a estas API, en la medida en que al utilizar sus funcionalidades se evitan la necesidad de programar todo desde el inicio. 
Sin embargo, es cierto también que una API con un alto nivel tiende a perder flexibilidad en su uso. Así, cuando elegimos usar una API es necesario que logremos un determinado equilibrio, contemplando tanto su potencia como su simplicidad y su grado de flexibilidad. 

Veamos un ejemplo de API para ilustrar mejor la explicación:

API de Youtube: permite elegir videos y ponerlos en una página web propia. Incluso es posible, con su nueva versión, deshacerse del logo de Youtube para colocar uno personal. Esto resulta particularmente interesante para cualquier medio de comunicación encargado de producir videos, ya que le permite no tener que invertir dinero en hosting. )
- JavaScript es un lenguaje de programación de alto nivel, dinámico, no tipado, interpretado, bien adaptado para la orientación a objetos y estilos de programación funcional.
(Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas. http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel)
(javascript es un lenguaje dinámico por que poseé objetos dinámicos. Y... qué es un objeto dinámico?.
Un objeto dinámico es un objeto que puede cambiar la definición de sus miembros en tiempo de ejecución.
cual es la diferencia con un objeto común?
En un lenguaje orientado a objeto y con clases, los objetos son típicamente estáticos, con lo cual no podemos por ejemplo cambiar la definición de un método en tiempo de ejecución. En cambio en un objeto dinámico si podemos hacer esto.
Es importante comprender que esta característica de javascript afecta profundamente a nuestra forma de programar, ya que nunca podremos estar seguros, a priori, sobre la definición de los miembros de un objeto que recibamos como parámetro por ejemplo.
Veamos un poco de como utilizar esto en el código.
Supongamos que creamos un objeto iluminador, que posea un método prender y un miembro obj, al ejecutar el método prender, el objeto iluminador se encarga de setear el color de fondo de su objeto obj, a blanco.

(En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en la utilización de funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste con el estilo de programación imperativa, que enfatiza los cambios de estado. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en los años 1930 para investigar la definición de función, la aplicación de las funciones y la recursión. Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones del cálculo lambda.
JavaScript, uno de los lenguajes más ampliamente utilizados en la actualidad, también incorpora capacidades de programación funcional. http://es.wikipedia.org/wiki/Programaci%C3%B3n_funcional)
Para ser útil, cada lenguaje de programación debe tener una plataforma o biblioteca estándar o API de funciones para realizar cosas básicas como la entrada y salida. El núcleo del lenguaje JavaScript define una API mínima para trabajar con texto, arrays, fechas y expresiones regulares, pero no incluye ninguna funcionalidad input y output. Entrada y salida (así como las características más sofisticadas, como la creación de redes, almacenamiento y gráficos), es responsabilidad del "entorno de acogida" en el que JavaScript está incrustado. Por lo general, ese ambiente de acogida es un navegador web.

No hay comentarios:

Publicar un comentario