Tuesday, January 26, 2010

World of Warcraft has just 32 developers for 5.5M Lines of Code

I don't play it, but World of Warcraft is the world's most popular massively multiplayer online role-playing game with more than 11.5 million users. It clocks in at 5.5 million lines of code. According to this blog post, there are only 32 developers working on this code, an impressive ratio of code to coders.

"Population [of development team]: 32. [...] Whole team maintains 5.5 million lines of code. [...] 20,000 computer systems, 1.3 petabytes, more than 4600 people. Operating an online game requires more than just game development!"

Discovered on Sanjeev's FriendFeed.

Labels: , ,

Friday, November 13, 2009

One Feature of Go that Every Programming Language Needs to Have

Named return values. They rock.

func doit(x int) (a int, b int) {
// do stuff
a = 1;
b = 2;
return;
}

// call it like this:
a, b = doit(x);

In the languages I use, there are two ways to return multiple values from a function:
  1. Build an array, tuple, or dictionary with the return values. That's wasteful and the compiler won't catch your errors.

  2. Pass in reference or pointers. But that's not as elegant as Go's solution: You have to look twice to realize the function call will change the value of your variables.

I'd love to see this in other languages as well.

Thanks to Mark Chu-Carroll for his excellent intro article. More about multiple return values in Go in the language reference.

Labels: , , , ,

Sunday, April 12, 2009

reBoxed - An Experiment in Rapid Development

reBoxedI have a little bit of free time on reMail's main product right now and I've decided to implement a possibly great idea I've been thinking about over the last couple of weeks. reBoxed is a new take on inbox prioritization - and I'll build and launch it in the next 3 days - 75 hours. My deadline is to have it done by Wednesday 3:00 pm Pacific time.

My timeline is something like:
  1. Today Sunday: Learn a technology I'll need to understand for reBoxed to work. Write a Design Doc.
  2. Monday: Implement all functionality but keep the UI super crude.
  3. Tuesday: Brush up the UI. Meet with PG at office hours in the afternoon to get his feedback.
  4. Wednesday: Write deployment tools and deploy to a server. Launch.

Don't set your expectations too high: The first version of reBoxed will likely suck. reBoxed is an experiment in how quickly I can develop and launch a mail-related product. And a way to prove out a possibly great idea.

I'll post a daily update on this blog.

Labels: , , , ,