This is a rather long and rambling post so don't worry if you get lost...even I did at times.
Yes, the official word is, I am insane. It might be the hormones from having a baby and nursing and post-partum depression all mixing into one big pack of weirdness, or it might be the fact that I'm basically ignored at home unless the people there need something.
[rant relevance="unimportant" subject="family"]
Do you know what I got for mother's day from my husband? Nothing - not even a damned card. The only reason I got anything at all is my older two boys are in school and they do projects. But I suppose all a wife is good for is sex, housecleaning, childcare, laundry - heaven forbid we have brains and needs and.... oh heck that's another subject entirely and I don't have the energy to be ranting right now (especially since it will get me crying again.)
Ahem....the reason I'm insane is I've tentatively decided to fork wordpress (don't laugh too hard now). I've never really gotten heavily involved in wordpress development - my one claim to fame is my database backend hack. I considered helping out but after seeing how the few fixes and such I did submit were received...let's just say I was less than impressed. However, I do visit the forums and mailing lists and see what's going on - even jump into #wordpress occasionally. Have to keep my nickname registered...
I'm not the only one who wonders at the path wordpress is taking. The blogosphere (what kind of a stupid word is that...but descriptive) has several examples of active developers cutting out. I was reading through the feature request list and was a bit astounded at the things they leave in, and the things they claim "no one wants"... That's when they leave reasoning at all - usually they just get wontfixed or closed uncerimoniously (how much time would a three sentence explanation take?) I think it's more the leads have some kind of specific goal. Which is fine, but lets be truthful. And there's no roadmap, no forward route for wordpress on display. I suppose my beef is lack of transparency in the way wordpress is developed and driven. Decision making is less benevolent with user input and more like absolute control. And anyone who's actually LOOKED at the wordpress code dies of laughter every time they read that "code is poetry" line - if code is poetry, wordpress is at about nursery rhyme level. Not that it isn't useful or anything - it's just...spaghetti? disjointed? crufty? Is that a word?
Yeah, I have three million other unfinished project laying around I should work on (Kalfu anyone?) but whether I'm just too dang lazy or whatever I haven't felt up to it lately. Anyway - so I'm going to fork it...errr... spork it? Because I doubt there will be a whole lot left of the original by the time I'm done. Why? I like OO. Don't look at me like that, I know it's php and currently supports the 4.x branch yet. I don't. You know, the last time I wrote any 4.x code was when I was helping out with html_ajax. And before that, I hadn't touched it since the first 5.0 beta came out. That was in (jeez I have to look it up)... June of 2003 - YIKES - that means I've been doing 5.0 for almost three years! No wonder I can't code for 4.x anymore.
I know people are gonna whine about "hosters don't do 5.1 yet" - bullocks - you aren't looking in the right place. Besides, large scales hosters aren't going to upgrade until people grouch enough - people won't grouch enough until there are "killer apps" for 5.1 and up - I'm not going to chicken and egg the problem by supporting 4.x because hosters don't support it yet? Gah, that defeats the purpose.
Anyway - I don't like procedural code that much. It's quick and dirty but scales like crap. Not in terms of performance, mind you, but extensibility and upkeep (hides from all procedural nuts with their sharp barbs). At least that's my experience with it. And wordpress currently IS moving stuff over to OO, and then wrapping functions to call methods. That's just ...sad.
Then you have the multiblog fights. There's the camp that claims multiple seperate databases are the only way to go (wordpressmu anyone?) and the camp that says blog ids are better (the lyceum fork) but why doesn't wordpress have that functionality by default? And why choose between the two? it's the difference between multisite (basically multiple sites run off one installation with a central admin area a la gallery) and mutliblog (multiple blogs on a single site with a central admin area) - I like both.
So - here we go. I'm just calling it spork for now because I don't want to hurt my head coming up with some brilliant beautiful name and whatever. My current goals? Well the backbone of the system is the db, and the db - let's just say they use a really sad old version of ezSQL and only support Mysql with all its Mysqlisms. So a light db layer, here we come.
NO no, no adodb (my gosh that thing is enormous!), no pear::db (it's deprecated anyway, people), no pear::mdb(2) (that one's a bigun as well). Something roughly based on the new pdo architecture (no I'm not fond of it either but some things I'm not going to fight) that also incorporates some data dictionary style work. I'd like to rip out that query class as well and do some kind of persistent object style layer - we shall see. One step at a time.
So a summary:
1. Fork wordpress - tentatively named spork for lack of imagination.
2. Get a decent db layer underneath, normalize le db schema and fix blantant mysqlisms in queries.
3. Future plans - move it OO as much as possible, multiblog and multisite it, let's NOT expose the whole kit and caboodle to template developers (templating a la savant possibly with the option of using different template systems with a pluggable stream), some more advanced http caching, a pluggable object cache mechanism, and my personal baby, autoupdating using ftp, sftp, or scp as well as server writable for you lazy people. Thats a LOT (blinks) and I have an even longer list currently laying on my harddrive. Including mvcing it for fun...
For now I'm using simpletest for some unit testing as I change junk (I'd like something simpler but eh...) I'm not wanting to write a whole testing framework - zounds that would suck. I swore I saw a simple assert based php system. Maybe I'll go digging for it again.
Well that's all for today. I need to do laundry and run to the pool and get gas and go to the bank and make a grocery list for tonight and go get the second half of the plants for the garden and (*deep breaths*). So I'll post a bit more tomorrow as I get into the code some more (I'm still recovering from my initial overview)