Contenido

Y erasé una vez Javascript

6 jun

+ 12

Todos sabemos, conocemos o nos suena eso de Javascript, una palabreja que los informáticos de mi empresa dicen cuando una página web se bloquea… pero ¿que es? ¿de donde viene?

Introducción

Javascript para los que no lo sepan, es un lenguaje de programación que encontramos en las páginas web, con él podemos definir el comportamiento de dichas páginas, enriqueciendo la experiencia del usuario al ofrecerle una interacción con él directamente desde el navegador, lo que nos dá una velocidad de respuesta muy alta.

Al ser un lenguaje interpretado y no requerir que se compile, podemos ver su código y por lo tanto su funcionalidad directamente desde el lugar en el que lo ejecutamos, siendo muy fácil capturar y readaptar para nuestras necesidades, esto ha hecho que el javascript sea un lenguaje que haya evolucionado tan rápidamente en el boom de internet.

Con la llegada de Ajax, que no es más que el uso de un objeto javascript con el que podemos interactuar con el servidor sin tener que forzar una recarga de página, se abrieron abrió una nueva era en la historia del lenguaje. Gracias al boom mediático ocasionado por el concepto (Ajax) el lenguaje se ha convertido en un lenguaje imprescindible para todo desarrollador / diseñador web.

Historia

El lenguaje, como muchas otras mejoras en los navegadores modernos, son fruto del desaparecido Netscape, un navegador “primitivo” que ofrecía en su versión 2.0 una versión muy light del lenguaje.

Como curiosidad, su primer nombre fue el de Mocha y más tarde LiveScript (este me gustó) , aunque por suerte para todos, el 4 de diciembre de 1995 SUN Microsystems y Netscape decidiron llamarlo acertadamente JavaScript, debido a su similitud con Java.

Hubo que esperar 2 años para que se decidieran a proponerlo como un estandar y la European Computer Manufacturers Association (ECMA) decidió adoptarlo como tal, de ahí que tambien se le conozca como ECMAScript.

Debido al importante futuro que este lenguaje prometía,  provocó que navegador competidores de aquel momento como Internet Explorer se quisiera subir al carro con una tecnología tan interesante y prometedora, y muy a su estilo decidieron crear una versión llamada JScript, que no es más que una implementación del ECMA por Microsoft, y se incluiría en la versión 3.0 Alpha 2 por allá del Mayo del 1996. Este es el motivo de que algunas funciones nos traigan de cabeza en el m…. Internet Explorer y en navegadores que siguen el estandard ECMA funcionen correctamente, o viceversa.

Debido a estos problemas y los que estarían por venir, la W3C (World Wide Web Consortium) diseñó el estandard DOM (Document Object Model) el 1 de Octubre de 1998. un estandard que promueve que a nivel interno el navegador interprete el código de una forma definida y consensuada por todos los navegador. El famoso DOM, no es más que una API para acceder, añadir y cambiar dinámicamente el contenido estructurado del documento.

Actualmente todos los navegadores modernos se componen de este estandard que intentan respetar lo máximo posible.

Javascript en la actualidad

Javascript actualmente se está usando en casi todas las aplicaciones web que hay en internet, desde el simple control de formulario para que los campos se rellenen hasta la más compleja filigrana desarrollada por algún figura del lenguaje, pasando por los inolvidables efectos desagradables y molestos.

Esto está provocando un nuevo problema, ya que la integración de Internet en la vida cotidiana y la del javascript en las aplicaciones van a ritmos muy dispares, mientras la primera está en un carrera por aportar internet a todo dispostivo existente en la red, los desarrolladores no pueden ponerse al día en adaptar estas tecnologías a navegadores tan modernos. Y esto ocasiona que aplicaciones que dependen su funcionamiento a merced del javascript dejen de funcionar y/o provoquen errores lo que nos lleva al mismo final, problemas para los usuarios.

Es cuestión de tiempo que este lenguaje esté implantado en todos los navegadores ultra-modernos y que desde un dispositivo movil podamos ver el Lightbox y deslizantes menús que harán las delicias de desarrolladores e internautas. Pero mientras tanto estamos obligados a pensar en todos y hacer las cosas bien, por ese motivo últimamente se usa tanto el término “Javascript no obstructivo” o “Javascript Accesible”, esto hace referencia al javascript que no compromete la aplicación en navegadores que no soporten este lenguaje, lectores de pantalla, moviles, …

Gracias a este concepto, se está separando otro concepto, las páginas web. Una página web se compone de estructura, diseño y funcionalidad, en la estructura o HTML tendremos de una forma semántica y estructurada (valgame la redundancia) el contenido que la página va a ofrecer, el diseño son los ficheros CSS que mediante sentencias en este lenguaje cambiarán la forma de mostrar la estructura por pantalla sin tener que actuar directamente sobre la estructura, y la funcionalidad es aquella que el Javascript le aporta, es el lugar donde la página web cobra vida.

Actualmente estamos usando la versión 1.5 de Javascript, que es la versión ECMA-262, Edición 3. Navegadores antiguos y en desuso (quizas es muy pronto para decirlo, pero es una realidad) aún usan esta versión, y los navegadores modernos ya implementan las mejoras de versiones como 1.6 (Firefox 1.5) y 1.7 (Firefox 2.0). Estas mejoras principalmente son cambios detectados por el uso y las nuevas tendencias en el uso del lenguaje.

Hoy via Sentido Web leo que han presentado las mejoras que aportará la versión 1.8, y que serán adoptadas por la proxima versión de Firefox (Gran Paradiso).

Más información

  1. Concepto de Javascript
  2. Especificación ECMA-262
  3. Novedades Javascript 1.6
  4. Novedades Javascript 1.7
  5. Novedades Javascript 1.8
  • Muchas gracias por este articulo. Muchas veces uno trabaja sobre cosas que no sabe cual es su historia, su contexto y para donde va. Muy claro e ilustrativo el articulo

  • La verdad es que a veces es interesante conocer la historia de algunas de estas cosas que muchos informáticos utilizamos diariamente. Me ha gustado mucho leer sobre ello.

  • Una pequeña corrección.

    Como alguien que utilizó LiveScript cuando salió y que estuvo metido en el tornado que significó el marketing asociado inicialmente con Java puedo decir, casi con total seguridad, que las razones bajo el cambio de nombre fueron puramente de mercado.

    El cambio de nombre sucedió cuando Netscape adoptó Java en 1995 pero, como sabéis todos (y no me explico como eso pudo colarse en el artículo), Java y JavaScript no tienen ninguna similitud mas allá de ser dos lenguajes de programación. Es más, en la época no había forma de mezclar Java con JavaScript.

    El cambio de nombre nunca fue más que una forma de aprovechar del marketing pagado de Java y sumarlo a la credibilidad popular que tenía Netscape. Java y JavaScript jamás han tenido nada que ver entre sí. El artículo de anuncio de Netscape lo deja clarísimo.

    Yo corregiría esa parte porque, para bien o para mal, la mayoría de la gente hoy en día no estaba metida en eso cuando salió y sólo lo pueden conocer a través de relatos históricos como este. Si no va a ser como gente pensando que “Pirates of Silicon Valley”, además de ser una entretenida película es, también, un documento histórico (ya he tenido a gente citándome diálogos de la película como si fueran históricos).

    SUN, por supuesto, se asoció en el cambio de nombre por cuestiones de Marketing y permitió usar su marca registrada pero no hay nada similar o compartido entre ambos lenguajes y no han habido sino confusiones al respecto desde entonces.

    Hay también un pequeño error en la parte de Microsoft. El nombre de Jscript es para evitar problemas de demandas ya que Microsoft no podría nunca obtener permiso para usar el nombre Java. La versión de JScript de Microsoft (adoptada en el IE 3 en 1996) no era totalmente igual y en muchos aspectos era claramente superior a la de Netscape (por lo pronto cubría el problema del Y2K).

    Microsoft envió su estándar a ECMA y así se creó ECMAScript (o sea, JScript no es una versión del ECMAScript sino al revés, ECMAScript es una adopción de JScript).

    Así pues, ECMAScript está basado en JScript, que a su vez está basado en JavaScript. Ninguno de los dos es 100% compatible con ECMAScript y ambos añaden funcionalidades no contempladas en el estándar (y ha sido así en todas las versiones de los tres).

    JavaScript ha terminado siendo muy resultón. Se utiliza en más sitios de los que la gente piensa. No sólo es el lenguaje en el que están hechos los widgets de dashboard y Yahoo sino que son el lenguaje debajo de las automatizaciones de todos los programas de Adobe (Acrobat, Photoshop, InDesign, etc.). Probablemente esté en segundo lugar después de LUA en este aspecto.

  • Complementando y dejando claro: No es sino hasta la versión SE 6 (de 2006, 10 años después de que se adoptara el nombre común) de Java que alguna interacción hay entre Java y JavaScript, a través de javax.script.

    Si eso no deja claro que no había ni relación ni planes de relación y el uso del nombre fue un plan de marketing no se que podría probarlo :)

  • Yo separaría de otra forma. Para mí la separación está en estructura, estilo, comportamiento y contenido.

    O, lo que es lo mismo, html, css, js y el texto o imágenes finales.

    Un sitio donde es brutalmente obvio que “estructura” está separada de “contenido” es al hacer themes de WordPress, precisamente. La estructura vive separada del contenido, que se arma en el momento de mostrar la página. Si la estructura no estuviera separada del contenido no podríamos tener themes.

  • Creo que me voy a callar ya, ¿no? :)

  • Siempre es bueno contrastar información, esta que he publicado la saqué de la Wikipedia y de alguna otra página por ahi perdida. Yo por aquella época me dedicaba a hacer mis pinitos con C/C++ y conocí­a el HTML muy básico. No sabí­a ni que existí­a algo llamado LiveScript/Mocha o JavaScript.
    Como en casi todos los aspectos de la vida los intereses publicitarios marcan la historia,.. ¿cuantos themes de WordPress hay con ajaxXXXX (los mios incluidos)?.
    Está claro que Java era el lenguaje del momento y fue una buena estrategia para hacerse más conocido.
    El hecho de que jScript fuera el precursor de ECMA, la verdad es que no es lo que he leido por ahi, y la verdad me extrañarí­a que Internet Explorer (como navegador mayoritario) convirtiera algo propietario en un estandar, para eso están los organismos como ECMA o W3C que gestionan estos estandares. Muchas gracias por la información, siempre es bueno contrastarla.

    Saludos crack ;)

  • Una corrección: Netscape sacó el 4 de junio (anteayer) la versión 9b1 de Navigator. Yo la he probado con Mac y me parece muy rápida, pero no he jugado con ella. Sólo he navegado un poco.
    Un saludo

  • Anieto2k: Date un garbeo por la versión en inglés del artículo y ve por ahí sobre JScript también. La entrada en español no es, digamos, imparcial.

    El hacer que ECMA (un organismo europeo, grande y burocrático, no parecido en nada a la W3C) adopte un estándar es más fácil si eres una gran corporación.

    Recuerda que IE iba a la cola. Copió el JScript de Netscape. No podemos ver la historia con los ojos de nuestro conocimiento actual. Ni siquiera Microsoft sabía como se iba a comportar el mercado (era un mercado nuevo hasta para ellos). Hacer que su estándar, el segundo en llegar y una copia del del chico mas popular del colegio, fuera oficial, era una forma de darle on bofeton a Netscape. Es decir “Mira, chavalote. Tu habrás inventado esto pero YO voy a decir como se tiene que hacer y vas a tener que aceptarlo porque el estándar no es mío. Es oficial”.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.