"Chuck Guzis" wrote:
Here's an interesting problem.
Suppose you wanted to write an application for a manufacturing process that
will, in all probability, run for the next 30 years. No direct control of
the process itself is entailed (i.e., you don't need the program to
operation valves or run motors), but you do need this program to compute
manufacturing parameters for each customer. I/O requirements are very
modest, mostly simple keyboard and display.
What would you write it in?
This is an interesting thread.
But I think the language misses the point. It doesn't matter what
language it's written in. The important question is what will it run
on. There are still pdp-11's out there running applications every day
and it doesn't matter what they were written in. It does matter if the
11/44 power supply blows up, however :-)
So, I'd say the 30 year requirement has more to do with the machine than
anything else. These days the half life of a disk drive or PC power
supply is about 12 months. You'll need something more robust to make it
30 years.
That said, I would use Java and run it on a web browser with a linux
backend using something like apache + perl + mysql. You'd at least have
some hope of running the code in the future. I can boot modern vintage
linux kernels (2.4.x) on a 386 with 8mb of ram and that's about a 20y
span.
But I think my real point is that you freeze the o/s and platform
software and then just maintain the hardware platform forever. At some
point the maintenance of the hardware exceeds, in cost, the pain of
replacing the software. Or, the need for the application goes away.
-brad