Why I Hate Your Web App
drawar.com
drawar.com
This one is always a big pet peeve of mine. Taglines need to describe what you do, not how awesome you are. I hate seeing ones like "Together. Create. Share." or whatever. I'd much prefer "Create slideshows with a group." or something similar.
I came up with it on the cuff at a MetaFilter 10th anniversary party where Matt Haughey was mocking me back for having commented online about how shittily written his site was -- I realized that I probably wouldn't be standing there drinking his beer if he were a better programmer, the site just wouldn't have taken off when it did.
On the one hand you have both LiveJournal and Facebook as examples of big successful apps that were technically terrific very early -- everything else I can think of never got used.
On the other hand you have everything else: Frontier, Movable Type, Blogger, Wordpress, Twitter, PHPbb, vBulletin, Friendster, Myspace, MediaWiki, etc. -- all heaping piles of shit code, some of which had the grace to either be completely rewritten or abandoned en-masse for the next heaping pile.
It's extraordinarily difficult to execute well with users socially and execute well on the engineering.
Whoa whoa? Where’d you get that idea? When it started its back-end was technically atrocious, written in a big pile of php spaghetti on Zuckerberg’s subnotebook, its front-end had barely any features, and it crashed all the time.
But it didn’t really matter, because the user base was in the thousands for quite some time, and then organized in a school-by-school way that let them easily handle the load by throwing hardware at it.
Then within a year or two, they had more money than they knew what to do with, and could hire people to do a nearly complete back-end rewrite.
I find it particularly interesting because you'd expect OSS that will be picked up by others to have good code quality though. Add to that the fact that at the time your typical PHP user probably had more technical competence than most (webhosting, particularly supporting PHP was rarer then)
However, it does some things that keep me up at night. It stores serialized PHP arrays to define what users have access to (the MU branch). It strips away magic quotes based on runtime configuration, only to add them right back using a PHP loop. It does not use any form of output buffering. It's themes are PHP files that often times contain core business logic (somewhat of a PHP problem really, but still). WordPress is bad code and there is nothing anybody can do about it.
This of course is not true of all OSS projects: far from it. Just so happens that when a small community controls core development and the initial codebase is not great, which is the case with many early PHP projects, the outcome is that the code will stay bad.
When I say that the code inside of WP is awful, I mean that you should not look at it and you should not try to change it. Don't try to make WP into something it's not, like running custom applications on top of it, etc. When somebody tells you they want to integrate something with WordPress: run. However, I use it as a simple web publishing platform and it gets the job done.
* 90% of everything is crap. (Sturgeon's Law)
* Engineering quality is orthogonal to success.
Therefore, 90% of successful sites will be crappily-engineered.
http://en.wikipedia.org/wiki/File:Tangent_to_a_curve.svg
And AB is orthogonal to CD:
http://en.wikipedia.org/wiki/File:Perpendicular-coloured.svg
:)
I could see how bad engineering isn't too bad for product success, because once you have a site that makes money, people will put up with working with crappy code and designs if they are paid enough (well, not everyone would put up with this, but there are enough people that would, and enough money to pay those people..)
As far as open source stuff, the only great ones are the ones you write yourself :). A couple years ago I wrote a tumblr/4chan hybrid for AppEngine that I never got around to using. Both AppEngine and Heroku make fantastic platforms for such things, there are a bunch of good blog engines for each that you could use as a starting point to great success.
The problem with Wordpress and Movable Type is that they are simply terrible, no good, piles of shit; full of terrible ideas poorly implemented on crappy platforms. Anything else is better. At least Movable Type committed suicide by license-wank, it's too bad that something worse stepped in to take its place. That Wordpress is becoming a premier application framework that people use to get Accounts+Admin depresses me.
I'm missing something did you get to know him because of his bad programming or what? I guess I'm just missing what you are saying.
I do not think he would have been successful if he'd spent much more time on the codebase (it's Coldfusion!) instead of attending to the community and steering it into helping itself.
Very good point. This is exactly what I find difficult. I can write hard code, but then I'm lost in the sea of the web.