Paradigms | multi-paradigm: functional, imperative |
---|---|
Developer | MLstate |
First appeared | 2011 |
Stable release | |
Typing discipline | static, strong, inferred |
Scope | lexical |
Implementation language | OCaml, Opa, JavaScript, Shell,C, Standard ML |
OS | Linux, macOS, Windows |
License | AGPLv3, MIT |
Website | opalang |
Influenced by | |
OCaml, Erlang, JavaScript |
Opa is a programming language for developing scalable web applications. It is free and open-source software released under a GNU Affero General Public License (AGPLv3), and an MIT License.
It can be used for both client-side and server-side scripting, where complete programs are written in Opa and subsequently compiled to Node.js on a server and JavaScript on a client, with the compiler automating all communication between the two.[3][4] Opa implements strong, static typing, which can be helpful in protecting against security issues such as SQL injections and cross-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 on GitHub[7] in June 2011, under a GNU Affero General Public License (AGPL). Later, the license changed to the MIT License for the software framework part (the library) and AGPL for the compiler, so that applications written in Opa can be released under any software license, proprietary or open source.