En este momento estás viendo La Historia de los Lenguajes de Programación Informáticos
Conoce toda la historia de los lenguajes de programación de la era de la programación informática

Un lenguaje de programación de computadoras, es un conjunto de instrucciones detalladas para una computadora digital que en su conjunto forman uno de los cualquier lenguajes de programación existentes.

Aunque existen muchos lenguajes informáticos, relativamente pocos son de uso general. Los lenguajes de máquina y ensamblador son de “bajo nivel” y requieren que un programador administre explícitamente todas las características idiosincrásicas de almacenamiento y operación de datos de la computadora.

Por el contrario, los lenguajes de alto nivel protegen a un programador de preocuparse por tales consideraciones y proporcionan una notación que los programadores escriben y leen con mayor facilidad.

El conjunto de instrucciones se puede ejecutar directamente cuando están en la forma numérica específica del fabricante de la computadora, siento esto conocido como lenguaje máquina.

El lenguaje ensamblador a menudo abreviado por ASM, es cualquier lenguaje de programación de bajo nivel en el que existe una correspondencia muy fuerte entre las instrucciones del lenguaje y las instrucciones del código máquina en su arquitectura.

Debido a que el ensamblaje depende de las instrucciones del código de máquina, cada lenguaje ensamblador está diseñado para exactamente una arquitectura de computadora específica; el lenguaje ensamblador también es denominado código máquina simbólico.

El lenguaje de programación de alto nivel es un lenguaje de programación con una fuerte abstracción de los detalles de la computadora.

A diferencia de los lenguajes de programación de bajo nivel, puede utilizar elementos del lenguaje natural, ser más fácil de usar o puede automatizar (o incluso ocultar por completo) áreas importantes de los sistemas informáticos (por ejemplo, la gestión de la memoria) lo que hace que el proceso de desarrollo de un programa sea más simple y sencillo.

La cantidad de abstracción proporcionada define qué tan «alto nivel» es un lenguaje de programación.

Los Diferentes Tipos de Lenguajes de Programación

Lenguajes de máquina y ensamblaje

Un lenguaje de máquina consta de códigos numéricos para las operaciones que una computadora en particular puede ejecutar directamente. Los códigos son cadenas de 0 y 1, o dígitos binarios («bits»), que con frecuencia se convierten tanto de hexadecimal como a hexadecimal (base 16) para la visualización y modificación humana. Las instrucciones en lenguaje máquina suelen utilizar algunos bits para representar operaciones, como la suma, y ​​algunos para representar operandos, o quizás la ubicación de la siguiente instrucción. El lenguaje de máquina es difícil de leer y escribir, ya que no se parece a la notación matemática convencional ni al lenguaje humano, y sus códigos varían de una computadora a otra.

El lenguaje ensamblador está un nivel por encima del lenguaje de máquina. Utiliza códigos mnemónicos cortos para las instrucciones y permite al programador introducir nombres para bloques de memoria que contienen datos. Por lo tanto, se podría escribir «agregar pago, total» en lugar de «0110101100101000» para una instrucción que suma dos números.

El lenguaje ensamblador está diseñado para traducirse fácilmente al lenguaje de máquina. Aunque se puede hacer referencia a los bloques de datos por su nombre en lugar de por sus direcciones de máquina, el lenguaje ensamblador no proporciona medios más sofisticados para organizar información compleja.

Al igual que el lenguaje de máquina, el lenguaje ensamblador requiere un conocimiento detallado de la arquitectura interna de la computadora. Es útil cuando tales detalles son importantes, como al programar una computadora para interactuar con dispositivos periféricos (impresoras, escáneres, dispositivos de almacenamiento, etc.).

Lenguajes algorítmicos

Los lenguajes algorítmicos están diseñados para expresar cálculos matemáticos o simbólicos. Pueden expresar operaciones algebraicas en notación similar a las matemáticas y permiten el uso de subprogramas que empaquetan operaciones de uso común para su reutilización. Fueron los primeros idiomas de alto nivel.

FORTRAN

El primer lenguaje algorítmico importante fue FORTRAN ( de Mula tran slation), diseñado en 1957 por un IBM equipo dirigido por John Backus . Estaba destinado a cálculos científicos con números reales y colecciones de ellos organizados como matrices unidimensionales o multidimensionales. Sus estructuras de control incluían declaraciones IF condicionales, bucles repetitivos (los denominados bucles DO) y una instrucción GOTO que permitía la ejecución no secuencial del código del programa. FORTRAN hizo que fuera conveniente tener subprogramas para operaciones matemáticas comunes y construyó bibliotecas de ellos.

FORTRAN también fue diseñado para traducir a un lenguaje de máquina eficiente. Inmediatamente tuvo éxito y continúa evolucionando.

ALGOL

ALGOL (ALGO, de algorítmico y L, de lenguaje) fue diseñado por un comité de científicos de la computación estadounidense y europeos durante 1958-1960 para la publicación de algoritmos , así como para hacer cálculos. Al igual que LISP (que se describe en la siguiente sección), ALGOL tenía subprogramas recursivos, procedimientos que podían invocarse para resolver un problema reduciéndolo a un problema más pequeño del mismo tipo.

ALGOL introdujo la estructura de bloques, en la que un programa se compone de bloques que pueden contener tanto datos como instrucciones y tener la misma estructura que un programa completo. La estructura de bloques se convirtió en una poderosa herramienta para construir grandes programas a partir de pequeños componentes.

ALGOL contribuyó con una notación para describir la estructura de un lenguaje de programación, Backus-Naur Form, que en alguna variación se convirtió en la herramienta estándar para establecer la sintaxis (gramática) de los lenguajes de programación. ALGOL fue ampliamente utilizado en Europa y durante muchos años siguió siendo el idioma en el que se publicaban los algoritmos informáticos. Muchos idiomas importantes, como Pascal y Ada (ambos descritos más adelante), son sus descendientes.

LISP

LISP ( lis t p rocessing) fue desarrollado alrededor de 1960 por John McCarthy en el Instituto de Tecnología de Massachusetts (MIT) y se basa en la teoría matemática de la recursivo función s (en el que una función aparece en su propia definición). Un programa LISP es una función aplicada a datos, en lugar de ser una secuencia de pasos de procedimiento como en FORTRAN y ALGOL. LISP usa una notación muy simple en la que las operaciones y sus operandos se dan en una lista entre paréntesis. Por ejemplo, (+ un (* b c )) representa un + b * c. Aunque esto parece incómodo, la notación funciona bien para las computadoras. LISP también usa la estructura de lista para representar datos y, debido a que los programas y los datos usan la misma estructura, es fácil que un programa LISP opere en otros programas como datos.

LISP se convirtió en un lenguaje común para la programación de inteligencia artificial (IA), en parte debido a la confluencia del trabajo de LISP y IA en el MIT y en parte porque los programas de IA capaces de «aprender» podrían escribirse en LISP como programas auto-modificables. LISP ha evolucionado a través de numerosos dialectos , como Scheme y Common LISP.

C

El lenguaje de programación C fue desarrollado en 1972 por Dennis Ritchie y Brian Kernighan en AT&T Corporation para programar sistemas operativos de computadoras . Su capacidad para estructurar datos y programas mediante la composición de unidades más pequeñas es comparable a la de ALGOL. Utiliza una notación compacta y proporciona al programador la capacidad de operar con las direcciones de datos así como con sus valores. Esta capacidad es importante en la programación de sistemas , y C comparte con el lenguaje ensamblador el poder de explotar todas las características de la arquitectura interna de una computadora. C, junto con su descendiente C ++ , sigue siendo uno de los lenguajes más comunes.

Idiomas orientados a los negocios

COBOL

COBOL ( co mmon b usiness o riented l anguage) ha sido muy utilizado por las empresas desde su creación en 1959. Un comité de fabricantes y usuarios de ordenadores y organizaciones gubernamentales de Estados Unidos estableció CODASYL ( Co mmittee sobre Da ta Sy tallos y L os idiomas) para desarrollar y supervisar el estándar de lenguaje para asegurar su portabilidad en diversos sistemas.

COBOL utiliza una notación similar a la inglesa: novedosa cuando se presenta. Los cálculos comerciales organizan y manipulan grandes cantidades de datos, y COBOL introdujo elregistrar la estructura de datos para tales tareas. Un registro agrupa datos heterogéneos , como un nombre, un número de identificación, una edad y una dirección, en una sola unidad. Esto contrasta con los lenguajes científicos, en los que son comunes las matrices homogéneas de números. Los registros son un ejemplo importante de «fragmentación» de datos en un solo objeto y aparecen en casi todos los lenguajes modernos.

SQL

SQL (lenguaje de consulta estructurado) es un lenguaje para especificar la organización de bases de datos (colecciones de registros). Las bases de datos organizadas con SQL se denominan relacionales, porque SQL proporciona la capacidad de consultar una base de datos en busca de información que se encuentre en una relación determinada. Por ejemplo, una consulta podría ser «buscar todos los registros con el apellido Smith y la ciudad Nueva York «. Los programas de bases de datos comerciales suelen utilizar un lenguaje similar a SQL para sus consultas.

Idiomas orientados a la educación

BASIC

BASIC (código de instrucción simbólico de uso múltiple para principiantes) fue diseñado en Dartmouth College a mediados de la década de 1960 por John Kemeny y Thomas Kurtz. Se pretendía que fuera fácil de aprender para los principiantes, en particular para los que no se especializan en ciencias de la computación, y para que funcione bien en una computadora de tiempo compartido con muchos usuarios. Tenía estructuras de datos y notación simples y se interpretaba: un programa BASIC se traducía línea por línea y se ejecutaba a medida que se traducía, lo que facilitaba la localización de errores de programación.

Su pequeño tamaño y simplicidad también hicieron de BASIC un lenguaje popular para las primeras computadoras personales. Sus formas recientes han adoptado muchas de las estructuras de control y datos de otros lenguajes contemporáneos, lo que lo hace más poderoso pero menos conveniente para los principiantes.

PASCAL

Alrededor de 1970, Niklaus Wirth de Suiza diseñó Pascal para enseñar programación estructurada, que enfatizaba el uso ordenado de estructuras de control condicional y de bucle sin declaraciones GOTO. Aunque Pascal se parecía a ALGOL en notación, proporcionaba la capacidad de definir tipos de datos con los que organizar información compleja, una característica más allá de las capacidades de ALGOL, así como de FORTRAN y COBOL . Los tipos de datos definidos por el usuario permitían al programador introducir nombres para datos complejos, que el traductor de idiomas podía verificar para su uso correcto antes de ejecutar un programa.

A finales de los 70 y 80, Pascal fue uno de los lenguajes más utilizados para la instrucción de programación. Estaba disponible en casi todas las computadoras y, debido a su familiaridad, claridad y seguridad, se usaba tanto para software de producción como para educación.

Logo

Logo se originó a finales de la década de 1960 como un dialecto LISP simplificado para la educación ; Seymour Papert y otros lo usaron en el MIT para enseñar el pensamiento matemático a los escolares. Tenía una sintaxis más convencional que LISP y presentaba «gráficos de tortuga», un método simple para generar gráficos por computadora.. (El nombre proviene de un proyecto anterior para programar un robot con forma de tortuga). Los gráficos de tortuga usaban instrucciones centradas en el cuerpo, en las que un objeto se movía alrededor de una pantalla mediante comandos, como «izquierda 90» y «adelante», que especificaban acciones relativas a la posición actual y orientación del objeto en lugar de en términos de un marco fijo. Junto con las rutinas recursivas, esta técnica facilitó la programación de patrones intrincados y atractivos.

Hypertalk

Hypertalk fue diseñado como «programación para el resto de nosotros» por Bill Atkinson para Macintosh de Apple . Usando una sintaxis simple similar a la del inglés, Hypertalk permitía a cualquiera combinar texto, gráficos y audio rápidamente en «pilas vinculadas» que se podían navegar haciendo clic con el mouse en los botones estándar proporcionados por el programa. Hypertalk fue particularmente popular entre los educadores en la década de 1980 y principios de la de 1990 para presentaciones multimedia en el aula. Aunque Hypertalk tenía muchas características de lenguajes orientados a objetos (que se describen en la siguiente sección), Apple no lo desarrolló para otras plataformas informáticas y lo dejó languidecer; A medida que la participación de mercado de Apple disminuyó en la década de 1990, una nueva forma multiplataforma de mostrar multimedia dejó a Hypertalk casi obsoleto ( verla sección Idiomas de visualización de la World Wide Web ).

Lenguajes Orientados a Objetos

Los lenguajes orientados a objetos ayudan a gestionar la complejidad en programas grandes. Los objetos empaquetan los datos y las operaciones sobre ellos de modo que solo las operaciones sean de acceso público y los detalles internos de las estructuras de datos estén ocultos. Esta ocultación de información facilitó la programación a gran escala al permitir que un programador pensara en cada parte del programa de forma aislada. Además, los objetos pueden derivarse de otros más generales, «heredando» sus capacidades. Tal jerarquía de objetos hizo posible definir objetos especializados sin repetir todo lo que está en los más generales.

La programación orientada a objetos comenzó con el lenguaje Simula (1967), que agregó información oculta a ALGOL. Otro lenguaje influyente orientado a objetos fue Smalltalk (1980), en el que un programa era un conjunto de objetos que interactuaban enviándose mensajes entre sí.

C++

El lenguaje C ++ , desarrollado por Bjarne Stroustrup en AT&T a mediados de la década de 1980, extendió C al agregarle objetos mientras preservaba la eficiencia de los programas C. Ha sido uno de los lenguajes más importantes tanto para la educación como para la programación industrial. Gran parte de muchos sistemas operativos se escribieron en C ++. C ++, junto con Java, se ha vuelto popular para desarrollar paquetes de software comerciales que incorporan múltiples aplicaciones interrelacionadas. C ++ se considera uno de los lenguajes más rápidos y está muy cerca de los lenguajes de bajo nivel, lo que permite un control total sobre la asignación y administración de memoria. Esta misma característica y sus muchas otras capacidades también lo convierten en uno de los idiomas más difíciles de aprender y manejar a gran escala.

C#

C# (pronunciado C agudo como la nota musical) fue desarrollado por Anders Hejlsberg en Microsoft en 2000. C # tiene una sintaxis similar a la de C y C ++ y se usa a menudo para desarrollar juegos y aplicaciones para el sistema operativo Microsoft Windows.

ADA

Ada recibió su nombre de Augusta Ada King, condesa de Lovelace , quien fue asistente del inventor inglés del siglo XIX Charles Babbage , y a veces se la llama la primera programadora de computadoras. Ada, el lenguaje, fue desarrollado a principios de la década de 1980 para el Departamento de Defensa de EE. UU . Para programación a gran escala. Combinó la notación similar a Pascal con la capacidad de empaquetar operaciones y datos en módulos independientes. Su primera forma, Ada 83, no estaba totalmente orientada a objetos, pero la posterior Ada 95 proporcionó objetos y la capacidad de construir jerarquías de ellos. Aunque ya no es obligatorio para su uso en el trabajo del Departamento de Defensa, Ada sigue siendo un lenguaje eficaz para diseñar grandes programas

Java

A principios de la década de 1990, Sun Microsystems, Inc. diseñó Java como lenguaje de programación para la World Wide Web (WWW). Aunque se parecía a C ++ en apariencia, estaba totalmente orientado a objetos. En particular, Java prescindió de características de nivel inferior, incluida la capacidad de manipular direcciones de datos, una capacidad que no es deseable ni útil en programas para sistemas distribuidos. Para que sean portátiles, los programas Java son traducidos por una máquina virtual Java específica para cada plataforma informática, que luego ejecuta el programa Java. Además de agregar capacidades interactivas a Internet a través de «applets» de la Web, Java se ha utilizado ampliamente para programar dispositivos pequeños y portátiles, como teléfonos móviles.

Visual Basic

Visual Basic fue desarrollado por Microsoft para ampliar las capacidades de BASIC agregando objetos y programación “dirigida por eventos”: botones, menús y otros elementos de las interfaces gráficas de usuario (GUI). Visual Basic también se puede utilizar dentro de otro software de Microsoft para programar pequeñas rutinas. Visual Basic fue reemplazado en 2002 por Visual Basic .NET, un lenguaje muy diferente basado en C #, un lenguaje con similitudes con C ++ .

Python

El lenguaje de código abierto Python fue desarrollado por el programador holandés Guido van Rossum en 1991. Fue diseñado como un lenguaje fácil de usar, con características como el uso de sangrías en lugar de corchetes para agrupar declaraciones. Python también es un lenguaje muy compacto, diseñado para que los trabajos complejos se puedan ejecutar con solo unas pocas declaraciones. En la década de 2010, Python se convirtió en uno de los lenguajes de programación más populares, junto con Java y JavaScript.

Lenguajes declarativos

Los lenguajes declarativos, también denominados no procedimentales o de muy alto nivel, son lenguajes de programación en los que (idealmente) un programa especifica qué se debe hacer en lugar de cómo hacerlo. En tales lenguajes hay menos diferencia entre la especificación de un programa y su implementación que en los lenguajes de procedimiento descritos hasta ahora. Los dos tipos comunes de lenguajes declarativos son los lenguajes lógicos y funcionales.

Lenguajes de programación lógica, de los cuales PROLOG ( pro gramación en el registro IC) es el más conocido, el estado de un programa como un conjunto de relaciones lógicas (por ejemplo, un abuelo es el padre de uno de los padres de alguien). Estos lenguajes son similares al lenguaje de la base de datos SQL . Un programa es ejecutado por un “motor de inferencia” que responde a una consulta buscando estas relaciones sistemáticamente para hacer inferencias que responderán a una consulta. PROLOG se ha utilizado ampliamente en el procesamiento del lenguaje natural y otros programas de inteligencia artificial.

Los lenguajes funcionales tienen un estilo matemático. Un programa funcional se construye aplicando funciones a argumentos. Los lenguajes funcionales, como LISP , ML y Haskell, se utilizan como herramientas de investigación en el desarrollo del lenguaje, en probadores automatizados de teoremas matemáticos y en algunos proyectos comerciales.

Lenguajes de secuencias de comandos

Los lenguajes de secuencias de comandos a veces se denominan pequeños lenguajes. Están destinados a resolver problemas de programación relativamente pequeños que no requieren la sobrecarga de declaraciones de datos y otras características necesarias para hacer que los programas grandes sean manejables. Los lenguajes de secuencias de comandos se utilizan para escribir utilidades del sistema operativo , para programas de manipulación de archivos con fines especiales y, debido a que son fáciles de aprender, a veces para programas considerablemente más grandes.

Perl fue desarrollado a finales de la década de 1980, originalmente para su uso con el sistema operativo UNIX . Se pretendía que tuviera todas las capacidades de los lenguajes de script anteriores. Perl proporcionó muchas formas de establecer operaciones comunes y, por lo tanto, permitió que un programador adoptara cualquier estilo conveniente. En la década de 1990 se hizo popular como herramienta de programación de sistemas, tanto para pequeños programas de utilidad como para prototipos de programas más grandes. Junto con otros lenguajes que se describen a continuación, también se hizo popular para programar «servidores» web de computadoras.

Lenguajes de formato de documentos

Los lenguajes de formato de documentos especifican la organización del texto y los gráficos impresos. Se dividen en varias clases: notación de formato de texto que puede cumplir las mismas funciones que un programa de procesamiento de texto , lenguajes de descripción de página que son interpretados por un dispositivo de impresión y, en general, lenguajes de marcado que describen la función prevista de partes de un documento.

TeX

TeX fue desarrollado durante 1977–86 como un lenguaje de formato de texto por Donald Knuth, un profesor de la Universidad de Stanford, para mejorar la calidad de la notación matemática en sus libros. Los sistemas de formato de texto, a diferencia de los procesadores de texto WYSIWYG («Lo que ves es lo que obtienes»), incorporan comandos de formato de texto sin formato en un documento, que luego son interpretados por el procesador de idiomas para producir un documento formateado para su visualización o impresión. TeX marca el texto en cursiva, por ejemplo, como {\ si está en cursiva}, que luego se muestra como en cursiva.

TeX reemplazó en gran medida a los lenguajes de formato de texto anteriores. Sus capacidades poderosas y flexibles le dieron a un experto un control preciso sobre cosas como la elección de fuentes, el diseño de tablas, la notación matemática y la inclusión de gráficos en un documento.

Generalmente se usa con la ayuda de paquetes «macro» que definen comandos simples para operaciones comunes, como comenzar un nuevo párrafo; LaTeX es un paquete ampliamente utilizado. TeX contiene numerosas «hojas de estilo» estándar para diferentes tipos de documentos, y cada usuario puede adaptarlas. También existen programas relacionados como BibTeX, que administra bibliografías y tiene hojas de estilo para todos los estilos de bibliografía comunes, y versiones de TeX para idiomas con varios alfabetos.

PostScript

PostScript es un lenguaje de descripción de páginas desarrollado a principios de la década de 1980 por Adobe Systems Incorporated sobre la base del trabajo en Xerox PARC (Palo Alto Research Center). Dichos lenguajes describen documentos en términos que pueden ser interpretados por una computadora personal para mostrar el documento en su pantalla o por un microprocesador en una impresora o un dispositivo de composición tipográfica .

Los comandos PostScript pueden, por ejemplo, colocar texto con precisión, en varias fuentes y tamaños, dibujar imágenes que se describen matemáticamente y especificar el color o el sombreado. PostScript usa sufijo, también llamado notación polaca inversa, en el que el nombre de una operación sigue a sus argumentos. Por lo tanto, «300 600 20 270 carrera de arco» significa: dibujar («carrera») un arco de 270 grados con radio 20 en la ubicación (300, 600). Aunque un programador puede leer y escribir PostScript, normalmente lo producen programas de formato de texto, procesadores de texto o herramientas de visualización de gráficos.

El éxito de PostScript se debe a que su especificación es de dominio público y a que se adapta bien a las impresoras láser de alta resolución. Ha influido en el desarrollo de las fuentes de impresión y los fabricantes producen una gran variedad de fuentes PostScript.

SGML

SGML (lenguaje de marcado generalizado estándar) es un estándar internacional para la definición de lenguajes de marcado; es decir, es un metalenguaje . El marcado consta de notaciones llamadas etiquetas que especifican la función de un fragmento de texto o cómo se mostrará. SGML enfatiza el marcado descriptivo, en el que una etiqueta podría ser «<énfasis>». Dicho marcado denota la función del documento y podría interpretarse como vídeo inverso en la pantalla de una computadora, subrayado con una máquina de escribir, o cursiva en texto tipográfico.

SGML se utiliza para especificar DTD (definiciones de tipo de documento). Una DTD define un tipo de documento, como un informe, especificando qué elementos deben aparecer en el documento (por ejemplo, ) y dando reglas para el uso de elementos del documento, como que un párrafo puede aparecer dentro de una entrada de tabla. pero una tabla puede no aparecer dentro de un párrafo. Un programa de análisis puede analizar un texto marcado para determinar si se ajusta a una DTD. Otro programa puede leer las marcas para preparar un índice o traducir el documento a PostScript para imprimirlo. Otro más podría generar tipografía o audio de gran tamaño para lectores con discapacidades visuales o auditivas.</p> <h2><span class="ez-toc-section" id="Lenguajes_de_visualizacion_de_la_World_Wide_Web"></span><strong>Lenguajes de visualización de la World Wide Web</strong><span class="ez-toc-section-end"></span></h2> <h3><span class="ez-toc-section" id="HTML"></span><strong>HTML</strong><span class="ez-toc-section-end"></span></h3> <p>La World Wide Web es un sistema para mostrar texto, gráficos y audio recuperados a través de Internet en un monitor de computadora. Cada unidad de recuperación se conoce como página web, y dichas páginas contienen frecuentemente «enlaces» que permiten recuperar páginas relacionadas. HTML ( h yper t ext m arkup l anguage) es el lenguaje de marcado para codificar páginas web. Fue diseñado por Tim Berners-Lee en el laboratorio del CERN de física nuclear en Suiza durante la década de 1980 y está definido por un SGML DTD. Las etiquetas de marcado HTML especifican elementos del documento, como encabezados, párrafos y tablas. Marcan un documento para que lo muestre un programa informático conocido como navegador web. El navegador interpreta las etiquetas, mostrando los encabezados, párrafos y tablas en un diseño que se adapta al tamaño de la pantalla y las fuentes disponibles.</p> <p>Los documentos HTML también contienen anclas , que son etiquetas que especifican enlaces a otras páginas web. Un ancla tiene la forma <A HREF= «http://www.britannica.com”> Encyclopædia Britannica </A>, donde la cadena entre comillas es la URL (localizador universal de recursos) a la que apunta el enlace (la dirección Web » ”) Y el texto que lo sigue es lo que aparece en un navegador web, subrayado para mostrar que es un enlace a otra página. Lo que se muestra como una sola página también puede estar formado por varias URL, algunas con texto y otras con gráficos.</p> <h3><span class="ez-toc-section" id="XML"></span><strong>XML</strong><span class="ez-toc-section-end"></span></h3> <p>HTML no permite definir nuevos elementos de texto; es decir, no es extensible. XML (lenguaje de marcado extensible) es una forma simplificada de SGML destinada a documentos que se publican en la Web. Como SGML, XML usa DTD para definir tipos de documentos y el significado de las etiquetas que se usan en ellos. XML adopta convenciones que facilitan el análisis, como que las entidades del documento están marcadas tanto por una etiqueta de inicio como por una de finalización, como <BEGIN>… </BEGIN>. XML proporciona más tipos de enlaces de hipertexto que HTML, como enlaces bidireccionales y enlaces relacionados con una subsección de documento.</p> <p>Debido a que un autor puede definir nuevas etiquetas, una DTD XML también debe contener reglas que indiquen a un navegador web cómo interpretarlas: cómo se mostrará una entidad o cómo generará una acción como preparar un mensaje de correo electrónico.</p> <h3><span class="ez-toc-section" id="Secuencias_de_comandos_web"></span><strong>Secuencias de comandos web</strong><span class="ez-toc-section-end"></span></h3> <p>Las páginas web marcadas con HTML o XML son en gran parte documentos estáticos. Las secuencias de comandos web pueden agregar información a una página a medida que un lector la usa o permitir que el lector ingrese información que, por ejemplo, puede transmitirse al departamento de pedidos de una empresa en línea.CGI (interfaz de puerta de enlace común) proporciona un mecanismo; transmite solicitudes y respuestas entre el navegador web del lector y el servidor web que proporciona la página. El componente CGI en el servidor contiene pequeños programas llamadosscripts que toman información del sistema del navegador o la proporcionan para su visualización. Un guión simple podría preguntar el nombre del lector, determinar la dirección de Internet del sistema que usa el lector e imprimir un saludo. Los scripts pueden escribirse en cualquier lenguaje de programación, pero, debido a que generalmente son rutinas de procesamiento de texto simples, los lenguajes de script como PERL son particularmente apropiados.</p> <p>Otro enfoque consiste en utilizar un lenguaje diseñado para que el navegador ejecute scripts web. JavaScript es uno de esos lenguajes, diseñado por Netscape Communications Corp. , que puede usarse con los navegadores de Netscape y Microsoft. JavaScript es un lenguaje simple, bastante diferente de Java . Un programa JavaScript puede estar incrustado en una página web con la etiqueta HTML <script language = “JavaScript”>. Las instrucciones de JavaScript que siguen a esa etiqueta serán ejecutadas por el navegador cuando se seleccione la página. Para acelerar la visualización de dinámicaspáginas (interactivas), JavaScript a menudo se combina con XML o algún otro lenguaje para intercambiar información entre el servidor y el navegador del cliente. En particular, el comando XMLHttpRequest habilita solicitudes de datos asincrónicas del servidor sin que sea necesario que el servidor vuelva a enviar toda la página web. Este enfoque, o “filosofía” de la programación se llama Ajax ( una síncrona J avascript un nd X ML).</p> <p>VB Script es un subconjunto de Visual Basic. Desarrollado originalmente para el conjunto de programas Office de Microsoft, más tarde también se utilizó para scripts web. Sus capacidades son similares a las de JavaScript y puede integrarse en HTML de la misma manera.</p> <p>Detrás del uso de dichos lenguajes de scripting para la programación web se encuentra la idea de la programación de componentes, en la que los programas se construyen combinando componentes independientes previamente escritos sin ningún procesamiento adicional del lenguaje. Los programas JavaScript y VB Script se diseñaron como componentes que se pueden adjuntar a los navegadores web para controlar cómo muestran la información.</p> <h2><span class="ez-toc-section" id="Elementos_De_Programacion"></span><strong>Elementos De Programación</strong><span class="ez-toc-section-end"></span></h2> <p>A pesar de las diferencias de notación, los lenguajes informáticos contemporáneos proporcionan muchas de las mismas estructuras de programación. Estos incluyen estructuras de control básicas y estructuras de datos. Las primeras, proporcionan los medios para expresar algoritmos y las segundas, proporcionan formas de organizar la información.</p> <h3><span class="ez-toc-section" id="Estructuras_de_Control"></span><strong>Estructuras de Control</strong><span class="ez-toc-section-end"></span></h3> <p>Programas escritos en Los lenguajes de procedimiento, el tipo más común, son como recetas, con listas de ingredientes e instrucciones paso a paso para usarlos. Las tres estructuras de control básicas en prácticamente todos los lenguajes de procedimiento son:</p> <ol> <li>Secuencia: combine los ingredientes líquidos y luego agregue los secos.</li> <li>Condicional: si los tomates están frescos, cocínelos a fuego lento, pero si están enlatados, omita este paso.</li> <li>Iterativo: bata las claras hasta que formen picos suaves.</li> </ol> <p>La secuencia es la estructura de control predeterminada ; las instrucciones se ejecutan una tras otra. Podrían, por ejemplo, realizar una serie de operaciones aritméticas, asignando resultados a variables, para encontrar las raíces de una ecuación cuadrática a x 2 + b x + c = 0. ElLa estructura de control condicional IF-THEN o IF-THEN-ELSE permite que un programa siga rutas alternativas de ejecución.La iteración, o bucle, le da a las computadoras gran parte de su poder. Pueden repetir una secuencia de pasos tantas veces como sea necesario, y las repeticiones apropiadas de pasos bastante simples pueden resolver problemas complejos.</p> <p>Estas estructuras de control se pueden combinar. Una secuencia puede contener varios bucles; un bucle puede contener un bucle anidado dentro de él, o las dos ramas de un condicional pueden contener cada una secuencias con bucles y más condicionales. En el "pseudocódigo" utilizado en este artículo, "*" indica multiplicación y "←" se utiliza para asignar valores a las variables. El siguiente fragmento de programación emplea la estructura SI-ENTONCES para encontrar una raíz de la ecuación cuadrática, usando la fórmula cuadrática:</p> <blockquote><p> 👷‍♂️ Fórmula 👷‍♂️ </p></blockquote> <p>La secuencia es la estructura de control predeterminada ; las instrucciones se ejecutan una tras otra. Podrían, por ejemplo, realizar una serie de operaciones aritméticas, asignando resultados a variables, para encontrar las raíces de una ecuación cuadrática a x 2 + b x + c = 0. ElLa estructura de control condicional IF-THEN o IF-THEN-ELSE permite que un programa siga rutas alternativas de ejecución.La iteración, o bucle, le da a las computadoras gran parte de su poder. Pueden repetir una secuencia de pasos tantas veces como sea necesario, y las repeticiones apropiadas de pasos bastante simples pueden resolver problemas complejos.</p> <p>Estas estructuras de control se pueden combinar. Una secuencia puede contener varios bucles; un bucle puede contener un bucle anidado dentro de él, o las dos ramas de un condicional pueden contener cada una secuencias con bucles y más condicionales. En el "pseudocódigo" utilizado en este artículo, "*" indica multiplicación y "←" se utiliza para asignar valores a las variables. El siguiente fragmento de programación emplea la estructura SI-ENTONCES para encontrar una raíz de la ecuación cuadrática, usando la fórmula cuadrática:</p> <blockquote><p> 👷‍♂️ Fórmula 👷‍♂️ </p></blockquote> <p>La función SQUARE_ROOT utilizada en el fragmento anterior es un ejemplo de subprograma (también llamado procedimiento, subrutina o función). Un subprograma es como una receta de salsa que se da una vez y se usa como parte de muchas otras recetas. Los subprogramas toman insumos (la cantidad necesaria) y producen resultados (la salsa). Los subprogramas de uso común se encuentran generalmente en una colección o biblioteca provista de un idioma. Los subprogramas pueden llamar a otros subprogramas en sus definiciones, como se muestra en la siguiente rutina (donde ABS es la función de valor absoluto). SQUARE_ROOT se implementa usando un ciclo WHILE (indefinido) que produce una buena aproximación para la raíz cuadrada de números reales a menos que x sea ​​muy pequeña o muy grande. Un subprograma se escribe declarando su nombre, el tipo de datos de entrada y la salida:</p> <blockquote><p> 👷‍♂️ Fórmula 👷‍♂️ </p></blockquote> <p>Los subprogramas pueden dividir un problema en subproblemas más pequeños y manejables. A veces, un problema puede resolverse reduciéndolo a un subproblema que es una versión más pequeña del original. En ese caso, la rutina se conoce como subprograma recursivo porque resuelve el problema llamándose a sí mismo repetidamente. Por ejemplo, la función factorial en matemáticas ( n ! = N ∙ ( n −1) ⋯ 3 ∙ 2 ∙ 1 — es decir, el producto de los primeros n enteros), se puede programar como una rutina recursiva:</p> <blockquote><p> 👷‍♂️ Fórmula 👷‍♂️ </p></blockquote> <p>La ventaja de la recursividad es que a menudo es una simple repetición de una definición precisa, que evita los detalles contables de una solución iterativa .</p> <p>A nivel de lenguaje de máquina, los bucles y condicionales se implementan con instrucciones de bifurcación que dicen "saltar a" un nuevo punto en el programa. La declaración "goto" en lenguajes de nivel superior expresa la misma operación, pero rara vez se usa porque dificulta a los humanos seguir el "flujo" de un programa. Algunos lenguajes, como Java y Ada, no lo permiten.</p> <h3><span class="ez-toc-section" id="Estructuras_de_Datos"></span><strong>Estructuras de Datos</strong><span class="ez-toc-section-end"></span></h3> <p>Mientras que las estructuras de control organizan algoritmos , las estructuras de datos organizan la información. En particular, las estructuras de datos especifican tipos de datos y, por tanto, qué operaciones se pueden realizar en ellos, al tiempo que elimina la necesidad de que un programador realice un seguimiento de las direcciones de memoria. Las estructuras de datos simples incluyen enteros, números reales, booleanos (verdadero / falso) y caracteres o cadenas de caracteres. Las estructuras de datos compuestas se forman combinando uno o más tipos de datos.</p> <p>Las estructuras de datos compuestos más importantes son las matriz, una colección homogénea de datos, y larecord , una colección heterogénea . Una matriz puede representar un vector de números, una lista de cadenas o una colección de vectores (una matriz de matrices o matriz matemática ). Un registro puede almacenar información del empleado: nombre, cargo y salario. Una matriz de registros, como una tabla de empleados, es una colección de elementos, cada uno de los cuales es heterogéneo. Por el contrario, un registro puede contener un vector, es decir, una matriz.</p> <p>Los componentes o campos del registro se seleccionan por nombre; por ejemplo, E.SALARY podría representar el campo de salario del registro E. Un elemento de matriz se selecciona por su posición o índice; A [10] es el elemento en la posición 10 en matriz A . Por lo tanto, un bucle FOR (iteración definida) puede ejecutarse a través de una matriz con límites de índice (PRIMERO EN ÚLTIMO en el siguiente ejemplo) para sumar sus elementos:</p> <blockquote><p> 👷‍♂️ Fórmula 👷‍♂️ </p></blockquote> <p>Las matrices y los registros tienen tamaños fijos. Las estructuras que pueden crecer se construyen con asignación dinámica , que proporciona nuevo almacenamiento según sea necesario. Estas estructuras de datos tienen componentes, cada uno de los cuales contiene datos y referencias a otros componentes (en términos de máquina , sus direcciones). Estas estructuras autorreferenciales tienen definiciones recursivas. UNAbintree (árbol binario), por ejemplo, está vacío o contiene un componente raíz con datos y bintree "hijos" de izquierda y derecha. Estos bintrees implementan tablas de información de manera eficiente. Las subrutinas para operar sobre ellos son naturalmente recursivas; la siguiente rutina imprime todos los elementos de un bintree (cada uno es la raíz de algún subárbol):</p> <blockquote><p> 👷‍♂️ Fórmula 👷‍♂️ </p></blockquote> <p>Los tipos de datos abstractos (ADT) son importantes para la programación a gran escala. Ellos empaquetan estructuras de datos y operaciones en ellos, ocultando detalles internos. Por ejemplo, una tabla ADT proporciona operaciones de inserción y búsqueda a los usuarios mientras mantiene invisible la estructura subyacente, ya sea una matriz, una lista o un árbol binario. En los lenguajes orientados a objetos , las clases son ADT y los objetos son instancias de ellas. El siguiente ejemplo de pseudocódigo orientado a objetos asume que hay un ADT bintree y una “superclase” COMPARABLE, caracterizando datos para los cuales hay una operación de comparación (como “<” para enteros). Define un nuevo ADT, TABLE, que oculta su representación de datos y proporciona operaciones apropiadas para las tablas. Esta clase es polimórfica, definida en términos de un parámetro de tipo de elemento .de la clase COMPARABLE. Cualquier instancia debe especificar ese tipo, aquí una clase con datos de empleado (la declaración COMPARABLE significa que PERS_REC debe proporcionar una operación de comparación para ordenar registros). Se omiten los detalles de implementación.</p> <blockquote><p> 👷‍♂️ Fórmula 👷‍♂️ </p></blockquote> <p>TABLE hace públicas solo sus propias operaciones; por lo tanto, si se modifica para usar una matriz o lista en lugar de un bintree, los programas que lo usan no pueden detectar el cambio. Esta ocultación de información es esencial para gestionar la complejidad en programas grandes. Los divide en partes pequeñas, con "contratos" entre las partes; aquí, la clase TABLE se contrata para proporcionar operaciones de búsqueda e inserción, y sus usuarios contratan para usar solo las operaciones así publicitadas.</p> <p>> TRADUCCIÓN: Pablo Álvarez Corredera, 24 de Noviembre de 2020<br /> > CONTRIBUYENTE: <a href="https://www.britannica.com/contributor/David-Hemmendinger/5383">David Hemmendinger</a><br /> > FECHA DE PUBLICACIÓN: 19 de noviembre de 2020<br /> <!-- URL: https://www.britannica.com/technology/computer-programming-language --><br /> <!-- https://www.britannica.com/technology/computer-programming-language#ref248109 --></p> <div id="dpsp-content-bottom" class="dpsp-content-wrapper dpsp-shape-circle dpsp-size-medium dpsp-has-spacing dpsp-hide-on-mobile dpsp-button-style-8"> <ul class="dpsp-networks-btns-wrapper dpsp-networks-btns-share dpsp-networks-btns-content dpsp-column-3 dpsp-has-button-icon-animation"><li class="dpsp-network-list-item dpsp-network-list-item-twitter"> <a rel="nofollow noopener" href="https://twitter.com/intent/tweet?text=%F0%9F%A5%87%20%E2%96%B7%20La%20Historia%20de%20los%20Lenguajes%20de%20Programaci%C3%B3n%20Inform%C3%A1ticos%20-%20Ciberninjas&url=https%3A%2F%2Fciberninjas.com%2Fhistoria-lenguajes-programacion%2F&via=ciberninjas" class="dpsp-network-btn dpsp-twitter dpsp-first dpsp-has-label" target="_blank" aria-label="Share on Twitter" title="Share on Twitter"> <span class="dpsp-network-icon "> <span class="dpsp-network-icon-inner"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 30 32"><path d="M28.928 7.296q-1.184 1.728-2.88 2.976 0 0.256 0 0.736 0 2.336-0.672 4.64t-2.048 4.448-3.296 3.744-4.608 2.624-5.792 0.96q-4.832 0-8.832-2.592 0.608 0.064 1.376 0.064 4.032 0 7.168-2.464-1.888-0.032-3.36-1.152t-2.048-2.848q0.608 0.096 1.088 0.096 0.768 0 1.536-0.192-2.016-0.416-3.328-1.984t-1.312-3.68v-0.064q1.216 0.672 2.624 0.736-1.184-0.8-1.888-2.048t-0.704-2.752q0-1.568 0.8-2.912 2.176 2.656 5.248 4.256t6.656 1.76q-0.16-0.672-0.16-1.312 0-2.4 1.696-4.064t4.064-1.696q2.528 0 4.224 1.824 1.952-0.384 3.68-1.408-0.672 2.048-2.56 3.2 1.664-0.192 3.328-0.896z"></path></svg></span> </span> <span class="dpsp-network-label">Twitter</span></a></li> <li class="dpsp-network-list-item dpsp-network-list-item-facebook"> <a rel="nofollow noopener" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fciberninjas.com%2Fhistoria-lenguajes-programacion%2F&t=%F0%9F%A5%87%20%E2%96%B7%20La%20Historia%20de%20los%20Lenguajes%20de%20Programaci%C3%B3n%20Inform%C3%A1ticos%20-%20Ciberninjas" class="dpsp-network-btn dpsp-facebook dpsp-has-label" target="_blank" aria-label="Share on Facebook" title="Share on Facebook"> <span class="dpsp-network-icon "> <span class="dpsp-network-icon-inner"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 18 32"><path d="M17.12 0.224v4.704h-2.784q-1.536 0-2.080 0.64t-0.544 1.92v3.392h5.248l-0.704 5.28h-4.544v13.568h-5.472v-13.568h-4.544v-5.28h4.544v-3.904q0-3.328 1.856-5.152t4.96-1.824q2.624 0 4.064 0.224z"></path></svg></span> </span> <span class="dpsp-network-label">Facebook</span></a></li> <li class="dpsp-network-list-item dpsp-network-list-item-linkedin"> <a rel="nofollow noopener" href="https://www.linkedin.com/shareArticle?url=https%3A%2F%2Fciberninjas.com%2Fhistoria-lenguajes-programacion%2F&title=%F0%9F%A5%87%20%E2%96%B7%20La%20Historia%20de%20los%20Lenguajes%20de%20Programaci%C3%B3n%20Inform%C3%A1ticos%20-%20Ciberninjas&summary=Conoce%20toda%20la%20historia%20de%20los%20lenguajes%20de%20programaci%C3%B3n%20de%20la%20era%20de%20la%20programaci%C3%B3n%20inform%C3%A1tica.&mini=true" class="dpsp-network-btn dpsp-linkedin dpsp-last dpsp-has-label" target="_blank" aria-label="Share on LinkedIn" title="Share on LinkedIn"> <span class="dpsp-network-icon "> <span class="dpsp-network-icon-inner"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 27 32"><path d="M6.24 11.168v17.696h-5.888v-17.696h5.888zM6.624 5.696q0 1.312-0.928 2.176t-2.4 0.864h-0.032q-1.472 0-2.368-0.864t-0.896-2.176 0.928-2.176 2.4-0.864 2.368 0.864 0.928 2.176zM27.424 18.72v10.144h-5.856v-9.472q0-1.888-0.736-2.944t-2.272-1.056q-1.12 0-1.856 0.608t-1.152 1.536q-0.192 0.544-0.192 1.44v9.888h-5.888q0.032-7.136 0.032-11.552t0-5.28l-0.032-0.864h5.888v2.56h-0.032q0.352-0.576 0.736-0.992t0.992-0.928 1.568-0.768 2.048-0.288q3.040 0 4.896 2.016t1.856 5.952z"></path></svg></span> </span> <span class="dpsp-network-label">LinkedIn</span></a></li> </ul></div> </div><!-- .entry --> <div class="post-tags clr"> <span class="owp-tag-text">Etiquetas: </span><a href="https://ciberninjas.com/etiqueta/ada/" rel="tag">ADA</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/algol/" rel="tag">Algol</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/basic/" rel="tag">Basic</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/c/" rel="tag">C</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/cobol/" rel="tag">Cobol</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/estructuras-de-control/" rel="tag">Estructuras de Control</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/estructuras-de-datos/" rel="tag">Estructuras de Datos</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/fortran/" rel="tag">Fortran</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/html/" rel="tag">HTML</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/hypertalk/" rel="tag">Hypertalk</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/java/" rel="tag">Java</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/lisp/" rel="tag">Lisp</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/logo/" rel="tag">Logo</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/pascal/" rel="tag">Pascal</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/postscript/" rel="tag">PostScript</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/python/" rel="tag">Python</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/sgml/" rel="tag">SGML</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/sql/" rel="tag">SQL</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/tex/" rel="tag">TeX</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/visual-basic/" rel="tag">Visual Basic</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/world-wide-web/" rel="tag">World Wide Web</a><span class="owp-sep">,</span> <a href="https://ciberninjas.com/etiqueta/xml/" rel="tag">XML</a></div> <section id="related-posts" class="clr"> <h3 class="theme-heading related-posts-title"> <span class="text">También podría gustarte</span> </h3> <div class="oceanwp-row clr"> <article class="related-post clr col span_1_of_3 col-1 post-3857 post type-post status-publish format-standard has-post-thumbnail hentry category-lenguajes-programacion category-programacion tag-java entry has-media"> <figure class="related-post-media clr"> <a href="https://ciberninjas.com/java/" class="related-thumb"> <img width="300" height="169" src="https://ciberninjas.com/wp-content/uploads/2020/11/desarrollador-java-300x169.webp" class="attachment-medium size-medium wp-post-image" alt="Lee más sobre el artículo ¿Qué es Java?, Guía rápida para principiantes del lenguaje de programación Java" loading="lazy" itemprop="image" srcset="https://ciberninjas.com/wp-content/uploads/2020/11/desarrollador-java-300x169.webp 300w, https://ciberninjas.com/wp-content/uploads/2020/11/desarrollador-java-1024x576.webp 1024w, https://ciberninjas.com/wp-content/uploads/2020/11/desarrollador-java-768x432.webp 768w, https://ciberninjas.com/wp-content/uploads/2020/11/desarrollador-java-1536x864.webp 1536w, https://ciberninjas.com/wp-content/uploads/2020/11/desarrollador-java.webp 1920w" sizes="(max-width: 300px) 100vw, 300px" /> </a> </figure> <h3 class="related-post-title"> <a href="https://ciberninjas.com/java/" rel="bookmark">¿Qué es Java?, Guía rápida para principiantes del lenguaje de programación Java</a> </h3><!-- .related-post-title --> <time class="published" datetime="2020-11-22T18:45:54+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>noviembre 22, 2020</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-2 post-5013 post type-post status-publish format-standard hentry category-frameworks-multiplataforma category-lenguajes-programacion category-programacion tag-dart tag-flutter entry"> <h3 class="related-post-title"> <a href="https://ciberninjas.com/relacion-entre-dart-flutter/" rel="bookmark">¿Cómo se relaciona el lenguaje de programación Dart con Flutter?</a> </h3><!-- .related-post-title --> <time class="published" datetime="2020-02-10T17:25:01+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>febrero 10, 2020</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-3 post-5112 post type-post status-publish format-standard hentry category-historia-computadoras category-personajes-historicos tag-fujio-masuoka tag-memoria-ram tag-ram entry"> <h3 class="related-post-title"> <a href="https://ciberninjas.com/creador-memorias-flash-fujio-masuoka/" rel="bookmark">¿Quién es Fujio Masuoka? El creador de las memorias flash</a> </h3><!-- .related-post-title --> <time class="published" datetime="2020-05-08T11:32:40+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>mayo 8, 2020</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-1 post-11274 post type-post status-publish format-standard hentry category-historia-computadoras entry"> <h3 class="related-post-title"> <a href="https://ciberninjas.com/realidad-aumentada/" rel="bookmark">Realidad Aumentada (AR)</a> </h3><!-- .related-post-title --> <time class="published" datetime="2021-03-20T04:37:29+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>marzo 20, 2021</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-2 post-3869 post type-post status-publish format-standard has-post-thumbnail hentry category-lenguajes-programacion category-programacion tag-indice-tiobe tag-java tag-python tag-r entry has-media"> <figure class="related-post-media clr"> <a href="https://ciberninjas.com/python-supera-java/" class="related-thumb"> <img width="300" height="169" src="https://ciberninjas.com/wp-content/uploads/2020/11/python-supera-java-300x169.webp" class="attachment-medium size-medium wp-post-image" alt="Lee más sobre el artículo Python supera a Java para convertirse en el segundo lenguaje de programación más popular" loading="lazy" itemprop="image" srcset="https://ciberninjas.com/wp-content/uploads/2020/11/python-supera-java-300x169.webp 300w, https://ciberninjas.com/wp-content/uploads/2020/11/python-supera-java-1024x576.webp 1024w, https://ciberninjas.com/wp-content/uploads/2020/11/python-supera-java-768x432.webp 768w, https://ciberninjas.com/wp-content/uploads/2020/11/python-supera-java.webp 1280w" sizes="(max-width: 300px) 100vw, 300px" /> </a> </figure> <h3 class="related-post-title"> <a href="https://ciberninjas.com/python-supera-java/" rel="bookmark">Python supera a Java para convertirse en el segundo lenguaje de programación más popular</a> </h3><!-- .related-post-title --> <time class="published" datetime="2020-11-08T03:36:56+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>noviembre 8, 2020</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-3 post-12757 post type-post status-publish format-standard has-post-thumbnail hentry category-lenguajes-programacion category-programacion tag-rust entry has-media"> <figure class="related-post-media clr"> <a href="https://ciberninjas.com/hoja-de-referencia-del-lenguaje-de-programacion-rust/" class="related-thumb"> <img width="300" height="169" src="https://ciberninjas.com/wp-content/uploads/2021/04/chuleta-rust-ingles-300x169.webp" class="attachment-medium size-medium wp-post-image" alt="Lee más sobre el artículo Hoja de referencia del lenguaje de Programación Rust" loading="lazy" itemprop="image" srcset="https://ciberninjas.com/wp-content/uploads/2021/04/chuleta-rust-ingles-300x169.webp 300w, https://ciberninjas.com/wp-content/uploads/2021/04/chuleta-rust-ingles-1024x576.webp 1024w, https://ciberninjas.com/wp-content/uploads/2021/04/chuleta-rust-ingles-768x432.webp 768w, https://ciberninjas.com/wp-content/uploads/2021/04/chuleta-rust-ingles-1536x864.webp 1536w, https://ciberninjas.com/wp-content/uploads/2021/04/chuleta-rust-ingles.webp 1920w" sizes="(max-width: 300px) 100vw, 300px" /> </a> </figure> <h3 class="related-post-title"> <a href="https://ciberninjas.com/hoja-de-referencia-del-lenguaje-de-programacion-rust/" rel="bookmark">Hoja de referencia del lenguaje de Programación Rust</a> </h3><!-- .related-post-title --> <time class="published" datetime="2021-04-05T18:10:44+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>abril 5, 2021</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-1 post-15034 post type-post status-publish format-standard has-post-thumbnail hentry category-lenguajes-programacion category-noticias category-programacion tag-ocaml entry has-media"> <figure class="related-post-media clr"> <a href="https://ciberninjas.com/25-cumpleanos-ocaml/" class="related-thumb"> <img width="300" height="169" src="https://ciberninjas.com/wp-content/uploads/2021/05/cumpleanos-ocaml-300x169.webp" class="attachment-medium size-medium wp-post-image" alt="Lee más sobre el artículo El lenguaje de programación OCaml cumplió 25 años" loading="lazy" itemprop="image" srcset="https://ciberninjas.com/wp-content/uploads/2021/05/cumpleanos-ocaml-300x169.webp 300w, https://ciberninjas.com/wp-content/uploads/2021/05/cumpleanos-ocaml-1024x576.webp 1024w, https://ciberninjas.com/wp-content/uploads/2021/05/cumpleanos-ocaml-768x432.webp 768w, https://ciberninjas.com/wp-content/uploads/2021/05/cumpleanos-ocaml-1536x864.webp 1536w, https://ciberninjas.com/wp-content/uploads/2021/05/cumpleanos-ocaml.webp 1920w" sizes="(max-width: 300px) 100vw, 300px" /> </a> </figure> <h3 class="related-post-title"> <a href="https://ciberninjas.com/25-cumpleanos-ocaml/" rel="bookmark">El lenguaje de programación OCaml cumplió 25 años</a> </h3><!-- .related-post-title --> <time class="published" datetime="2021-05-10T18:55:53+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>mayo 10, 2021</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-2 post-4031 post type-post status-publish format-standard hentry category-historia-computadoras tag-historia-de-las-computadoras tag-internet tag-reflexion tag-reflexion-sociedad entry"> <h3 class="related-post-title"> <a href="https://ciberninjas.com/velocidad-usabilidad-web/" rel="bookmark">La necesidad de ganar velocidad de red, 23 años después</a> </h3><!-- .related-post-title --> <time class="published" datetime="2020-08-13T08:22:10+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>agosto 13, 2020</time> </article><!-- .related-post --> <article class="related-post clr col span_1_of_3 col-3 post-14879 post type-post status-publish format-standard has-post-thumbnail hentry category-lenguajes-programacion category-noticias category-programacion tag-pyston tag-python entry has-media"> <figure class="related-post-media clr"> <a href="https://ciberninjas.com/pyston-2-2/" class="related-thumb"> <img width="300" height="169" src="https://ciberninjas.com/wp-content/uploads/2021/05/pyston-2-2-300x169.webp" class="attachment-medium size-medium wp-post-image" alt="Lee más sobre el artículo Pyston 2.2: Python más rápido que nunca y ahora de código abierto" loading="lazy" itemprop="image" srcset="https://ciberninjas.com/wp-content/uploads/2021/05/pyston-2-2-300x169.webp 300w, https://ciberninjas.com/wp-content/uploads/2021/05/pyston-2-2-1024x576.webp 1024w, https://ciberninjas.com/wp-content/uploads/2021/05/pyston-2-2-768x432.webp 768w, https://ciberninjas.com/wp-content/uploads/2021/05/pyston-2-2-1536x864.webp 1536w, https://ciberninjas.com/wp-content/uploads/2021/05/pyston-2-2.webp 1920w" sizes="(max-width: 300px) 100vw, 300px" /> </a> </figure> <h3 class="related-post-title"> <a href="https://ciberninjas.com/pyston-2-2/" rel="bookmark">Pyston 2.2: Python más rápido que nunca y ahora de código abierto</a> </h3><!-- .related-post-title --> <time class="published" datetime="2021-05-06T12:18:09+02:00"><i class=" far fa-calendar-alt" aria-hidden="true" role="img"></i>mayo 6, 2021</time> </article><!-- .related-post --> </div><!-- .oceanwp-row --> </section><!-- .related-posts --> </article> </div><!-- #content --> </div><!-- #primary --> <aside id="right-sidebar" class="sidebar-container widget-area sidebar-primary" itemscope="itemscope" itemtype="https://schema.org/WPSideBar" role="complementary" aria-label="Barra lateral principal"> <div id="right-sidebar-inner" class="clr"> <div id="ocean_facebook-2" class="sidebar-box widget_facebook_likebox clr"> <iframe src="https://www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2Fciberninjas%2F&width=300&height=120&colorscheme=light&show_faces=false&stream=false&show_border=false&header=false&force_wall=false&locale=es_ES" scrolling="no" frameborder="0" style="border: none; overflow: hidden; width: 300px; height: 120px; background: #fff"></iframe></div><div id="categories-2" class="sidebar-box widget_categories clr"><h4 class="widget-title">Categorías Ninjas</h4><form action="https://ciberninjas.com" method="get"><label class="screen-reader-text" for="cat">Categorías Ninjas</label><select name='cat' id='cat' class='postform' > <option value='-1'>Elegir la categoría</option> <option class="level-0" value="2">Activismo Digital  (20)</option> <option class="level-0" value="79">Agile  (2)</option> <option class="level-0" value="1747">Aplicaciones Android  (6)</option> <option class="level-0" value="3">Aprendizaje Automático  (10)</option> <option class="level-0" value="4">Aprendizaje Profundo  (3)</option> <option class="level-0" value="5">Awesome Listas  (18)</option> <option class="level-0" value="6">BBDD  (19)</option> <option class="level-0" value="7">Biblioteca  (65)</option> <option class="level-0" value="8">Blockchain  (25)</option> <option class="level-0" value="9">Blog ROSEPAC  (21)</option> <option class="level-0" value="1876">Certificaciones TECH  (7)</option> <option class="level-0" value="10">CI / CD  (18)</option> <option class="level-0" value="11">Ciberseguridad  (51)</option> <option class="level-0" value="12">Ciencia  (20)</option> <option class="level-0" value="13">Cine  (1)</option> <option class="level-0" value="14">CMS  (4)</option> <option class="level-0" value="80">Coches Eléctricos  (3)</option> <option class="level-0" value="81">Conceptos Programación  (3)</option> <option class="level-0" value="82">Control de Versiones  (7)</option> <option class="level-0" value="15">Criptomonedas  (22)</option> <option class="level-0" value="16">Cursos Gratis  (100)</option> <option class="level-0" value="17">Diccionario  (32)</option> <option class="level-0" value="18">Diseño  (28)</option> <option class="level-0" value="83">Diseño 2D / 3D  (11)</option> <option class="level-0" value="84">Diseño Web  (12)</option> <option class="level-0" value="85">Documentales  (4)</option> <option class="level-0" value="86">Editores de Texto  (33)</option> <option class="level-0" value="87">Editores Gráficos  (11)</option> <option class="level-0" value="19">Educación  (22)</option> <option class="level-0" value="20">Entornos de Ejecución  (10)</option> <option class="level-0" value="88">Especialización en Ciberseguridad  (7)</option> <option class="level-0" value="21">Estudios Oficiales  (20)</option> <option class="level-0" value="22">Eventos  (25)</option> <option class="level-0" value="23">Expertos de Google  (15)</option> <option class="level-0" value="24">Fondos de Pantalla  (7)</option> <option class="level-0" value="25">Formación Profesional  (3)</option> <option class="level-0" value="27">FPDAW  (5)</option> <option class="level-0" value="28">Framework CSS  (15)</option> <option class="level-0" value="29">Framework Java  (2)</option> <option class="level-0" value="30">Framework Javascript  (17)</option> <option class="level-0" value="31">Framework Multiplataforma  (38)</option> <option class="level-0" value="32">Framework Python  (4)</option> <option class="level-0" value="33">Fundación  (19)</option> <option class="level-0" value="34">Futuro  (9)</option> <option class="level-0" value="1790">Gadgets  (4)</option> <option class="level-0" value="1882">Galería  (1)</option> <option class="level-0" value="35">Gestión de Sistemas Informáticos  (3)</option> <option class="level-0" value="89">Gestores de Correos  (4)</option> <option class="level-0" value="36">Hacking  (17)</option> <option class="level-0" value="37">Hardware  (33)</option> <option class="level-0" value="90">Herramientas Programación  (41)</option> <option class="level-0" value="38">Historia Computadoras  (23)</option> <option class="level-0" value="39">Infografía  (10)</option> <option class="level-0" value="40">Inteligencia Artificial  (27)</option> <option class="level-0" value="41">Internet Libre  (1)</option> <option class="level-0" value="91">Lenguajes Programación  (67)</option> <option class="level-0" value="42">Libros Activismo Digital  (9)</option> <option class="level-0" value="43">Libros Framework Javascript  (1)</option> <option class="level-0" value="44">Libros Hacking  (4)</option> <option class="level-0" value="2623">Libros Inteligencia Artificial  (1)</option> <option class="level-0" value="45">Libros Motivación  (6)</option> <option class="level-0" value="92">Libros Programación  (29)</option> <option class="level-0" value="46">Libros Recomendados  (11)</option> <option class="level-0" value="2627">Libros Redes  (1)</option> <option class="level-0" value="48">Mejores Ofertas  (38)</option> <option class="level-0" value="49">Metodología de Trabajo  (3)</option> <option class="level-0" value="2172">Multimedia  (3)</option> <option class="level-0" value="51">Música  (4)</option> <option class="level-0" value="93">Navegadores  (34)</option> <option class="level-0" value="52">Noticias  (210)</option> <option class="level-0" value="94">Organizadores  (5)</option> <option class="level-0" value="53">Otros  (7)</option> <option class="level-0" value="54">Personajes Históricos  (34)</option> <option class="level-0" value="55">Profesiones Digitales  (2)</option> <option class="level-0" value="56">Programación  (117)</option> <option class="level-0" value="57">Psicología  (3)</option> <option class="level-0" value="1761">Realidad Aumentada  (7)</option> <option class="level-0" value="58">Realidad Virtual  (7)</option> <option class="level-0" value="59">Redes Sociales  (54)</option> <option class="level-0" value="60">Reflexión Personal  (10)</option> <option class="level-0" value="61">Reflexión Programación  (12)</option> <option class="level-0" value="95">Reproductores  (7)</option> <option class="level-0" value="62">retro  (3)</option> <option class="level-0" value="63">Robótica  (10)</option> <option class="level-0" value="64">Rutas de Aprendizaje  (22)</option> <option class="level-0" value="96">Seguridad  (12)</option> <option class="level-0" value="66">Servicios Nube  (22)</option> <option class="level-0" value="1835">Servidores  (1)</option> <option class="level-0" value="67">Sin Servidor  (2)</option> <option class="level-0" value="97">Sistemas de Gestión de Paquetes  (3)</option> <option class="level-0" value="98">Sistemas Operativos  (58)</option> <option class="level-0" value="68">Sociedad Tecnológica  (1)</option> <option class="level-0" value="69">Software  (188)</option> <option class="level-0" value="2543">Superación Personal  (2)</option> <option class="level-0" value="70">Teletrabajo  (14)</option> <option class="level-0" value="2611">Trailer Videojuegos  (11)</option> <option class="level-0" value="71">Trucos Windows  (10)</option> <option class="level-0" value="72">Vehículos  (3)</option> <option class="level-0" value="73">Videojuegos  (59)</option> <option class="level-0" value="74">Videollamadas  (11)</option> <option class="level-0" value="76">Videotutoriales  (13)</option> <option class="level-0" value="77">Webmaster  (33)</option> <option class="level-0" value="78">Wikininjas  (39)</option> </select> </form> <script> /* <![CDATA[ */ (function() { var dropdown = document.getElementById( "cat" ); function onCatChange() { if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) { dropdown.parentNode.submit(); } } dropdown.onchange = onCatChange; })(); /* ]]> */ </script> </div><div id="custom_html-6" class="widget_text sidebar-box widget_custom_html clr"><h4 class="widget-title">Calendario Tecnología 2021</h4><div class="textwidget custom-html-widget"><iframe src="https://calendar.google.com/calendar/embed?height=600&wkst=2&bgcolor=%23EF6C00&ctz=Europe%2FMadrid&src=bW9pcWFnb2FkOThqdjRyMDM2NXA4dm9kdjRAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%23EF6C00&showPrint=1&showTabs=0&mode=AGENDA&showTz=1&showNav=0&showTitle=0" style="border-width:0" width="300" height="720" frameborder="0" scrolling="no"></iframe></div></div><div id="monsterinsights-popular-posts-widget-2" class="sidebar-box monsterinsights-popular-posts-widget clr"><h4 class="widget-title">Más Visitados</h4><div class="monsterinsights-widget-popular-posts monsterinsights-widget-popular-posts-alpha monsterinsights-popular-posts-styled monsterinsights-widget-popular-posts-columns-1"><ul class="monsterinsights-widget-popular-posts-list"><li style="background-color:#F0F2F4;"><a href="https://ciberninjas.com/comparativa-flutter-react-native/" data-wpel-link="internal" target="_self" rel="noopener noreferrer"><div class="monsterinsights-widget-popular-posts-text"><span class="monsterinsights-widget-popular-posts-title" style="color:#393F4C;font-size:15px;">Flutter vs React Native: La comparación definitiva</span></div></a></li><li style="background-color:#F0F2F4;"><a href="https://ciberninjas.com/kedro-framework-python/" data-wpel-link="internal" target="_self" rel="noopener noreferrer"><div class="monsterinsights-widget-popular-posts-text"><span class="monsterinsights-widget-popular-posts-title" style="color:#393F4C;font-size:15px;">Kedro: Un framework de Python para proyectos de ciencia de datos reproducibles</span></div></a></li><li style="background-color:#F0F2F4;"><a href="https://ciberninjas.com/lanzado-kali-linux-20213/" data-wpel-link="internal" target="_self" rel="noopener noreferrer"><div class="monsterinsights-widget-popular-posts-text"><span class="monsterinsights-widget-popular-posts-title" style="color:#393F4C;font-size:15px;">Lanzado Kali Linux 2021.3 (OpenSSL, Kali-Tools, Kali Live VM Support, Kali NetHunter Smartwatch)</span></div></a></li><li style="background-color:#F0F2F4;"><a href="https://ciberninjas.com/fallece-abogado-hacktivista-jack-leiderman/" data-wpel-link="internal" target="_self" rel="noopener noreferrer"><div class="monsterinsights-widget-popular-posts-text"><span class="monsterinsights-widget-popular-posts-title" style="color:#393F4C;font-size:15px;">Fallece el abogado hacktivista Jay Leiderman</span></div></a></li><li style="background-color:#F0F2F4;"><a href="https://ciberninjas.com/python-paso-adelante/" data-wpel-link="internal" target="_self" rel="noopener noreferrer"><div class="monsterinsights-widget-popular-posts-text"><span class="monsterinsights-widget-popular-posts-title" style="color:#393F4C;font-size:15px;">Lenguajes de programación: Python está al borde de otro gran paso adelante</span></div></a></li></ul></div><p></p></div> <div id="recent-posts-2" class="sidebar-box widget_recent_entries clr"> <h4 class="widget-title">Entradas recientes</h4> <ul> <li> <a href="https://ciberninjas.com/como-instalar-windows-11-iso/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Cómo instalar Windows 11 desde un archivo ISO de Microsoft</a> </li> <li> <a href="https://ciberninjas.com/comparativa-flutter-react-native/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Flutter vs React Native: La comparación definitiva</a> </li> <li> <a href="https://ciberninjas.com/kedro-framework-python/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Kedro: Un framework de Python para proyectos de ciencia de datos reproducibles</a> </li> <li> <a href="https://ciberninjas.com/lanzado-kali-linux-20213/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Lanzado Kali Linux 2021.3 (OpenSSL, Kali-Tools, Kali Live VM Support, Kali NetHunter Smartwatch)</a> </li> <li> <a href="https://ciberninjas.com/fallece-abogado-hacktivista-jack-leiderman/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Fallece el abogado hacktivista Jay Leiderman</a> </li> <li> <a href="https://ciberninjas.com/python-paso-adelante/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Lenguajes de programación: Python está al borde de otro gran paso adelante</a> </li> <li> <a href="https://ciberninjas.com/como-obtener-previa-windows-11/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Cómo obtener la versión preliminar de Windows 11</a> </li> <li> <a href="https://ciberninjas.com/windows-11-todo-necesitas-saber/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Hoja de trucos de Windows 11: Todo lo que necesitas saber</a> </li> <li> <a href="https://ciberninjas.com/linux-zorin-os-16/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">ZorinOS 16 es exactamente lo que debería ser una distribución de escritorio de Linux</a> </li> <li> <a href="https://ciberninjas.com/onlyfans-acepta-contenido-sexual/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">¿Por qué Onlyfans seguirá permitiendo la pornografía?</a> </li> </ul> </div><div id="search-2" class="sidebar-box widget_search clr"> <form role="search" method="get" class="searchform" action="https://ciberninjas.com/"> <label for="ocean-search-form-2"> <span class="screen-reader-text">Buscar en esta web</span> <input type="search" id="ocean-search-form-2" class="field" autocomplete="off" placeholder="Buscar" name="s"> </label> </form> </div><div id="meta-2" class="sidebar-box widget_meta clr"><h4 class="widget-title">Meta</h4> <ul> <li><a rel="nofollow noopener noreferrer" href="https://ciberninjas.com/wp-login.php?action=register" data-wpel-link="internal" target="_self">Registro</a></li> <li><a rel="nofollow noopener noreferrer" href="https://ciberninjas.com/wp-login.php" data-wpel-link="internal" target="_self">Acceder</a></li> <li><a href="https://ciberninjas.com/feed/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Feed de entradas</a></li> <li><a href="https://ciberninjas.com/comments/feed/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Feed de comentarios</a></li> <li><a href="https://es.wordpress.org/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">WordPress.org</a></li> </ul> </div> </div><!-- #sidebar-inner --> </aside><!-- #right-sidebar --> </div><!-- #content-wrap --> </main><!-- #main --> <footer id="footer" class="site-footer" itemscope="itemscope" itemtype="https://schema.org/WPFooter" role="contentinfo"> <div id="footer-inner" class="clr"> <div id="footer-widgets" class="oceanwp-row clr"> <div class="footer-widgets-inner container"> <div class="footer-box span_1_of_2 col col-1"> <div id="custom_html-5" class="widget_text footer-widget widget_custom_html clr"><div class="textwidget custom-html-widget"><div style="float: left;"> <h2 style="color:white;">ENLACES TOP</h2><ul> <li><strong><a href="https://ciberninjas.com/eventos-tecnologia/" title="Calendario GMAIL de los mejores eventos" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Calendario Eventos</a></strong></li> <li><strong><a href="https://ciberninjas.com/programar/" title="Aprender a programar desde cero" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Aprender a Programar</a></strong></li> <li><strong><a href="https://ciberninjas.com/programa-gratis/" title="Las mejores páginas para aprender a programar gratis" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Páginas Programar</a></strong></li> <li><strong><a href="https://ciberninjas.com/mejores-sdk-multiplataforma-2019-20/" title="Los mejores frameworks de desarrollo móvil y web" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Los Mejores Frameworks</a></strong></li> <li><strong><a href="https://ciberninjas.com/15-mejores-lenguajes-programacion/" title="Los mejores lenguajes de programación" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Mejores Lenguajes</a></strong></li> <li><strong><a href="https://ciberninjas.com/mejores-editores-texto/" title="Los mejores editores de texto e IDEs para programar y desarrollar" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Los Mejores Editores</a></strong></li> <li><strong><a href="https://ciberninjas.com/markdown/" title="La mejor y más completa guía de Markdown" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Guía Markdown</a></strong></li> <li><strong><a href="https://ciberninjas.com/hirens-bootcd-pe/" title="La mejor herramienta de recuperación para Windows" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Hirens Boot CD</a></strong></li> <li><strong><a href="https://ciberninjas.com/7-mejores-distribuciones-escritorio-para-principiantes/" title="Las 7 mejores distribuciones para principiantes del sistema operativo de Linux" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Mejores Distros Linux</a></strong></li> <li><strong><a href="https://ciberninjas.com/wordpress/" title="Wordpress desde cero, todo lo que tienes que conocer" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Wordpress desde Cero</a></strong></li> </ul> <h2 style="color:white;">RECURSOS GRATIS</h2> <ul> <li><strong><a href="https://ciberninjas.com/cursos-gratis/" title="Los mejores cursos gratis de programación" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Cursos Gratis</a></strong></li> <li><strong><a href="https://ciberninjas.com/biblioteca-de-programacion-y-tecnologia/" title="Los mejores libros gratis de programación" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Libros Gratis</a></strong></li> <li><strong><a href="https://ciberninjas.com/cursos-tecnologia-ingles/" title="Los mejores cursos gratis de programación en inglés" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Cursos Gratis en Inglés</a></strong></li> <li><strong><a href="https://ciberninjas.com/biblioteca-de-programacion-y-tecnologia-ingles/" title="Los mejores libros gratis de programación en inglés" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Libros Gratis en Inglés</a></strong></li> <li><strong><a href="https://ciberninjas.com/colecciones/" title="Listas impresionantes con los mejores recursos para programadores y desarrolladores" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Herramientas Gratis</a></strong></li> </ul> </div> <div style="float:left;display:block;"> <h2 style="color:white;">HACKING ÉTICO</h2> <ul> <li><strong><a href="https://ciberninjas.com/mejores-sistemas-operativos-para-hackear/" title="Los 11 mejores sistemas operativos para hackear" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Mejores SO Hacking</a></strong></li> <li><strong><a href="https://ciberninjas.com/software-mister-robot/" title="" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Software Mr. Robot</a></strong></li> <li><strong><a href="https://ciberninjas.com/kali-herramientas-20/" title="Las 20 mejores herramientas para hackear desde Kali Linux" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Mejores Herramientas Hacking</a></strong></li> <li><strong><a href="https://ciberninjas.com/14-mejores-sitios-aprender-hackear/" title="Los 14 mejores sitios web en los que aprender y practicar a hackear" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Sitios Web Hackear</a></strong></li> </ul> <h2 style="color:white;">ARTE DIGITAL</h2> <ul> <li><strong><a href="https://ciberninjas.com/que-es-nft/" title="Conociendo todo sobre los activos fungibles coleccionables NFT" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Conociendo los NFT</a></strong></li> <li><strong><a href="https://ciberninjas.com/mejores-mercados-nft/" title="Los mejores mercados de arte digital / NFT" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Mejores Mercados Arte Digital</a></strong></li> <li><strong><a href="https://ciberninjas.com/mercados-donde-se-compra-venden-nft/" title="Mercados en los que comprar activos de NFT y arte digital" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Mercados Comprar NFT</a></strong></li> </ul> <h2 style="color:white;">RUTAS DE APRENDIZAJE</h2> <ul> <li><strong><a href="https://ciberninjas.com/hoja-ruta-back-end/" title="La ruta de aprendizaje para convertirte en un mejor desarrollador Backend" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Desarrollador Backend</a></strong></li> <li><strong><a href="https://ciberninjas.com/hoja-ruta-front-end/" title="La ruta de aprendizaje para convertirte en un mejor desarrollador frontend" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Desarrollador Frontend</a> <a href="https://ciberninjas.com/el-camino-del-frontend-developer-por-mrcodedev/" title="Ruta de aprendizaje frontend creada por MrCodedev" data-wpel-link="internal" target="_self" rel="noopener noreferrer">(Opción 2)</a></strong></li> <li><strong><a href="https://ciberninjas.com/hoja-ruta-desarrollador-web/" title="La ruta de aprendizaje para convertirte en un mejor desarrollador Full Stack" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Desarrollador Full Stack</a></strong></li> <li><strong><a href="https://ciberninjas.com/hoja-ruta-recursos-cisco-redes/" title="Recursos para lograr las certificaciones de CISCO o aumentar tus conocimientos sobre redes" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Redes / CISCO</a></strong></li> </ul> </div></div></div><div id="custom_html-3" class="widget_text footer-widget widget_custom_html clr"><div class="textwidget custom-html-widget"><div style="font-size:14px;"> <p style="color:white;"><strong>Aclaración sobre las publicaciones</strong></p> <p>El contenido aquí publicado, tiene principalmente dos objetivos: El objetivo de informar y el objetivo de aprender.</p> <p>A diferencia de la gran mayoría de medios de hoy en día, en Ciberninjas, procuramos compartir nuestras fuentes e intentamos reconocer el trabajo a nuestros informantes.</p> <p>Aún así, si consideras que un contenido de la página web es ilegal o de tu propiedad y deseas que sea removido.</p> <p>No dudes en contactarme: <a href="mailto:rosepac21@gmail.com" title="Correo electrónico de contacto del Diario Ciberninjas">rosepac21@gmail.com</a></p> </div></div></div> </div><!-- .footer-one-box --> <div class="footer-box span_1_of_2 col col-2"> <div id="custom_html-4" class="widget_text footer-widget widget_custom_html clr"><div class="textwidget custom-html-widget"><div style="float: left;"> <h2 style="color:white;">COMPUTADORAS</h2> <ul> <li><strong><a href="https://ciberninjas.com/wiki/" title="Conoce toda la historia de la informática y los ordenadores desde cero" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Informática desde Cero</a></strong></li> <li><strong><a href="https://ciberninjas.com/historia-computadoras/personajes-historicos/" title="Los personajes más importantes de toda la historia de las computadoras" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Personajes Históricos</a></strong></li> <li><strong><a href="https://ciberninjas.com/lenguajes-influyentes/" title="Los lenguajes más influyentes en la historia de las computadoras" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Lenguajes Más Influyentes</a></strong></li> <li><strong><a href="https://ciberninjas.com/historia-lenguajes-programacion/" title="La historia de todos los lenguajes de programación" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Historia Lenguajes Programación</a></strong></li> <li><strong><a href="https://ciberninjas.com/historia-computadora/" title="La historia de las computadoras desde el ábaco hasta la actualidad" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Historia Computadoras</a></strong></li> <li><strong><a href="https://ciberninjas.com/computacion-nube/" title="Una breve introducción a lo que es y en que consiste la computación en la nube" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Computación en Nube</a></strong></li> <li><strong><a href="https://ciberninjas.com/guerra-de-editores/" title="A lo largo de la evolución de las computadoras siempre ha existido la discusión de por que editor es el mejor" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Guerra de Editores</a></strong></li> <li><strong><a href="https://ciberninjas.com/cronograma/" title="Cronograma de la historia de la programación" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Cronograma Historia Programación</a></strong></li> <li><strong><a href="https://ciberninjas.com/aparicion-palabra-robot/" title="La historia de la aparición de los robots" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Aparición Robot</a></strong></li> <li><strong><a href="" title="" data-wpel-link="internal" target="_self" rel="noopener noreferrer"></a></strong></li> </ul> <h2 style="color:white;">RUTAS BIG DATA / IA</h2> <ul> <li><strong><a href="https://ciberninjas.com/que-aprender-sobre-machine-learning-2020/" title="Ruta de introducción en el aprendizaje automático" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Aprendizaje Automático</a></strong></li> <li><strong><a href="https://ciberninjas.com/11-aprendizajes-principiantes-inteligencia-artificial/" title="Introducción y comienzo en la inteligencia artificial" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Inteligencia Artificial</a></strong></li> <li><strong><a href="https://ciberninjas.com/hoja-ruta-mlops/" title="La ruta de aprendizaje para el aprendizaje automático y la ciencia de datos" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Machine Learning Ops</a></strong></li> </ul> <h2 style="color:white;">RUTAS DISEÑO</h2> <ul> <li><strong><a href="https://ciberninjas.com/diseno-grafico/" title="La ruta de aprendizaje para convertirte en diseñador gráfico para videojuegos" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Diseño Gráfico</a></strong></li> <li><strong><a href="https://ciberninjas.com/diseno-web/" title="La ruta de aprendizaje para convertirte en diseñador web" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Diseño Web</a></strong></li> </ul> </div> <div style="float:right;display:block;"> <h2 style="color:white;">F. P.</h2> <ul> <li><strong><a href="https://ciberninjas.com/recursos-asir/" title="Ciclo formativo profesional de administración de sistemas informáticos y redes" data-wpel-link="internal" target="_self" rel="noopener noreferrer">FP ASIR</a></strong></li> <li><strong><a href="https://ciberninjas.com/recursos-dam/" title="Ciclo formativo profesional de desarrollo de aplicaciones multiplataforma" data-wpel-link="internal" target="_self" rel="noopener noreferrer">FP DAM</a></strong></li> <li><strong><a href="https://ciberninjas.com/recursos-daw/" title="Ciclo formativo profesional de desarrollo de aplicaciones web" data-wpel-link="internal" target="_self" rel="noopener noreferrer">FP DAW</a></strong></li> <li><strong><a href="https://ciberninjas.com/recursos-smr/" title="Ciclo formativo profesional de sistemas microinformáticos y redes" data-wpel-link="internal" target="_self" rel="noopener noreferrer">FP SMR</a></strong></li> <li><strong><a href="https://ciberninjas.com/recursos-fp-ciberseguridad/" title="Curso de especialización en ciberseguridad" data-wpel-link="internal" target="_self" rel="noopener noreferrer">FP Curso Ciberseguridad</a></strong></li> </ul> <h2 style="color:white;">ENCUENTRA TRABAJO</h2> <ul> <li><strong><a href="https://ciberninjas.com/teletrabajo/" title="Los mejores consejos para trabajar desde casa" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Consejos Teletrabajo</a></strong></li> <li><strong><a href="https://ciberninjas.com/profesiones-digitales/" title="Todas las profesiones digitales más demandadas" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Profesiones Digitales</a></strong></li> <li><strong><a href="https://ciberninjas.com/guia-productividad-definitiva/" title="La mejor guía de productividad qu vas a poder encontrar" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Guía de Productividad</a></strong></li> <li><strong><a href="https://ciberninjas.com/profesiones-digitales-mapas-habilidades/" title="Conoce las habilidades tecnológicas más exigidas por las empresas más importantes" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Habilidades Más Exigidas</a></strong></li> <li><strong><a href="https://ciberninjas.com/metodologia-de-trabajo/" title="Conoce las metodologías de trabajo modernas" data-wpel-link="internal" target="_self" rel="noopener noreferrer">Metodologías de Trabajo</a></strong></li> </ul> </div></div></div><div id="custom_html-2" class="widget_text footer-widget widget_custom_html clr"><div class="textwidget custom-html-widget"><div style="font-size:14px;"> <p style="color:white;">Descarga de Responsabilidad</p> <p>En este sitio web trabajamos con enlaces de afiliados, eso quiere decir qué: Si realizas alguna compra posteriormente a haber accedido a una página web de terceros desde aquí.</p> <p>Es muy posible que Ciberninjas reciba un micro pago gracias a tí, ten en cuenta de que eso no repercutirá en el precio de la compra final.</p> <p>De hecho, la mayoría de las veces, recibirás un descuento extra o una mucho mejor oferta, gracias a utilizar nuestros enlace.</p> <p>Infórmate más de <a href="https://ciberninjas.com/aviso-legal/#Politica_de_Afiliados" data-wpel-link="internal" target="_self" rel="noopener noreferrer">nuestras colaboraciones</a>, <a href="https://ciberninjas.com/politica-de-cookies/" data-wpel-link="internal" target="_self" rel="noopener noreferrer">uso de cookies</a> y <a href="https://ciberninjas.com/aviso-legal/#Politica_de_Afiliados" data-wpel-link="internal" target="_self" rel="noopener noreferrer"> políticas de privacidad</a>.</p> </div></div></div> </div><!-- .footer-one-box --> </div><!-- .container --> </div><!-- #footer-widgets --> <div id="footer-bottom" class="clr"> <div id="footer-bottom-inner" class="container clr"> <div id="footer-bottom-menu" class="navigation clr"> </div><!-- #footer-bottom-menu --> <div id="copyright" class="clr" role="contentinfo"> © 2021 Ciberninjas - El Diario Tecnológico del Futuro </div><!-- #copyright --> </div><!-- #footer-bottom-inner --> </div><!-- #footer-bottom --> </div><!-- #footer-inner --> </footer><!-- #footer --> </div><!-- #wrap --> </div><!-- #outer-wrap --> <a aria-label="Hacer scroll a la parte superior de la página" href="#" id="scroll-top" class="scroll-top-left"><i class=" fa fa-angle-double-up" aria-hidden="true" role="img"></i></a> <!-- Lockers: user tracker for visibility filters OnePress, bizpanda.com --> <script> window.__bp_session_timeout = '900'; window.__bp_session_freezing = 0; window.bizpanda||(window.bizpanda={}),window.bizpanda.bp_can_store_localy=function(){return!1},window.bizpanda.bp_ut_get_cookie=function(e){for(var n=e+"=",i=document.cookie.split(";"),o=0;o<i.length;o++){for(var t=i[o];" "==t.charAt(0);)t=t.substring(1);if(0==t.indexOf(n))return decodeURIComponent(t.substring(n.length,t.length))}return!1},window.bizpanda.bp_ut_set_cookie=function(e,n,i){var o=new Date;o.setTime(o.getTime()+24*i*60*60*1e3);var t="expires="+o.toUTCString();document.cookie=e+"="+encodeURIComponent(n)+"; "+t+"; path=/"},window.bizpanda.bp_ut_get_obj=function(e){var n=null;if(!(n=window.bizpanda.bp_can_store_localy()?window.localStorage.getItem("bp_ut_session"):window.bizpanda.bp_ut_get_cookie("bp_ut_session")))return!1;n=(n=n.replace(/\-c\-/g,",")).replace(/\-q\-/g,'"');try{n=JSON.parse(n)}catch(e){return!1}return n.started+1e3*e<(new Date).getTime()&&(n=null),n},window.bizpanda.bp_ut_set_obj=function(e,n){e.started&&window.__bp_session_freezing||(e.started=(new Date).getTime()),(e=JSON.stringify(e))&&(e=(e=e.replace(/\"/g,"-q-")).replace(/\,/g,"-c-")),window.bizpanda.bp_can_store_localy()?window.localStorage.setItem("bp_ut_session",e):window.bizpanda.bp_ut_set_cookie("bp_ut_session",e,5e3)},window.bizpanda.bp_ut_count_pageview=function(){var e=window.bizpanda.bp_ut_get_obj(window.__bp_session_timeout);e||(e={}),e.pageviews||(e.pageviews=0),0===e.pageviews&&(e.referrer=document.referrer,e.landingPage=window.location.href,e.pageviews=0),e.pageviews++,window.bizpanda.bp_ut_set_obj(e)},window.bizpanda.bp_ut_count_locker_pageview=function(){var e=window.bizpanda.bp_ut_get_obj(window.__bp_timeout);e||(e={}),e.lockerPageviews||(e.lockerPageviews=0),e.lockerPageviews++,window.bizpanda.bp_ut_set_obj(e)},window.bizpanda.bp_ut_count_pageview(); </script> <!-- / --> <!--googleoff: all--><div id="cookie-law-info-bar" data-nosnippet="true"><span><div class="cli-bar-container cli-style-v2"><div class="cli-bar-message">Usamos cookies en nuestro sitio web para brindarle la experiencia más relevante recordando sus preferencias y visitas repetidas. <br />Al hacer clic en "ACEPTAR" aceptas el uso de TODAS las cookies.</br><div class="wt-cli-ccpa-element"> <a href="javascript:void(0)" style="color:#333333;" class="wt-cli-ccpa-opt-out" data-wpel-link="internal" target="_self" rel="noopener noreferrer">NO VENDAS MI INFORMACIÓN PERSONAL</a>.</div></div><div class="cli-bar-btn_container"><a role='button' tabindex='0' class="cli_settings_button" style="margin:0px 10px 0px 5px;" >Configuración de Cookies</a><a role='button' tabindex='0' data-cli_action="accept" id="cookie_action_close_header" class="medium cli-plugin-button cli-plugin-main-button cookie_action_close_header cli_action_button" style="display:inline-block; ">ACEPTO</a></div></div></span></div><div id="cookie-law-info-again" style="display:none;" data-nosnippet="true"><span id="cookie_hdr_showagain">Manage consent</span></div><div class="cli-modal" data-nosnippet="true" id="cliSettingsPopup" tabindex="-1" role="dialog" aria-labelledby="cliSettingsPopup" aria-hidden="true"> <div class="cli-modal-dialog" role="document"> <div class="cli-modal-content cli-bar-popup"> <button type="button" class="cli-modal-close" id="cliModalClose"> <svg class="" viewBox="0 0 24 24"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"></path><path d="M0 0h24v24h-24z" fill="none"></path></svg> <span class="wt-cli-sr-only">Cerrar</span> </button> <div class="cli-modal-body"> <div class="cli-container-fluid cli-tab-container"> <div class="cli-row"> <div class="cli-col-12 cli-align-items-stretch cli-px-0"> <div class="cli-privacy-overview"> <h4>Resumen de privacidad</h4> <div class="cli-privacy-content"> <div class="cli-privacy-content-text">Este sitio web utiliza cookies para mejorar su experiencia mientras navega por el sitio web.<br /> <br /> De estas, las cookies que se clasifican como necesarias se almacenan en su navegador, ya que son esenciales para el funcionamiento de las funcionalidades básicas del sitio web.<br /> <br /> Además, utilizamos cookies de terceros que nos ayudan a analizar y comprender cómo utiliza este sitio web. Estas cookies se almacenarán en su navegador solo con su consentimiento. También tiene la opción de optar por no recibir estas cookies. Pero la exclusión voluntaria de algunas de estas cookies puede afectar su experiencia de navegación.</div> </div> <a class="cli-privacy-readmore" aria-label="Mostrar más" tabindex="0" role="button" data-readmore-text="Mostrar más" data-readless-text="Mostrar menos"></a> </div> </div> <div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container"> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="rendimiento" data-toggle="cli-toggle-tab"> Rendimiento </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-rendimiento" class="cli-user-preference-checkbox" data-id="checkbox-rendimiento" /> <label for="wt-cli-checkbox-rendimiento" class="cli-slider" data-cli-enable="Activado" data-cli-disable="Desactivado"><span class="wt-cli-sr-only">Rendimiento</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="rendimiento"> <div class="wt-cli-cookie-description"> Las cookies de rendimiento se utilizan para comprender y analizar los índices de rendimiento clave del sitio web, lo que ayuda a brindar una mejor experiencia de usuario a los visitantes. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="necesarias" data-toggle="cli-toggle-tab"> Necesarias </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-necesarias" class="cli-user-preference-checkbox" data-id="checkbox-necesarias" /> <label for="wt-cli-checkbox-necesarias" class="cli-slider" data-cli-enable="Activado" data-cli-disable="Desactivado"><span class="wt-cli-sr-only">Necesarias</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="necesarias"> <div class="wt-cli-cookie-description"> Las cookies necesarias son absolutamente esenciales para que el sitio web funcione correctamente. Estas cookies garantizan funcionalidades básicas y características de seguridad del sitio web, de forma anónima. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="otros" data-toggle="cli-toggle-tab"> Otros </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-otros" class="cli-user-preference-checkbox" data-id="checkbox-otros" /> <label for="wt-cli-checkbox-otros" class="cli-slider" data-cli-enable="Activado" data-cli-disable="Desactivado"><span class="wt-cli-sr-only">Otros</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="otros"> <div class="wt-cli-cookie-description"> Otras cookies no categorizadas son las que se están analizando y aún no se han clasificado en una categoría. <table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duración</th><th class="cookielawinfo-column-4">Descripción</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_clck</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CONSENT</td><td class="cookielawinfo-column-3">16 years 9 months 17 days 19 hours</td><td class="cookielawinfo-column-4">Esta cookie corresponde al consentimiento que le das a Google. Esta cookie no aparecerá hasta que apruebas el consentimiento de las cookies en la web.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-publicitarias</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-rendimiento</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">No description</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">i</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">The purpose of the cookie is not known yet.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">u</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">The purpose of this cookie is targeting and marketing.The domain of this cookie is related with a company called Bombora in USA.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">VISITOR_INFO1_LIVE</td><td class="cookielawinfo-column-3">5 months 27 days</td><td class="cookielawinfo-column-4">Youtube establece esta cookie. Se utiliza para rastrear la información de los videos de YouTube incrustados en un sitio web.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">YSC</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">Estas cookies son establecidas por Youtube y se utilizan para rastrear las vistas de videos incrustados. </td></tr></tbody></table> </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="publicitarias" data-toggle="cli-toggle-tab"> Publicitarias </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-publicitarias" class="cli-user-preference-checkbox" data-id="checkbox-publicitarias" /> <label for="wt-cli-checkbox-publicitarias" class="cli-slider" data-cli-enable="Activado" data-cli-disable="Desactivado"><span class="wt-cli-sr-only">Publicitarias</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="publicitarias"> <div class="wt-cli-cookie-description"> Las cookies publicitarias se utilizan para proporcionar a los visitantes anuncios y campañas de marketing relevantes. Estas cookies rastrean a los visitantes en los sitios web y recopilan información para proporcionar anuncios personalizados. <table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duración</th><th class="cookielawinfo-column-4">Descripción</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">ANONCHK</td><td class="cookielawinfo-column-3">10 minutos</td><td class="cookielawinfo-column-4">Esta cookie se utiliza para almacenar el ID de sesión de un usuario. Esta cookie garantiza que los clics de los anuncios en el motor de búsqueda de Bing se verifiquen y se utilice para fines de generación de informes y para una mejor personalización de las visitas.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CLID</td><td class="cookielawinfo-column-3">1 año</td><td class="cookielawinfo-column-4">Usado por Microsoft como identificador único. La cookie se establece mediante scripts de Microsoft incrustados. El propósito de esta cookie es sincronizar la identificación en muchos dominios de Microsoft diferentes para permitir el seguimiento de usuarios. </td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CMID</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">The cookie is set by CasaleMedia. The cookie is used to collect information about the usage behavior for targeted advertising.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CMPRO</td><td class="cookielawinfo-column-3">3 months</td><td class="cookielawinfo-column-4">Casalemedia establece esta cookie y se utiliza con fines publicitarios específicos.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CMPS</td><td class="cookielawinfo-column-3">3 months</td><td class="cookielawinfo-column-4">This cookie is set by Casalemedia and is used for targeted advertisement purposes.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">CMST</td><td class="cookielawinfo-column-3">1 day</td><td class="cookielawinfo-column-4">CasaleMedia establece la cookie. La cookie se utiliza para recopilar información sobre el comportamiento de uso de la publicidad dirigida.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">DSID</td><td class="cookielawinfo-column-3">1 hour</td><td class="cookielawinfo-column-4">Esta cookie está configurada por doubleclick.net. Google utiliza esta cookie para hacer que la publicidad sea más atractiva para los usuarios y se almacena en doubleclick.net. Contiene una identificación única encriptada.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">IDE</td><td class="cookielawinfo-column-3">1 year 24 days</td><td class="cookielawinfo-column-4">Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">KADUSERCOOKIE</td><td class="cookielawinfo-column-3">3 months</td><td class="cookielawinfo-column-4">La cookie es establecida por pubmatic.com para identificar el sitio web o el dispositivo de los visitantes desde el cual visitan el sitio web de los socios de PubMatic.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">KTPCACOOKIE</td><td class="cookielawinfo-column-3">1 day</td><td class="cookielawinfo-column-4">Esta cookie es establecida por pubmatic.com con el propósito de verificar si las cookies de terceros están habilitadas en el sitio web del usuario.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">mc</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">Esta cookie está asociada con Quantserve para rastrear de forma anónima cómo un usuario interactúa con el sitio web.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">MUID</td><td class="cookielawinfo-column-3">1 año 24 días</td><td class="cookielawinfo-column-4">Usado por Microsoft como identificador único. La cookie se establece mediante scripts de Microsoft incrustados. El propósito de esta cookie es sincronizar la identificación en muchos dominios de Microsoft diferentes para permitir el seguimiento de usuarios. </td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">NID</td><td class="cookielawinfo-column-3">6 months</td><td class="cookielawinfo-column-4">Esta cookie se utiliza para crear un perfil en función del interés del usuario y mostrar anuncios personalizados a los usuarios.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">pxrc</td><td class="cookielawinfo-column-3">2 months</td><td class="cookielawinfo-column-4">El propósito de la cookie es identificar a un visitante para ofrecerle publicidad relevante. Acxiom.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">rlas3</td><td class="cookielawinfo-column-3">1 year</td><td class="cookielawinfo-column-4">La cookie la establece rlcdn.com. La cookie se utiliza para mostrar anuncios relevantes al visitante, así como para limitar el tiempo que el visitante ve una y también para medir la efectividad de la campaña.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">rmuid</td><td class="cookielawinfo-column-3">1 año</td><td class="cookielawinfo-column-4">Esta cookie es proporcionada por Linksynergy. Se utiliza con fines publicitarios. Esta cookie se utiliza para crear y almacenar una identificación de usuario única.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">test_cookie</td><td class="cookielawinfo-column-3">15 minutos</td><td class="cookielawinfo-column-4">Esta cookie la establece doubleclick.net. El propósito de la cookie es determinar si el navegador del usuario admite cookies.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">uid</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">Esta cookie se utiliza para medir el número y el comportamiento de los visitantes del sitio web de forma anónima. Los datos incluyen el número de visitas, la duración media de la visita en el sitio web, las páginas visitadas, etc. con el fin de comprender mejor las preferencias del usuario para los anuncios específicos.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">uuid</td><td class="cookielawinfo-column-3">3 months</td><td class="cookielawinfo-column-4">To optimize ad relevance by collecting visitor data from multiple websites such as what pages have been loaded.</td></tr></tbody></table> </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="analitica" data-toggle="cli-toggle-tab"> Analítica Web </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-analitica" class="cli-user-preference-checkbox" data-id="checkbox-analitica" /> <label for="wt-cli-checkbox-analitica" class="cli-slider" data-cli-enable="Activado" data-cli-disable="Desactivado"><span class="wt-cli-sr-only">Analítica Web</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="analitica"> <div class="wt-cli-cookie-description"> Las cookies analíticas se utilizan para comprender cómo los visitantes interactúan con el sitio web. Estas cookies ayudan a proporcionar información sobre métricas, el número de visitantes, la tasa de rebote, la fuente de tráfico, etc. <table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duración</th><th class="cookielawinfo-column-4">Descripción</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">__gads</td><td class="cookielawinfo-column-3">1 año 24 días</td><td class="cookielawinfo-column-4">Google establece esta cookie y se almacena con el nombre dounleclick.com. Esta cookie se utiliza para rastrear cuántas veces los usuarios ven un anuncio en particular, lo que ayuda a medir el éxito de la campaña y a calcular los ingresos generados por la campaña. Estas cookies solo se pueden leer desde el dominio en el que están configuradas, por lo que no rastrearán ningún dato mientras navega por otros sitios.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_ga</td><td class="cookielawinfo-column-3">2 años</td><td class="cookielawinfo-column-4">Esta cookie es instalada por Google Analytics. La cookie se utiliza para calcular los datos de visitantes, sesiones y campañas y realizar un seguimiento del uso del sitio para el informe de análisis del sitio. Las cookies almacenan información de forma anónima y asignan un número generado aleatoriamente para identificar visitantes únicos.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gali</td><td class="cookielawinfo-column-3">1 minuto</td><td class="cookielawinfo-column-4">Es utilizado por Google Analytics para registrar con qué elemento de la página anterior interactuó el usuario para llegar a la página actual.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gat_gtag_UA_x</td><td class="cookielawinfo-column-3">1 minute</td><td class="cookielawinfo-column-4">Esta cookie es instalada por Google Analytics. La cookie se utiliza para calcular los datos de visitantes, sesiones y campañas, etc, de forma temporal.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">_gid</td><td class="cookielawinfo-column-3">1 día</td><td class="cookielawinfo-column-4">Esta cookie es instalada por Google Analytics. La cookie se utiliza para almacenar información sobre cómo los visitantes usan un sitio web y ayuda a crear un informe analítico de cómo está funcionando el sitio web. Los datos recopilados, incluido el número de visitantes, la fuente de donde provienen y las páginas, se muestran de forma anónima.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">gadsTest</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">Esta cookie es instalada por Google y sirve para optimizar las campañas publicitarias, mediante diferentes tests y campañas de prueba implementadas por el propio Google. Estas campañas, son de período temporal.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">SM</td><td class="cookielawinfo-column-3">session</td><td class="cookielawinfo-column-4">Esta cookie es usa por Clarity para recoger datos del comportamiento de los visitantes, para ofrecerme información sobre las visitas con el objetivo de ofrecer una mayor funcionalidad a los usuarios. En un futuro.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">SRM_B</td><td class="cookielawinfo-column-3">1 año 24 días</td><td class="cookielawinfo-column-4">Esta cookie es la encargada de aportar los datos necesarios a Bing para poder transmitir posteriormente, el tráfico que se ha generado especificamente desde ese buscador.</td></tr></tbody></table> </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="funcional" data-toggle="cli-toggle-tab"> Funcional </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-funcional" class="cli-user-preference-checkbox" data-id="checkbox-funcional" /> <label for="wt-cli-checkbox-funcional" class="cli-slider" data-cli-enable="Activado" data-cli-disable="Desactivado"><span class="wt-cli-sr-only">Funcional</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="funcional"> <div class="wt-cli-cookie-description"> Las cookies funcionales ayudan a realizar ciertas funcionalidades, como compartir el contenido del sitio web en plataformas de redes sociales, recopilar comentarios y otras características de terceros. <table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duración</th><th class="cookielawinfo-column-4">Descripción</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">na_id</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">Addthis.com establece esta cookie para permitir el intercambio de enlaces en plataformas de redes sociales como Facebook y Twitter.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">na_tc</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">Esta cookie la establece el proveedor Addthis. Esta cookie se utiliza para el servicio de seguimiento de uso compartido de redes sociales.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">ouid</td><td class="cookielawinfo-column-3">1 year 1 month</td><td class="cookielawinfo-column-4">Addthis establece la cookie, que permite que el contenido del sitio web se comparta a través de diferentes sitios web de redes sociales y para compartir.</td></tr></tbody></table> </div> </div> </div> </div> </div> </div> </div> </div> <div class="cli-modal-footer"> <div class="wt-cli-element cli-container-fluid cli-tab-container"> <div class="cli-row"> <div class="cli-col-12 cli-align-items-stretch cli-px-0"> <div class="cli-tab-footer wt-cli-privacy-overview-actions"> <a id="wt-cli-privacy-save-btn" role="button" tabindex="0" data-cli-action="accept" class="wt-cli-privacy-btn cli_setting_save_button wt-cli-privacy-accept-btn cli-btn">GUARDAR Y ACEPTAR</a> </div> <div class="wt-cli-ckyes-footer-section"> <div class="wt-cli-ckyes-brand-logo">Funciona con <a href="https://www.cookieyes.com/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img src="https://ciberninjas.com/wp-content/plugins/cookie-law-info/public/images/logo-cookieyes.svg" alt="CookieYes Logo"></a></div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div> <div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div> <!--googleon: all--><div id="mv-grow-data" data-settings='{"general":{"contentSelector":false},"shareCounts":[],"shouldRun":true,"buttonSVG":{"twitter":{"height":32,"width":30,"paths":["M28.928 7.296q-1.184 1.728-2.88 2.976 0 0.256 0 0.736 0 2.336-0.672 4.64t-2.048 4.448-3.296 3.744-4.608 2.624-5.792 0.96q-4.832 0-8.832-2.592 0.608 0.064 1.376 0.064 4.032 0 7.168-2.464-1.888-0.032-3.36-1.152t-2.048-2.848q0.608 0.096 1.088 0.096 0.768 0 1.536-0.192-2.016-0.416-3.328-1.984t-1.312-3.68v-0.064q1.216 0.672 2.624 0.736-1.184-0.8-1.888-2.048t-0.704-2.752q0-1.568 0.8-2.912 2.176 2.656 5.248 4.256t6.656 1.76q-0.16-0.672-0.16-1.312 0-2.4 1.696-4.064t4.064-1.696q2.528 0 4.224 1.824 1.952-0.384 3.68-1.408-0.672 2.048-2.56 3.2 1.664-0.192 3.328-0.896z"]},"facebook":{"height":32,"width":18,"paths":["M17.12 0.224v4.704h-2.784q-1.536 0-2.080 0.64t-0.544 1.92v3.392h5.248l-0.704 5.28h-4.544v13.568h-5.472v-13.568h-4.544v-5.28h4.544v-3.904q0-3.328 1.856-5.152t4.96-1.824q2.624 0 4.064 0.224z"]},"linkedin":{"height":32,"width":27,"paths":["M6.24 11.168v17.696h-5.888v-17.696h5.888zM6.624 5.696q0 1.312-0.928 2.176t-2.4 0.864h-0.032q-1.472 0-2.368-0.864t-0.896-2.176 0.928-2.176 2.4-0.864 2.368 0.864 0.928 2.176zM27.424 18.72v10.144h-5.856v-9.472q0-1.888-0.736-2.944t-2.272-1.056q-1.12 0-1.856 0.608t-1.152 1.536q-0.192 0.544-0.192 1.44v9.888h-5.888q0.032-7.136 0.032-11.552t0-5.28l-0.032-0.864h5.888v2.56h-0.032q0.352-0.576 0.736-0.992t0.992-0.928 1.568-0.768 2.048-0.288q3.040 0 4.896 2.016t1.856 5.952z"]}},"inlineContentHook":["loop_start"]}'></div><link rel='stylesheet' id='monsterinsights-popular-posts-style-css' href='https://ciberninjas.com/wp-content/plugins/google-analytics-for-wordpress/assets/css/frontend.min.css?ver=8.0.0' media='all' /> <link rel='stylesheet' id='cookie-law-info-table-css' href='https://ciberninjas.com/wp-content/plugins/cookie-law-info/public/css/cookie-law-info-table.css?ver=2.0.5' media='all' /> <script async data-noptimize src='https://ciberninjas.com/wp-content/plugins/social-pug/assets/dist/front-end-free.1.19.1.js?ver=1.19.1' id='dpsp-frontend-js-pro-js'></script> <script src='https://ciberninjas.com/wp-includes/js/imagesloaded.min.js?ver=4.1.4' id='imagesloaded-js'></script> <script src='https://ciberninjas.com/wp-content/themes/oceanwp/assets/js/vendors/isotope.pkgd.min.js?ver=3.0.6' id='ow-isotop-js'></script> <script src='https://ciberninjas.com/wp-content/themes/oceanwp/assets/js/vendors/flickity.pkgd.min.js?ver=1.0' id='ow-flickity-js'></script> <script src='https://ciberninjas.com/wp-content/themes/oceanwp/assets/js/vendors/sidr.js?ver=1.0' id='ow-sidr-js'></script> <script src='https://ciberninjas.com/wp-content/themes/oceanwp/assets/js/vendors/magnific-popup.min.js?ver=1.0' id='ow-magnific-popup-js'></script> <script id='oceanwp-main-js-extra'> var oceanwpLocalize = {"nonce":"2c495580e7","isRTL":"","menuSearchStyle":"header_replace","mobileMenuSearchStyle":"disabled","sidrSource":null,"sidrDisplace":"1","sidrSide":"left","sidrDropdownTarget":"link","verticalHeaderTarget":"link","customSelects":".woocommerce-ordering .orderby, #dropdown_product_cat, .widget_categories select, .widget_archive select, .single-product .variations_form .variations select","ajax_url":"https:\/\/ciberninjas.com\/wp-admin\/admin-ajax.php"}; </script> <script src='https://ciberninjas.com/wp-content/themes/oceanwp/assets/js/theme.vanilla.min.js?ver=1.0' id='oceanwp-main-js'></script> <script src='https://ciberninjas.com/wp-includes/js/wp-embed.min.js?ver=5.8.1' id='wp-embed-js'></script> <!--[if lt IE 9]> <script src='https://ciberninjas.com/wp-content/themes/oceanwp/assets/js/third/html5.min.js?ver=1.0' id='html5shiv-js'></script> <![endif]--> <script src='https://cdn.onesignal.com/sdks/OneSignalSDK.js?ver=5.8.1' async='async' id='remote_sdk-js'></script> <script src='https://ciberninjas.com/wp-content/plugins/easy-table-of-contents/vendor/smooth-scroll/jquery.smooth-scroll.min.js?ver=2.2.0' id='jquery-smooth-scroll-js'></script> <script src='https://ciberninjas.com/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1' id='js-cookie-js'></script> <script src='https://ciberninjas.com/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2' id='jquery-sticky-kit-js'></script> <script id='ez-toc-js-js-extra'> var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"1","width":"auto","scroll_offset":"30"}; </script> <script src='https://ciberninjas.com/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.17-1617278445' id='ez-toc-js-js'></script> <script src='https://stats.wp.com/e-202137.js' defer></script> <script> _stq = window._stq || []; _stq.push([ 'view', {v:'ext',j:'1:10.1',blog:'190207384',post:'6291',tz:'2',srv:'ciberninjas.com'} ]); _stq.push([ 'clickTrackerInit', '190207384', '6291' ]); </script> </body> </html>