Tech post: about PhotoDeck software code

Today is the first post of a new kind in this blog: Tech posts!

The purpose of them is to share with our tech-savvy community some technical aspects of PhotoDeck.

You can safely ignore those posts and return to a sane activity (an outdoor one would have my preference!) if one or more of the following words makes you want run far, far away: “computer”, “geek”, “coding”, “html5″ (yes, 5, obviously!)… or if you don’t see the point in “windows vs. macos vs. linux” or “vi vs. emacs” wars (actually, I don’t either, but people who understand what I mean may want to keep reading!).

Now that you’ve been warned: today’s topic is about the size of PhotoDeck software code.

When the guys at 37signals shared their code statistics for the rewrite of their highly popular and successful Basecamp product, it was quite a surprise for me, for different reasons:

1. showing statistics on its own, non-public, code. Doesn’t sound like a usual practice to me.

37signals' Basecamp Next code stats

37signals' Basecamp Next code stats

2. 6334 Lines of codes (LOC): as pointed out in one of the comments, that’s not a lot of lines of code for such a product. People who have experienced enterprise web applications will fully appreciate this.

Why so few lines of code? maybe because they are smart, probably a bit lazy too (why getting tired writing 100 LOC when 10 will do?)… but also because of their choice of their web programming platform: Ruby On Rails (they invented it, actually). Ruby On Rails (aka “RoR”) stands out as an elegant and efficient way to build web applications. The code is concise, clean, beautiful (well, you may not want to tell people that you can see beauty in software code, oops. Anyway, beauty is all relative: people used to read code written for other platforms might succumb to its charms, religious considerations taken apart).

Back to PhotoDeck: when starting building the product (that was more than two years ago), we decided to give Ruby on Rails a try. We were eager to quickly put our ideas together, and confront them early with photographers. Would ‘RoR’ promises hold? Yes. I was blasted by the speed at which we have been able assemble things, and deliver. Today, PhotoDeck is still powered by Ruby On Rails, and we can’t be happier by this choice. What about our own code statistics? Here there are:

PhotoDeck code stats

PhotoDeck code stats

3. Yes, with 25000 Lines of code (+ 10000 for automated tests), PhotoDeck RoR code is approximately 4 times larger than Basecamp Next… and I can guarantee that I’m lazy enough to (try to) write concise code (concise, yet maintainable as I don’t like giving myself avoidable work!). One more reason to be surprised!

Product size also gives us an idea of its complexity and features. It seems that our features list shows!


This entry was posted in Behind the scenes. Bookmark the permalink.

2 Responses to Tech post: about PhotoDeck software code

  1. Franck says:

    Cool stats.

    It’s hard to correlate codebase sizes and features list though, especially when the biggest part of today’s web applications are built on top of JavaScript: a metric entirely neglected when it comes to “rake stats”.

    • Cedric says:

      Sure, no 100% correlation here ;) Gives a hint though.

      As far as JavaScript is concerned, we are at approx 4000 LOC (we have room for improvement).

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

For spam filtering purposes, please copy the number 8622 to the field below: