Hello,
John Lim wrote:
>
> Hi Jason,
>
> Metabase is a library that tries to hide 99% of the differences between all
> databases. In that sense
> it is a thick abstraction layer.
>
> The other school of thought is to provide a thin layer that doesn't do very
> much so that it runs fast.
That is yet to be proven. The truth is that in most cases, the real
bottleneck is the communication between PHP and the database server and
the actual queries that run there. If you really believe that the you
gain a lot by not adding the database abstraction features that Metabase
offers, maybe you need to run some tests yourself to prove that any
extra thickness that may attribute to Metabase really make it noticeably
slower.
> PS: ADODB is modelled on Microsoft's ADO, so it's popular among converted
> ASP programmers. If you
> one of these people, ADODB might be attractive to you.
Metabase was modeled after the real needs of Web programmers that need
to develop applications that may run different databases on different
platforms, not just Microsoft's.
Microsoft designed ADO because they realized that ODBC was too limited
to be useful to develop portable applications. Some day they will
realize that Web applications need more than they are abstracting with
ADO and invent yet another API that supports the abstraction features
that ADO doesn't.
Metabase was pioneer in providing highly desirable features for Web
developers like database schema management, database independent
sequences (auto-incremented unique identifier numbers), selecting a
limited range of rows (LIMIT start,limit), etc... For that Metabase has
been a source of inspiration of some PHP database abstraction packages.
Metabase was only released publically after 1 year of private
development when it was already supporting many of the most popular
databases. This is important because it means that it is not susceptible
to API changes that may break the compatibility of the applications that
developers that adopted Metabase may write. This means that Metabase is
a mature package that developers may trust right now as it is.
All this to say that I suspect, that some day, when other PHP database
abstraction packages reach the level of maturity of Metabase, they will
provide the same features that Metabase offers now, despite the
criticisms of those that decided to go their own way and develop their
own database abstraction packages despite they knew Metabase when they
start.
For this I regret the fact that unlike other languages like Perl, Java,
Python, etc.., PHP suffers of not being known as a language that has a
good standard database abstraction package, despite we know that is not
true. Be sure that some developers do not adopt PHP because of that.
It's a shame that a lot of people, including PHP core developers, fail
to reckon that this lack of unification constitutes a real loss of
credibility for PHP as a serious Web development language. The solution
would be to unite forces and merge the development of one and only one
database abstraction package, but unfortunately there seems to not be
will to move in that direction. :-(
Manuel Lemos
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]