WordPress is a Mess
« previous entry | next entry »
Jan. 5th, 2006 | 05:19 am
mood:
irritated
A few weeks ago Phil Ringnalda posted to say that WordPress 2.0 would ship with Atom 0.3 feeds. Atom 1.0 (RFX 4287) has been done for a good five or six months. Sam Ruby gave notice in July that 0.3 feeds would receive warnings from the feed validator.
It's okay to not be on top of things, but a bug was filed in July. It's still not fixed, despite recent patches. That's bearable, but marking it as an enhancement instead of a bug seems ridiculous.
The Trac argument makes me wonder who is an actual dev and who isn't. I still don't know how to tell, but I'm pretty sure matt is the same Matt posting in the dev blog.
Anywho, I decided to take a stab at fixing the self and alternate links in the current patch. I'm appalled by the code. There's no comments. The documentation is sparse and out of date. Almost everything is a function (who needs objects?), and all files are included (mmm, namespace pollution). There's three classes in one file (aptly named classes.php). Many functions are idiosyncratic. For example,
I spent quite a few hours writing a new function that generates the prettiest possible URL for a set of query parameters.
http://wp-install/?year=2006&monthnum=01&day=04&feed=atom
is converted into:
http://wp-install/2006/01/04/feed/atom/
(assuming the permalink format contains %year%/%monthnum%/%day%)
The function is big and ugly because there's a bunch of different, task-specific, permalink formats. For example, you can search for 'foo':
http://wp-install/search/foo/
or view all posts in category 'bar':
http://wp-install/category/bar/
and you can combine the two queries to search for 'foo' within category 'bar'. However, neither intuitive form is correct. You have to fall back to a query string:
http://wp-install/search/foo/category/bar/
http://wp-install/category/bar/search/foo/
http://wp-install/?s=foo&category_name=bar
Plugins can define new rewrite rules. I have no idea how to handle them in my function because they're completely unpredictable. The only reason for this (that I can think of) is to allow people to customize their permalink URLs. When was the last time you felt a burning need to do that?
I've previously heard that the WordPress team failed to release security updates, even when a patch was provided and exploits were being used in the wild. If nothing else, they encourage you to make much of your installation writable for the server, and give commands to make it writable to anyone on the machine (
I never want to look at WordPress again. It works, but it doesn't even try to be good software, as far as I can tell. Here's what I look for:
I'll use Typo. It could use work, like all software, but at least I don't feel like stabbing myself in the temple when I look at it.
It's okay to not be on top of things, but a bug was filed in July. It's still not fixed, despite recent patches. That's bearable, but marking it as an enhancement instead of a bug seems ridiculous.
The Trac argument makes me wonder who is an actual dev and who isn't. I still don't know how to tell, but I'm pretty sure matt is the same Matt posting in the dev blog.
Anywho, I decided to take a stab at fixing the self and alternate links in the current patch. I'm appalled by the code. There's no comments. The documentation is sparse and out of date. Almost everything is a function (who needs objects?), and all files are included (mmm, namespace pollution). There's three classes in one file (aptly named classes.php). Many functions are idiosyncratic. For example,
function get_category_rss_link($echo = false, $cat_ID, $category_nicename). $echo has a default value, but is at the beginning of the parameters. Additionally there's a bloginfo() versus get_bloginfo() that differentiates between echoing and just returning a string. $category_nicename isn't even used. Input filtering is done all over the place, despite heavy use of an apply_filters($tag, $string). The $tag types don't seem to be documented or tracked.I spent quite a few hours writing a new function that generates the prettiest possible URL for a set of query parameters.
http://wp-install/?year=2006&monthnum=01&day=04&feed=atom
is converted into:
http://wp-install/2006/01/04/feed/atom/
(assuming the permalink format contains %year%/%monthnum%/%day%)
The function is big and ugly because there's a bunch of different, task-specific, permalink formats. For example, you can search for 'foo':
http://wp-install/search/foo/
or view all posts in category 'bar':
http://wp-install/category/bar/
and you can combine the two queries to search for 'foo' within category 'bar'. However, neither intuitive form is correct. You have to fall back to a query string:
http://wp-install/?s=foo&category_name=bar
Plugins can define new rewrite rules. I have no idea how to handle them in my function because they're completely unpredictable. The only reason for this (that I can think of) is to allow people to customize their permalink URLs. When was the last time you felt a burning need to do that?
I've previously heard that the WordPress team failed to release security updates, even when a patch was provided and exploits were being used in the wild. If nothing else, they encourage you to make much of your installation writable for the server, and give commands to make it writable to anyone on the machine (
chmod 666).I never want to look at WordPress again. It works, but it doesn't even try to be good software, as far as I can tell. Here's what I look for:
- Features
- Clean interface
- Standards compliance
- Security
- Good software design
I'll use Typo. It could use work, like all software, but at least I don't feel like stabbing myself in the temple when I look at it.
AmIDevOrNot?
from:
weblog.philringnalda.com
date: Jan. 6th, 2006 06:24 am (UTC)
Link
Reply | Thread
Re: AmIDevOrNot?
from:
nikolasco
date: Jan. 6th, 2006 07:10 am (UTC)
Link
Reply | Parent | Thread
(no subject)
from:
trs80 [typekey.com]
date: Jan. 11th, 2006 01:31 pm (UTC)
Link
Reply | Thread
WordPress Development Model
from: anonymous
date: Jan. 20th, 2006 02:05 pm (UTC)
Link
Reply | Thread