11 nov 2022

Bootstrap

 Que es Bootstrap

Bootstrap es una biblioteca multiplataforma o conjunto de herramientas de código abierto para diseño de sitios y aplicaciones web. Contiene plantillas de diseño con tipografía, formularios, botones, cuadros, menús de navegación y otros elementos de diseño basado en HTML y CSS.


Así como extensiones de JavaScript adicionales. A diferencia de muchos frameworks web, solo se ocupa del desarrollo front-end. Bootstrap es el segundo proyecto más destacado en GitHub​ y es usado por la NASA y la MSNBC, entre otras organizaciones.


Esta es una herramienta que proporciona interactividad en la página, por lo que ofrece una serie de componentes que facilitan la comunicación con el usuario, como menús de navegación, controles de página, barras de progreso y más.  Además de todas las características que ofrece el framework, su principal objetivo es permitir la construcción de sitios web responsive para dispositivos móviles.


Origen


Bootstrap, originalmente llamado Blueprint de Twitter, fue desarrollado por Mark Otto y Jacob Thornton de Twitter, como un marco de trabajo (framework) para fomentar la consistencia entre las herramientas internas. Antes de Bootstrap, se usaron varias bibliotecas para el desarrollo de interfaces de usuario, lo que generó inconsistencias y una gran carga de trabajo en su mantenimiento. Según el desarrollador de Twitter, Mark Otto, frente a esos desafíos:

"...un grupo súper pequeño de desarrolladores y yo nos reunimos para diseñar y construir una nueva herramienta interna y vimos la oportunidad de hacer algo más. A través de ese proceso, nos vimos construyendo algo mucho más sustancial que otra herramienta interna. Meses después terminamos con una primera versión de Bootstrap como una manera de documentar y compartir activos y patrones de diseño comunes dentro de la compañía."

El primer desarrollo en condiciones reales ocurrió durante la primera «Semana de Hackeo (Hackweek) de Twitter».​ Mark Otto mostró a algunos colegas cómo acelerar el desarrollo de sus proyectos con la ayuda de la herramienta de trabajo. Como resultado, decenas de temas se han introducido en el marco de trabajo. En agosto del 2011, Twitter liberó Bootstrap como código abierto. En febrero del 2012, se convirtió en el proyecto de desarrollo más popular de GitHub.



Caracteristicas


Bootstrap tiene un soporte relativamente incompleto para HTML5 y CSS3, pero es compatible con la mayoría de los navegadores web. La información básica de compatibilidad de sitios web o aplicaciones está disponible para todos los dispositivos y navegadores. Existe un concepto de compatibilidad parcial que hace disponible la información básica de un sitio web para todos los dispositivos y navegadores. 


Por ejemplo, las propiedades introducidas en CSS3 para las esquinas redondeadas, gradientes y sombras son usadas por Bootstrap a pesar de la falta de soporte de navegadores antiguos. Esto extiende la funcionalidad de la herramienta, pero no es requerida para su uso. Desde la versión 2.0 también soporta diseños web adaptables. Esto significa que el diseño gráfico de la página se ajusta dinámicamente, tomando en cuenta las características del dispositivo usado (computadoras, tabletas o teléfonos móviles).


El framework Bootstrap combina los lenguajes de programación CSS y JavaScript para estilizar los elementos de una página HTML. Por eso, ofrece muchas más funcionalidades que, simplemente, cambiar la forma y el color de botones y enlaces.Bootstrap cuenta con múltiples recursos para configurar los distintos elementos de cada página de una manera simple y eficiente. Además, facilita la construcción de aplicaciones para todo tipo de soportes, ya que sus páginas están adaptadas tanto para la web como para dispositivos móviles. 


Funcion y estructura


Bootstrap es modular y consiste esencialmente en una serie de hojas de estilo LESS que implementan la variedad de componentes de la herramienta. Una hoja de estilo llamada bootstrap.less incluye los componentes de las hojas de estilo. Los desarrolladores pueden adaptar el mismo archivo de Bootstrap, seleccionando los componentes que deseen usar en su proyecto. Los ajustes son posibles en una medida limitada a través de una hoja de estilo de configuración central. 


Los cambios más profundos son posibles mediante las declaraciones LESS. El uso del lenguaje de hojas de estilo LESS permite el uso de variables, funciones y operadores, selectores anidados, así como clases mixin. esde la versión 2.0, la configuración de Bootstrap también tiene una opción especial de «Personalizar» en la documentación. Por otra parte, los desarrolladores eligen en un formulario los componentes y ajustes deseados, y de ser necesario, los valores de varias opciones a sus necesidades. 


El paquete consecuentemente generado ya incluye la hoja de estilo CSS compilada previamente. Bootstrap es un framework CSS y Javascript diseñado para la creación de interfaces limpias y con un diseño responsive. Además, ofrece un amplio abanico de herramientas y funciones, de manera que los usuarios pueden crear prácticamente cualquier tipo de sitio web haciendo uso de los mismos.


Uso

Para usar Bootstrap en una página HTML, el desarrollador solo debe descargar la hoja de estilo Bootstrap CSS y enlazarla en el archivo HTML. Otra opción sería compilar el archivo CSS desde la hoja de estilo LESS o SASS descargada. Esto puede realizarse con un compilador especial. Si el desarrollador también quiere usar los componentes de JavaScript, éstos deben estar referenciados junto con la librería jQuery en el documento HTML.


El siguiente ejemplo ilustra como funciona. El código HTML define un simple formulario de búsqueda y una lista de resultados en un formulario tabular. La página consiste en elementos regulares y semánticos de HTML 5, y alguna información adicional de la clase de CSS de acuerdo con la documentación de Bootstrap. La figura muestra la representación del documento en Mozilla Firefox 10.


Bootstrap está constituido por una serie de archivos CSS y JavaScript responsables de asignar características específicas a los elementos de la página. Hay un archivo principal llamado bootstrap.css, que contiene una definición para todos los estilos utilizados.Bootstrap ofrece una serie de características que se pueden implementar en un sitio web. A continuación hablaremos de las posibilidades de esta herramienta.


Diseños y estilos

Bootstrap viene con una disposición de cuadrilla estándar de 940 píxeles de ancho. Alternativamente, el desarrollador puede usar un diseño de ancho-variable. Para ambos casos, la herramienta tiene cuatro variaciones para hacer uso de distintas resoluciones y tipos de dispositivos: teléfonos móviles, formato vertical y horizontal, tabletas y computadoras con baja y alta resolución (pantalla ancha). Esto ajusta el ancho de las columnas automáticamente.


Bootstrap proporciona un conjunto de hojas de estilo que proveen definiciones básicas de estilo para todos los elementos de HTML. Esto otorga una uniformidad al navegador y al sistema de anchura, da una apariencia moderna para el formateo de los elementos de texto, tablas y formularios. Además de los elementos regulares de HTML.


Bootstrap contiene otra interfaz de elementos comúnmente usados. Esta incluye botones con características avanzadas (p.ej. grupo de botones o botones con opción de menú desplegable, listas de navegación, etiquetas horizontales y verticales, ruta de navegación, paginación, etc.), etiquetas, capacidades avanzadas de miniaturas tipográficas, formatos para mensajes de alerta y barras de progreso.


Historia



Después de unos meses de desarrollo por parte de un pequeño grupo, muchos desarrolladores de Twitter comenzaron a contribuir al proyecto como parte de una haackweek, una semana estilo hackatón para el equipo de desarrollo de Twitter. Se renombró de Twitter Blueprint a Bootstrap y se lanzó como proyecto de código abierto el 19 de agosto de 2011.  Mark Otto, Jacob Thornton y un pequeño grupo de desarrolladores principales, así como una gran comunidad de contribuyentes.


El 31 de enero de 2012, se lanzó Bootstrap 2, que agregó soporte integrado para glyphicons, varios componentes nuevos, así como cambios en muchos de los componentes existentes. Esta versión admite el diseño web receptivo, lo que significa que el diseño de las páginas web se ajusta dinámicamente, teniendo en cuenta las características del dispositivo utilizado (ya sea de escritorio, tableta o teléfono móvil).​ La siguiente versión principal, Bootstrap 3, fue lanzada el 19 de agosto de 2013. Rediseñó los componentes para usar un diseño plano y un primer enfoque móvil.

Los componentes de JavaScript para Bootstrap están basados en la librería jQuery de JavaScript. Los plug-ins se encuentran en la herramienta de plug-in de jQuery. Proveen elementos adicionales de interfaz de usuario como diálogos, tooltips y carruseles. También extienden la funcionalidad de algunos elementos de interfaz existentes, incluyendo por ejemplo una función de auto-completar para campos de entrada (input). La versión 2.0 soporta los siguientes plug-ins de JavaScript: Modal, Dropdown, Scrollspy, Tab, Tooltip, Popover, Alert, Button, Collapse, Carousel y Typeahead.



Ventajas y desventajas

VENTAJAS

  • puedes diseñar una web jugando con sus elementos compuestos por diferentes combinaciones de HTML, CSS y Javascript.
  • Utiliza HTML5, CSS3, jQuery o GitHub, entre otros.
  • Incluye Grid system: muy útil para maquetar por columnas.
  • Sus plantillas son de sencilla adaptación responsive.
  • Se integra con librerías JavaScript.
  • Usa Less: un lenguaje de las hojas de estilo CSS preparado para enriquecer los estilos de la web.
  • Cuenta con una documentación completa que te puede sacar de apuros rápidamente.
  • Facilita enormemente el diseño de interfaces y además incluye por defecto una plantilla bastante optimizada.

DESVENTAJAS

  • Se recomienda trabajar con Bootstrap desde el inicio de un proyecto, ya que si quieres incluir el framework en un trabajo ya iniciado algunos estilos podrían «romperse» y se tendría que ajustar a como se tenia en un principio, y eso puede ser un poco tedioso y molesto.
  • Es complicado, cambiar de versión si has realizado modificaciones profundas.
  • No es ligero, y además, para algunas funcionalidades, será necesario tener que usar Javascript y jQuery.
  • Debes adaptar tu diseño a un grid de 12 columnas, que se modifican según el dispositivo. Aquí empiezan los problemas, Bootstrap por defecto te trae anchos, márgenes y altos de línea, y realizar cambios específicos.


Bootstrap 4


Mark Otto anunció Bootstrap 4 el 29 de octubre de 2014.​ La primera versión alfa de Bootstrap 4 se lanzó el 19 de agosto de 2015.​ La primera versión beta se lanzó el 10 de agosto de 2017. Mark suspendió el trabajo en Bootstrap 3 el 6 de septiembre de 2016 para liberar tiempo para trabajar en Bootstrap 4. Bootstrap 4 se finalizó el 18 de enero de 2018.

Los cambios importantes incluyen:

  • Reescritura importante del código
  • Reemplazo de Less con Sass
  • Adición de Reboot, una colección de cambios CSS específicos del elemento en un solo archivo, basado en Normalize
  • Dejar de admitir IE8, IE9 e iOS 6
  • Compatibilidad con CSS Flexible Box
  • Agregar opciones de personalización de navegación
  • Adición de utilidades de tamaño y espaciado sensibles
  • Cambiar de la unidad de píxeles en CSS a root ems
  • Aumento del tamaño de fuente global de 14px a 16px para mejorar la legibilidad
  • Soltar los componentes del panel, la miniatura, el localizador y el pozo
  • Soltar la fuente del icono Glyphicons
  • Gran número [cuantificar] de clases de servicios públicos
  • Estilo de formulario, botones, menús desplegables, objetos multimedia y clases de imágenes mejorados

Bootstrap 4 es compatible con las últimas versiones de Google Chrome, Firefox, Internet Explorer, Opera, y Safari (excepto en Windows). Además, es compatible con IE10 y la última versión de soporte extendido (ESR) de Firefox.


Bootstrap 5

La versión 5 de Bootstrap fue anunciada por Mark Otto el 21 de diciembre de 2018​ y, luego de 3 versiones alfas y 3 betas, fue lanzada oficialmente el 5 de mayo de 2021.​ Días después, el 13 de mayo, se lanzó el primer parche, la v5.0.1,​ la cual conformaría la última versión estable.

Los nuevos cambios y agregados fueron los siguientes:

  • Nuevo menú de componentes "offcanvas".
  • Se pasa de jQuery a Vanilla JavaScript.
  • Migración de la documentación de Jekyll a Hugo.
  • Se retira el soporte para Internet Explorer 10 y 11, Microsoft Edge Legacy, y versiones inferiores a: Firefox 60, Safari 10 y Chrome 60.
  • El testing de infraestructura pasa de QUnit a Jasmine.
  • Inclusión de un nuevo set de iconos SVG y nuevas propiedades de CSS.
  • API mejorada.
  • Mejora del sistema de cuadrícula.
  • Creación de la sección de formularios, con nuevos formularios incluidos.
  • Soporte RTL (right-to-left) para sistemas de escritura de derecha a izquierda.
  • Implementación de Dart Sass.






JavaScript

 Que es JavaScript?

JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos,​ basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente del lado del cliente, implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas​ y JavaScript del lado del servidor (Server-side JavaScript o SSJS).


Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo. Desde 2012, todos los navegadores modernos soportan completamente ECMAScript 5.1, una versión de JavaScript. Los navegadores más antiguos soportan por lo menos ECMAScript 3. La sexta edición se liberó en julio de 2015.


JavaScript se diseñó con una sintaxis similar a C++ y Java,​ aunque adopta nombres y convenciones del lenguaje de programación Java. Sin embargo, Java y JavaScript tienen semánticas y propósitos diferentes. Su relación es puramente comercial, tras la compra del creador de Java (Sun Microsystems) de Nestcape Navigator (creador de LiveScript) y el cambio de nombre del lenguaje de programación.


Historia de JavaScript


JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cual fue renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript. El cambio de nombre coincidió aproximadamente con el momento en que Netscape agregó compatibilidad con la tecnología Java en su navegador web Netscape Navigator en la versión 2002 en diciembre de 1995. La denominación produjo confusión, dando la impresión de que el lenguaje es una prolongación de Java.

 

Y fue considerada por muchos como una estrategia de mercadotecnia de Netscape para obtener prestigio e innovar en el ámbito de los nuevos lenguajes de programación web. «JAVASCRIPT» es una marca registrada de Oracle Corporation.​ Es usada con licencia por los productos creados por Netscape Communications y entidades actuales como la Fundación Mozilla.​ Microsoft dio como nombre a su dialecto de JavaScript «JScript».


Para evitar problemas relacionadas con la marca. JScript fue adoptado en la versión 3.0 de Internet Explorer, liberado en agosto de 1996, e incluyó compatibilidad con el Efecto 2000 con las funciones de fecha.  Una diferencia de los que se basaban en ese momento. Los dialectos pueden parecer tan similares que los términos «JavaScript» y «JScript» a menudo se utilizan indistintamente, pero la especificación de JScript es incompatible con la de ECMA en muchos aspectos.

JavaScript en paginas web

El uso más común de JavaScript es escribir funciones embebidas o incluidas en páginas HTML y que interactúan con el Document Object Model (DOM o Modelo de Objetos del Documento) de la página. Algunos ejemplos sencillos de este uso son:

  • Cargar nuevo contenido para la página o enviar datos al servidor a través de AJAX sin necesidad de recargar la página (por ejemplo, una red social puede permitir al usuario enviar actualizaciones de estado sin salir de la página).
  • Animación de los elementos de página, hacerlos desaparecer, cambiar su tamaño, moverlos, etc.
  • Contenido interactivo, por ejemplo, juegos y reproducción de audio y vídeo.
  • Validación de los valores de entrada de un formulario web para asegurarse de que son aceptables antes de ser enviado al servidor.
  • Transmisión de información sobre los hábitos de lectura de los usuarios y las actividades de navegación a varios sitios web. Las páginas Web con frecuencia lo hacen para hacer análisis web, seguimiento de anuncios, la personalización o para otros fines.

Desarrollos posteriores



JavaScript se ha convertido en uno de los lenguajes de programación más populares en internet y más usados. Al principio, sin embargo, muchos desarrolladores renegaban del lenguaje porque el público al que va dirigido lo formaban publicadores de artículos y demás aficionados, entre otras razones.​ La llegada de Ajax devolvió JavaScript a la fama y atrajo la atención de muchos otros programadores. Como resultado de esto hubo una proliferación de un conjunto de frameworks y bibliotecas de ámbito general.

Mejorando las prácticas de programación con JavaScript, y aumentado el uso de JavaScript fuera de los navegadores web, como se ha visto con la proliferación de entornos JavaScript del lado del servidor.En enero de 2009, el proyecto CommonJS fue inaugurado con el objetivo de especificar una biblioteca para uso de tareas comunes principalmente para el desarrollo fuera del navegador web.

En junio de 2015 se cerró y publicó el estándar ECMAScript 6​ con un soporte irregular entre navegadores​ y que dota a JavaScript de características avanzadas que se echaban de menos y que son de uso habitual en otros lenguajes como, por ejemplo, módulos para organización del código, verdaderas clases para programación orientada a objetos, expresiones de flecha, iteradores, generadores o promesas para programación asíncrona.​ 


JavaScript en el lado servidor  



Netscape introdujo una implementación de script del lado del servidor con Netscape Enterprise Server, lanzada en diciembre de 1994 (poco después del lanzamiento de JavaScript para navegadores web). ​A partir de mediados de la década de los 2000, ha habido una proliferación de implementaciones de JavaScript para el lado servidor. Node.js es uno de los notables ejemplos de JavaScript en el lado del servidor, siendo usado en proyectos importantes.

Node.js es un entorno en tiempo de ejecución multiplataforma, de código abierto, para la capa del servidor (pero no limitándose a ello) basado en el lenguaje de programación JavaScript, asíncrono, con E/S de datos en una arquitectura orientada a eventos y basado en el motor V8 de Google. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web.Fue creado por Ryan Dahl en 2009 y su evolución está apadrinada por la empresa Joyent.

Node.js es similar en su propósito a Twisted o Tornado de PythonPerl Object Environment de Perllibevent o libev de CEventMachine de Rubyvibe.d de D y Java EE de Java existe Apache MINANettyAkkaVert.xGrizzly o Xsocket. Al contrario que la mayoría del código JavaScript, no se ejecuta en un navegador, sino en el servidor. Node.js implementa algunas especificaciones de CommonJS.​ Node.js incluye un entorno REPL para depuración interactiva.

Seguridad


JavaScript y el DOM permite que existan programadores que hagan un uso inapropiado para introducir scripts que ejecuten código con contenido malicioso sin el consentimiento del usuario y que pueda así comprometer su seguridad. Los desarrolladores de los navegadores tienen en cuenta este riesgo utilizando dos restricciones. En primer lugar, los scripts se ejecutan en un sandbox en el que sólo se pueden llevar a cabo acciones relacionadas con la web, no con tareas de programación de propósito general


 Como la creación de archivos, En segundo lugar, está limitada por la política del mismo origen: los scripts de un sitio web no tienen acceso a la información enviada a otro sitio web (de otro dominio) como pudiera ser nombres de usuario, contraseñas o cookies. La mayoría de los fallos de seguridad de JavaScript están relacionados con violaciones de cualquiera de estas dos restricciones.


Existen proyectos como AdSafe o Secure ECMA script (SES) que proporcionan mayores niveles de seguridad, en especial en el código creado por terceros (tales como los anuncios). La Política de Contenido Seguro (CSP) es el método principal previsto para garantizar que sólo código de confianza pueda ser ejecutado en una página web.


Herramientas de desarrollo


En JavaScript, disponer de un depurador se convierte en necesario cuando se desarrollan grandes aplicaciones, no triviales. Dado que puede haber diferencias de implementación entre los diferentes navegadores (especialmente en cuanto al DOM), es útil tener acceso a un depurador para cada uno de los navegadores a los cuales nuestra aplicación web irá dirigido. Los depuradores web están disponibles para Internet Explorer, Firefox, Safari, Google Chrome y Opera.


Existen tres depuradores disponibles para Internet Explorer: Microsoft Visual Studio es el más avanzado de los tres, seguido de cerca por Microsoft Script Editor (un componente de Microsoft Office)​ y, finalmente, Microsoft Script Debugger, que es mucho más básico que el otro dos, aunque es gratuito. El IDE gratuito Microsoft Visual Web Developer Express ofrece una versión limitada de la funcionalidad de depuración de JavaScript en el Microsoft Visual Studio.


Internet Explorer ha incluido herramientas de desarrollo desde la versión 8 (se muestra pulsando la tecla F12). Las aplicaciones web dentro de Firefox se pueden depurar usando el Firebug add-on o el antiguo depurador Venkman. Firefox también tiene integrada una consola de errores básica, que registra y evalúa JavaScript. También registra errores de CSS y advertencias. Opera incluye un conjunto de herramientas llamado Dragonfly.


Consideraciones acerca de compatibilidad


Debido a que JavaScript se ejecuta en entornos muy variados, una parte importante de las pruebas y la depuración es probar y verificar que el código JavaScript funciona correctamente en múltiples navegadores. La interfaz DOM para acceder y manipular páginas web no es parte del estándar ECMAScript, o de la propia JavaScript. El DOM es definido por los esfuerzos de estandarización del W3C, una organización independiente. En la práctica, las implementaciones que hacen de JavaScript los distintos navegadores difieren tanto entre ellos mismos como de las normas del estándar.

Para hacer frente a estas diferencias, los autores de JavaScript pudieron ser capaces de escribir código compatible con los estándares que también fuera capaz de ejecutarse correctamente en la mayoría de los navegadores, o en su defecto, que al menos se pudiera escribir código capaz de comprobar la presencia de ciertas funcionalidades del navegador y que se comportase de manera diferente si no se dispusiese de dicha funcionalidad.

Existen casos en los que dos navegadores pueden llegar a implementar la misma característica, pero con un comportamiento diferente, hecho que a los programadores les puede resultar de ayuda para detectar qué navegador se está ejecutando en ese instante y así cambiar el comportamiento de su escritura para que coincida.​ Los programadores también suelen utilizar bibliotecas o herramientas que tengan en cuenta las diferencias entre navegadores.

Accesibilidad



Suponiendo que el usuario no haya desactivado la ejecución de código JavaScript, en el lado del cliente JavaScript debe ser escrito tanto con el propósito de mejorar las experiencias de los visitantes con discapacidad visual o física, como el de evitar ocultar información a estos visitantes. Los lectores de pantalla, utilizados por los ciegos y deficientes visuales, pueden ser tenidos en cuenta por JavaScript y así poder acceder y leer los elementos DOM de la página. El código HTML escrito debe ser lo más conciso.


 Navegable y semánticamente rico posible, tanto si JavaScript se ejecuta como si no. JavaScript no debería de ser totalmente dependiente de los eventos de ratón del navegador y debería ser accesible para aquellos usuarios que no quieran hacer uso del ratón (informática) para navegar o que opten por utilizar solamente el teclado. Hay eventos independientes del dispositivo, tales como onfocus y onchange que son preferibles en la mayoría de los casos.


JavaScript no debe ser utilizado para crear confusión o desorientación al usuario web. Por ejemplo, modificar o desactivar la funcionalidad normal del navegador, como cambiar la forma en que el botón de navegar hacia atrás o el evento de actualización se comportan, son prácticas que generalmente son mejores evitar. Igualmente, desencadenar eventos que el usuario puede no tener en cuenta reduce la sensación de control del usuario y provoca cambios inesperados al contenido de la página.​


Caracteristicas


Las siguientes características son comunes a todas las implementaciones que se ajustan al estándar ECMAScript, a menos que especifique explícitamente en caso contrario. JavaScript es compatible con gran parte de la estructura de programación de C (por ejemplo, sentencias if, bucles for, sentencias switch, etc.). Con una salvedad, en parte: en C, el ámbito de las variables alcanza al bloque en el cual fueron definidas.

sin embargo JavaScript no es compatible con esto, puesto que el ámbito de las variables es el de la función en la cual fueron declaradas. Esto cambia con la versión de ECMAScript 2015, ya que añade compatibilidad con block scoping por medio de la palabra clave let. Como en C, JavaScript hace distinción entre expresiones y sentencias. Una diferencia sintáctica con respecto a C es la inserción automática de punto y coma, es decir, en JavaScript los puntos y coma que finalizan una sentencia pueden ser omitidos.

JavaScript está formado casi en su totalidad por objetos. Los objetos en JavaScript son arrays asociativos, mejorados con la inclusión de prototipos (ver más adelante). Los nombres de las propiedades de los objetos son claves de tipo cadena: obj.x = 10 y obj['x'] = 10 sonequivalentes, siendo azúcar sintáctico la notación con punto. Las propiedades y sus valores pueden ser creados, cambiados o eliminados en tiempo de ejecución. La mayoría de propiedades de un objeto (y aquellas que son incluidas por la cadena de la herencia prototípica) pueden ser enumeradas por medio de la instrucción de bucle for... in. JavaScript tiene un pequeño número de objetos predefinidos como son Function y Date.



2 nov 2022

Diferencia entre MySQL y SQL server

 Diferencia entre MySQL y SQL server


MySQL es muy utilizado para proyectos y aplicaciones PHP. SQL Server se usa principalmente para aplicaciones .NET o proyectos de Windows. En MySQL hay múltiples motores de almacenamiento, lo cual le da mayor flexibilidad a los desarrolladores en cuanto al uso de las tablas.

Hay varias diferencias entre MySQL y SQL, y la más importante para muchos es la sintaxis, aunque también hay diferencias en cuanto al entorno, pues SQL funciona mejor con .NET, el nivel de soporte, la forma de almacenamiento de datos y el costo de la licencia.

Ahora veamos cada una de las diferencias en más detalle:

  • Entorno
    Como se mencionó anteriormente, SQL Server funciona mejor con .NET, mientras que MySQL se puede emparejar con casi cualquier otro idioma, generalmente con PHP. También se debe mencionar que SQL Server solía ejecutarse exclusivamente en Windows, pero esto ha cambiado desde el año pasado cuando Microsoft anunció el soporte de Linux para SQL Server. Aún así, la versión de Linux no es lo suficientemente estable, lo que significa que nuestra recomendación sigue siendo que sigas trabajando en Windows si utilizas SQL Server, y cambia a Linux si vas con MySQL.
  • Sintaxis
    Para la mayoría de las personas, esta es la diferencia más importante entre los dos sistemas. Estar familiarizado con un conjunto de reglas de sintaxis sobre otro puede influir enormemente en su decisión en cuanto a qué sistema le conviene más. Si bien tanto MySQL como SQL Server se basan en SQL, las diferencias en la sintaxis siguen siendo importantes y vale la pena tenerlas en cuenta.
  • SQL Server es más que un RDBMS
    Una gran ventaja del software propietario frente al software de código abierto es el soporte exclusivo que recibe. En este caso particular, la ventaja se vuelve aún más profunda, ya que SQL Server está respaldado por una de las compañías tecnológicas más grandes del mundo. Microsoft ha creado herramientas adicionales para SQL Server, que vienen integradas con el RDBMS, incluidas las herramientas de análisis de datos. También presenta un servidor de informes: SQL Server Reporting Services, así como una herramienta ETL. Esto hace que SQL Server sea la navaja suiza de los RDBMS. También puedes obtener funciones similares en MySQL, pero tienes que azotar la web en busca de soluciones de terceros, lo que no es ideal para la mayoría de las personas.
  • Motores de almacenamiento
    Otra gran diferencia que a veces se pasa por alto entre MySQL y SQL Server es la forma en que almacenan los datos. SQL Server usa un único motor de almacenamiento desarrollado por Microsoft, en contraste con múltiples motores en oferta para MySQL. Esto le da a los desarrolladores de MySQL mucha más flexibilidad, ya que pueden usar diferentes motores para diferentes tablas, en función de la velocidad, la confiabilidad o alguna otra dimensión. Un popular motor de almacenamiento MySQL es InnoDB, que cae en el extremo más lento del espectro, pero mantiene la confiabilidad. Otro es MyISAM.
  • Cancelación de consultas
    No mucha gente sabe esto, pero una diferencia potencialmente importante entre MySQL y SQL Server es que MySQL no le permite cancelar una consulta a mitad de la ejecución. Esto significa que una vez que un comando comienza a ejecutarse, es mejor que espere que cualquier daño que pueda causar sea reversible. SQL Server, por otro lado, le permite cancelar la ejecución de consultas a mitad de camino en el proceso. Esta diferencia puede ser particularmente perjudicial para los administradores de bases de datos, a diferencia de los desarrolladores web, que ejecutan comandos con guiones que rara vez requieren la cancelación de consultas durante la ejecución.
  • Costo
    Aquí es donde SQL Server se vuelve mucho menos atractivo y MySQL gana puntos importantes. Microsoft requiere que compres licencias para ejecutar múltiples bases de datos en SQL Server; hay una versión gratuita, pero solo para familiarizarte con el RDBMS. Por el contrario, MySQL usa la Licencia Pública General de GNU, lo que hace que su uso sea totalmente gratuito. Ten en cuenta, sin embargo, que si necesitas soporte o asistencia para MySQL, deberás pagarlo.
  • Soporte comunitario
    Lo que nos lleva a nuestro próximo punto. Si bien puedes pagar por el soporte de MySQL, el escenario rara vez surge, debido a la contribución de la comunidad estelar y el apoyo para ello. Una ventaja de tener a la comunidad más amplia de su parte es que la mayoría de las personas no tienen que buscar ayuda oficial, pueden buscar en la web y encontrar un montón de soluciones.
  • IDEs
    Es importante tener en cuenta que ambas RDBMS admiten diferentes herramientas de entorno de desarrollo integrado (IDE). Estas herramientas ofrecen un entorno coherente para el desarrollo, y debes prestar mucha atención a cuál se adapta mejor a tus necesidades. MySQL cuenta con Enterprise Manager de Oracle, mientras que SQL Server usa Management Studio (SSMS). Ambos tienen sus pros y sus contras y pueden inclinar la balanza si no tiene nada más para basar su decisión.

Interfaces de programacion de aplicaciones

 Interfaces de programacion de aplicaciones


Muchos lenguajes de programación con APIs de lenguaje específico incluyen bibliotecas para acceder a bases de datos MySQL. Entre ellas se encuentran MySQL Connector/Net para la integración con Visual Studio de Microsoft (los lenguajes más utilizados son C# y VB) y el controlador JDBC para Java. Además, una interfaz ODBC llamada MySQL Connector/ODBC permite que los lenguajes de programación adicionales que soportan la interfaz ODBC se comuniquen con una base de datos MySQL, como ASP o ColdFusion. El método de consulta basado en HTSQL - URL también se envía con un adaptador MySQL, permitiendo la interacción directa entre una base de datos MySQL y cualquier cliente web a través de URLs estructuradas. Existen otros controladores para lenguajes como Python o Node.js.​

Forks

Existe una variedad de forks de MySQL, incluyendo las siguientes.

Actual

MariaDB

MariaDB es un fork desarrollado por la comunidad del sistema de gestión de bases de datos relacionales MySQL que pretende permanecer libre bajo la GPL de GNU. Al ser una bifurcación de un sistema líder de software de código abierto, es notable por estar liderado por los desarrolladores originales de MySQL, que lo bifurcaron debido a las preocupaciones sobre su adquisición por Oracle.​ Los colaboradores deben compartir sus derechos de autor con la Fundación MariaDB.​ MariaDB pretende mantener una alta compatibilidad con MySQL, asegurando una capacidad de sustitución "drop-in" con equivalencia binaria de la biblioteca y una coincidencia exacta con las API's y comandos de MySQL.​ Hay algunas diferencias e incompatibilidades documentadas entre las versiones de MySQL y MariaDB,​ sin embargo, y algunas herramientas para interactuar con MySQL, como el MySQL Workbench, no son totalmente compatibles con MariaDB.​ Incluye el motor de almacenamiento XtraDB para reemplazar a InnoDB,​ así como un nuevo motor de almacenamiento, Aria, que pretende ser tanto un motor transaccional como no transaccional, quizás incluso incluido en futuras versiones de MySQL.

Percona Server for MySQL

Percona Server for MySQL, fork por Percona, tiene como objetivo mantener una estrecha compatibilidad con las versiones oficiales de MySQL, mientras se centra en el rendimiento y el aumento de la visibilidad de las operaciones del servidor.​ También se incluye en Percona Server for MySQL XtraDB, la bifurcación de Percona del motor de almacenamiento InnoDB. Percona incluye libremente un número de características de escalabilidad, disponibilidad, seguridad y respaldo que solo están disponibles en la edición comercial Enterprise de MySQL.

Abandonado

Drizzle

Drizzle era un sistema de gestión de bases de datos relacionales (DBMS) de código abierto y software libre que se creó a partir de la ahora desaparecida rama de desarrollo 6.0 del DBMS de MySQL.​ Al igual que MySQL, Drizzle tenía una arquitectura cliente/servidor y utiliza SQL como su principal lenguaje de comandos. Drizzle fue distribuido bajo la versión 2 y 3 de la Licencia Pública General de GNU (GPL) con partes, incluyendo los controladores de protocolo y la replicación de mensajes bajo la licencia BSD.

WebScaleSQL

WebScaleSQL era una rama de software de MySQL 5.6, y fue anunciada el 27 de marzo de 2014 por Facebook, Google, LinkedIn y Twitter como un esfuerzo conjunto para proporcionar una estructura de desarrollo centralizada para ampliar MySQL con nuevas características específicas para sus despliegues a gran escala, como la construcción de grandes bases de datos replicadas que se ejecutan en granjas de servidores. Así, WebScaleSQL abrió un camino hacia la deduplicación de los esfuerzos que cada empresa había estado poniendo en el mantenimiento de su propia rama de MySQL, y hacia la unión de más desarrolladores. Al combinar los esfuerzos de estas empresas e incorporar varios cambios y nuevas características en MySQL, WebScaleSQL se dirigió a apoyar el despliegue de MySQL en entornos de gran escala.​ El código fuente del proyecto está licenciado bajo la versión 2 de la Licencia Pública General de GNU, y está alojado en GitHub.



Historia de My SQL

 Historia de MySQL


El SGBD MySQL fue desarrollado por la empresa sueca de Michael Widenius, MySQL AB, en 1995. Después, la empresa estadounidense Sun Microsystems adquirió MySQL AB en 2009 y siguió desarrollando el sistema de gestión de base de datos open source. Sin embargo, un año más tarde, Oracle compró la empresa Sun Microsystems y, junto con otros productos, Oracle se hizo con MySQL.


Michael Widenius decidió fundar Maria DB Foundation y crear el SGBD MariaDB cuando Oracle adquirió la empresa Sun Microsystems. El creador y fundador de MySQL quería asegurarse de que siguiera habiendo un sistema de gestión de base de datos open source, por lo que empezó MariaDB. MariaDB se hizo basándose en la estructura de MySQL lo que hace que haya una gran compatibilidad entre ambos sistemas de gestión de base de datos. Además, el término LAMP funciona cada vez más con el SGBD MariaDB en vez de MySQL.