Opa is a programming language for web applications. Opa comprises a web server, a database and distributed execution engine. Code written in Opa is compiled to native code on the server side and to JavaScript using jQuery for cross-browser compatibility on the client side[1].
Opa | |
---|---|
Paradigm | multi-paradigm: imperative, functional |
Developer | MLstate |
First appeared | 1996 |
Stable release | S3.5
/ September 2, 2011 |
Typing discipline | static, strong, inferred |
OS | Linux, Mac OS X |
License | AGPL |
Website | [1] |
Influenced by | |
OCaml, Erlang |
It can be compared with web frameworks[2].
Opa is open source, released under a dual license: GNU Affero General Public License and a proprietary license.
The language was first officially presented at the OWASP conference in 2010[3], and the source code was released on GitHub[4] in June 2011.
Examples
Hello world
The traditional Hello world program can be written in Opa as:[5]
server = one_page_server("Hello", -> <>Hello, web!</>)
To compare this to other programming languages see the list of hello world program examples.
This is the full source code of the application, which is compiled by invoking the Opa compiler.
opa hello_web.opa
The compiler produces a stand-alone executable binary, containing everything required for execution, including database management, compiled requests, server code, client code, user interface and everything that may be needed to connect them or to handle malicious connections or inputs.
Running the resulting binary launches the web application.
./hello_web.exe
To deploy on several instances at once, Opa provides the opa-cloud command. This command launches the application, configures load balancing and makes servers share information automatically.
opa-cloud hello_web.exe --host localhost --host my@my_server1 --host my@my_server2
References
External links
- Homepage of Opa
- Auch Opa ist für Cloud-Anwendungen article on Heise.
- Opa, un nouveau langage pour le développement d’applications Web article on linuxfr.
- Opa - a unified approach to web programming article on i-Programmer.
- Opa – The Scalable Open Source Cloud Language article on WebAppers.
- Koprowski, Binsztok (2011). "TRX: A Formally Verified Parser Interpreter". Logical Methods in Computer Science 7(2), DOI: 10.2168/LMCS-7(2:18)2011.