[wp-hackers] Discussion About BackPress

Michael D Adams mikea at turbonet.com
Fri May 23 22:21:18 GMT 2008


On May 10, 2008, at 7:52 PM, Jacob Santos wrote:

> It appears this discussion is hot on the bbPress forums, and  
> mailing lists. I do not subscribe to the bbPress forums/mailing  
> list and would rather not be part of that community at this time. I  
> was wondering if anyone has heard anything about it, the history  
> behind it, and where the future is going.

History:

WordPress and bbPress share a good deal of code and it's a huge pain  
keeping everything in sync.  The original idea was to have code that  
both apps drew from (ideally as an svn external to eliminate sync  
issues).

That lead to the idea that perhaps BackPress could be a sort of  
backbone on top of which people could write real applications.  You'd  
get a DB class, user/authentication system, convenience functions,  
sanitation functions, or any subset thereof.  All would be compatible  
with how WordPress works making for better integration/portability  
with other apps in the "family".

Most of the code was lifted straight from WordPress or bbPress.  That  
is to say, most of the code was put into BackPress in such a way as  
to make it easy for bbPress/WordPress to use BackPress.  To date,  
there has not been as much focus on how to make BackPress itself a  
solid piece of code or on how to make BackPress useable by other  
(future or current) real world apps.


Future:

bbPress trunk is running off of BackPress right now, though I don't  
know when the first based-on-BackPress bbPress release will be.   
WordPress just got it's first taste of BackPress in the tweaked  
WP_Scripts and new WP_Styles code.

As one of the main contributors to bbPress, I'd like to see WordPress  
use more of BackPress, not because I think it's good/bad/better/worse  
code, but because it will make my life easier.  That's not the best  
reason to switch WordPress to BackPress, especially if people think  
the code is terrible.  If we did make the switch, though, there'd be  
a lot more attention and eyes or BackPress to make it better.

It will take a significant but not unrealistic amount of work to get  
WordPress using BackPress.  Having two apps using BackPress would  
also show us better where integration issues arise.

To have any substantial future, BackPress needs a thorough beating by  
people like yourself. Additionally, it's never been used to build a  
new app, only to consolidate code between two existing apps, so it's  
hard to say if it worth its salt in its current state or what, if  
anything (and I'm sure there are many anythings), needs to change in  
order to get it to a useful state.

Right now, it's "these are some sacks full of functions".  The only  
advantage BackPress' current classes give over WordPress' current  
code is better portability between apps (and the ability to do some  
small extensions on top of them).  Most of the classes are meant to  
be instantiated once ever; really they're there for "namespacing"  
purposes.

In the end, I don't much care if the code is pretty or ugly or  
whatever, as long as it's useful.  I'm not by any means making the  
claim that it's currently useful :).  I can say that it functions  
(though again note the limited scope in which it's been used so far).

> The repository. Well, it is difficult to talk about a product that  
> is in the early works. I know from my past projects that most of  
> the work didn't come together until towards the end, so I can  
> understand that saying, "It sucks!" does nothing to further the  
> thought process going on with BackPress, (it does remind me of a  
> project I've seen on the IRC chat and that project was equally  
> terrible).
>
> Food for Thought:
>
> Objects Design is not so simple as throwing a bunch of functions  
> together into an object and calling them methods.
>
> Class Patterns are there for a reason, to get past the limitations  
> of language design to improve the work flow of the component's design.
>
> The desire to keep an object small is logical from the fact that  
> once the object is initiated, the methods, and data must be stored  
> in memory during the duration that the object is in use. (This  
> might not be true of PHP, but it is of at least other languages, so  
> one could assume.)
>
> One problem I've seen with other applications in their usage of  
> objects is that they either separate everything and build off  
> dependency off dependency, creating something that goes so deep it  
> is almost impossible to comprehend the work flow and impossible to  
> easily change anything without complete redesign/restructure.
>
> The second problem is that once a bad design is locked in, it is  
> then impossible to change because of backwards compatibility issues  
> happen.
>
> I'm no expert with object software design, but over the years of  
> making more than my fair share of mistakes, I've learned a thing or  
> two.

As does BackPress, your critiques suffer from over abstraction.  Can  
you point to specific examples that give you the "It sucks!" reaction?

BackPress no doubt suffers from over abstraction, under abstraction,  
just plain bad abstraction, and any other name for "bad code" you can  
come up with.  It also suffers from a major lack of documentation  
(though, as you note, it's early).

I'd really value your input and, in particular, any contributions you  
want to make.  We can start a new mailing list for discussion, if  
that'd make things easier.  I also just realized that the trac  
instance for BackPress requires authentication for anyone to even  
view it.  Lame.  I'll open that up so things are more transparent.

Mike


More information about the wp-hackers mailing list