Opa, the new open source programming language for web applications, just released its 0.9.0 ‘S4’ version.
Opa is a single programming language for specifying client code, server code and database code. The new release introduces two major features: A new default syntax that resembles JavaScript and was asked for by the community, and an abstraction layer for the NoSQL database MongoDB. Features that were previously supported by the internal Opa database are now available with the fast-growing, scalable NoSQL database. Together, Opa and MongoDB, provide a way to develop complex web applications and have them scale out easily. Many other smaller features have been added, as the number of contributors to the code on github grows.
I think I have the meaning behind the name now. I thought it was german or something.
OPA is from a french company and OPA in french mean takeover bid. This make sense.
“opa” in Spanish is a derogatory term that means “person with decreased mental capabilities”.
Another Lumia
Why do this always happen in Spanish
Thinking in the relationship between Elop and MS, maybe?
Spanish from what country though?
i’m from bolivia, but http://www.rae.es says the same meaning is applicable in Uruguay, Paraguay and Argentina.
Oh I see, Quechuan influence.
Now I know what word to abuse in my upcoming trip to the south of this continent.
Edited 2012-02-22 07:41 UTC
In Dutch, opa is informal for “grandfather” (more formal would be: grootvader”).
Same in German … Opa = Grandfather
How is that different to NodeJS + Express (or any other of the Javascript MVC Frameworks)? With NodeJS at least you don’t have to learn yet another language …
Javascript has no type verification.
Which probably results with more debugging or more bugs.
Opa has a syntax similar to Javascript.
Opa is designed from scratch for the job and provides integrated high-level constructions that are very handy (html, slicing, db …).
It means you can focus on your application and partly forget about AJAX, escaping, comet and other boring stuff.
ps : I am working on Opa
I would really like to study OPA in the future.
I am unfortunately one of those guys that need “how to do” manuals.
Not just those “how to program” type books but actual applications, “by example” books.
In php for example you get cookbooks, how to program a shopping cart, blog, cms ect.
Hope we’ll see books like this for OPA in future.
I would like to delve into this in the future.
Having to learn just one language for site development is very alluring.
Indeed that may happen soon(ish)! Take a look at: http://forum.opalang.org/#5_18
The main problem I have with these things that “ALL” of my code is tied into your language.
I have enough problems with just with all our current code relying on 3 blobs (dlls) from a 3rd party.
Also all the generated JavaScript appears to be jQuery.
http://i.imgur.com/z22WE.png
15 seconds on one method when viewing your documentation. I use an 8 virtual processor (4 physical cores) Xeon Workstation and your documentation is bringing my PC to its needs in the latest firefox.
I am sorry but I couldn’t recommend your framework.
Edited 2012-02-22 17:29 UTC
Indeed, there are many common points between Node+Express and Opa.
But, as the previous commenter said, Opa is strongly statically typed, which mean way easier for building complex applications.
And Opa uses an advanced mechanism named ‘CPS’ for continuation passing style which does automatic term rewriting to ensure the application is non-blocking. Something like Fibers for Node.js but with the big advantage it’s fully automated and you don’t have to write all the time Fiber(function() … and yield calls.
That and the new mongo stuff.
The back end is fast but the front end is hilariously slow …
With SQL performance, you can throw hardware to fix the problem … with front end performance you can’t do this.
The Opa stuff pays the jQuery Tax very heavily. It also uses tons of inline scripts.
Very good question. Let me just summarize and extend a bit on previous answers:
*) strong, static typing (that has an AMAZING impact on the number of problems detected by the compiler hence saving you LOTS of debugging time; you’ll love it when you try it).
*) full automation of client-server split and communications between the two (in particular that means that: moving some code between client/server is as easy as changing function’s client/server annotation; and calling remote function is exactly the same as calling a local function).
*) tight database (MongoDB) integration, with type-safety guarantees (persisting any Opa value in the database is as easy as it gets)
*) truly non-blocking nature (thanks to CPS)