Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Opa (programming language)

From Wikipedia, the free encyclopedia
Programming language for developing scalable web applications
Opa
Paradigmsmulti-paradigm:functional,imperative
DeveloperMLstate
First appeared2011; 14 years ago (2011)
Stable release
1.1.1 (stable) / March 8, 2014; 11 years ago (2014-03-08)[1][2]
Typing disciplinestatic,strong,inferred
Scopelexical
Implementation languageOCaml, Opa,JavaScript,Shell,C,Standard ML
OSLinux,macOS,Windows
LicenseAGPLv3,MIT
Websiteopalang.org
Influenced by
OCaml,Erlang,JavaScript

Opa is aprogramming language for developingscalableweb applications. It isfree and open-source software released under aGNU Affero General Public License (AGPLv3), and anMIT License.

It can be used for bothclient-side andserver-side scripting, where complete programs are written in Opa and subsequently compiled toNode.js on aserver andJavaScript on aclient, with thecompiler automating all communication between the two.[3][4] Opa implementsstrong,static typing, which can be helpful in protecting against security issues such asSQL injections andcross-site scripting attacks.[5]

The language was first officially presented at the Open Worldwide Application Security Project (OWASP) conference in 2010,[6] and the source code was released onGitHub[7]in June 2011, under aGNU Affero General Public License (AGPL). Later, the license changed to theMIT License for thesoftware framework part (thelibrary) and AGPL for the compiler, so that applications written in Opa can be released under anysoftware license,proprietary oropen source.

Design and features

[edit]

Opa consists of aweb server, adatabase and distributed execution engine.[8] Code written in Opa is compiled toJavaScript usingNode.js on theserver side and to JavaScript usingjQuery for cross-browser compatibility on theclient side.[9]The advantage of the approach compared to certainRich Internet Application (RIA) platforms is that users are not required to install aplugin in their browser.[10] Opa shares motivations withweb frameworks, but takes a different approach.[11]Its designers assert that this helps Opa to avoid many security issues, likeSQL injections orcross-site scripting (XSS) attacks.[12]

The core language isfunctional and has a statictype system withtype inference. Opa also provides sessions which encapsulate animperative state and communicate usingmessage passing, similar toErlang processes. Opa provides many structures or functions that are common inweb development, asfirst-class citizen objects, for instanceHTML[13] andparsers, based onparsing expression grammars.[14] Because of this adhesion between the language and web-related concepts, Opa is not intended for non-web applications (for instancedesktop applications).[15]

The 0.9.0 release in February 2012 introduced database mapping technology for the non-relational, document-oriented databaseMongoDB, similar toobject-relational mapping.[16]The 1.1.0 release in February 2013 also added support forPostgreSQL, paving the way for the support of severalSQL databases.

See also

[edit]
  • Ur – a functional language for web development
  • Dart – a JavaScript alternative for web apps
  • Haxe – a similar language for web apps
  • CoffeeScript – a languagetranscompiled to JavaScript for web apps
  • Dark – a language integrating development and deployment ofserverless services

References

[edit]
  1. ^"Release 1.1.1: MLstate/opalang".GitHub. Retrieved2021-01-29.
  2. ^"Some great news on Opa". Retrieved2021-01-29.
  3. ^Koprowski, Adam (24 February 2012)."Node.js vs. Opa: Web Framework Showdown". developer.com. Archived fromthe original on 4 November 2012. Retrieved1 March 2012.
  4. ^Opa supports various server-side backends, Nodejs being the most popular one.
  5. ^Robertson, William; Giovanni, Vigna (2009)."Static Enforcement of Web Application Integrity Through Strong Typing".SSYM'09 Proceedings of the 18th Conference on USENIX Security Symposium.[permanent dead link]
  6. ^"OPA: Language Support for a Sane, Safe and Secure Web, at OWASP 2010". OWASP. June 2010.
  7. ^"GitHub repository".GitHub.
  8. ^"Opa – The Scalable Open Source Cloud Language". WebAppers. 22 July 2011.
  9. ^"Interview: François-Régis Sinot on Opa, a Web Development Platform". InfoQ. 7 September 2011.
  10. ^Neil McAllister (8 September 2011)."Introducing Opa, a Web dev language to rule them all". InfoWorld.
  11. ^"InfoWorld review: Tools for rapid Web development".InfoWorld. 12 May 2010.
  12. ^"Auch Opa ist für Cloud-Anwendungen".Heise Online. 29 July 2011.
  13. ^"Opa – a unified approach to web programming". i-Programmer. 28 August 2011.
  14. ^Koprowski, Binsztok (2011)."TRX: A Formally Verified Parser Interpreter".Logical Methods in Computer Science.
  15. ^"Opa, un nouveau langage pour le développement d'applications Web" (in French). LinuxFr. 22 June 2011.
  16. ^"Programming Opa: Web development, reimagined".Computerworld. 1 February 2012. Archived fromthe original on 2 October 2016. Retrieved22 February 2012.

Bibliography

[edit]

External links

[edit]
Code analysis
Subsets,* supersets
Transpilers
Concepts
Debuggers
Documentation generators
Editors (comparison)
Engines
Frameworks
Relatedtechnologies
Package managers
Module bundlers
Server-side
Unit testing frameworks (list)
People
Retrieved from "https://en.wikipedia.org/w/index.php?title=Opa_(programming_language)&oldid=1305302315"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp