Hopefully the first page of documentation should answer what Opa is. As for the licensing it's a bit more complicated as we're in the process of changing it, but this blog post should give you the answers, I hope.
Aren't the basic programming concepts understood and defined now? All a new language can really bring to the table is a different syntax.
I absolutely don't agree with that. Let me take an example from the area I work in and know a bit about: web development.
Web development today is still extremely messy, with often a bundle of technologies (server-side language, client-side language, web framework, database) thrown in together and the developer having to deal with their different models and concepts.
The company where I worked developed Opa (http://opalang.org) a single language for writing web apps. It unifies server-and-client coding in one coherent language that is translated to native code on the server and to JS on the client and the compiler handles all the communication between them. It has strong typing, which is also heavily used for security (essentially to prevent all sorts of injection attacks). Persistence (database) is also cleanly integrated.
Just different syntax? I don't think so...
(yes, of course there are competing similar approaches like node.js or, lesser known, Ur/web, but they are all cutting-edge and innovative and not just more of the same old).
You can't call it an ORM solution if the backend isn't a relational database. [...]
There's a reason why ORM in the title is between quotes:). What we did is took a database that, as Sarten-X pointed out, "is not intended for instantaneous and atomic validity". We then used the type-safety of the host language to ensure that schema-like constraints are respected by the application. We also made sure that we have a good mapping between the host language (Opa) data-types (also those defined by the user) and the DB representation, therefore allowing easy persistence of any program data. Opa and MongoDB are a good match here so that this "ORM" (no, it's not an ORM but it's a data-mapping between data representation in the language and in the database) is simple and natural. Finally we provided tailor-made syntax on top of all this, which makes it all look super easy and concise.
Just for the record: we (i.e. creators of Opa) don't claim we (re) invented the wheel. But we do think that what we provide is quite cool. And what that is?
easy mapping of all (including user-defined) language data-types into the database (so that it's easy to persist any that in your program),
a syntactic layer on top of that (so that it all look pretty & super easy) and
a strong type-checking of Opa on top of all this (to make sure that your data stays true to the "schema" declaration and that strong-typing guarantees extend to the persisted data)
Well, you may not care, but obviously some people do. Also if you rant something at least you could get your facts straight; the platform is not closed (it's open source) and it's not pay-only (the AGPL licence is free and so is the proprietary one for small and medium companies, see here and here)
http://opalang.org/faq.xmlt -> "What does Opa mean"
Hopefully the first page of documentation should answer what Opa is. As for the licensing it's a bit more complicated as we're in the process of changing it, but this blog post should give you the answers, I hope.
Aren't the basic programming concepts understood and defined now? All a new language can really bring to the table is a different syntax.
I absolutely don't agree with that. Let me take an example from the area I work in and know a bit about: web development.
Web development today is still extremely messy, with often a bundle of technologies (server-side language, client-side language, web framework, database) thrown in together and the developer having to deal with their different models and concepts.
The company where I worked developed Opa (http://opalang.org) a single language for writing web apps. It unifies server-and-client coding in one coherent language that is translated to native code on the server and to JS on the client and the compiler handles all the communication between them. It has strong typing, which is also heavily used for security (essentially to prevent all sorts of injection attacks). Persistence (database) is also cleanly integrated.
Just different syntax? I don't think so...
(yes, of course there are competing similar approaches like node.js or, lesser known, Ur/web, but they are all cutting-edge and innovative and not just more of the same old).
The term is used here in a broader sense of mapping between data representation in the programming language and in the database.
As someone who has downloaded this some time back and messed with it a bit, I do have to say it's kind of slick.
Glad to hear that :).
I had a few complaints about it early on, but it's evolving, though. Might be worth revisiting.
You should absolutely do that. We've come a long way since the beginning. And we're not done yet!
You can't call it an ORM solution if the backend isn't a relational database. [...]
There's a reason why ORM in the title is between quotes :). What we did is took a database that, as Sarten-X pointed out, "is not intended for instantaneous and atomic validity". We then used the type-safety of the host language to ensure that schema-like constraints are respected by the application. We also made sure that we have a good mapping between the host language (Opa) data-types (also those defined by the user) and the DB representation, therefore allowing easy persistence of any program data. Opa and MongoDB are a good match here so that this "ORM" (no, it's not an ORM but it's a data-mapping between data representation in the language and in the database) is simple and natural. Finally we provided tailor-made syntax on top of all this, which makes it all look super easy and concise.
Just for the record: we (i.e. creators of Opa) don't claim we (re) invented the wheel. But we do think that what we provide is quite cool. And what that is?
What's not to love? ;)
Actually it *was* dual-licence from the start. Moreover for some time MLstate offers proprietary licence for free.
Well, you may not care, but obviously some people do. Also if you rant something at least you could get your facts straight; the platform is not closed (it's open source) and it's not pay-only (the AGPL licence is free and so is the proprietary one for small and medium companies, see here and here)