Slashdot: Slowing Rotting from the Inside Out

Sometime ago, say, 1999, Slashdot was the king of the online tech world. In fact, from a “hits” standpoint, they may still be, if not second to Digg. Slashdot has always been the first big blog-style tech site, long before the word “blog” meant anything to anyone, and somehow, Rob Malda and crew are still relevant in the scene.

Not too long ago, Slashdot started overhauling their incredibly horrendous HTML and rewriting in mostly compliant HTML. The goal of the rewrite, amongst many other things, such as incredible bandwidth savings, was to support stylesheets and graceful degrade. When all was ready, Slashdot held a contest to solicit new stylesheets and received tons of submissions, some really cool and others really ugly, and chose a very nice, very reserved, very modern-but-conservative one as their new default style.

Let’s back up a bit: Slashdot is written in Perl – ack! – and is built upon an open source system called, simply enough, “Slash.” Slash code is horrendously out-of-date and the last download is pathetically old. In fact, the only way to get Slash in any recent form is via CVS access. Slash requires mod_perl and tons of Apache and perl customization. Since Slash is tried-and-true, it’s not really “new” code. And it shows in many ways.

Not too long ago, the Slash folks started realizing that new technologies and new sites were introducing amazing interactive features. Perhaps they realized when a chunk of their userbase got fed up and left for sites like Digg, Techcrunch, Mixx, or some other aggregation type site. Nonetheless, the Slash team started hacking in features that emulated many of the Web 2.0 sites. First it was tagging. “Taggging” has been in beta for some time now. It allows users to arbitrarily tag a story with keywords. The FAQ says that once enough people use a tag, it shows up as a suggestion for others. But I always see weird tags suggested. Either way, it’s pointless, because I don’t know what good tagging does for me.

Then came the “firehose.” The Firehouse is essentially Slashdot’s answer to Digg. The diea is this: users submit stories, links, bookmarks, journal entries, etc, and other users vote on the stories. As the stories get “warmer,” or redder, the entries because available to the editors to convert into real news items. Neat, huh? The idea is cool, except the interface is nowhere near as dynamic or alive as Digg’s, and the content doesn’t rotate as fast. And the load time hurts. So I never use it.

In the last 6 months to a year, Slashdot began rolling out “D2,” their new dynamic discussion system. It is a replacement for the static comment system of days past. The problem is multi-fold, however. Firstly, the layout is a screaming nightmare. There is so much whitespace and what is there is totally overwhelming. Big garish buttons take the place of links or real buttons. Dynamically fetched text takes many seconds to load, even generic insertions like a comment form takes 5 seconds plus to appear. Slashdot has become flat out slow. And D2, which should have remedied a lot of that, has not lived up to its promise.

All the places where things got dynamic on the site feels like a new paradigm being smashed into old code. I wonder if Slashdot might be better off rewriting the entire engine as version 3.0. I know that sounds scary, but when OSNews was starting to feel the pain, we ditched the entire front end and rewrote it – every single line of PHP and HTML and CSS and JS. A combination of creative time-based caching, caching on request, and sleek, optimized queries resulted in a snappy and very responsive front end with smooth ajax integration, a super fast loading page (minus the ads, subscribe today!), and a zero lag experience. The differences between the v3 backend and v4? None. If you exclude new features we built in (news tags, extended user preferences, and conversations), the backend is exactly the same.

Slashdot’s database likely won’t have to be dumped or modified at all to rewrite all of their Perl and Javascript/Ajax. But it might result in a faster, smoother, nicer looking front end. It’s time to reel in the speed issues – the entire site takes forever to load (a 200K front page plus externals doesn’t help). It’s time to fix the ajaxian display weirdness. It’s time to get your JS working well in Opera. Fix those and then perhaps we can deal with the elitist userbase.