Blockly

Blockly
Información general
Tipo de programa lenguaje de programación visual
Autor Neil Fraser, Quynh Neutron, Ellen Spertus, Mark Friedman
Desarrollador Google, MIT
Lanzamiento inicial 2012
Licencia Apache 2.0
Información técnica
Programado en JavaScript
Plataformas admitidas Web browser
Versiones
Última versión estable 1.20190215.0 ( 2019 de abril del 19)
Enlaces

Blockly es un cliente de librerías para el lenguaje de programación Javascript, para crear lenguajes de programación visuales y editores basados en bloques (VPLs). Es un proyecto de Google y es software libre y de código abierto liberado bajo la Licencia de Apache 2.0.[1]​ Normalmente se ejecuta en un navegador de web, y visualmente se parece al lenguaje de Scratch. Blockly también está siendo implementado para los Sistemas Operativos de móviles, Androide e iOS, ya que no todas las características de los navegadores de web están disponibles para estos.

Blockly utiliza bloques visuales que enlazan entre ellos para que escribir el código sea más fácil , puede generar código en Javascript, Lua, Dart, Python, o PHP. También puede ser personalizado para generar código en cualquier lenguaje de programación de texto.[2]

Historia

[editar]

El desarrollo de Blockly empezó en verano de 2011. La primera versión pública fue en mayo de 2012 en Maker Faire. Blockly fue originalmente diseñado como sustitución para OpenBlocks en App Inventor.[3]​ Neil Fraser empezó el proyecto con Quynh Neutron, Ellen Spertus, y Mark Friedman, siendo estos sus colaboradores.

Interfaz de usuario

[editar]

La interfaz gráfica de usuario (GUI) por defecto del editor de Blockly consta de una barra de herramientas, la cual tiene los bloques disponibles, y donde un usuario puede seleccionar los bloques; y un Workspace, donde un usuario puede arrastrar y soltar y reorganizar los bloques. El Workspace también incluye, por defecto, iconos de zoom, y una papelera de reciclaje para eliminar bloques. El editor se puede modificar fácilmente para personalizar y limitar las características editables y los bloques.[4]

Personalización

[editar]

Blockly Incluye un conjunto de bloques visuales para poder llevar a cabo operaciones comunes, y puede ser personalizado para añadir más bloques nuevos. Los bloques nuevos requieren una definición de bloque y un generador:

  • La definición describe el aspecto del bloque (interfaz de usuario).
  • El generador describe la traducción del bloque a código ejecutable.

Las definiciones y los generadores pueden escribirse en Javascript o utilizando un conjunto visual de bloques, el Block Factory, el cual deja bloques nuevos para ser descritos utilizando bloques visuales existentes; utilizando intent se pueden crear bloques nuevos de manera más fácil.

Aplicaciones

[editar]

Blockly se utiliza en varios proyectos notables, la mayoría con un objetivo académico, incluyendo:

  • El App Inventor de MIT, para crear aplicaciones para Android.[5]
  • Juegos de Blockly, un conjunto de juegos educativos que enseña a programar conceptos básicos como bucles y condiciones.[6]
  • Code.org, para introducir a millones de estudiantes a la programación en su "Hora de Programar Código".[7]
  • RoboBlockly, un entorno robótico simulado basado en un buscador web para aprender a programar y mejorar en las matemáticas.[8]
  • Wonder Workshop, para controlar a sus robots educativos.[9]
  • KodeKLIX, para controlar ensamblar sus componentes electrónicos.[10]
  • PICAXE, para controlar sus microchips educativos.[11]
  • SAM Labs, en STEAM para desarrollo de soluciones educacionales al aprender código.[12]

Características

[editar]
  • Basado en web utilizando Gráficos Vectoriales Escalables (SVG), no Flash.
  • Completamente creado el cliente con Javascript.
  • Soporte de los mayores navegadores web, incluyendo: Chrome, Firefox, Safari, Opera, Internet Explorer (IE).
  • Soporte móvil sobre Android e iOS.
  • Soporte para muchos constructores de programación incluyendo variables, funciones y arrays.
  • Fácil de extender con bloques personalizados. Uso de Block Factory para hacer bloques nuevos.
  • Generación de código limpio.[13]
  • Ejecución del código paso a paso para poder limpiar y corregir el código más fácilmente, hacer debug.[14]
  • Traducido a más de 50 idiomas distintos[15]
  • Soporta tanto código que se lee de izquierda a derecha como el que se lee de derecha a izquierda.[16]

Referencias

[editar]
  1. «Google Blockly Lets You Hack With No Keyboard». Wired. 
  2. «Google Blockly: Lenguaje de Programación Visual por bloques». www.jc-mouse.net. Consultado el 27 de diciembre de 2020. 
  3. «Google Groups». Groups.google.com. Consultado el 16 de enero de 2018. 
  4. «Blockly Demo:». blockly-demo.appspot.com. Consultado el 27 de diciembre de 2020. 
  5. Novoa, Jaime (12 de julio de 2010). «Google lanza App Inventor for Android, una forma sencilla para crear aplicaciones». Genbeta. Consultado el 27 de diciembre de 2020. 
  6. «Blockly, el nuevo lenguaje de programación para niños». PabloYglesias | seguridad + privacidad + tecnología. 5 de junio de 2012. Consultado el 27 de diciembre de 2020. 
  7. Rodríguez, Txema (24 de junio de 2012). «Google Blockly, un lenguaje visual para aprender a programar». Genbeta. Consultado el 27 de diciembre de 2020. 
  8. «RoboBlockly». www.roboblockly.org. Consultado el 1 de diciembre de 2020. 
  9. «Wonder Workshop Blockly». Wonder Workshop. Consultado el 3 de julio de 2019. 
  10. «KodeKLIX STEM Kit Coding Interface». KodeKLIX. Consultado el 5 de julio de 2020. 
  11. «PICAXE Blockly». PICAXE. Consultado el 5 de julio de 2020. 
  12. «SAM Labs Blocks: Getting started on Workbench». edu.workbencheducation.com (en inglés). Consultado el 10 de octubre de 2020. 
  13. «Blockly Demo». Blockly-demo.appspot.com. Consultado el 16 de enero de 2018. 
  14. «Blockly Demo: JS Interpreter». Blockly-demo.appspot.com. Consultado el 16 de enero de 2018. 
  15. «Localisation statistics for the Blockly core module». Translatewiki.net. Consultado el 16 de enero de 2018. 
  16. «Blockly Demo: RTL». Blockly-demo.appspot.com. Consultado el 16 de enero de 2018. 

Enlaces externos

[editar]