stringtranslate.com

Opa (lenguaje de programación)

Opa es un lenguaje de programación de código abierto para desarrollar aplicaciones web escalables .

Se puede utilizar tanto para scripts del lado del cliente como del lado del servidor , donde los programas completos se escriben en Opa y posteriormente se compilan en Node.js en el servidor y JavaScript en el cliente , y el compilador automatiza toda la comunicación entre los dos. [3] [4] Opa implementa tipado estático fuerte , que puede ser útil para proteger contra problemas de seguridad como inyecciones SQL y ataques de scripts entre sitios . [5]

El lenguaje se presentó oficialmente por primera vez en la conferencia OWASP en 2010, [6] y el código fuente se publicó en GitHub [7] en junio de 2011, bajo una licencia pública general GNU Affero . Más tarde, la licencia cambió a la licencia MIT para la parte del framework (biblioteca) y AGPL para el compilador, de modo que las aplicaciones escritas en Opa se pueden publicar bajo cualquier licencia, propietaria o de código abierto.

Diseño y características

Opa consta de un servidor web , una base de datos y un motor de ejecución distribuida. [8] El código escrito en Opa se compila a JavaScript usando Node.js en el lado del servidor y a JavaScript usando jQuery para compatibilidad entre navegadores en el lado del cliente . [9] La ventaja de este enfoque en comparación con ciertas plataformas de aplicaciones de Internet enriquecidas (RIA) es que los usuarios no necesitan instalar un complemento en su navegador. [10] Opa comparte motivaciones con los frameworks web , pero adopta un enfoque diferente. [11] Sus diseñadores afirman que esto ayuda a Opa a evitar muchos problemas de seguridad, como inyecciones SQL o ataques de secuencias de comandos entre sitios (XSS). [12]

El lenguaje principal es funcional y tiene un sistema de tipos estáticos con inferencia de tipos . Opa también proporciona sesiones que encapsulan un estado imperativo y se comunican mediante el paso de mensajes , similar a los procesos de Erlang . Opa proporciona muchas estructuras o funciones que son comunes en el desarrollo web, como objetos de primera clase , por ejemplo HTML [13] y analizadores , basados ​​en gramáticas de expresión de análisis . [14] Debido a esta adhesión entre el lenguaje y los conceptos relacionados con la web, Opa no está destinado a aplicaciones no web (por ejemplo, aplicaciones de escritorio ). [15]

La versión 0.9.0 de febrero de 2012 introdujo la tecnología de mapeo de bases de datos para la base de datos no relacional y orientada a documentos MongoDB , similar al mapeo relacional de objetos . [16] [17] [18] La versión 1.1.0 de febrero de 2013 también agregó soporte para PostgreSQL , allanando el camino para el soporte de varias bases de datos SQL .

Ejemplos

Hola Mundo

El programa tradicional Hola mundo , que produce un servidor web que sirve una página estática con "¡Hola, web!" como contenido, se puede escribir en Opa como: [19]

Servidor . inicio ( Servidor . http ,  { título :  "Hola"  , página :  función()  {  <h1>¡Hola, web!</h1>  }  } )

Se puede compilar en un archivo JS ejecutable independiente con:

$  opa  hola_web.opa

Al ejecutar el archivo JS ejecutable resultante se inicia la aplicación web:

$  ./hola_web.js

Véase también

Referencias

  1. ^ "Versión 1.1.1 · MLstate/opalang". GitHub . Consultado el 29 de enero de 2021 .
  2. ^ "Buenas noticias sobre Opa" . Consultado el 29 de enero de 2021 .
  3. ^ Adam Koprowski (24 de febrero de 2012). "Node.js vs. Opa: Web Framework Showdown". developer.com.
  4. ^ Opa en realidad admite varios backends del lado del servidor, siendo Nodejs el más popular
  5. ^ Robertson, William; Giovanni, Vigna (2009). "Aplicación estática de la integridad de aplicaciones web mediante tipado estricto". Actas de la 18.ª Conferencia sobre el Simposio de seguridad de USENIX . SSYM'09.[ enlace muerto permanente ]
  6. ^ "OPA: Soporte lingüístico para una Web segura y sensata, en OWASP 2010". OWASP. Junio ​​de 2010.
  7. ^ "Repositorio de GitHub". GitHub .
  8. ^ "Opa: el lenguaje escalable de código abierto en la nube". WebAppers. 22 de julio de 2011.
  9. ^ "Entrevista: François-Régis Sinot sobre Opa, una plataforma de desarrollo web". InfoQ. 7 de septiembre de 2011.
  10. ^ Neil McAllister (8 de septiembre de 2011). "Presentamos Opa, un lenguaje de desarrollo web para gobernarlos a todos". InfoWorld.
  11. ^ "InfoWorld review: Herramientas para el desarrollo rápido de la Web". InfoWorld . 12 de mayo de 2010.
  12. ^ "Auch Opa ist für Cloud-Anwendungen". Heise en línea . 29 de julio de 2011.
  13. ^ "Opa - un enfoque unificado para la programación web". i-Programmer. 28 de agosto de 2011.
  14. ^ Koprowski, Binsztok (2011). "TRX: Un intérprete de análisis formalmente verificado". Métodos lógicos en informática.
  15. ^ "Opa, un nouveau langage pour le développement d'applications Web" (en francés). LinuxFr. 22 de junio de 2011.
  16. ^ "Hola, base de datos". Documentación de Opa. Archivado desde el original el 12 de enero de 2014. Consultado el 22 de febrero de 2012 .
  17. ^ "Soporte de bajo nivel para MongoDB". Documentación de Opa. Archivado desde el original el 12 de enero de 2014. Consultado el 22 de febrero de 2012 .
  18. ^ "Programación Opa: desarrollo web, reimaginado". Computerworld . 1 de febrero de 2012.
  19. ^ Alastair Aitken (26 de julio de 2011). «Opa, el lenguaje en la nube: una prueba». Morgan Hill. Archivado desde el original el 25 de septiembre de 2011. Consultado el 6 de septiembre de 2011 .

Bibliografía

Enlaces externos