Linked by hbbio on Thu 25th Aug 2011 22:14 UTC
General Development "Opa, a new opensource programming language aiming to make web development transparent has been publicly launched. Opa automatically generates client-side Javascript and handles communication and session control. The ultimate goal of this project is to allow writing distributed web applications using a single programming language to code application logics, database queries and user interfaces. Among existing applications already developed in Opa, some are worth a look. Best place to start is the project homepage which contains extensive documentation while the code of the technology is on GitHub. A programming challenge ends October 17th." This is weird. 'Opa' is the nickname my friends gave me 6 years ago. It's still used more often than my actual name...
Permalink for comment 487055
To read all comments associated with this story, please click here.
RE: What are the benefits?
by opadikt on Fri 26th Aug 2011 15:09 UTC in reply to "What are the benefits?"
opadikt
Member since:
2011-08-26

Skepticism is the beginning of interest, so don't apologize ;-)

I don't believe in the "one language for everything" approach. You may love Haskell, but sometimes you still have to write a bash script or a Makefile. See what I mean ?

So Opa does not claim to unify all languages and framework, it only intends to become the best option for many usages. These usages are web applications in general, and more particularly those with rich client-side effects, and/or which need high scalability (the "cloud" aspect of Opa). As it's a new language, it will also be better for new applications, although there are many way to integrate smoothly with other languages (either natively or via REST).

One of the key features discussed in your comment is "transparency". That means that the same piece of code you write gets compiled both to native server code and to JavaScript, and that communication between the client and the server are handled automatically. Yes, it takes away flexibility, but most of the time you don't care about this flexibility. If you do, it means you are concerned with low-level behavior, and Opa may not be your best option. The performance issue does not hold: there's no reason why hand-written communication code would be better (again, in general, I imagine you can find specific examples where it would be false).

About the features, yes Opa is young and its library is growing rapidly but does not have "everything". However, it has a very smooth mechanism to integrate external code in JavaScript, OCaml or C. The supported languages might be extended in the future.

About security, it was in fact one of the main concern and motivation for Opa. What are SQL and XSS injections ? They are the result of a mismatch between two languages, that is not handled properly by application developers. In Opa, there's only one language, and all communication is handled by the language. We've done our best, but imagine there's still a security flaw there: when it gets corrected, it will be corrected for every Opa applications at once. Do you see the power of handling security at the language level ?

Reply Parent Score: 2