The water billing programs are a suite of three programs. One report is geared towards the water department; another is geared towards the Treasurer’s/Collector’s office; and a third updates the accounts and prints the bills. The first two reports’ totals have to agree, because they don’t change the accounts, but instead show how much will be billed.
These days, water bills are calculated by levels. We are going to three levels from the current two levels. Calculating a bill is simple enough, but if the bill is adjusted, creating an adjusted bill that either increases or decreases the original bill (depending on the adjustment) is a little trickier. Currently this algorithm is written in Informix 4GL. Because we are changing how we bill the calculating and billing programs have to be more or less rewritten, and my feeling is why not chose another language.
I have been writing some new small applications in Clojure lately and have been maintaining Python and Django code I wrote three years ago. I really wanted to use Clojure for this project, but did not choose it, because currently there is no Informix DB interface, and I do not have time to write one. I did not choose Python, because even though it has a good Informix interface, the consultant we work with prefers Perl, and I have to say his code has been running quite well with few if any errors over the past few years.
I have written Perl code on and off over the past decade, so rewriting these programs shouldn’t be a problem. So, if you are wondering why I am writing this, it is because for no logical reason, it seems to me given the new generation of languages like Python, Scala, and Clojure, writing in Perl is like taking a step backwards, and I know that is not true. I am sometime mesmerized that we have all these programming languages, and they seem to go out of favor, and I’m not always sure why.
Is Perl as ubiquitous as I’ve heard? In my absence, will just about anyone be able to maintain the Perl code? For that matter, will someone be able to come in and read the Clojure code that has been written? It’s well commented, like our Perl code. These are just some thoughts as the project begins.