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, and the source code was released on GitHub in June 2011.
Philosophy
Opa is a single programming language for web applications, both for the client and server code.
Example of Opa
A simple web server displaying "Hello, web!" is obtained by writing the following program.
server = one_page_server("Hello", -> <>Hello, web!</>)
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 simple 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 shares information automatically.
opa-cloud hello_web.exe --host localhost --host my@my_server1 --host my@my_server2
External links
- Homepage of Opa
- GitHub repository
- InfoWorld article about emerging web technologies, including 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.
- Opa, the cloud language – a test drive article on Morgan Hill's blog.
- Koprowski, Binsztok (2011). "TRX: A Formally Verified Parser Interpreter". Logical Methods in Computer Science 7(2), DOI: 10.2168/LMCS-7(2:18)2011.