From JohnClonts
// Lets Run the Company!
Company::Run() {
while ( !done() ) {
makeMoney();
beHappy();
},
},
/** All objects in our company are required to implement this interface */
Interface IMoneyMaker {
void makeMoney();
},
Company::makeMoney() {
marketing.getMoreCustomers();
marketing.enhanceCustomerRelationship();
operations.deliverService();
accounting.getPaid();
// or perhaps
marketing.makeMoney();
operations.makeMoney();
accounting.makeMoney();
// or even
for (each subUnit in subUnits[])
subUnit.makeMoney();
},
Accounting::makeMoney() {
readMeters();
},
Meter::makeMoney() {
myRate.setUsage( myReading);
},
Rate::makeMoney() {
theCustomer.pay( this);
},
Now, is this a visionary step which leads to a CompanyOperatingSystem, whereby any/all levels of management might exercise their span of authority by a plug-and-play 3d SimCity-Electric?
Or is it just a HUGE case of DontEatTheMenu.
The Compiler's new role: Recompiling the company, rather than the program. Hmm.
See also: SimulateTheIndustry