Posted by : Rohit Hazra Saturday, April 7

Hello Readers,
Well this is my first post which I am writing on a PC (in past 2 months). So what I am gonna let you all know about is Opa Programming Language.

Opa is a new generation of web development platform. It is a new programming language, a new web server, a new database and a new distributed execution engine, all of them tightly integrated to provide a great experience for web developers. The 0.9.0 release in February 2012 introduced database mapping technology for the non-relational, document-oriented database MongoDB, similar to object-relational mapping

Opa The Cloud Language

Opa is concise, simple and readable, it is also extremely powerful, concurrent, dynamically distributed, and extremely secure, much more so than just about any other programming language. Opa is designed to make web development fun, secure and right.

Opa is Safe, Secure, Stable & Readable

Opa is an Open Source Programming Language developed by MLstate and is used to develop scalable web based applications and can be used to write scripts for both Server side and Client side. In Opa the complete programs are written in Opa itself which are compiled to native code on the server and JavaScript on the clients, as the compiler controls the communication between the two.

The Language's first official presentation was in 2010 at OWASP conference and it's source code was relesed on GitHub in June 2011, under a GNU Affero General Public License. It is a strong and static language and can help in the security issues of SQL injections and cross-site Scripting.

Opa is a single programming language for writing web applications. Both server and client codes (frontend and backend codes) can be written on it without thinking about the client-server distinction as the opa compiler distributes the code as needed and hence taking care of all the communication tasks.
The database code can also be written directly in Opa. Opa supports the major NoSQL databases MongoDB and CouchDB, and has its own internal database as well. The latter, requires no configuration at all and is recommended, especially for beginners.

To write an application, first type the code in your favorite editor. The simplest "Hello, world" application in Opa is written in just a few lines:

1. Server.start(
2. Server.http,
3. { page: function() {Hello, world}
4. , title: "Hello, world"
5. }
6. )

The program can be compiled and run with the following single command line:

opa hello.opa --.opa --

Opa's syntax is completely inspired from our classic JAVA and C languages and hence is quite readable. However it extends the classic syntax with advanced features which are specific to web due to which a programmer can insert HTML code directly, without any quotes. It has CSS selectors and pointer-like syntax that allows the user to apply a desirable content to a selector.

As I was browsing through Opa I found the most interesting thing that is in it's typing system for example :
it is a compiled language which relies on a state-of-the-art type system.
Opa checks the types at compile time, which means that no type error can happen at runtime. For instance, the following code

foo = 1 + "bar";

raises the following error at compile time:

"Types int and String are not Compatible"

Unlike C or Java, you don't have to annotate types yourself as Opa features almost complete type inference. For instance, you can just write:

1. function foo(s) {
2. String.length(s);
3. }
4. function bar(x, y) {
5. foo(x) + y;
6. }

and the Opa compilers automatically infers the types, as if you've written:

1. int function foo(string s) {
2. String.length(s);
3. }
4. int function bar(string x, int y) {
5. foo(x) + y;
6. }

Opa type system not only manages basic types but complex data-structures, functions and even modules! Check the here for a full presentation on Opa's Typing System.
It supports various file types for different purposes :
api | api-txt | conf | jsconf | opa | opack | opp | opx

As I used this language, I really Enjoyed myself, it's easy, static and you know kind of beautiful.
Well if you wanna give it a try then you can download it from these official links :
Download Stable Opa for Mac OS X
Download the Stable Opa for Ubuntu Linux package
Download the Stable Opa for Linux Package
Download the Nightly Version for Windows 64bit
Download the Opa Manual
I may not be able to post till 11th of this month so till then Be Techy and Be Updated.

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Popular Post

- Copyright © Technopits -Powered by Blogger