Disclaimer: I am probably as unqualified as anyone to attempt to answer this.
@philip, personally, I think that questions like the one you asked and perhaps also the initial question may not have one easy answer. The best choice may have a lot to do with circumstances. But I think it is important to periodically raise the question to see if new knowledge or a change in circumstances might lead to a need to make adjustments or improvements. I have worked as a teacher for a long time and have often scolded students for criticizing others for “stupid questions” but I think that it is great to revive some basic questions to see if someone has come up with a novel solution or perspective.
One of the reasons that I even took a look at julia was because I had changed one of my basic ideas. I used to say: “don’t re-invent the wheel” as many people say. But I have a very different perspective on things now. Julia is a great example of that. Too often big projects get caught in a local minima and cannot advance beyond that. By starting from scratch, not only do you learn a lot but things almost invariably work out better the second time.
To answer your question, I used to write tones of code with very little or no documentation but as time goes on I am constantly doing more commenting and documenting. By writing the docs I give myself the chance to reflect on the state and progress of my work and begin to remember where I am headed and what I forgot to do. …still I think I could improve.