Some of you may have followed an exchange between myself and John O'Keefe about the potential use of some features of the VA Smalltalk development environment in a packaged program. Along those lines I would like to share an idea for a project I have had bouncing around in my head for a long time. I have no plans to build this project as I don't have a customer to use or pay for it. Still, it illustrates some features of the development environment would be useful it they were available to packaged programs and some APIs that might be valuable if they existed.
Some history. Back in college, circa 1970, I worked on a digital simulator of an analog computer, written in Fortran. Analog computers are machines the basically solve differential equations, to about three digits of accuracy. The use transistors as integrators and other circuit elements multipliers and summers. Programming them (other than adjusting for voltage scales) is rather easy. If you can write the differential equations, you can draw a block diagram that represents the program and wire the analog computer from it.
Digital programs are nicely suited to simulate analog computers because the math to do the integration is well understood (not so much by me) and float arithmetic, gives us much more than three digits of accuracy and a value range far greater than the voltage range of the transistors of the analog computer, therefor no voltage scaling is required.
I envision a program where the block diagram that represents the analog computer program would be constructed in a window with blocks (that represent integrators and other analog computer elements) much like the way we build a window with buttons and entry fields in the development environment. The analog computer blocks would be connected much like we run connections from buttons to code or other objects. It would be nice not to have to develop this connection code since it is in the development environment already.
Modern PCs are more powerful that the mainframe I wrote the simulator on, so I expect they are more than up to the task. That said, modern graphics cards with their powerful floating point math capabilities would make for one great analog computer. It would be very nice to have a VA Smalltalk interface to something like OpenCL. And while we are on the subject, a VA Smalltalk interface to OpenGL would be nice too.
Now, I'm not trying to put any pressure on Instantiations. As I said, I have no plans to build this project. I just thought it pointed out some nice things to have.