Hacker Newsnew | comments | show | ask | jobs | submit login

Seems really pricey for a relatively simple software like this. Someone write an opensource alternative? it looks like something that can be thrown together in a weekend.



So you wanna write StackOverflow in a weekend.

Let's assume, for sake of argument, that you decide it's okay to write it in ASP.NET MVC, and that I've decided to hand you the StackOverflow source code, page by page, so you can retype it verbatim. We'll also assume you type like me, at a cool 100 WPM (five characters per second[1]), and unlike me, make zero mistakes. StackOverflow's .cs, .sql, .css, .js, and .aspx files come to 96.5k. So merely typing back in source code that already exists will take you five hours if you make zero mistakes and deploy on the same platform they're doing.

Except, of course, you're not doing that. So even assuming that it took you a mere ten times longer to design, type out, and debug your own implementation, that already has you taking more than your whole weekend, even if you stayed up coding straight--and I don't know about you, but I am okay admitting I code considerably slower than ten times slower than I copy existing source code.

Well, okay, I hear you say. Not the whole thing. But I can do most of it.

Okay, so what's most? There's simply asking and responding to questions--that part's easy. Well, except you can't let people upvote their own answers, so you need to block that. And you need to make sure that you don't upvote or downvote a person too many times in a certain amount of time, to prevent spambots. Probably are also going to have to implement a spam filter, too, come to think of it, even in the basic design, and you also need to support user icons, and you're going to have to find a sanitizing HTML library you really trust and that interfaces well with Markdown (provided you do want that awesome editor they have, of course). You'll also need to purchase, design, or find widgets for all the controls, plus you need an administration interface so that moderators can moderate, and you'll need to implement that scaling karma thing so that you give users steadily increasing power to do things as they go.

But if you do all that, you will be done. Except, of course, for the full-text search, espcially the search-as-you-ask feature, and user bios, and having comments, and having a main page that shows you important questions but that bubbles down steadily. Plus you'll want bounties, and handling multiple OpenIDs per user, and having email notifications, and supporting JavaScript-smart tags, and having user-configurable badges (you are going to do user-configurable badges without forcing your user to learn PHP and write hooks, right?), the history of your karma, upvotes, and downvotes. And the whole thing has to scale really well, since it could be slashdotted at any moment.

And we haven't even touched things like supporting upgrades, internationalization, karma caps, CSS so it doesn't look like ass, and all the little things under the surface that no one ever sees, but that you need to run the site.

To be really blunt: anyone in this forum who honestly thinks they can do all that in a weekend is so ridiculously full of himself that I want him very far away from any project that I'm involved with.

[1] http://en.wikipedia.org/wiki/Words_per_minute

-----


"And we haven't even touched things like... internationalization"

Well from one of the recent podcasts it sounds like Jeff is set against doing internationalization. And Joel is showing admirable restraint in not strangling him.

-----


A weekend? Really?

We have documented evidence in the form of podcasts that it took a team of 3 talented developers about 6 months to build StackOverflow. If you're looking for an order of magnitude estimate for how long it would take to reproduce it, that's it.

How exactly are you planning to reduce an 18 man-month project down to a single weekend of your time?

More generally, why is this attitude so common among programmers? How, in the face of documented proof to the contrary could an intelligent person like the parent still consider a site of the complexity of StackOverflow to be a "weekend job"?

-----


I think it's certainly longer than a weekend, but recreating something that exists is usually easier than doing it the first time. You don't really have to worry so much about how things ought to fit together - you just copy.

-----


And I can't tell you how many doomed Death March projects started with this assumption. "The requirements are done, the design is done, we know it can be done, simply copy what we see there."

The boil it down to a cliché, copying what someone else has built is exactly the same problem as rewriting an existing application from scratch, without the benefit of being able to read the source code.

http://www.joelonsoftware.com/articles/fog0000000069.html

-----


Rewriting a cross platform browser in C++ is way more difficult than writing something that took a small team 6 months to do. I'm not trying to say that it's a weekend, but have a look at SO. Unless there's something I'm missing, it's not "deep hacking", but more "crank it out" (not to take anything away from that team - they certainly did nice work!). Scaling might be an issue sooner or later, and that would take some more thinking, but the basic thing just doesn't strike me as some Big Hairy Problem.

So, yeah, be wary of "hey, that looks easy!", but don't think things are impossible either.

-----


Rewriting a browser isn't impossible either, as Firefox proves. Perhaps SO is an order of magnitude easier than a browser, but I stand by my suggestion that copying an existing application you didn't actually write is often much more difficult than expected and has led many teams to their doom.

-----


My comparison was "writing something from scratch" vs "copying". If a team has trouble with copying, wouldn't "writing it from scratch" be even more likely to end in failure?

Also, with something like SO - you can pretty much see the models, and how they interact. That's already giving you a lot.

-----


That's interesting. However, there are already several clones of SO and a couple that reproduce the vast majority of the functionality.

-----


You can't even check that, because a significant part of SO's functionality could be hidden from you.

-----


> More generally, why is this attitude so common among programmers? How, in the face of documented proof to the contrary could an intelligent person like the parent still consider a site of the complexity of StackOverflow to be a "weekend job"?

"Shit's easy syndrome" http://steve-yegge.blogspot.com/2009_04_01_archive.html

-----


Easy get off the Microsoft stack and use objective-c :)

-----


A lot of what makes Stack Overflow successful is the amount of effort they've put into making a great user experience. That's not the sort of thing you just come up with in a weekend. It's a continual process that requires a lot of attention. And let's face it, open source's strong point generally isn't in engineering good user experience.

-----


I think it's more that it was launched by two really well known (by programmers) programmers. Exposure is everything.

-----


When I first saw it, I liked the clean look and feel, but hated the "DAVE, I CAN'T LET YOU DO THAT" approach to permissions with regards to comments, votes, and the like. As a beginning user, you had (have? don't know if they've changed it) all these links and buttons that are displayed, but don't let you do anything; they just give you a lame message about requiring N gold stars before you can do that.

-----


"Dave, I can't let you do that?" You do know that SO allows questions and answers from people without even requiring them to log in? They allow content from essentially anonymous users.

The restrictions are along the "meta" parts (voting to indicate the quality of an answer), I think it is entirely sensible to restrict these actions to users who have built up a currency of trust within the SO community.

That being said, I think you are onto to something around the user experience. Perhaps an option shouldn't be shown to someone if they cannot perform it.

-----


That being said, I think you are onto to something around the user experience. Perhaps an option shouldn't be shown to someone if they cannot perform it.

That would be really annoying, because you wouldn't know that these options exist, until you could use them (i.e. you're possibly confused and you don't know what the reward for collecting reputation is.)

Better grey out the things you aren't allowed to do yet, so you can see them and see that you're not there yet - preferably with an explanation of when you will be.

I forgot what the term for this is, but I think it's very often a good way to do it. Stable interface? Something like that.

-----


If it's just need a weekend, why not do it yourself?

PS: Don't forget to open source it.

-----


Alright, This will be my project this coming weekend! I'll try to live up to the challenge!

-----


No need, http://code.google.com/p/cnprog/ already exists.

-----


http://code.google.com/p/soclone/

Here's another, also in Django.

-----


This isn't being maintained since last year. Great place to see some django anti-patterns, though.

-----


What we need is an English version of CNProg.

There's a download here: http://code.google.com/p/cnprog/issues/detail?id=28

but I don't think it is production-ready yet....

-----


It's been 8 days, that's the equivalent of 4 weekends. It must be 4 times better than SO by now.

-----


So did you get this done? I was on http://code.google.com/p/hackerexchange/ and I see nothing.

-----


Link?

-----


I'll update here as I make progress:

http://code.google.com/p/hackerexchange/

I'm aware of the chinese solutions done in Django but after looking it over, I think I can do better.

I'll prolly write it in PHP too (gasp) so any n00b can basically rip it off and throw it unto shared hosting! ahh, gotta love opensource =)

-----


"A clone of stackoverflow.com to be done over the course of the weekends"

Weekends plural? I thought this was only going to take 1?

-----


And shush up about it until you have something to show, less you fall victim to this phenomenon http://sivers.org/zipit

-----


i am having difficulty pulling the latest revision. i'd like to review the progress made in the first weekend.

-----


LOL

-----


Ok, so where is it smart guy? :)

-----


Chinese already written it using Django. It's available here: http://code.google.com/p/cnprog/

-----


That would be 6-8 weeks actually

-----


I was waiting to see someone say that.

-----


I thought the standard was "4 to 6 weeks"

-----


Sounds similar to stuff I sometimes see on programmer outsourcing sites: Build me a clone of Youtube. My budget is $500.

-----


The price includes managed hosting. A million page views for $129 isn't bad.

-----


Except that Stackoverflow itself has just around a million hits a month; A third party site wouldn't need so much scaling anyway.

-----


Right, but the version meant for you is free. This stuff is for sale to people who are NOT programmers.

-----


I might just do that... some day...

-----




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: