Hacker Newsnew | comments | ask | jobs | submitlogin
ktharavaad 1756 days ago | link | parent

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.


gecko 1755 days ago | link

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

-----

Agathos 1748 days ago | link

"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.

-----

jasonkester 1756 days ago | link

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"?

-----

teej 1756 days ago | link

> 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

-----

davidw 1756 days ago | link

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.

-----

raganwald 1756 days ago | link

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

-----

davidw 1756 days ago | link

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.

-----

raganwald 1756 days ago | link

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.

-----

davidw 1756 days ago | link

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.

-----

dinkumthinkum 1755 days ago | link

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

-----

wlievens 1753 days ago | link

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

-----

Longhorn213 1755 days ago | link

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

-----

LargeWu 1756 days ago | link

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.

-----

jonknee 1756 days ago | link

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

-----

davidw 1756 days ago | link

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.

-----

easyfrag 1756 days ago | link

"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.

-----

asjo 1756 days ago | link

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.

-----

hello_moto 1756 days ago | link

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

PS: Don't forget to open source it.

-----

ktharavaad 1756 days ago | link

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

-----

karanbhangui 1756 days ago | link

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

-----

karanbhangui 1756 days ago | link

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

Here's another, also in Django.

-----

slig 1755 days ago | link

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

-----

bint 1756 days ago | link

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....

-----

bruceatk 1748 days ago | link

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

-----

Longhorn213 1748 days ago | link

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

-----

lucraft 1756 days ago | link

Link?

-----

ktharavaad 1756 days ago | 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 =)

-----

Jem 1756 days ago | link

"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?

-----

wizard_2 1756 days ago | link

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

-----

mistermann 1748 days ago | link

Ok, so where is it smart guy? :)

-----

osama_drepper 1746 days ago | link

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

-----

mistermann 1746 days ago | link

LOL

-----

GvS 1756 days ago | link

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

-----

chaosmachine 1756 days ago | link

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

-----

scorpion032 1746 days ago | link

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

-----

mattm 1748 days ago | link

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

-----

patman 1756 days ago | link

That would be 6-8 weeks actually

-----

dugmartin 1756 days ago | link

I was waiting to see someone say that.

-----

scorpion032 1746 days ago | link

I thought the standard was "4 to 6 weeks"

-----

biohacker42 1756 days ago | link

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

-----

jmonegro 1756 days ago | link

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

-----




Lists | RSS | Bookmarklet | Guidelines | FAQ | DMCA | News News | Feature Requests | Bugs | Y Combinator | Apply | Library

Search: