The one thing I love on bbPress
The one thing I love on bbPress is: It is simple and fast. “Simple” means, its functionality is easy to understand and to use for a less experienced internet user and there are no features distracting from the one core thing in a forum, from that funny discussion thing. And “Fast” means, that the bbPress core is even faster than the rather minimalist PunBB on the virtual server I use bbPress on. These are the two “features” of bbPress I really want to see in the future.
The things I hate on WordPress
Following the current discussion reminds me on my own experience with the great WordPress blog software. I am a WordPress user since WP 1.5.x, and WP 1.5.x was the software making me a blogger. It was easy to use, had a clean and simple user interface for the blogger, could be extended easily and replaces my simple home-written system after one week of testing and comparing to s9y.
Now, I do hate my long ago decision for WP sometimes. The current WP version 2.8.x is bloated, slow and without a good caching plugin not well-suited for a blog with readers.
As an example, there is a tiny german blog filled by me and less frequent some other people. It is called “Blah”, and most of its postings are simply links to other internet resources, mostly political, conspirational and funny ones. Did I mention that the blog is called “Blah”?
It is not really a “successful” one, in the last six months there were approximately 2,000 visits per day, that’s not much. The “average visitor” requests five postings, and only one percent of them ever leaves a comment. The blog’s database contains 4,300 posts at the moment, that’s not much too. If I deactivate the WP Super Cache plugin, the server fails to handle that little load, the response time of the tiny blog grow to 30 to 50 seconds, the apache processes accumulates and finally the server runs out of virtual memory, giving visitors that funny “Out of memory” PHP error messages or a plain white page.
This is a situation totally unwanted for a bulletin board, which is a highly dynamic kind of website that can not be cached as easy as the less frequent views of a blog.
From bbPress 0.9.x to 1.0.x, the number of database queries to view the same page has nearly doubled, and the execution time has grown by approximately 60 percent on the same server. From the user point’s of view, it was exactly the same page, and bbPress is at the moment still performant enough to be better than any other bulletin board software. But from my point of view it remembers me to the things I experienced again and again with many new WordPress versions in the past, reaching the current point of a blog, which isn’t made to have more than a handful of readers. But for a WP blog, I can work around with WP Super Cache, for forums this approach is nearly impossible.
Some words about readers
I’m looking at the statistics generated from the apache logfiles of the Blah-blog for the last six months. It is a blog in german language, and of course most readers are living in Germany, less in Austria or Suisse, some in the Netherlands, Danmark, Belgium, Poland, Russia or Hungary too. These are not readers from the so called “third world”. (There is only one world, and we all have to share it!) In the last six months, 19 percent of the Blah-blog readers used an old dial-up modem connection to access it. (Identified by the rather speaking hostnames given in germany for that kind of connection I can identify, there may be some more readers with a low-bandwidth connection.) For this fifth part of my readers (which may be a representative value for other websites in germany too, but most people seems not interested in this kind of information), every use of large JavaScript magic which has to be loaded via a low-bandwidth connection gives an impression of slowness, and this is something I do not want to give them. That’s a reason for the rather minimalistic design of this blog.
Let me compare that 19 percent to another statistical number for the Blah-blog. 12 percent of all readers uses that fu… fine Internet Explorer 6.0 for surfing. (Identified by the user-agent string, which may be faked in rare cases.) The IE 6 is an old and ugly browser with many problems and a CSS box model interpretation giving a good headache to designers, and there are much better browsers out for free. But in many cases it is unwanted to exclude that 12 percent of website users or to give them a totally trashed design experience. It is also amazing, how many people are still using Windows 98 or ME or even Windows NT 4.0. I assume these people use rather old computers, still working for their personal requirements, so they don’t want to throw them to waste. Yes, there are people out there, which are poor and simply cannot spend a few hundred euros for new hardware every few years — me too. These are people I don’t want to exclude from any website I maintain, and especially I don’t want to exclude these from pages about political or cultural subjects. Every kind of bloat is wrong in my point of view.
(I use bbPress for a small forum on an uncommercial artists’ webpage, and it is great for that. This usage is my reason why I’m maintaining an inofficial german translation of bbPress, there is simply no language file for German at the moment, and not to share this work is stupid.)
Some words about the dashboard
The current bbPress dashboard is fine, it is aesthetical appealing, easy to use (compared to other bulletin boards’ backends) and fast even via a low-bandwidth connection and on a not up-to-date computer. It can be used with all browsers, and it makes all administrative tasks easy. The current WordPress dashboard sucks. It is unuseable slow with the Opera browser, and even with other browsers needs an enourmeous transfer of data and an long initialization time before one can do that simple thing which is blogging: writing a new post. If someone uses an older computer (older than five years), it is unuseable with any browser, and it is unbelievable frustrating to use via a dialup connection. And no, that “Google Gears” stuff does not help.) The huge amount of features are overwhelming for an unexperienced user, and for the little artists’ site (with eight authors) I still have to help some people for every post they want to blog. Since I had to upgrade that site to WP 2.8.x (it used 2.0.x and 2.3.x for a long time), the other authors hate me. Some of them are poor people. I recommend the usage of BlogDesk for them, but sometimes there are tasks which cannot be done with BlogDesk, as deleting an unwanted idiot’s comment or declaring a post as sticky (to announce an action, happening, exhibition, sound vernissage, reading, party, etc.). Since WP 2.8.x, the posting frequency of some co-authors is reduced to zero, and if I had the possibility for it, I would create my own WordPress fork (a DietPress for people who wants blogging without bloat).
And this is the way bbPress should avoid, in my opinion.
The bbPress of the future I want
bbPress is great! The bbPress core is good, and the features in an out-of-the-box installation are enough in many cases. But of course, there are things that could be improved, and there are many features often missed by people who wants a bulletin board. The probaly most wanted features are (list may be incomplete)
- eMail notification for new posts
- A kind of bbCode, which meets better the standard people expect in a BB software
- An improved editor, helping the user to do the wanted markup (may be bloaty magic WYSIWYG, but even eight buttons with a little JavaScript are better than nothing for the inexperienced user)
- An internal system of personal messaging (I hate it, but others love it)
- Attachment of files to a post
- Perhaps an avatar system independent from Gravatar
- An easy to extend user profile with additional informations
- A “who is online now” display
- Counters how often a post has been read
- A “terms of usage” statement which is required to be accepted by newly registered users
- An extended search with criteria as forum, tag, date range, username. (The existing search is better than the WordPress search, but I can still be improved. In a support forum with ten thousands of topics, it would be good to have the accumulated information more “findable”.)
- An interactive (and plugin-extensible and i18nable) help system for all core bbPress features, explaining the bbPress usage to inexperienced users and the concepts they cannot understand directly, especially tags. This is something I haven’t seen in any other BB software, but it is something really needed. It may even contain some words about netiquette…
- Perhaps a “widget system” similar to WP as a simple way to modify the order of appearance of the displayed entities without editing in themes
And of course, bbPress must remain performant, non-bloated and easy to integrate with WordPress. That’s a lot…
Many of these frequently requested features are not a good “standard” functionablity.
- The eMail notification is fine for spammers too. I am registered in some boards with this “feature”, and from time to time someone registers, writes spammy posts to various topics and the BB software dutifully and reliable sends that spam to a lot of users, before a moderator can do something. That’s why I am deactivating it always — one day, I received more than 100 mails “from my favorite forum”… aaargh!
- An over-improved editor slows down the forum for people with old hardware and makes the forum unusable for blind people with their strange solutions for surfing. (Yes, some of my “readers” are blind.)
- Personal massaging is a poor reinvention of good old internet eMail that sucks. For someone active on various boards, he has to check it messages in many places, which is ugly.
- An extended user profile is exactly the thing spammers want. The links in approximately 5 percent of my eMail spam are going to user profiles in bulletin boards, which are misused in many ways.
- Every upload possibility to the server can be a security problem, can be used by spammers to put spammy graphics in the internet or can consume execessive hard disc space on the server if heavily used.
But of course these features are wanted in many cases.
We should have a bbPress slogan for all future development. My suggestion is: Let’s make simple things easy, and let’s make complex things possible.
Learning from that part of WordPress which sucks means: Doing it better in bbPress. The core system should kept as a small one, perhaps a little smaller than the actual core. (The current user profile is sometimes unwanted.) And all additional features should be implemented in plugins, that a forum administrator can activate and configure as needed.
Core Plugins
But plugins are a huge problem too. Using a plugin indenpendent from the core system means: Making the update of bbPress to a new version sometimes to a migraine upgrade, whenever the needed plugins do not work with the newer version. Sometimes, I have this problem with one of my sites based on WordPress. And if the plugin’s functionality does require editing in the themes, it excludes less-experienced forum-administrators with a lack of PHP knowledge from using the plugins, which is not exactly the way to make complex things possible.
So there should be a set of plugins which are part of the bbPress release, which are developed together with the core system, let’s call them “core plugins”. It is not required to activate them to have a simple and basic bulletin board, but if someone do so, he will never have problems with upgrades. The “core plugins” are guaranteed to be delivered and to work with every release version and every security fix ever released. We have this kind of “core plugins” already, bozo users and Akismet. But it is a concept to be extended. A better post editor, a “terms of usage” page, a PM system, an internal avatar system, attachments to posts and all the administrative stuff around these features are good candidates for “core plugins”. If someone does not need them, he does not activated them. But if someone activates them and only them, this will never make the next bbPress release to a upgrade hell.
There may be bbPress-tags which are implemented empty if a core plugin isn’t activated, to make it easy to program the default theme and any other theme independent from the activated set of “core plugins” and without that sucking lines of if (function_exists ('bb_great_feature')) bb_great_feature ();
. This kind of interface can be defined long before the “core plugins” are stable, and it can be documented for theme developers to allow them making their themes future-proof. (Oh yes, we need some good themes, the default one is fine, but some people want a richer selection.)
The bbPress features eighty percent of people want can be implemented in “core plugins”. Simple things will be easy. And if someone wants a small bbPress, that’s easier, he simply does not need to activate any “core plugin”. And there is still a plugin interface which makes complex things possible — sometimes a little editing in themes is required, but most people never needs to do so.
That’s the way bbPress should go, in my opinion.
(It may be a way for the future of WordPress too. But that’s not the topic here, and the WP developers do their work for a huge community of users and simply cannot change earlier decisions easily.)
And excuse my english. My poetic german is much better… and shorter.