Created
December 23, 2011 20:40
-
-
Save katanacrimson/1515305 to your computer and use it in GitHub Desktop.
why phpbb failed
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
why phpbb has failed the open source movement | |
in response to the daydreaming present in http://www.phpbb.com/community/viewtopic.php?f=64&t=2143698 | |
note: this is from the standpoint of the everyday admin, running 3.0.x - changes already patched into 3.1.x are not taken into consideration as they are not readily available for public use. if you want pending changes considered, get off your ass and get a release of 3.1.x out. | |
--- | |
issues | |
- contributing | |
pain to contribute due to systems being heavily fractured | |
patch process: | |
- (proposed change, RFC only) discuss the need for the RFC on phpbb.com | |
- (RFC only) discuss the RFC, specific implementation issues, design, etc. on area51 | |
patch can be mired in political BS for absurdly long, causing frustration for the contributor and eventually abandonment | |
- create a topic branch on their own fork on github | |
- format commits with [phpbb3-ticketid1234] and so on for the topic branch | |
why not link to the issue you're trying to fix directly? the commit should summarize changes /of the commit/, not reiterate the issue you're working on | |
- link to the topic branch on the JIRA bugtracker | |
yet another system to login into | |
constantly unresponsive, slow | |
ignores already provided systems (github issues) which is already integrated and supports most of the features necessary for contribution | |
count it. three, or even four separate services to log into, post stuff on, commit to, open new issues on, etc. to just open a patch which fixes a small issue. | |
the contributor is likely to say "screw this" and find something else more worth their own time. | |
- design | |
- integration | |
integration ends up being a nightmare due to lack of namespaced code (neither php 5.3 nor PEAR namespacing is present) for functions, classes that are defined | |
causes issues with conflicting function naming, conflicting behaviors of similarly named functions between softwares being integrated together | |
ex: mediawiki + phpbb, "user" class is defined in both, but is nowhere near the same. | |
the whole "you want a cms, get a cms" argument becomes moot when you take the time to realize that it either means the user ditches phpbb, has to use two systems with separate logins, or has to bridge them together (which usually isn't reliable because of aforementioned integration issues) | |
- organization (or lack thereof) | |
includes/functions.php - that's all. speaks well enough for itself. | |
code duplication for JS code between styles, admin panel styles, etc. | |
moderator control panel is a nightmare, still. | |
- proprietary design | |
all javascript-based functionality still uses home-brewed javascript (with everyone's favorite workaround basis, browser detection) ....y u no jQuery. seriously, it's not 2003 anymore. jQ uses feature detection, unifies support for most javascript functionality and offloads browser JS bug issues onto someone else | |
mods are designed using MODx install files and require manual modification of core files. zero hooking functionality for simple behavioral modifications is present, /still/. | |
- efficiency | |
lazy-loading, dependency injection, and autoloading are not very well leveraged for minimizing memory use and processing | |
it is also impractical to lazy-load+autoload due to the lack of an organized codebase | |
javascript, css files are not provided in both a minified and unminified state, requiring more bandwidth+server time to transmit a bunch of comments and whitespace that no average user actually cares about | |
style.php for serving css dynamically. y u no generate static css files and serve that instead. seriously, let's pack on the sql queries. | |
- file modification monitoring | |
due to the current nature of having to modify core files to modify behavior, users can't simply lock down all files to the "natural" state and use checksum verification (using vendor-provided checksums) of core files to detect any security breaches | |
also applies to code signing - phpbb cannot be distributed using an openssl-signed phar because of the common need to modify core files (and because there is no autoloading, one cannot simply provide a "new" file in another autoloading path) | |
- user friendliness | |
moderator control panel lacks a lot of functionality for mitigating spam - cannot dump all of a user's posts, remove a signature, clear profile details, etc. without an administrator doing so (which proliferates forum spam) | |
constant functionality duplication in ACP | |
zero openid or unified external login functionality in core | |
generic confirmation messages. "Would you like to continue with this action?" == "Okay, I've deleted fifteen thousand posts just now. I hope you enjoy the panic attack that will occur in three minutes, because you weren't provided with a useful confirmation message that would let you figure out that you clicked something you did NOT want to click) | |
- community | |
- generic ego-ridden project full of chest thumping "developers" that do very little to contribute, and demand that they be treated with respect because they are a volunteer | |
said developers will then pick and choose things they want to work on, and ignore everything else. this is the attitude of a contributor, not a developer. if you do not wish to work on the boring stuff, resign your position and just send pull requests in. | |
- internal politics is given greater priority than getting things done. less drama, more work. | |
Maybe someday there'll be a decent bulletin board software that's free and open source that we all can use. Until then, we sadly have to "make do" with either the open source software that is already available, or go with paid+proprietary solutions. | |
Wonderful way to paint open source. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment