usernameguy (usernameguy) wrote,

Software as icebergs

"How hard is it to build a highly scalable social messaging system? Not hard if you use the right tools. Over the last week and a half, in my spare time, I wrote a Twitter clone in Scala and lift. It's 884 'wc -l' lines of code including comments. It can handle 1M+ users on a two Intel Core 2 Duo boxes (one as the web front end and the other as the message broker.) With a weeks of full-time coding, it could be modified to scale linearly with the number of boxes in the system." - some other guy with a blog

That's rather cheeky, I gotta say. Built a "Twitter clone", huh? Does it persist? Does it backup? Does it have all the various front-ends Twitter does?

It's a form of sophistic insult to the Twitter team. Don't be like this guy and go spouting off that you did a major web app in 884 lines. I strongly suspect anyone who says stupid things like that has never delivered a full-fledged whole product app in their lives.

Here's something a lot of people don't get, outside of Software, and apparently inside Software as well. Making a good app isn't about making the core feature at all.  Most times, the core feature is easy.  It's also usually only 3% of the work. 

Making the core feature USEFUL is the hard part.

The best example I can think of is the iPod.  The iPod's core feature is decoding music and streaming it to headphones.  But that feature is totally useless by itself. Apple created drivers, firmware, a very sophisticated on-device software suite (most likely with sophisticated tools backing it), iTunes (which is cross-platform), a sophisticated content delivery system, a sophisticated and artistic eCommerce store, forums, knowledge bases, firmware updaters...and I'm probably missing 30%.    And that's just the software side of things - don't forget device design, industrial design, manufacturing, packaging, the Apple Store, legalities, negotiations, accessories and licensing.  All of it is done in order to make streaming music to headphones useful.

This kind of braggart software jockey reductionism is childish.  It's actually destructive, in that it promotes a false view of the capabilities of software to the MBAs.

  • The Long Piece about Defining "Planet"

    " Why's Pluto not a planet any more?" ... it means 20 other things would be too, and 100 later on ... " But what's wrong with 100…

  • Open Source Software's "Sweet Spot"

    In order to be successful, I think that open source projects will always be small in code size, highly modular, or a copy of something else. The…

  • The FP @reply implementation

    My side project, which I'll call FP here, has a @username notification system a la Twitter's on it. The users use it all the time. There are N users…

  • Post a new comment


    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.