In this day and age, generating the machine-readable version of the file in a different order than the version that is meant to be read, seems like an unnecessary convolution and debugging hurdle.
In this day and age, generating the machine-readable version of the file in a different order than the version that is meant to be read, seems like an unnecessary convolution and debugging hurdle.
Say you are talking about the function to build the user interface, can you stop defining that, go back and define the callback, then continue defining the gui builder function?
Or, when you are writing an Android program, can you add stuff to the manifest file, right as you write the source code that uses it?
Or, when you are writing that rails app, can you put the code for one of your user stories, then extend your db model and finally add the code that test it -- before you continue with the next user story that adds code to the same controller?
That's how lisp folks worked. I don't see why that technique wouldn't work in bare python as well.
Static type systems can make that difficult. How many frameworks impose analogous constraints?
If you will look at some existing systems, which operate with meta-meta-data, like yum/rpm, or apt/deb, or maven2, etc., then you will see, that code, which describes packages, is literate-like: it contains author, title, description, general overview of package, etc. It does not contains function, or something like that.
If my English is wrong - sorry. I am Ukrainian.