On 14 May 2009, at 04:09, P.H.Welch wrote:
2. Personnally, I'd like to see a development systems akin to the oldI don't like it either, and never did!
The (true) folding editor* is, I think, hugely underestimated in its importance, and largely removes the temptation to try "managing complexity" by spawning additional files. I have 3,000 lines in my current project happily in a single file, and have in the past gone to 13,000. I switched to a single-file style after TDS introduced me to folding c. 1988.
But I believe another factor gives rise to the many 'filelet' problem – the unnecessary factoring of code into a large number of very small routines, each called just once. This seems to be endemic in programming texts, regardless of language. Aside from sharing code, either within or between programs, I never spawn a subroutine. Sadly, I was alone in this position in my faculty. All the kids were led down the other path. Readability (performance, and code-size) went down the plug-hole.
Java (and its ilk) encourage this IMHO, and extends it to classes. Hoare argued that classes be used judiciously only as the top level of abstraction. I found myself marking projects with code cast entirely as a large number of very small classes comprising routines perhaps five lines long – introducing massive interconnection and thus almost totally unreadable. Any algorithm was rendered all but indecipherable.
Perhaps I'm preaching to the converted …
* by true folding, I mean that a fold is treated as a textual composition, governing its contents – i.e. indenting or (commenting out) the fold indents (or comments out) each line of content. Few so-called folding editors do this. (I use Michael Haardt's fe though it fails this test, for want of one that both passes and follows an emacs, rather than vi, tradition.)