Sure. And if you had a magic well to pour funding into the economy that would be nice, but for the most part being able to put money into the economy involves pulling the same money out of the economy through taxes.
That does not necesssarily have to be the case.As of now the Fed has two jobs: 1) Taking old money out of circulation and replacing it with new money, 2) Loaning money to banks so that they can lend it to you. The second is hopw money comes into being.
Since the economy is constantly growing and we are introducing things of value, we need to introduce new money into the system. For example iof the total value of goods in the US was $40trillion and went up to $41trillion, we would need to print one trillion dollars to keep the amount of cash sync with the amount of goods.
So instead of introducing that extra cash vid process 2 above, estimate how much more cash you want introduced by estimating the increase in value. Something like (GDP-annual consumption)*fudge_factor. Since it's tied to excess goods produced it's not inflationary. What is more doing something like this causes everyone to have an incentive in the country doing well economically.
The VMS versioning system was more of a kludge then something elegant.
For one thing, it versioned intermediate files too. Causing people to run "purge" (IIRC) all the time For another thing, if you wanted to keep an old version of a file, fine, but it might x.x;11 and the present version is x.x;40. It is far easier to find if you simple copy the file into another name before making changes. If you want to keep versions of several files, there exist several programs that do that. We call them version control systems.
Metaprogramming comes in two forms:metaprogramming, and metaobject programming.
Metaobject programming is writing code that modifies the way objects act. A version of this is aspect-oriented programming (which you may have heard of), which is supposed to be safer. An example of this would be to modify the way methods are called. For example, you write to a file the name of a method and it's parameter when it's called. Something like that would be useful for writing test scripts.
The best example of metaobject programming would be Ruby on Rails, where derfinition files are read and a program generates the objects that are represented in the database as well as the db tables, queries etc.
Metaobject programming is considered very dangerous, because if a moron is using it he can rewrite object behavior to the point where you get some very unexpected behaviour.
Metaprograming, is simply writing a program that writes programs.
The simplest version of metaprograming are macros.
An interesting and easily understood paper, "Aspecet-Oriented Programming Kiczales et al", he desceribes having a set of routines which manipulate images. Doing things like and-ing and xor-ing the images. The problem arises when you have to do a lot of these operations at once, it becomes very slow. The trick is that they wrote Lisp code which generated C code. When they wrote code composing multiple filters, the Lisp would analyse it and merge loops before generating the C code. In that way he was acle to significantly reduce runtime.
Templates automatically generate code so are automatically metaprograming, but the term means something more general allowed mostly by specialization. Imagine some template class method Foo::bar which is implemented in some way, but that for the class Quick the usual way is slower then another way then you can write Foo::bar{faster way} and For::bar{standard way
. When generating the template code,if the class is Quick it will called the specialized version otherwise it will call the standard technique. This allows recursion to terminate, So the template system happens to be a turing complete system. you can write programs with templates that are run during compile time. That is template metaprograming.
Usally TMP is used to generate libraries that are more more efficient, smaller etc... , For example a very simple TMP is std::copy which simply copies objects, but the specialization std::copy will be specialized to call memcpy which can be much faster then the object copy.
As you will see, I told them, in no uncertain terms, to see Figure one. -- Dave "First Strike" Pare