Skip to main content

"Classic" Programming Languages

In my time in government, I've worked on modernizing legacy systems. Though not all legacy systems are worth modernizing, I've found a few "classic" languages in the process that are not the ones you'd expect.

All these "classic" languages share a few things:
  1. They're all proprietary.
  2. They all had or have enterprise support
  3. They all have outdated UI (user interface) elements reminiscent of the '90s.

Microsoft's (Visual) FoxPro  

License: Proprietary
Latest Release: 2007

Top on these languages I've encountered is FoxPro, a language that is unsupported now, but was back in the '90s a good language. It was bought by Microsoft and that gave it a sense of enterprise support. I encountered this language at the Environmental Quality Board in Puerto Rico, where there were two "programmers" in this language and a system running on it.

The environmental complaints/issues ticketing system had been modernized not too long ago and it had substituted the outdated FoxPro system. However, this new system was hardcoded with the date as a way for the programmer who made it to ensure job security. When this person wasn't paid or left the consulting company where he worked, maintenance to the application was not given. The tickets for the environmental issues (which included emergencies) had the year as part of the ticket id. When the new numbers for the ticket id's ran out of digits, the system became unusable.

Due to the person that had coded it having moved on from the original consulting company, that company would not have an easy job repairing the old system. Not to mention that putting the year into the ticket id was a design flaw from the very beginning. Cost-wise it made more sense to build a new system right. But in the meantime, the tech people at the agency had resuscitated the old FoxPro system to handle the tickets.

This was an internal system to the agency not exposed to the internet so there were no major security issues, still it's functionality was limited and I was shocked to find not only such an old language but one that had not been supported since 2007. I project managed the project from the RFP (request for proposal) stage, all the way to delivery, in a system written in C# that leveraged the agency's permanent employee's knowledge of Microsoft's SharePoint while extending it to provide an extensible system (with an API) ready for integration with other systems that needed modernizing as well.

But why was FoxPro still used at the agency? In fact, there were trained programmers in it at the agency. FoxPro allowed not just coding but also database management all rolled into one. With the inclusion of "visual" aspects, it allowed for novice coders to be productive in the language. For whatever reason, Visual FoxPro was also very popular in Latin America.

Oracle's PeopleSoft

License: Proprietary
Latest Release: 2015 or 2018 for IDE

Second is a still supported language, Oracle's PeopleSoft. This software is very popular for Human Resources needs. I also encountered this at the Environmental Quality Board. Like Visual FoxPro, PeopleSoft has database administration capabilities as well. This integration with the database, combines the concerns in the code, of both logic and data.

From the Oracle website:

In PeopleSoft Application Engine, a program is a set of SQL statements, PeopleCode, and program control actions that enable looping and conditional logic. A program is defined in PeopleSoft Application Designer and performs a business process.

One of the benefits of PeopleSoft is that it is a system created for Human Resources functions. However, due to federal requirements from the grant money received from the EPA (Environmental Protection Agency), this system required a lot of custom code. And being a proprietary system it required specialized contractors. Thankfully, this was a purely internal system managed by a small team and was still being maintained, so the only thing to do was to ensure and support its continued development.




Comments

Popular posts from this blog

My Fake Resume

Inspired by the over aggrandized bio of Joseph Rakofsky I want to write my own. If you don't know who he is; Joseph Rakofsky is a lawyer who earned a mistrial for a criminal client due to his (alleged) incompetence as reported on the Washington Post . There has been quite a few commentaries on his "Streisand-house" approach of suing all the bloggers and even the Washington Post and American Bar Association for reporting his (alleged) ineptitude. ("Streisand-house" is what happened to Barbara Streisand who wanted to have a picture of her mansion removed from the internet and she sued to have it removed. Unfortunately suing requires the filing of public documents with a picture of her house. The lawsuit had the direct opposite effect it intended. Everybody now could see legally, since it was a public document, a picture of her house.) But all that internet gossip aside I'm most impressed by his resume. Here is a quote from the website: Prior t...

Setting JRuby to run in 1.9.2 mode by default

JRuby comes with both 1.8.7 and 1.9.2 (currently) and the default is 1.8.7. If you want to change it you have to feed an option at the command line: $jruby --1.9 This weekend I had to migrate a rails program that I hadn't written and the author used 1.9.2 notation so it would not run on JRuby with the default settings. So I had to add the version option with every command which gets old quick. I looked online for a way to make this automatic (and on my JRuby books) but could only found the way to do it on a Mac or Linux but all Windows references just mentioned nebulous concepts such as environmental variables and seemed to be different from which version of Windows you are using. Here is how to do it. Windows 7: Got to Control Panel, System. Wine (Crossover 10): Java 6 version 21 will run on Wine (at least on Crossover 10) and you can install JRuby on top of that. To set environmental variables you have to go to regedit and set it there manually. Follow th...

Coca-confusion, it comes and goes...

Recently Latin American countries have voiced their opposition to prop 19 (it would legalize recreational marijuana use) because it will cause confusion. This is hogwash. While it might be a little curious to a Columbian that he can go to jail for growing pot while a Californian will not; it's no more confusing than a Bolivian growing coca legally and a Californian not. Wasn't Evo Morales a coca grower? Legalizing Marijuana if anything will lead to less confusion not more.