New Opa S4 Release Puts Forward New 'ORM' For MongoDB
phy_si_kal writes "The new, open source, Opa web programming language just hit version 0.9.0 'S4,' six months after its last major release. Apart from a new syntax more similar to JavaScript, the new release focuses on mongoDB integration. Opa now features something similar to object-relational mapping (ORM) except that mongoDB is a non-relational, document-oriented database and Opa a functional, non-object-oriented language. The new functionality makes the NoSQL database even easier to use, as all language-database calls are automated. The mapping of functional datastructures to documents could even be much better than current ORM approaches and solve the object-relational impedance mismatch."
Sherrif Bart first man ever to whip Mongo. Mongo impressed.
http://www.youtube.com/watch?v=b2F-DItXtZs
...interesting things happen. I have always felt that the object-relational impedance mismatch was a mental block holding back the redevelopment of something we actually used to have (integrated programming tool/database platforms - look at things like D3, Cache/MUMPS for example).
Now, we know we can separate the representation of data in a database from the data itself, but the two can look identical, with a middleware as the go-between between the programming tools and the database. Or they can co-habit.
It doesn't matter what you call it, but I like it.
My dream environment = perfect representation of data in flexible/dynamic objects in a programming language, disconnected or connected to databases with nearly identical, flexible and dynamic data model representation, with a powerful query language (SQL-like), the scalability of the new generation of shared-nothing architectures, simple connectivity options (simple sockets all the way up to REST) and the reliability of a relational database's ACID properties.
It feels so close!
So sad that my Opa died before he got to see this software project in his honor...
acronym overload, somebody call AAAAAAAAAAA!
Media that can be recorded and distributed can be recorded and distributed.
-kfg
In a number of languages, especially European ones, "mongo" is a slang word referring to mental retardation. This is due to "mongoloid" being a common term for Down syndrome in the past.
When the hype was first building up around NoSQL databases a few years ago, some German and Dutch co-workers of mine burst out laughing in a meeting when somebody else mentioned MongoDB. To them, the database was basically named "RetardDB".
This is interesting.
What strikes me though is the stuff about ORM and how this isnt ORM, like its some new fangled way to use a database that nobody did before.
Here's the thing. You can do this in any language. yes this opa language has some simple syntactic sugar to make it super easy to use a database (as long as its a NoSQL one like mongo). But you can access a database without an ORM layer in any other language too.
Thing is, with OO languages, people assume you have to do everything with objects. Its there, I gotta use it! Right? I have this lovely hammer and it smashes real good, therefore I will smash screws with it! And I will smash apart wood sheet into sections! Never mind that screwdriver and saw over in the corner.. I have hammer!
So somebody makes a non-oo language that accesses a database with simple records and everybody thinks its a new and novel thing..
(don't get me wrong, the language looks interesting, I just think its funny how people look at things and run off half cocked without thinking first)
-- Senior Software Engineer, Attorney appearance services, locallawyerapp.com.
TDF works nearly as will using WP-88 on he EIEIO
I didn't RTFA but it sounds double-plus ungood to me, Help me not it will...
"I say we take off, nuke the site from orbit. It's the only way to be sure."
You can't call it an ORM solution if the backend isn't a relational database. Where are the relations? There aren't any. There's just documents. Not an ORM. This is not 'Nam, there are rules.
Moreover, this has nothing to do with the actual problem. The reason MongoDB et. al. are gaining steam is precisely because there are these "web scale" morons running around ignoring real problems like data validity in favor of starry-eyed dreamland problems like scalability. You can write nice happy OO-like bindings to any document store and make the same claims.
The actual problem underlying the O/R mismatch is that the relational database is a high-level, declarative tool. How do you wrap something high-level in something low-level? You don't, or you reimplement 90% of it. The ORMs that make egregious assumptions and overcomplicate things are the problem (I'm talking about ActiveRecord and Hibernate). There are other, better ORMs which work because they have an appreciation of the difficulty of the task and actually attempt to bridge the gap (yeah, SQL Alchemy).
The problem is overhyped and so is the solution.
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.
http://opalang.org/
I had a few complaints about it early on, but it's evolving, though. Might be worth revisiting.
"Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth
If MongoDB is not a relational database then how on earth can it suffer from object-relational impedance mismatch?