Scratch (lenguaje de programación)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 31 de julio de 2019; las comprobaciones requieren 80 ediciones .
Rascar
Semántica evento conducido
clase de idioma gráfico , educativo
tipo de ejecución Interprete
Apareció en 2007
Autor Mitchell Resnick _ _  _
Desarrollador Laboratorio de medios del MIT
extensión de archivo .sb , .sb2 , .sb3
Liberar 3.29.1 (27 febrero 2022 ) ( 2022-02-27 )
sistema de tipos dinámica
Implementaciones principales Rascar
Dialectos ¡Siesta!
sido influenciado Logotipo , Smalltalk , HyperCard, StarLogo , AgentSheets, Etoys, Tweak
influenciado ¡Siesta! , AppInventor , Catrobat
Licencia licencia BSD modificada [d]
Sitio web scratch.mit.edu
sistema operativo Windows , mac OS , HTML
 Archivos multimedia en Wikimedia Commons

Scratch ( en inglés  Scratch , IPA [ s k r æ ʧ ]) es un entorno de programación basado en eventos de bloques visuales creado para niños y adolescentes. El nombre proviene de la palabra scratching  , una técnica utilizada por los DJ de hip-hop que hacen girar los discos de vinilo con las manos para mezclar temas musicales [1] .

Fue creado como una continuación de las ideas del lenguaje Logo y el constructor Lego . Scratch 1.4 fue escrito en el lenguaje Squeak , 2.0 y 3.0 están enfocados al trabajo en línea. Scratch 2.0 ha sido reescrito en Flash y ActionScript . Scratch 3.0 (versión actual) es una versión mejorada de Scratch 2.0 y está hecho en HTML5 utilizando el motor WebGL , lo que le permite ejecutarse en dispositivos móviles y tabletas . Scratch está siendo desarrollado por un pequeño equipo de programadores para niños [2] en el Instituto de Tecnología de Massachusetts . La versión actual es Scratch 3.0, lanzada en enero de 2019. En 2008, Scratch fue portado al módulo de microcontrolador Arduino . El proyecto se llama S4A [3] .

Los programas en Scratch consisten en bloques gráficos, cuyos títulos dependen del idioma elegido para la interfaz. Se puede seleccionar uno de los 50 idiomas de la interfaz, incluido el ruso . Para conectar la interfaz en un nuevo idioma, se utilizan archivos gettext estándar .

Programación

Los principales componentes de un programa scratch son los objetos sprite . Un sprite consta de una representación gráfica: un conjunto de marcos- disfraces ( eng.  costume ) y un guión- guión . Para editar los disfraces de los sprites, un editor de gráficos ( English  Paint Editor ) está integrado en cero . La acción del programa Scratch tiene lugar en un escenario ( escenario inglés  ) de 480 × 360 (condicional) píxeles de tamaño con el centro de coordenadas en el centro de la escena.

Para programar guiones en Scratch, se utiliza un enfoque de arrastrar y soltar : los bloques de la paleta de bloques se arrastran al área de guiones.

Por propósito funcional, los bloques se dividen en 10 grupos, la pertenencia del bloque a un grupo en particular se indica por su color.

Grupo titulo en ingles Color Nota
Tráfico Movimiento Azul controlar el movimiento del sprite (no se aplica en el fondo)
Apariencia aspecto Violeta controlar la apariencia del sprite
Sonido Sonidos rosado controlar el sonido del sprite
Desarrollos Eventos amarillo comprobando eventos, enviando señales a todos los sprites
Control control ámbar estructuras de control, encabezados de controladores de eventos
Sensores sintiendo azul dispositivos de entrada de sondeo, temporizador y nombre del participante
Operadores [4] Operadores verde claro operaciones aritmético-lógicas
Variables Variables rojo y naranja sección para manipular variables y listas
Otros bloques Mis bloques Rosa claro convertir una combinación de bloques en un bloque, lo que simplifica el código,

o simplifica la creación de su bloque personal

Agregar

Extensiones

Extensiones verde ampliar las posibilidades de Scratch. Hay diferentes tipos de extensiones, como música, lápiz, reconocimiento de video, texto a voz , traductor , Makey Makey , micro: bit , LEGO MINDSTORMS EV3 y LEGO Education WeDo 2.0.

Muchos bloques tienen un campo blanco editable para los parámetros ingresados ​​por el programador temporal.

Hay tres tipos de bloques: bloques de pila , bloques de encabezado y bloques de enlace .

Los bloques de pila (la mayoría de los bloques) ( ing.  Stack Blocks ) tienen una muesca en la parte superior y una repisa en la parte inferior, con su ayuda se combinan en un grupo de bloques llamado pila . Las pilas se pueden copiar y mover como un solo bloque. Un tipo especial de bloques de pila son las construcciones de control, como los bucles  : tienen forma de C y pueden abarcar una pila anidada de bloques de scratch.

Los bloques de encabezado ( también llamados sombreros) tienen un borde superior convexo y una repisa para unir en la parte inferior; forman los encabezados de las pilas de borrador. Los bloques de encabezado incluyen bloques "cuando..." del grupo " Control ", que permiten organizar los controladores de mensajes: externos, desde el teclado y el mouse, e internos, transmitidos entre sprites y que permiten la programación orientada a objetos en estilo smalltalk .   

Los bloques de enlaces ( ing.  Reporteros ) están destinados a completar los campos internos de otros bloques.

El lenguaje Scratch (como Logo ) opera con números, cadenas de texto, booleanos y listas que juegan el papel de arreglos dinámicos.

Aunque la arquitectura de los programas scratch en forma de un conjunto de sprites de Scratch que intercambian eventos entre sí se asemeja a una arquitectura orientada a objetos , Scratch no es un lenguaje orientado a objetos: (de ninguna forma) tiene mecanismos de herencia (en las últimas versiones del dialecto de scratch BYOB extendido, herencia prototipo ).

Código fuente

Después del lanzamiento de la versión 0.18.1, el código fuente de Scratch se abrió bajo los términos de la Licencia de código fuente de Scratch, que es una licencia copyleft simple con restricciones adicionales para no usar marcas comerciales originales (en una forma más leve, se incluyen dichas restricciones, por ejemplo, en Licencia PHP ).

El código se puede descargar desde el sitio oficial [5] . Las condiciones para su uso y distribución son las siguientes:

  1. No puede usar la palabra "Scratch" para referirse a trabajos derivados (con la excepción de la frase "basado en el código Scratch creado por el Laboratorio de Medios del MIT"),
  2. No puede usar el logotipo de Scratch o el gato oficial de Scratch con derechos de autor en trabajos derivados,
  3. No puede implementar la capacidad de cargar proyectos en ningún sitio web que no sea MIT Scratch (actualmente http://scratch.mit.edu ),
  4. las copias o los trabajos derivados deben conservar los avisos de derechos de autor y licencia de Scratch, y
  5. el código fuente de las obras derivadas debe permanecer disponible.
Texto original  (inglés)[ mostrarocultar]
  1. no puede usar la palabra "Scratch" para referirse a trabajos derivados (excepto en la frase "Basado en Scratch del MIT Media Laboratory"),
  2. no puede usar el logotipo de Scratch o el gato Scratch oficial (con derechos de autor) en trabajos derivados,
  3. no puede implementar la capacidad de cargar proyectos en ningún sitio web de MIT Scratch (actualmente, http://scratch.mit.edu ),
  4. las copias o los trabajos derivados deben conservar el aviso de derechos de autor y la licencia de Scratch, y
  5. debe poner a disposición el código fuente de los trabajos derivados.

*(leer notas)

El código fuente distribuido ya cumple estas condiciones: el logotipo y el sprite con el gato se han reemplazado en él, y se ha eliminado el código para guardar el proyecto Scratch en el sitio.

Sin embargo, dado que Scratch (1.4) está escrito en Squeak , el acceso a su código fuente existe sin proporcionarlo explícitamente al usuario: se almacenan junto con el resultado de su compilación en el archivo de imagen del sistema Smalltalk.

El 13 de mayo de 2014, se publicó el código fuente de Scratch 2.0 bajo la licencia GPLv2 [6] .

Modificaciones y desarrollo posterior

Basado en el código fuente de Scratch 1.4, se han creado una serie de modificaciones de lenguaje [7] , tales como:

BYOB (¡Snap!)

Desarrollado en la Universidad de Berkeley . La principal extensión del lenguaje que se introdujo en BYOB fue la capacidad de crear bloques personalizados compuestos, un análogo de los procedimientos de los lenguajes de programación convencionales . Se admiten recursividad , cierres y expresiones lambda . También se agregó un depurador y la capacidad de compilar ejecutables, sprites anidados, listas multidimensionales, desplazamiento mejorado y compilación de ejecutables. A partir de la versión 3.1, BYOB agregó soporte para OOP  : los sprites BYOB ahora permiten la herencia basada en prototipos . Para ello, el lenguaje, en particular, introdujo un mecanismo de clonación de sprites.

Pantera

Panther: amplía Scratch con soporte para la gestión de sprites de arrastrar y soltar , la capacidad de clonar sprites (objetos) y el subsistema CYOB (que, como BYOB, le permite crear sus propios bloques de comandos, pero requiere conocimiento del lenguaje Squeak para esto (un dialecto moderno de Smalltalk , en el que está escrito por Scratch y sus modificaciones).

Mecanismo de malla

Tanto BYOB como Panther incluyen soporte para el mecanismo de malla [14] , que permite que los programas temporales interactúen a través de la red utilizando variables compartidas y enviando mensajes de difusión.

barra oblicua

Slash amplía las capacidades de BYOB 3.0 con las nuevas capacidades de Panther: clonación y arrastre de sprites (objetos).

StarLogo TNG

En 2008, el Instituto de Tecnología de Massachusetts también desarrolló el lenguaje de programación educativo StarLogo TNG [15] , que amplía las capacidades del sistema StarLogo con capacidades de gráficos 3D y un lenguaje de programación de bloques visuales similar a un rasguño. A diferencia del OpenStarLogo original [16] y MIT Scratch, StarLogo TNG no es actualmente un producto de software de código abierto.

Scratch 2.0

En febrero de 2011, se lanzó la primera versión beta en línea de Scratch 2.0 [17] , que está previsto que incluya algunas de las características de BYOB (como la creación de procedimientos personalizados), gráficos vectoriales, clonación de sprites, la posibilidad de trabajar en grupo en proyectos , etc. La versión beta se lanzó oficialmente el 9 de mayo de 2013.

Scratch 3.0

Scratch 3.0 es la tercera y actual versión principal de Scratch. Esta es una reelaboración y reimplementación completa de Scratch escrita en HTML5 y JavaScript . Tiene un nuevo aspecto y diseño moderno. Es compatible con muchos dispositivos móviles y no requiere Flash. Publicado el 2 de enero de 2019.

Inventor de aplicaciones

App Inventor , un sistema de programación visual  experimental para la plataforma Android , se ha convertido en otro entorno de programación que utiliza el apilamiento de lógica visual estilo mosaico .

Un análogo más directo del lenguaje Scratch en Android es el lenguaje Catroid, que se está desarrollando en el Instituto de Tecnología de Software de la Universidad Tecnológica de Graz en Austria [18] .

Véase también

Notas

  1. Creando desde cero: El nuevo software del MIT Media Lab da rienda suelta a la creatividad de los niños en línea . Consultado el 14 de noviembre de 2010. Archivado desde el original el 25 de marzo de 2014.
  2. Grupo de jardín de infantes de por vida . Consultado el 25 de julio de 2008. Archivado desde el original el 8 de febrero de 2011.
  3. http://s4a.cat . - Proyecto Scratch para Arduino. Consultado el 11 de abril de 2014. Archivado desde el original el 13 de abril de 2014.
  4. En versiones anteriores a la 1.4 - números ( números en inglés  )
  5. Código fuente de Scratch (enlace no disponible) . Consultado el 25 de julio de 2008. Archivado desde el original el 6 de julio de 2008. 
  6. ¡Código fuente abierto sin conexión de Scratch 2.0! — Hablar de Scratch . Consultado el 26 de agosto de 2014. Archivado desde el original el 12 de octubre de 2014.
  7. Modificaciones de Scratch . Consultado el 14 de noviembre de 2010. Archivado desde el original el 12 de marzo de 2016.
  8. Build Your Own Blocks (BYOB) Archivado el 23 de agosto de 2010 en la página de inicio de Wayback Machine .
  9. Build Your Own Blocks (BYOB) (Modificación de Scratch) Archivado el 3 de abril de 2016 en la wiki de Wayback Machine in Scratch.
  10. Panther: basado en Scratch . Archivado el 19 de abril de 2021 en la página de inicio de Wayback Machine .
  11. Panther (Modificación de Scratch) Archivado el 30 de marzo de 2016 en la wiki de Wayback Machine in Scratch.
  12. Proyecto Slash . Consultado el 14 de noviembre de 2010. Archivado desde el original el 11 de agosto de 2019.
  13. Slash (Modificación de Scratch) Archivado el 15 de noviembre de 2010 en la wiki de Wayback Machine in Scratch.
  14. Malla . Consultado el 26 de abril de 2011. Archivado desde el original el 4 de abril de 2016.
  15. StarLogo TNG . Consultado el 26 de abril de 2011. Archivado desde el original el 19 de abril de 2015.
  16. OpenStarLogo (enlace descendente) . Consultado el 26 de abril de 2011. Archivado desde el original el 17 de mayo de 2011. 
  17. Rasguño 1.0 . Consultado el 26 de abril de 2011. Archivado desde el original el 16 de agosto de 2016.
  18. Sitio web de Catroid . Consultado el 5 de marzo de 2012. Archivado desde el original el 14 de febrero de 2022.

Literatura

Enlaces