Re: Metabase Opinions

From: Date: Wed, 04 Apr 2001 01:56:51 +0000
Subject: Re: Metabase Opinions
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-46940@lists.php.net to get a copy of this message
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

« previous php.general (#46940) next »