Linked by Henri on Tue 21st Feb 2012 22:44 UTC
General Development 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.
Thread beginning with comment 508078
To read all comments associated with this story, please click here.
Different to NodeJS?
by searly on Wed 22nd Feb 2012 09:50 UTC
Member since:

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 ...

Reply Score: 1

RE: Different to NodeJS?
by robot-git on Wed 22nd Feb 2012 10:17 in reply to "Different to NodeJS?"
robot-git Member since:

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

Reply Parent Score: 2

RE[2]: Different to NodeJS?
by fran on Wed 22nd Feb 2012 17:00 in reply to "RE: Different to NodeJS?"
fran Member since:

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.

Reply Parent Score: 2

RE[2]: Different to NodeJS?
by lucas_maximus on Wed 22nd Feb 2012 17:18 in reply to "RE: Different to NodeJS?"
lucas_maximus Member since:

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.

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

Reply Parent Score: 3

RE: Different to NodeJS?
by lambdaterm on Wed 22nd Feb 2012 10:44 in reply to "Different to NodeJS?"
lambdaterm Member since:

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.

Reply Parent Score: 2

RE[2]: Different to NodeJS?
by lucas_maximus on Thu 23rd Feb 2012 09:00 in reply to "RE: Different to NodeJS?"
lucas_maximus Member since:

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.

Reply Parent Score: 3

RE: Different to NodeJS?
by akoprowski on Wed 22nd Feb 2012 11:34 in reply to "Different to NodeJS?"
akoprowski Member since:

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)

Reply Parent Score: 2