![]() | |
#51
| |||
| |||
|
|
This is a good idea, IMO. From where I sit, it would be much more beneficial to have an ORM layer between Ruby on Rails and the MV database so that the RoR programmers could access the MV data via Active Record. |
#52
| |||
| |||
|
|
John's note above about Ruby represents an example of what I was talking about with language bindings to existing MV databases.... *So ... we start with MV, create an API, implement it in a PHP class library. *Now we have something like Item = New MVItem() in PHP, and Item.DCount() to get the number of attributes. |
#53
| |||
| |||
|
|
Let's say we entertain the idea of a Ruby or PHP interface to MV. I invite you to go back to look at my notes about the API for MV, implemented in any number of languages. Well, once you've implemented the API, it actually doesn't matter anymore if the back-end is MV or not. So ... we start with MV, create an API, implement it in a PHP class library. Now we have something like Item = New MVItem() in PHP, and Item.DCount() to get the number of attributes. Now we don't even need the MV DBMS : someone who is really fond of MySQL or delimeted files or Amazon SimpleDB can use that class library and refit the |
|
"frosty" wrote: This is a good idea, IMO. From where I sit, it would be much more beneficial to have an ORM layer between Ruby on Rails and the MV database so that the RoR programmers could access the MV data via Active Record. I get frustrated that a good idea like introducing MV to PHP people gets confused with writing an MV DBMS in PHP. If that can be taken off the table the discussion would be much more reasonable. John's note above about Ruby represents an example of what I was talking about with language bindings to existing MV databases. While I appreciate the value of an ORM tier, if I'm understand you properly John, I'm thinking that ORM ~= MVC and since that abstracts the Model from the View, your ORM interface would be completely abstracted from the DBMS. In other words, sure, so the ORM with Ruby or PHP or any other language, then you're working with business objects, not databases. So behind the ORM, at the DAL tier, it doesn't matter what the DBMS looks like, how it's accessed, or even what languge is used. Let's say we entertain the idea of a Ruby or PHP interface to MV. I invite you to go back to look at my notes about the API for MV, implemented in any number of languages. Well, once you've implemented the API, it actually doesn't matter anymore if the back-end is MV or not. So ... we start with MV, create an API, implement it in a PHP class library. Now we have something like Item = New MVItem() in PHP, and Item.DCount() to get the number of attributes. Now we don't even need the MV DBMS : someone who is really fond of MySQL or delimeted files or Amazon SimpleDB can use that class library and refit the back-end with a different platform. So your MVFile.Open("name") method may create a handle to a MySQL table, or provide access to an Amazon datastore. People who specialize in each back-end can enhance the back-end code for their platform of choice - as long as they don't coerce the MV API with platform-specific dependencies. The goal of introducing MV to non-MV people is accomplished without requiring them to use MV. If they want a "real" database behind the functionality, they can swap out the back-end, try whichever MV platform they wish, and not have to change any of their PHP code. Is that a plan which keeps all sides happy? I'd be happy if a consortium of the MV DBMS providers would fund that project (it is after all designed to introduce a new mainstream world of developers to the MV platform where companies are struggling to maintain profitability). I'd be happy to run it and coordinate all development - as long as I can feed my family in the process. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula R&D sells Pick/MultiValue products worldwide, and provides related development services remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! http://Twitter.com/TonyGravagno |
#54
| |||
| |||
|
|
On Mar 13, 4:11 pm, Tony Gravagno address.is.in.po... (AT) removethis (DOT) com.invalid> wrote: John's note above about Ruby represents an example of what I was talking about with language bindings to existing MV databases.... So ... we start with MV, create an API, implement it in a PHP class library. Now we have something like Item = New MVItem() in PHP, and Item.DCount() to get the number of attributes. IMO, language bindings, or an API, that gives you MV functionality such as Read, Extract, Insert, DCount, etc, work against the power that's built right into the MV database. You really only need one thing; The ability to call subroutines and have them return the data in a format such as XML or JSON. It doesn't need to be dictionary driven or marked-up; Arrays of arrays will work just fine. Don't encourage people to just pull data from MV files and manipulate it in a MV type fashion using their chosen language. Use the power of a MV system and keep the business logic there. Most MV products have libs that will let you call subroutines from other languages, so you're already half way there. Add the interfaces for popular technologies such as PHP, and Bob's your uncle. -- Kevin Powick |
#55
| |||
| |||
|
|
But there are millions of programmers who don't know how to use the Power |
#56
| |||
| |||
|
|
Tony Gravagno wrote: John's note above about Ruby represents an example of what I was talking about with language bindings to existing MV databases.... So ... we start with MV, create an API, implement it in a PHP class library. Now we have something like Item = New MVItem() in PHP, and Item.DCount() to get the number of attributes. |
|
IMO, language bindings, or an API, that gives you MV functionality such as Read, Extract, Insert, DCount, etc, work against the power that's built right into the MV database. You really only need one thing; The ability to call subroutines and have them return the data in a format such as XML or JSON... |
#57
| |||
| |||
|
#58
| |||
| |||
|
|
You can then purchase this utilities from Google Checkout atwww.u2logic.com/tools.html. |
#59
| |||
| |||
|
|
IMO, language bindings, or an API, that gives you MV functionality such as Read, Extract, Insert, DCount, etc, work against the power that's built right into the MV database. You really only need one thing; The ability to call subroutines and have them return the data in a format such as XML or JSON. It doesn't need to be dictionary driven or marked-up; Arrays of arrays will work just fine. |
|
Don't encourage people to just pull data from MV files and manipulate it in a MV type fashion using their chosen language. Use the power of a MV system and keep the business logic there. |
#60
| ||||||
| ||||||
|
|
You are not going to retrain millions of RDBMS people to start thinking of database interaction in terms of MV constructs and syntax. They certainly aren't going to use such syntax to talk to relational databases as Tony eluded to with the idea of these MV type language bindings adapted to SQL type databases. |
|
Add to this that in a multi-tier / MVC world, one really shouldn't be opening files and reading records at the user interface level. |
|
However, if to manipulate and work with MV you get these same people to work inside of MV, you expose them to the true strength of the platform and leave the heavy lifting where it should be. |
|
Having said this, I doubt the concept would fly. Many RDBMS have powerful concepts such as views, functions, triggers, RI, and stored procedures. Yet, you would be surprised how many developers do not use or even really understand them. -- Even those that only target one SQL platform. |
|
Also, don't forget that many MV products already have exactly the language bindings being talked about. jBASE, QM, D3, Universe, Reality. They've all had them for a long time. Even though they are MV platform specific, they have done little to convert the great unwashed to MV. |
|
All they have done is allow MV developers to use many of the tools and technologies available to the general development world. That is not likely to change anytime soon. |
![]() |
| Thread Tools | |
| Display Modes | |
| |