OPA (Programmiersprache)

Opa
Opa logo cloud.png
Paradigma Multi-Paradigma: funktional, Imperativ
Entwickler Mlstate
Erstmals erschienen 2011
Stabile Version
1.1.1 (stabil) / 8. März 2014; Vor 8 Jahren[1][2]
Disziplin tippen statisch, stark, gefolgert
OS Linux, Os x, Fenster
Lizenz MIT -Lizenz, AGPLV3
Webseite Opalang.org
Beeinflusst von
Ocaml, Erlang, JavaScript

Opa ist ein Open Source Programmiersprache Für die Entwicklung skalierbar Web Applikationen.

Es kann für beide verwendet werden Client-Seite und serverseitiges Skripting, wo vollständige Programme in OPA geschrieben und anschließend zusammengestellt werden Node.js auf der Server und JavaScript auf der Klient, mit dem Compiler Automatisierung der gesamten Kommunikation zwischen den beiden.[3][4] OPA implementiert stark, statische Typisierung, was hilfreich sein kann, um vor Sicherheitsfragen wie z. SQL -Injektionen und Cross-Site-Scripting Anschläge.[5]

Die Sprache wurde erstmals offiziell am vorgestellt Owasp Konferenz im Jahr 2010,[6] und der Quellcode wurde veröffentlichtGitHub[7] Im Juni 2011 unter a GNU Affero Allgemeine öffentliche Lizenz. Später wechselte die Lizenz in die MIT -Lizenz für den Framework -Teil (Bibliothek) und die AGPL für den Compiler, sodass in OPA geschriebene Bewerbungen unter jeder Lizenz, proprietär oder open Source veröffentlicht werden können.

Design und Funktionen

OPA besteht aus a Webserver, a Datenbank und verteilte Ausführungsmaschine.[8] Der in OPA geschriebene Code wird zusammengestellt JavaScript Verwendung Node.js auf der Serverseite und zu JavaScript Verwendung JQuery Für die Querbrowserkompatibilität auf der Client -Seite.[9] Der Vorteil des Ansatzes im Vergleich zu bestimmten Reiche Internetanwendung (RIA) Plattformen sind, dass Benutzer nicht zur Installation von a verpflichtet sind Plugin in ihrem Browser.[10] OPA teilt Motivationen mit Webrahmen, aber einen anderen Ansatz.[11] Seine Designer behaupten, dass dies OPA hilft, viele Sicherheitsprobleme zu vermeiden, z. B. SQL -Injektionen oder Cross-Site-Scripting (XSS) Angriffe.[12]

Die Kernsprache ist funktional und hat eine statische Typ System mit Geben Sie Inferenz ein. OPA liefert auch Sitzungen, die ein zusammenfassen Imperativ angeben und kommunizieren mithilfe Nachrichtenübergang, ähnlich zu Erlang Prozesse. OPA liefert viele Strukturen oder Funktionen, die in der Webentwicklung üblich sind, wie erstklassige Objekte, zum Beispiel Html[13] und Parser, bezogen auf Ausdrucksgrammatiken analysieren.[14] Aufgrund dieser Adhäsion zwischen Sprach- und Webkonzepten ist OPA nicht für Nicht-Web-Anwendungen bestimmt (z. B. Desktop -Anwendungen).[15]

Die Veröffentlichung von 0.9.0 im Februar 2012 eingeführte Datenbank-Mapping-Technologie für die nicht-relationale, dokumentorientierte Datenbank MongoDB, ähnlich zu Objektrelationskartierung.[16][17][18] Die Veröffentlichung von 1.1.0 im Februar 2013 erhöhte auch Unterstützung für PostgreSQLden Weg für die Unterstützung von mehreren ebnen Sql Datenbanken.

Beispiele

Hallo Welt

Das traditionelle Hallo WeltprogrammErstellen eines Webservers, der eine statische Seite mit "Hallo, Web!" Dient. als Inhalt kann in OPA als:[19]

Server.Anfang(Server.http,  { Titel: "Hallo"  , Seite: Funktion() { 

Hello, web!

} } )

Es kann mit einer eigenständigen ausführbaren JS-Datei zusammengestellt werden mit:

$ opa hello_web.opa

Das Ausführen der resultierenden ausführbaren JS -Datei startet die Webanwendung:

$ ./hello_web.js

Siehe auch

  • Ur - Eine funktionale Programmiersprache für die Webentwicklung
  • Pfeil - Eine JavaScript -Alternative für Web -Apps
  • Haxe - Ähnliche Programmiersprache für Web -Apps
  • CoffeeScript - Eine Programmiersprache, die für Web -Apps auf JavaScript übertragen wurde
  • Dark, eine Programmiersprache, die die Entwicklung und Bereitstellung von integriert serverlos Dienstleistungen

Verweise

  1. ^ "Release 1.1.1 · mlstate/opalang". GitHub. Abgerufen 2021-01-29.
  2. ^ "Einige tolle Neuigkeiten über OPA". Abgerufen 2021-01-29.
  3. ^ Adam Koprowski (24. Februar 2012). "Node.js vs. OPA: Web Framework Showdown". Entwickler.com.
  4. ^ OPA unterstützt tatsächlich verschiedene serverseitige Backends, wobei Nodejs die beliebtesten sind
  5. ^ Robertson, William; Giovanni, Vigna (2009). "Statische Durchsetzung der Integrität der Webanwendung durch starke Typisierung". SSYM'09 Proceedings der 18. Konferenz über Usenix Security Symposium.[Permanent Dead Link]
  6. ^ "OPA: Sprachunterstützung für ein gesundes, sicheres und sicheres Web, bei OWASP 2010". Owasp. Juni 2010.
  7. ^ "Github Repository".
  8. ^ "OPA - Die skalierbare Open -Source -Cloud -Sprache". Webapper. 22. Juli 2011.
  9. ^ "Interview: François-Régis Sinot über OPA, eine Webentwicklungsplattform". Infoq. 7. September 2011.
  10. ^ Neil McAllister (8. September 2011). "Einführung von OPA, eine Web -Dev -Sprache, um sie alle zu regieren". InfoWorld.
  11. ^ "Infoworld Review: Tools für schnelle Webentwicklung". InfoWorld. 12. Mai 2010.
  12. ^ "Auch opa ist für Cloud-Anwendungen". Heise online. 29. Juli 2011.
  13. ^ "OPA - Ein einheitlicher Ansatz zur Webprogrammierung". i-Programmierer. 28. August 2011.
  14. ^ Koprowski, Binsztok (2011). "TRX: Ein formell verifizierter Parser -Dolmetscher". Logische Methoden in der Informatik.
  15. ^ "OPA, UN -Nouveau Langage Pour Le Dévelopement D'Anwendications Web" (auf Französisch). Linuxfr. 22. Juni 2011.
  16. ^ "Hallo, Datenbank". OPA -Dokumentation. Archiviert von das Original Am 2014-01-12. Abgerufen 2012-02-22.
  17. ^ "Low-Level MongoDB-Unterstützung". OPA -Dokumentation. Archiviert von das Original Am 2014-01-12. Abgerufen 2012-02-22.
  18. ^ "Programmieren OPA: Webentwicklung, neu gestaltet". Computerwelt. 1. Februar 2012.
  19. ^ Alastair Aitken (26. Juli 2011). "OPA, die Cloud -Sprache - ein Test Laufwerk". Morgan Hill. Archiviert von das Original am 25. September 2011. Abgerufen 6. September 2011.

Literaturverzeichnis

Externe Links