Channels ▼

Bil Lewis

Dr. Dobb's Bloggers

Why are Python Files So Big?

November 12, 2009

I was casually negotiating through our code base and noticed that all
the Python files were larger than the Java files. It averaged 10k
lines for Java and 30k lines for Python. Notably there were a number
of VERY LARGE Java files that were auto-generated, and the median file
size was closer to 5k. Python files were more uniform.

Obviously Java restricts public classes to their own files whereas
Python doesn't, so there is a forcing factor there. But it just didn't
feel right. Upon closer inspection, it was clear that the average
Python class was also much larger than the average Java class. 

The bit that stands out most vividly for me is the number of massive,
in-line Python methods. Lots of methods that are 200 lines. Very few
in Java. And in the several cases where I have translated the Python
into Java, I broke those puppies up. (I can't read and understand
methods that are that large. Maybe I'm just not very smart?)

The authors of the Python and Java code are all the same. We all write
in both languages. In general, the type of code is the same in both

So why are the Python files so big??


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.