5 ms·
Why I Hate Your Web App
- Vindexus 17y ago"What Is It You Do Again?" 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.
- blasdel 17y agoI've had this theory for a while that successful consumer-to-consumer webapps (Blogs, Forums, SNSes, etc.) are almost never well-engineered. 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.
- ilovecomputers 17y agoI'm curious as to what blogging platform you'll consider well engineered. You've already called out Wordpress and Movable Type.
- blasdel 17y agoLivejournal was very well done, Brad Fitzpatrick innovated a lot on every facet of it: the hosting platform, monetizing it, the social network aspects, privacy features, etc. Before NetNewsWire took off like a rocket, it was by far the most popular feedreader in use (its "friends page"). Tumblr feels pretty well put together too, as long as you fit in with it's opinionated style. 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.
- Qwe679 17y agoYou haven't explained why Wordpress is a pile of crap. Sure, it's simple to say something is a pile of crap, but doing so without explaining why doesn't make your assertion credible.
- litewulf 17y agoI'm not sure about the others, but one of the interesting things is that wordpress grew out of b2. The code quality in b2 was about what you'd expect given wordpress' initial security reputation. 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)
- IgorPartola 17y agoThe problem with OSS is that you have to contend with some sort of a community. With WordPress you will open up the source code, throw up in your mouth a little, get the urge to patch things up and realize that your changes will never make it upstream. WordPress works. That's why it's so popular. It's easy to install, much easier to use than a lot of web publishing platforms out there and there are lots of "useful" plugins. Most of all, it's got the ubiquitous support: LAMP is the de facto standard for cheap hosting out there. 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.
- litewulf 17y agoRight, what I'm saying though is that people were willing to stick it out and fork instead of rewriting. I'm surprised a programmer would do that.
- IgorPartola 17y agoThat is an interesting fact. Then again, those were dark times, so to speak. PHP code that I've seen from pre-PHP5 times does all sorts of funky things to get around the shortcomings of the language. I guess at that point what b2 had was considered pretty good. I think the most important thing that needs to happen with any software project is peer review. If a piece of code is even mildly important, it needs to be reviewed, modified and distilled until it is ready. That did not appear to happen with WP.
- dschobel 17y agoIt's certainly a counter-intuitive and pervasive phenomenon but maybe the fact that so few social platforms "make it" should keep us from drawing any real causal conclusion beyond the fact that technical competence is neither necessary nor sufficient for success.
- lpolovets 17y agoInteresting. Maybe this a reflection of how engineering quality doesn't matter compared to network effects, usefulness, trendiness, etc? As in, it's not that most successful web apps are not well-engineered, it's that most web apps in general are not well-engineered, and the successful ones are almost randomly distributed among the entire set. 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..)
- bugs 17y agoI realized that I probably wouldn't be standing there drinking his beer if he were a better programmer. 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.
- blasdel 17y agoI'm saying that he wouldn't have rented out a bar in Portland for an 8th anniversary party, or paid the bill for 67 parties worldwide for the 10th anniversary (the two times I met him in person) unless Metafilter was pretty fucking successful. There's usually a couple Metafilter meetups somewhere in the world every week! 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.
- derefr 17y agoI'd say it's just that: * 90% of everything is crap. (Sturgeon's Law) * Engineering quality is orthogonal to success. Therefore, 90% of successful sites will be crappily-engineered.
- apotheon 17y agoI'd say engineering quality is tangential to success -- not strictly orthogonal. Still, it's close enough to orthogonal that it takes a heck of a lot of attention to notice the difference.
- panic 17y agoWhat's the difference between tangential and orthogonal?
- dtby 17y ago- v |
- akirk 17y ago|( vs -| :)
- deleted 17y ago[deleted]
- DougBTX 17y agoI have no idea what these guys are talking about, but this is a tangent: http://en.wikipedia.org/wiki/File:Tangent_to_a_curve.svg 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 http://en.wikipedia.org/wiki/File:Perpendicular-coloured.svg
- edu 17y agoIn the context, I'd say that two orthogonal features are completely independent from each other (i.e. good engineering is independent from success and the other way around). But tangential features do affect each other (i.e. you cannot succeed without good engineering). His point was that a better engineering will give you a slight better chance to succeed (tangential), but that it's so small that's almost imperceptible and can seem to not affect (orthogonal).
- DeusExMachina 17y ago>It's extraordinarily difficult to execute well with users socially and execute well on the engineering. 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.
- jacobolus 17y ago> ... Facebook as examples of big successful apps that were technically terrific very early. 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.
- deleted 17y ago[deleted]
- deleted 17y ago[deleted]