[wp-hackers] alternative database support

Roy Schestowitz r at schestowitz.com
Sun Oct 8 15:20:29 GMT 2006


___/ On Sun 08 Oct 2006 12:20:18 BST, [ Matt Mullenweg ] wrote : \___

> Roy Schestowitz wrote:
>> Maybe it's worth inclusion in some FAQ under wp.org...?  Also, it's bound
>> to become a serious  problem from  a political  and a technical point  of
>> view.   I recently discussed  this  elsewhere,  also  in  the context  of
>> WordPress < http://tinyurl.com/s7kbt >. The sooner people get   
>> choice, the better, IMHO. Transparency is among one of WP's selling  
>>  points. *smile*
>
> More options does not make something better. With rare exceptions, the
> cost of the options often outweighs their benefits.


Your side in this debate makes perfect sense (in isolation), but  
please allow me to play devil's advocate. I know for a fact that I am  
not alone in this stance. This debate is also related to hidden  
options and preloading of functionality (with or without plugins).  
I'll present some counter arguments.


> WordPress doesn't do anything that fancy with the database. There is
> feature-comparable software driven purely by text files.


Very true, but these scale badly.


> I used to be fairly enamored with the idea of DB-independence, but then
> as I tried it I found the entire concept to be a farce. I have the same
> level of interest of making Oracle, Postgres, DB2, a part of core WP as
> I do having the program also run in Perl, Python, ASP, Ruby, and Erlang.


P/L's and DB's are very different. There are common interfaces for  
databases (e.g. SQL) whereas P/L's are more 'fluid'. There are also  
ambiguities that make transition/conversion a non-deterministic  
process. So while the comparison is convenient, research contradicts  
it. Languages are unified by their FSA's, but finding correspondence  
at a higher level is infeasible. Moreover, there are different  
paradigms and, contrariwise, while some databases are object-oriented,  
they preserve the same interfaces.


> It's theoretically possible, and even attractive if you imagine *how
> much larger* our userbase could be if we simply supported every
> conceivable server configuration, but at some point the costs add up:
>
> 1) Infinitely more complex testing (we have enough trouble with W/LAMP)


If you use the strategy pattern, then not only will you attain good  
modularity, but you will also make testing more 'distributable'.


> 2) Same for debugging


True.


> 3) Non-trivial overhead in code


If done tactfully, the effect of this can be mitigated.


> 4) Much slower development (WP Vista in 2008!)


True. But if you can expand/divide a team to work in a non-interfering  
fashion, then you never deal with 'code spaghetti'. Vista (formerly  
Longhorn), on the other hand, was scraped in October 2005 because the  
code was not modular. It still requires 60% of its entirety to be  
rewritten.


> 5) No visible benefits to regular users


"Regular" raises a brow. A more open set of options could appeal to  
more people who seek to integrate WP with something else. And there is  
also something to be said about security and monoculture. WP has had  
security breaches in the past.


> I will be the first to admit that it is entirely luck that WP happens
> to be attached to the most popular and fastest growing database in
> history, and written in the most successful server-side scripting
> language, but let's not throw away so lightly the benefits to
> development the luckiness in our platform choices provided.
>
> Lastly, as someone pointed out, $wpdb is structured as such that all
> the hard work could be done as a $wpdb replacement with some clever
> regex, with no core modifications. (Aka, a plugin.)
>
> The relatively mature WP ecosystem has generally shown that development
> closely follows market demand, where WP has lagged behind people's
> needs (image handling, tags) dozens of plugins have sprung up to fill
> the void.
>
> All that said, the one other DB I would see as interesting in the
> context of WP would be sqlite, simply because it is so small and light
> and simple that it could potentially be run in places where any normal
> DB system would be prohibitive, like a Linksys router. Also its
> bundling with OS X and a future version of Firefox (maybe?) opens up
> even more possibilities for the use of WP as a standalone desktop app
> for personal use and/or development. How small a desktop download could
> we squeeze a self-contained light web server + PHP + WP-sqlite into? I
> have no idea if that would actually work, but at least it'd be
> something compelling and different than anything easily available
> today. However now I'm daydreaming and we should probably start another
> thread if we're going to discuss that.


Okay, but here you seem to justify what earlier you described as a  
repellent route. This could develop to become akin to GNUzilla or  
IceWeasel, or forks like Flock or Swiftfox. I am aware of similar  
projects such as LightPress that emerged to address other types of  
demand. Maybe it's something worth thinking about... *smile*

Best wishes,

Roy

-- 
Roy S. Schestowitz, Ph.D. Candidate in Medical Biophysics
http://Schestowitz.com  |  GNU/Linux  |     PGP-Key: 0x74572E8E
http://othellomaster.com - GPL'd 3-D Othello
http://iuron.com - proposing a non-profit search engine


More information about the wp-hackers mailing list