Monthly Archives: June 2025

PLIHK: Natural

Cross posted from my personal blog.

Time to get back to this series. (If you’re just joining me here, PLIHK=”Programming Languages I Have Known”, so these are posts about programming languages I have used.)

After a year teaching school, I decided I couldn’t afford to do that any more, so I started looking for another job. After a summer of looking, I was hired by the Data Processing Division at the University of Texas at Austin in the fall of 1987, and I have worked there ever since. (Not, strictly speaking, in the Data Processing Division, which has been renamed, merged, split up, and otherwise reorganized many times over the years.)

At the time, and for nearly another decade afterwards, administrative applications at the University were written in the Natural programming language from Software AG. Natural was originally designed for querying Adabas databases (Adabas being Software AG’s database management system) and expanded to support updating and maintaining data in that DBMS as well. It’s target was COBOL programmers and it bears some resemblance to COBOL, but with integrated facilities for accessing databases. It also has features that ease writing reports from the data and laying out fields for interacting with the program via a 3270 terminal. Since the applications we were writing back then consisted pretty much exclusively of batch jobs and interactions through 3270, that were centered on querying and maintaining databases, Natural fit our needs almost perfectly.

Natural is very much a procedural language, with relatively few features for modularization. (Some “object oriented” extensions were added a couple of decades ago, but they were implemented clumsily—it was more about supporting Microsoft’s COM scheme that actual OO—and we never used them at the University. My impression is that we weren’t the only ones who never used them.) I also believe that Natural has been so good at accessing Adabas that it has held the DBMS back. Although Adabas is a very capable, flexible, and performant DBMS, once Software AG started licensing Natural to go with it they have only made half-hearted efforts at making it accessible from other programming languages, so Natural’s weaknesses have in effect become weaknesses of Adabas as well.

Today I still do occasional programming in Natural. Just this week I was updating a batch Natural program I wrote last year to handle some kinds of data I hadn’t anticipated. And Natural has evolved and become more capable over the years: when I started at the University we were just beginning to migrate from Natural version 1 to version 2; the current version is version 9. However, it has become a niche language that only has limited use cases. I also think its proprietary nature has held it back. Significant enhancements only happen when Software AG sees the benefit from them, and the community of Natural programmers is limited to people working for companies that have licensed it. If you work for one of those companies, enjoy writing in Natural. If you don’t, you’re probably not missing much.