Jeff Hallman, who works at the Fed in DC - his application tracks the money supply and is responsible for the reports on that - the ones that come out every week. Here's Jeff:
So - definitions:
Reserves are the deposits at a Federal Reserve Bank. The supply is based on Fed actions Demand is created by reserves requirements on transactions deposits. So what do they publish?
- H.6 - Money market measure (M1, M2, M3)
- H.3 - Aggregate reserves of depository institutions and the monetary base - this used to be tracked heavily by the markets (in the 80's)
- Available at http://www.federalreserve.gov
MARS (Money and Reserves System) is their application. Loads serveral dozen reports and adjusts for reporting errors. Recalculates (C functions), and does forecasts. This is basically a huge matrix with thousands of columns. It creates summary reports, stores data back into the money files, and does session management over the whole thing (for analysts).
The components that get used?
- R (Graphing package)
- Smallpack
How did this end up in Smalltalk? It used to be PowerModel and C, where PowerModel had become legacy (company had gone under). Jeff convinced his management to go to Smalltalk after a bit over a year of lobbying (I made a few visits myself). It's running on Red Hat at the Fed, he's demonstrating it on his laptop.
Like a lot of critical Smalltalk applications, this one is delivered to the analysts with the full development environment (hidden) - something that one of my frequent commenters seems stunned by, since he constantly blathers on about the power of dead tools where you can't do that sort of thing. Fine - we're busy being productive over here :). Changes in the old system took weeks - he typically makes requested changes in an hour or two - because of what I said above.
So anyway - the analysts can look at the data in a grid, or in charts (seasonally adjusted or otherwise). I've got a chart screen shot here with some large swings (this is monthly data) - Jeff points out that the swings are due to something called "Sweep" accounts, where banks push money around as a reaction to the vagaries of current law:
The reports that this application produces get used by the fed board members to look at trends and help make policy - so it doesn't get much more mission critical than that :).
Interesting note - the earlier system took about 3 years to write, by 2-3 people - about 83k lines of code (C, PowerModel). The Smalltalk system is 21k lines of code. In terms of actual characters, the comparison is 3.2 MB characters, as opposed to 605k characters in Smalltalk. It took Jeff (one guy) six months of work. So... the productivity comparison is 5-6x better in Smalltalk, with fewer people working on it.