Created in 2010, Opa is a multi-paradigm, functional, imperative programming language.
Released as open-source in 2011, its framework is currently licensed under the MIT License, while the compiler is under the GNU Affero General Public License so that Opa applications can be released under any license, open-source or proprietary. Opa was influenced by Erlang, JavaScript, and OCaml, and supports Linux, macOS, and Windows platforms.
Generally used in scalable web applications, Opa can be used for both client-side and server-side scripting, with complete programs in Opa are compiled to Node.js on the server and JavaScript on the client, with the compiler automates the communication between the server and client.
Opa is made up of a web server, a database, and a distributed execution engine. Opa code is compiled to JavaScript using Node.js on the server-side, and to JavaScript using jQuery for cross-browser compatibility on the client-side, so that users are not required to install a plugin in their browser.
Opa is a functional language, with a static type system with type inference. It also has imperative qualities and is able to communicate using message passing, similarly to Erlang. The language includes several structures and functions common in web development, such as first-class objects, like HTML and parsers. Due to the strong relationship between the language and web concepts, Opa is intended for web applications as opposed to desktop applications.
Appropriate resources for this category are those related to the Opa programming language. These may include the language itself, any implementations or dialects, IDEs, editors, or tools designed to facilitate Opa programming, or Opa user groups, forums, tutorials, guides, or informational sites.
 
 
Recommended Resources
BoxOpa is a simple file-sharing application. Created in Opa, it can be freely downloaded, including the source, for use as-is or, more likely, as an example of coding in the Opa programming language. Users can easily create a new box by visiting the homepage. Inside the box, users can upload whatever files they want, and they will be made immediately available to all viewers of the page, and users may also delete their files, with no login necessary. Files may freely be downloaded.
https://github.com/jvimal/boxopa
GitHub: Opa Language for Web Application Development
Created for MLstate, Opa is a functional programming language for the Web. It is comprised of two parts, a compiler from the Opa language, featuring a JavaScript-like syntax with enhancements, and a JavaScript library that is used at runtime. Available as open-source, the compiler is released under the GNU Affero General Public License, while the library is under the MIT License. Language files may be cloned or downloaded for free, and contributors to the repository are acknowledged.
https://github.com/MLstate/opalang/
Ian’s Blog: Opa Language Tutorial
Ian Oliver discusses a wide variety of topics in his blog, which has been online since 2008. In July 2012, he published a two-part tutorial on the use of the Opa programming language. Beginning with a discussion of his having experimented with the language, he makes comparisons with other languages, then offers several coding examples and demonstrates the way that it is accomplished in Opa, including server screenshots, with a focus on the REST paradigm, a software architectural style.
https://ijosblog.blogspot.com/2012/07/opa-language-tutorial-part-1.html
JavaWorld: Programming Opa: Web Development, Reimagined
JavaWorld is an independent resource for Java developers, architects, and managers. Published on February 1, 2012, Rich Grehan reviews the, then new, programming language, discussing the approach that Opa takes on issues relating to web security, and rates the language on various aspects. General information about Opa’s development, features, strengths and weaknesses, and other aspects of programming with Opa, are included.
https://www.javaworld.com/article/2078521/programming-opa--web-development--reimagined.html