Opa is a new generation programming language and web development platform that let you write distributed web applications using a single technology. Opa is open source, released under a dual license: Gnu Affero GPL and a private license.
The language was first officially presented at the OWASP conference in 2010[1], and the source code was released on GitHub[2] in June 2011.
Philosophy
Opa is a single programming language for web applications, both for the client and server code. Opa also handles database queries. It can be compared with web frameworks[3].
Examples
Hello world
The traditional Hello world program can be written in Opa as:[4]
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.