WebAssembly para Principiantes: Tu Primer Programa Paso a Paso

¡Bienvenido a MaestrosWeb, el lugar donde tu pasión por el desarrollo web se convierte en conocimiento avanzado! ¿Estás listo para adentrarte en el fascinante mundo de WebAssembly? Nuestro artículo principal, "WebAssembly para Principiantes: Tu Primer Programa Paso a Paso", te guiará a través de los fundamentos de esta poderosa tecnología. Prepárate para descubrir cómo llevar tus habilidades al siguiente nivel. ¡No te pierdas esta emocionante aventura de aprendizaje y comienza a explorar todo lo que MaestrosWeb tiene para ofrecerte!

Índice
  1. Introducción a WebAssembly
    1. Historia y evolución de WebAssembly
    2. Beneficios de utilizar WebAssembly
  2. Primeros Pasos con WebAssembly
    1. Conceptos básicos para principiantes
    2. Configuración del entorno de desarrollo
    3. Instalación de herramientas necesarias
    4. Creación de tu primer programa en WebAssembly
  3. Principales Características de WebAssembly
    1. Portabilidad y rendimiento
    2. Interoperabilidad con JavaScript y otros lenguajes
    3. Seguridad en la ejecución
  4. Optimización y Mejoras en Desarrollo Web con WebAssembly
    1. Aplicaciones y casos de uso en desarrollo web
    2. Comparativa con otras tecnologías web
    3. Consejos para optimizar el rendimiento con WebAssembly
  5. Impacto de WebAssembly en el Desarrollo Web Moderno
    1. WebAssembly y su influencia en la industria del desarrollo web
    2. Desarrollo de aplicaciones web más rápidas y eficientes
    3. El futuro de WebAssembly en el desarrollo web
  6. Conclusión
    1. Resumen de los beneficios para principiantes en desarrollo web
    2. Próximos pasos para seguir explorando WebAssembly
  7. Preguntas frecuentes
    1. 1. ¿Qué es WebAssembly?
    2. 2. ¿Por qué debería aprender WebAssembly como principiante?
    3. 3. ¿Cuáles son los requisitos previos para aprender WebAssembly?
    4. 4. ¿Dónde puedo encontrar tutoriales de WebAssembly para principiantes?
    5. 5. ¿Qué tipo de proyectos puedo desarrollar con WebAssembly como principiante?
  8. Reflexión final: Descubriendo el potencial de WebAssembly
    1. ¡Gracias por ser parte de la comunidad MaestrosWeb!

Introducción a WebAssembly

Una ilustración minimalista de una pantalla de computadora que muestra el código de un sencillo programa WebAssembly, con líneas limpias y una paleta de colores moderna, transmitiendo la idea de simplicidad y amigabilidad para principiantes en el tutorial WebAssembly

En el mundo del desarrollo web, WebAssembly, también conocido como Wasm, es un estándar que permite ejecutar código de alto rendimiento, escrito en lenguajes como C++, Rust, y otros, en navegadores web. Esto significa que los desarrolladores pueden escribir aplicaciones web más complejas y exigentes en términos de rendimiento, como juegos y aplicaciones de edición de video, con un rendimiento cercano al de las aplicaciones de escritorio.

WebAssembly es un formato binario de instrucciones para una máquina virtual hipotética, diseñada para ejecutar código de forma eficiente en todos los navegadores modernos. A través de WebAssembly, se puede escribir código en lenguajes de programación de bajo nivel, como C++ o Rust, y compilarlo para que se ejecute en el navegador a una velocidad cercana a la del código nativo.

WebAssembly es una tecnología que amplía las capacidades de los navegadores web, permitiendo que las aplicaciones web sean más rápidas y versátiles, al tiempo que mantiene la seguridad y la portabilidad que se espera de un entorno web.

Historia y evolución de WebAssembly

El desarrollo de WebAssembly comenzó en 2015 como un proyecto conjunto entre Google, Mozilla, Microsoft y Apple, con el objetivo de mejorar el rendimiento de las aplicaciones web. En 2017, WebAssembly alcanzó el estado de "MVP" (mínimo producto viable) como parte de la especificación HTML, lo que permitió su implementación en los principales navegadores.

Desde entonces, WebAssembly ha experimentado un crecimiento significativo en su adopción y popularidad. Se ha convertido en un estándar ampliamente aceptado y ha impulsado el desarrollo de numerosas herramientas y bibliotecas que facilitan su uso en aplicaciones web de todo tipo.

La evolución de WebAssembly ha sido impulsada por la comunidad de desarrollo web, que ha contribuido con ideas, sugerencias y mejoras a la especificación. A medida que WebAssembly continúa madurando, se espera que su impacto en el desarrollo web siga creciendo, brindando a los desarrolladores más opciones y posibilidades para la creación de aplicaciones web avanzadas.

Beneficios de utilizar WebAssembly

La principal ventaja de utilizar WebAssembly es la capacidad de ejecutar código de alto rendimiento en el navegador, lo que permite crear aplicaciones web más sofisticadas y exigentes en términos de rendimiento. Además, al permitir la ejecución de código escrito en lenguajes de programación de bajo nivel, WebAssembly amplía el conjunto de herramientas disponibles para los desarrolladores web, abriendo nuevas oportunidades para la creación de aplicaciones web innovadoras.

Otro beneficio importante de WebAssembly es su portabilidad. Al estar soportado por todos los principales navegadores, los desarrolladores pueden estar seguros de que sus aplicaciones funcionarán de la misma manera en cualquier entorno web, sin importar el navegador o el dispositivo utilizado por los usuarios.

Además, WebAssembly también mejora la seguridad al ejecutar el código en un entorno de "sandbox", lo que significa que el código no tiene acceso directo al sistema operativo subyacente ni a los recursos del dispositivo del usuario. Esto ayuda a prevenir posibles vulnerabilidades y ataques maliciosos, lo que es fundamental en el entorno web actual.

Primeros Pasos con WebAssembly

Detalle de pantalla de computadora con código WebAssembly

Conceptos básicos para principiantes

WebAssembly es un estándar que permite ejecutar código de alto rendimiento en navegadores web. A diferencia de JavaScript, que es el lenguaje principal para la programación del lado del cliente en la web, WebAssembly está diseñado para ser compilado desde otros lenguajes como C, C++ o Rust. Esto significa que los desarrolladores pueden aprovechar la potencia de estos lenguajes para crear aplicaciones web más rápidas y eficientes.

Una de las principales ventajas de WebAssembly es su capacidad para ejecutar código de forma paralela, lo que permite aprovechar al máximo el rendimiento de la CPU. Además, al ser un estándar soportado por todos los principales navegadores, WebAssembly ofrece una solución multiplataforma para el desarrollo web de alto rendimiento.

Para los principiantes, comprender estos conceptos básicos es fundamental para entender el potencial de WebAssembly y cómo puede impactar en el desarrollo web.

Configuración del entorno de desarrollo

Antes de comenzar a trabajar con WebAssembly, es importante configurar un entorno de desarrollo adecuado. En primer lugar, es necesario tener instalado un navegador que admita WebAssembly, como Google Chrome, Mozilla Firefox, Microsoft Edge o Safari. También es útil contar con un editor de código como Visual Studio Code, Sublime Text o Atom, que facilitará la escritura de código en los diferentes lenguajes que se compilarán a WebAssembly.

Además, es crucial comprender cómo se integra WebAssembly con JavaScript, ya que la comunicación entre ambos es fundamental para la creación de aplicaciones web complejas. Aprender a configurar el entorno para permitir esta interacción es un paso crucial para los principiantes que desean adentrarse en el mundo de WebAssembly.

Una vez que el entorno está configurado, los principiantes pueden comenzar a experimentar con la creación de programas simples y comprender cómo WebAssembly puede mejorar el rendimiento de las aplicaciones web.

Instalación de herramientas necesarias

Para trabajar con WebAssembly, es fundamental tener instaladas las herramientas necesarias para compilar el código fuente en un formato que pueda ser ejecutado por los navegadores. Dependiendo del lenguaje de programación elegido, los principiantes deberán instalar los compiladores y herramientas asociadas, así como las bibliotecas que faciliten la interacción con JavaScript y el entorno web.

Por ejemplo, si se va a compilar código C o C++ a WebAssembly, se necesitará instalar Emscripten, una herramienta que facilita esta tarea. En el caso de Rust, el compilador Rust y la herramienta wasm-pack son fundamentales para generar módulos de WebAssembly que puedan ser utilizados en aplicaciones web.

Es importante que los principiantes comprendan la importancia de estas herramientas y cómo se integran en el proceso de desarrollo de aplicaciones web con WebAssembly para poder aprovechar al máximo todo su potencial.

Creación de tu primer programa en WebAssembly

Para crear tu primer programa en WebAssembly, primero necesitarás tener instalado un entorno de desarrollo que te permita trabajar con este lenguaje. Existen varias opciones, pero una de las más populares es utilizar Emscripten, un conjunto de herramientas que incluye un compilador de C/C++ a WebAssembly y un entorno de ejecución. Una vez que tengas instalado Emscripten, puedes comenzar a escribir tu programa en C/C++ como lo harías normalmente, y luego compilarlo a WebAssembly.

Un ejemplo sencillo de un programa en C que suma dos números se vería así:


#include <stdio.h>

int main() {
    int num1 = 5;
    int num2 = 7;
    int sum = num1 + num2;
    printf("La suma es: %dn", sum);
    return 0;
}

Una vez que hayas escrito tu programa en C/C++, puedes compilarlo a WebAssembly utilizando Emscripten. El comando para compilar el programa anterior, por ejemplo, sería:


emcc programa.c -o programa.js

Una vez que hayas compilado tu programa a WebAssembly, podrás integrarlo en tu página web y ejecutarlo en un navegador que admita esta tecnología. Este es solo un ejemplo básico para ayudarte a familiarizarte con el proceso de creación de programas en WebAssembly, pero las posibilidades son mucho más amplias y emocionantes a medida que te adentras en este mundo.

Principales Características de WebAssembly

Imagen de alta resolución de pantalla de computadora con código de programa WebAssembly, ideal para tutorial WebAssembly para principiantes

Portabilidad y rendimiento

WebAssembly ofrece una portabilidad excepcional al permitir que el mismo código binario se ejecute en diferentes entornos, lo que significa que un programa compilado en WebAssembly puede funcionar en varios navegadores y sistemas operativos. Esto brinda a los desarrolladores la capacidad de escribir aplicaciones web que son independientes de la plataforma, lo que a su vez mejora la experiencia del usuario y reduce la carga de trabajo en el desarrollo y mantenimiento de múltiples versiones de una misma aplicación.

Además, en cuanto al rendimiento, WebAssembly está diseñado para ejecutarse de manera eficiente, ya que utiliza un formato binario compacto que minimiza el tiempo de carga y optimiza el rendimiento durante la ejecución. Esto se traduce en aplicaciones web más rápidas y receptivas, lo que es crucial para brindar una experiencia de usuario fluida y satisfactoria.

La combinación de portabilidad y rendimiento de WebAssembly lo convierte en una opción atractiva para el desarrollo de aplicaciones web, especialmente aquellas que requieren un alto rendimiento y una amplia compatibilidad con distintas plataformas.

Interoperabilidad con JavaScript y otros lenguajes

Una de las ventajas significativas de WebAssembly es su capacidad para interactuar de manera fluida con JavaScript y otros lenguajes de programación. Esto significa que los desarrolladores pueden combinar el poder de WebAssembly con la flexibilidad y funcionalidad de JavaScript, abriendo un amplio abanico de posibilidades para la creación de aplicaciones web avanzadas.

Al integrar WebAssembly con JavaScript, los desarrolladores pueden aprovechar las fortalezas de ambos lenguajes, utilizando WebAssembly para tareas intensivas en cómputo y JavaScript para la manipulación del DOM y la interacción con el usuario. Esta interoperabilidad permite optimizar el rendimiento de las aplicaciones web al aprovechar al máximo las capacidades de cada lenguaje, lo que es fundamental en el desarrollo de aplicaciones complejas y de alto rendimiento.

Además, WebAssembly también puede ser utilizado en conjunto con otros lenguajes de programación, lo que amplía aún más las posibilidades de desarrollo y permite a los desarrolladores utilizar las herramientas que mejor se adapten a sus necesidades y conocimientos.

Seguridad en la ejecución

La seguridad es un aspecto crítico en el desarrollo de aplicaciones web, y WebAssembly ofrece un entorno de ejecución seguro que protege tanto al usuario como al sistema en el que se ejecuta. Al ser un formato binario que se ejecuta en un entorno controlado, WebAssembly proporciona un nivel adicional de seguridad al aislar el código compilado del resto de la aplicación, reduciendo así el riesgo de vulnerabilidades y ataques maliciosos.

Además, WebAssembly utiliza un modelo de ejecución basado en sandboxing, lo que significa que el código compilado se ejecuta en un entorno aislado y restringido, limitando su acceso a recursos sensibles del sistema. Esto contribuye a la protección de la integridad y la privacidad de los datos, lo que es fundamental en aplicaciones que manejan información confidencial o que requieren un alto nivel de seguridad.

La seguridad en la ejecución de WebAssembly es una característica fundamental que lo hace especialmente atractivo para el desarrollo de aplicaciones web que requieren un alto nivel de confiabilidad y protección contra posibles amenazas de seguridad.

Optimización y Mejoras en Desarrollo Web con WebAssembly

Un desarrollador web codifica con WebAssembly en una ilustración minimalista que transmite profesionalismo y experiencia en desarrollo web

WebAssembly, también conocido como Wasm, ha revolucionado el desarrollo web al ofrecer un rendimiento excepcional y una interoperabilidad mejorada. A continuación, te presentamos algunas aplicaciones y casos de uso en el desarrollo web que demuestran el impacto de esta tecnología.

Aplicaciones y casos de uso en desarrollo web

Una de las aplicaciones más destacadas de WebAssembly en el desarrollo web es su capacidad para mejorar el rendimiento de las aplicaciones a través de la ejecución de código de alto rendimiento. Esto permite a los desarrolladores crear aplicaciones web más rápidas y eficientes, lo que se traduce en una experiencia de usuario mejorada. Además, WebAssembly es ideal para aplicaciones que requieren procesamiento intensivo, como juegos en línea, edición de imágenes y aplicaciones de productividad.

Otro caso de uso relevante es la posibilidad de portar aplicaciones existentes a la web con un rendimiento comparable al de las aplicaciones nativas. Esto significa que los desarrolladores pueden reutilizar el código existente y ejecutarlo de manera eficiente en el navegador, lo que amplía las posibilidades de desarrollo web y permite la creación de aplicaciones web más sofisticadas.

Además, WebAssembly es una excelente opción para el desarrollo de bibliotecas y frameworks, ya que permite utilizar lenguajes de programación de alto rendimiento, como C++ o Rust, para implementar funciones críticas que puedan ser consumidas por aplicaciones web escritas en JavaScript, proporcionando así una flexibilidad y escalabilidad significativas.

Comparativa con otras tecnologías web

En comparación con otras tecnologías web, WebAssembly destaca por su capacidad para ejecutar código a nivel de máquina con un rendimiento excepcional. A diferencia de JavaScript, que es un lenguaje de alto nivel interpretado, WebAssembly permite la ejecución de código de manera más eficiente, lo que resulta en una mejora significativa en el rendimiento de las aplicaciones web. Asimismo, en comparación con otras alternativas, como asm.js, WebAssembly ofrece una sintaxis más clara y una capacidad de optimización superior, lo que lo convierte en la elección preferida para aplicaciones que requieren un rendimiento excepcional.

WebAssembly se destaca por su capacidad para ofrecer un rendimiento excepcional y una interoperabilidad mejorada en comparación con otras tecnologías web, lo que lo convierte en una opción atractiva para el desarrollo de aplicaciones web de alto rendimiento.

Consejos para optimizar el rendimiento con WebAssembly

Para optimizar el rendimiento con WebAssembly, es fundamental seguir buenas prácticas de desarrollo, como minimizar la cantidad de transferencias de datos entre JavaScript y WebAssembly, utilizar herramientas de profiling para identificar cuellos de botella de rendimiento, y aprovechar las capacidades de paralelismo que ofrece WebAssembly para maximizar el rendimiento de las aplicaciones. Además, es importante considerar el tamaño del archivo Wasm resultante, ya que un tamaño excesivo puede impactar negativamente en el tiempo de carga de la aplicación web.

WebAssembly ofrece un gran potencial para optimizar el rendimiento de las aplicaciones web, y al seguir buenas prácticas de desarrollo, los desarrolladores pueden aprovechar al máximo las capacidades de esta tecnología para crear aplicaciones web de alto rendimiento y eficiencia.

Impacto de WebAssembly en el Desarrollo Web Moderno

Un entorno minimalista con código WebAssembly brillante en una pantalla de computadora, perfecto para un tutorial WebAssembly para principiantes

WebAssembly y su influencia en la industria del desarrollo web

WebAssembly ha revolucionado la forma en que se desarrollan las aplicaciones web al ofrecer un nuevo estándar de rendimiento y portabilidad. Esta tecnología, respaldada por importantes actores de la industria como Google, Mozilla, Microsoft y Apple, ha ganado rápidamente popularidad debido a su capacidad para ejecutar código de alto rendimiento de forma eficiente en navegadores web.

Al permitir a los desarrolladores escribir código en lenguajes como C, C++ y Rust y compilarlo para su ejecución en el navegador, WebAssembly ha allanado el camino para la creación de aplicaciones más complejas y potentes, lo que representa un hito significativo en la evolución del desarrollo web.

La influencia de WebAssembly se extiende más allá de la comunidad de desarrolladores web, ya que su impacto se hace sentir en campos como la realidad virtual, los juegos en línea y las aplicaciones de productividad, abriendo nuevas posibilidades para la innovación y el rendimiento.

Desarrollo de aplicaciones web más rápidas y eficientes

Una de las ventajas más notables de WebAssembly es su capacidad para mejorar significativamente el rendimiento de las aplicaciones web. Al permitir la ejecución de código altamente optimizado a velocidades cercanas a las de los programas nativos, WebAssembly ofrece una experiencia más fluida y receptiva para los usuarios, lo que resulta especialmente importante en aplicaciones que requieren operaciones intensivas en términos de procesamiento o gráficos.

Además, al reducir la dependencia de JavaScript para tareas de alto rendimiento, WebAssembly libera al navegador de la carga de ejecutar código complejo, lo que se traduce en una mayor eficiencia y un menor consumo de recursos. Esto no solo beneficia a los usuarios finales al brindarles una experiencia más rápida y fluida, sino que también simplifica el desarrollo al permitir a los programadores utilizar lenguajes de programación más familiares y potentes.

WebAssembly ha allanado el camino para el desarrollo de aplicaciones web que no solo son más rápidas y eficientes, sino que también amplían los límites de lo que es posible en términos de rendimiento y capacidad.

El futuro de WebAssembly en el desarrollo web

A medida que WebAssembly continúa ganando tracción y soporte en los navegadores y marcos de desarrollo, su papel en el panorama del desarrollo web solo seguirá creciendo. Se espera que esta tecnología juegue un papel fundamental en la evolución de las aplicaciones web, permitiendo la creación de experiencias más ricas y poderosas que abarcan desde juegos en línea hasta aplicaciones empresariales complejas.

Además, con la creciente adopción de WebAssembly en áreas como la inteligencia artificial y el cómputo en la nube, es evidente que su influencia se extenderá más allá del ámbito del desarrollo web para impactar en múltiples aspectos de la informática moderna.

WebAssembly representa un punto de inflexión en la historia del desarrollo web, abriendo nuevas posibilidades y desafiando las limitaciones tradicionales del rendimiento y la portabilidad. A medida que los desarrolladores continúan explorando y aprovechando esta poderosa tecnología, es seguro decir que el futuro del desarrollo web se verá moldeado de manera significativa por las capacidades y el potencial de WebAssembly.

Conclusión

Monitor de computadora mostrando elegante código WebAssembly en un editor minimalista, junto a útiles de oficina

Resumen de los beneficios para principiantes en desarrollo web

WebAssembly es una tecnología que ofrece numerosos beneficios para los principiantes en el desarrollo web. Algunos de estos beneficios incluyen:

  1. Rendimiento mejorado: WebAssembly permite ejecutar código a alta velocidad, lo que resulta en aplicaciones web más rápidas y receptivas.
  2. Portabilidad: Al compilar varios lenguajes de programación a WebAssembly, los principiantes tienen la flexibilidad de trabajar con el lenguaje que les resulte más cómodo.
  3. Ampliación de habilidades: Aprender a trabajar con WebAssembly amplía el conjunto de habilidades de los principiantes en desarrollo web, lo que les permite explorar nuevas oportunidades laborales y proyectos interesantes.

Estos beneficios hacen que WebAssembly sea una tecnología emocionante y valiosa para los principiantes en el desarrollo web, brindando un gran potencial para el crecimiento y la innovación.

Próximos pasos para seguir explorando WebAssembly

Una vez que los principiantes han adquirido una comprensión básica de WebAssembly, existen numerosos pasos que pueden tomar para seguir explorando y ampliando sus conocimientos en esta área:

  • Proyectos prácticos: Desarrollar proyectos reales utilizando WebAssembly para aplicar los conocimientos adquiridos y comprender mejor su funcionamiento en un entorno práctico.
  • Participación en comunidades: Unirse a comunidades en línea o grupos de estudio para compartir conocimientos, resolver dudas y colaborar en proyectos relacionados con WebAssembly.
  • Cursos avanzados: Buscar cursos especializados que profundicen en aspectos más avanzados de WebAssembly, como optimización de rendimiento, integración con frameworks populares, entre otros.

Al seguir estos pasos, los principiantes en desarrollo web pueden expandir su experiencia con WebAssembly y descubrir todo su potencial para el desarrollo de aplicaciones web modernas y eficientes.

Preguntas frecuentes

1. ¿Qué es WebAssembly?

WebAssembly es un formato de código binario portátil para ejecución en navegadores web que permite a los desarrolladores compilar aplicaciones escritas en múltiples lenguajes de programación.

2. ¿Por qué debería aprender WebAssembly como principiante?

Aprender WebAssembly te permite mejorar el rendimiento de tus aplicaciones web y utilizar lenguajes de programación diferentes al JavaScript para el desarrollo web.

3. ¿Cuáles son los requisitos previos para aprender WebAssembly?

Es útil tener conocimientos previos de HTML, CSS y JavaScript antes de adentrarse en el desarrollo con WebAssembly, pero no es estrictamente necesario.

4. ¿Dónde puedo encontrar tutoriales de WebAssembly para principiantes?

Puedes encontrar tutoriales de WebAssembly para principiantes en plataformas en línea, blogs de desarrollo web y sitios especializados en educación sobre programación.

5. ¿Qué tipo de proyectos puedo desarrollar con WebAssembly como principiante?

Como principiante, puedes empezar desarrollando pequeñas aplicaciones o juegos web que demuestren el funcionamiento de WebAssembly y su integración con el código JavaScript.

Reflexión final: Descubriendo el potencial de WebAssembly

En la era digital actual, donde la velocidad y eficiencia son fundamentales para el desarrollo web, WebAssembly se posiciona como una herramienta crucial para optimizar el rendimiento de las aplicaciones en línea.

El impacto de WebAssembly trasciende las fronteras del código, transformando la manera en que interactuamos con la tecnología y abriendo nuevas posibilidades creativas. Como dijo Brendan Eich, "WebAssembly es una nueva forma de entregar software web". Esta tecnología no solo mejora el rendimiento, sino que también redefine la experiencia del usuario en la web moderna.

Invitamos a cada lector a explorar el potencial de WebAssembly y considerar cómo esta innovación puede influir en su propio viaje en el desarrollo web. A medida que nos adentramos en un futuro digital emocionante, recordemos que el aprendizaje continuo y la adaptación son esenciales para aprovechar al máximo las herramientas que WebAssembly ofrece.

¡Gracias por ser parte de la comunidad MaestrosWeb!

¡Esperamos que hayas disfrutado aprender sobre WebAssembly para principiantes! Te invitamos a compartir este artículo en tus redes sociales para que más personas puedan descubrir lo asombroso de este tema. ¿Tienes alguna idea para futuros artículos sobre desarrollo web? Nos encantaría conocer tus sugerencias y experiencias. ¡Déjanos un comentario y cuéntanos qué te pareció este artículo! ¿Qué otro tema te gustaría explorar? Tus opiniones son muy importantes para nosotros.

Si quieres conocer otros artículos parecidos a WebAssembly para Principiantes: Tu Primer Programa Paso a Paso puedes visitar la categoría Desarrollo Web.

Articulos relacionados:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio utiliza cookies para mejorar tu experiencia de navegación. Al hacer clic en Aceptar, consientes el uso de todas las cookies. Para más información o ajustar tus preferencias, visita nuestra Política de Cookies.