| I think we need to liberate ourselves from the "folders of files of text" way of coding. We really shouldn't ever have to think about where to put things. Each function should be stored in its own text file. Then these files are indexed in a database. Then they can be tagged: manually or by parsing its AST / types. Then using the tags you can organize the code any way you want. Better yet, maintain a dependency graph to see all callers and callees, and view code like that. Even better yet, instrument your code, and at runtime let the stack trace determine the organization of your code in your editor. Some problems I can see though is that humans seem to like things to belong in one place. That's why folders win over tags usually. But...your existing folder/file structure of code is simply one "view" from the database. Some people use module names, some people use file types (components, helpers, etc.) Existing IDE's and text editors (and runtimes) are holding us back! Prior art: SmallTalk Browser, Intentional Programming, Literal Programming. |
It's so much easier to just see a directory structure which reflects the module structure of your project and be able to quickly open any file in any tool and not just in the IDE of your chosen programming language.