50k lines considered very large?
Ola Bini considers 50K of lines as very large:
“I know several people who are responsible for quite large code bases written in Ruby and Python (very large code bases is 50K-100K lines of code in these languages).”
This explains a lot.
And the blog post made me think. We’ve written >50K code bases in Python in the 90s in a small development shop (<10 developers). I don't consider this “very large”. Large or very large starts for me at sizes when one developer cannot possibly know all the code (independently of the language) or cannot have a good overview.
As I see now that Ola Binis blog scrambled my comment, I repeat it here for reference
“The Maintenance myth”
[snip snip snip]
“Has there been any research done in this area?”
Nice blog post, if you cut out the middle. Interesting calling something a myth and then asking about research in the end.
“(very large code bases is 50K-100K lines of code in these languages).”
100K is very large? I wrote some projects in a two person team and reached 50K of lines. This is rather small. We did 50K Python programs in the 90s in a small development shop (<10 developers). Very large starts (for me) at 1M LOC.
(I don't like LOC as a metric though, FP or "Thought points" are much better because they are more comparable between languages and make more sense: A developer has to think about every "thought point" => more thought points = more complexity & more effort).
@Seo: “Codes written in dynamic languages tend to be shorter than codes written in static languages doing the same thing, and I think code size is the most important factor in maintenance.”
I don’t think Scala is much larger in LOC than Ruby.
And though Lisp & Haskell may have less LOC, they have a lot of Thought points because they have a high density of thought points whereas Java has a very low density with lots of noise in between.
Thanks for listening.
Update: Concerning my comment to Seo
An Ruby example
class Song
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
end
def how_long
"{@duration} minutes"
end
end
or with idiomatic Scala
class Song(val name:String, val artist:String, val duration:Int) {
def howLong = duration + " minutes"
}
or more similar to Ruby:
class Song(aName:String, aArtist:String, aDuration:Int) {
val name = aName
val artist = aArtist
val duration = aDuration
def howLong = duration + " minutes"
}
Another Update: Marcos suggested
class Song
def initialize(name, artist, duration)
@name, @artist, @duration = name, artist, duration
end
...
as more idiomatic Ruby. Thanks.
You can leave a Reply here. Of course, you should follow me on twitter here.


<1k very small project
1k-10k small project
10k-100k medium project
>100k large project
xk very large project
But this measure will change according to what language we are using, of course.