My Boldt and Moll Families – a Short Overview

As I mentioned earlier, about half a year ago I returned to my hobby of genealogy after a 15 year break. Since my return, I’ve added significantly to my database. It’s now time to start blogging about some of what I’ve learned.

My Boldt ancestors lived in Mecklenburg-Schwerin, a small Grand Duchy at the western end of Germany’s Baltic Sea coast. This was always one of the more rural of the German states, with a predominately feudal society up until the end of the 19th Century. Most people worked as peasant farmers or day laborers. For most, their only hope of bettering their lives was to move away. My 4th great uncle Jochen Boldt (1824-1910) moved his family to south-central Ontario in the 1870’s. where many of his descendants still live.

My earliest known Boldt ancestor was Aßmus Bolt, who lived in the village of Dümmerstück in the early 1700’s. His son Christoph Boldt (1735-1821) moved to Vietlübbe. His great grandson, born in Hindenberg, was my great grandfather Heinrich Boldt (1873-1957). Like many others, Heinrich worked as a day laborer. That is, he did, until he discovered that the land owners were cheating the workers out of their fair wages. When he could no longer find work in Hindenberg, he moved with his family to Hamburg, joining other relatives who moved there earlier. The surviving descendants of Heinrich Boldt, all four of us, now live in Kingston, Ontario.

There is a lot more information available on my Moll family. One of the single most important documents is a list of the descendants of Evert Moll, born about 1628 in Velp. (The document incorrectly lists the progenitor of the Velp Moll’s as Claas Moll.) This was published by the Vereeniging “Families Mol(l)”, an organization active during the 1930’s and 40’s. You can find scanned copies of their publications at Jan Wies’ website. This document includes more than 450 descendants in the Velp Moll clan, including three of my aunts (#384 Geertje Johanna, #385 Marritje, and #386 Gerrie).

In general, the Moll’s were fairly well off. There was even a coat of arms described: three black moles, one above the other, on a field of silver. My direct Moll ancestors were generally bakers, merchants, or farmers. My great great grandfather Herman Moll (1822-1902) moved to Nijkerk shortly after getting married in 1847, and worked there as a baker.

Looking further afield at some distant Moll cousins, you can find some relatively famous individuals. For example, my 2nd cousin, 4 times removed, Antonie Moll (1786-1843) was a distinguished medical doctor and surgeon in Arnhem. His first-born son Evert Moll (1812-1896) was a learned liberal theologian and minister who served the congregations of Hengelo, Vollenhove, and Goes. My 4th cousin, twice removed Evert Moll (1878-1955) was a well-known painter, known for his impressionist paintings of the Rotterdam harbor.

But my most famous distant cousins weren’t Moll’s, although one was the grand-son of my 3rd great aunt Teunisken Moll (1803-1839). My 2nd cousin, twice removed, was the Nobel-Prize winning physicist Hendrik Antoon Lorentz (1853-1928). But he’s not the only Nobel Prize recipient in my list of relatives. I’m also related to Nobel Prize recipient Heike Kamerlingh-Onnes (1853-1926) in two ways: As 4th cousin twice removed, and also as 5th cousin twice removed. The two of them were 5th cousins, and although they both worked as physicists at the University of Leiden, they probably didn’t know they were related.

There were also a few “black sheep” amongst my distant relatives. For example, Elisabeth Keers-Laseur (1890-1997) was an unrepentant Nazi supporter both during and after the war.

For some of these people, I’ll write more in the months ahead.

Cheers! Hans

Dealing With Death

Last year, I worked for a couple of months for a company located in a renovated factory on the Cataraqui River. The clients for this company were funeral homes. What was it like working in that line of business? It’s hard to find the right adjective to describe that business domain. Weird, perhaps. No other type of business deals with such an emotionally charged issue as death.

One of my tasks was scraping the existing client web sites to extract obituary data. Technically, the PHP programming was fairly straight-forward. However, the task also required reading through the extracted data to make sure it was read correctly. While I had no problem with most of the obits, which described rich, full lives of people who died of old age, other obits were more difficult to read. Such as obits for young children, including a brave 12 year old girl who lost her battle with cancer. One time, I read a death record that listed the place of death as “airplane” and the address of death as the World Trade Center. There’s a certain quality needed for people working in the funeral industry, a quality I lack. Even now, 14 months after I quit that job, I still have little desire to read obituaries.

Then again, I must still read death records, since one of my interests is genealogy. Finding the death or burial records for someone is just as important as finding their birth, baptism, or marriage records. But looking at the death records overall, the life expectancy statistics in past centuries can be quite shocking. Consider the following graph:

There are about 4500 individuals in my Gramps database. Of these, I know the age of death for 1149 of them. Most of these people lived in the 18th and 19th Centuries. The largest single lifespan age group is children younger than 5 years old. Prior to the 20th Century, high infant mortality substantially brought down the overall average life expectancy. That is, if you survived childhood, you stood a good chance of  living into your 70’s or 80’s.

Take one family of distant cousins I researched yesterday using WieWasWie: Jacob van de Klomp and Hendrica van der Wepel (my 1st cousin, 3 times removed) were married in 1882 in Zeist, and had a total of 12 children, born between 1882 and 1898. Of the 12, four made it past their first year of life: Reijer born in 1882, Gosina born in 1889, Hendrica born in 1896, and Willem born in 1898. If they had lived just 50 years later, the vast majority of them would have survived infancy.

Prior to the 20th Century, certain things we take for granted today just didn’t exist. Things like sanitation, immunization, and proper health care. Epidemics, such as cholera, spread rapidly throughout Europe. I saw this clearly in the church records of Gielow, a small town in the south-east corner of Mecklenburg-Schwerin. While reading the microfilmed church records, I came across the burial record of  Wilhelm Ludwigs in October 1850, who died at age 6 of cholera. Several pages later in the church book, I found the burial record of Magdalene Millhahn who also died in October 1850, three days old. Scanning through the pages, I found a total of 50 people who died in October and November of 1850 in that one small town, almost all of cholera.

I find genealogy fascinating since it brings history to a personal level. Looking at the death and burial records can be difficult emotionally, but really shows how difficult life was in past centuries, and how lucky we are today.


Working in a Sick Building?

Last year, I worked for a few months in an office in an old renovated woolen mill on the Cataraqui River in Kingston. There were a couple of factors that lead to my resignation, and perhaps I’ll discuss other reasons later. But for now, I’d like to focus on one.

Old buildings like this have a certain character lacking in more modern structures. In Toronto, I worked for a couple of years in a century old office building just off the Garment District. I liked the exposed brickwork and wooden beams inside the building, as well as the bare wooden floors. This old restored mill in Kingston had all that, plus a nice scenic location on the river.

However, this building is an area where much of the land and sediment in the river is still contaminated with significant amounts of toxic chemicals, such as lead, chromium, and mercury. I have no doubt that the building I worked in met current rules for workplace safety, but I still have to wonder if there’s something in the environment within that building.

For a long time, I’ve had to deal with anxiety symptoms. I’ve identified a couple of causes. First, I seem to have a sensitivity to MSG. Second, my symptoms seem related to seasonal allergies. The latter can be dealt with using one particular OTC allergy medication. The former can be addressed by careful reading of food labels and avoiding any foods containing MSG.

However, during my time on that particular job, I found my anxiety steadily increasing. And it seemed to do so in a way totally unrelated to the stresses of the job. Even after quitting that job, the symptoms stayed on for several months before fading away. I suspected something about the environment within the building. Sure, there were other aspects of the working conditions in that office that were less than ideal. For instance, the level of lighting was unacceptably low. There were spotlights aimed at the small desks, but the overall ambiance made me feel like sleeping instead of working. Also, the development staff was crowded into a small space, which made working uncomfortable. But what I found really suspicious was a greasy residue on the floor. Was that oily substance out-gassing some chemical into the air?

Sure, this may not be the worst of Kingston’s brown-fields. And I’m sure most people who work in this particular building do so without feeling any ill effects. But for me, I think I’ll stay away from that area.

Genealogy – Fifteen Years Later

Readers of this blog know that I have a variety of interests. One interest that hasn’t come up yet in this blog is genealogy, the systematic study of our ancestors. I started tracing my lineage back in 1992. I pored over microfilms at the local LDS Family History Center. After a few years, amassed four binders full of data. But my paced slowed down, and other interests started to demand my attention. In 1997, a trip to Germany resulted in some good information about my Boldt line. But after that, I did little more, leaving lots of unfollowed leads and unanswered questions.

A few months ago, Sylvana by chance met someone who claimed to be a direct descendant of millionaire George Boldt, the guy who built Boldt Castle in the Thousand Islands. I contacted him and asked him for details. (Later, I realized his claim was dubious since George’s only son had only daughters.) This prompted me to return to my research and continue where I left off. I haven’t gotten back to the LDS yet, though. I’m still going through my old data, looking up new data on the internet, and updating my files. This process has given me a new appreciation for the importance of documenting sources. Going through the data on my computer, I often question where a piece of information came from. So that’s one of my first priorities, one that will take some time to complete.

For the most part, source information is recorded in my written notes. But in one case, I have a document full of good information about my Laseur ancesters, but unfortunately, I have no idea where it came from. I sent an e-mail to one possible person. However, his e-mail address is 13 years old, and predictably, the e-mail bounced. So if anyone knows any information about the descendants of Jan Laseur, born about 1610 in the Amersfoort area, please let me know so I can properly attribute the source of that data.

So what has changed in the past 15 years? First, the technology has progressed. Back then, I was using a DOS-based shareware program called GIM. Today, I use an open-source program, Gramps. This program strongly reflects the design of GEDCOM version 5.5, the most current GEDCOM standard. Compared to the older versions, 5.5 has much better support for sources, and a wider choice of events. It is now much easier to paint a more comprehensive picture of a person’s life. However, the GEDCOM 5.5 standard was released in 1995-1996. While there have been some proposals to move beyond 5.5, it still remains the current standard.

Second, use of the internet has, of course, increased. There are a number of commercial web sites that offer information for a price. For me, though, I can’t quite justify the cost. Fortunately, there are still a lot of free sites where you can find information. This is especially true for Netherlands research. By searching the web, I was able to add significantly to the Dutch side of my pedigree. One good example of this is the site Jan Wies over de familie Mol(l). This contains everything published in the 1930’s and 40’s by the Genealogische Vereeniging “Mol(l)”. If you have Moll’s in your ancestry, this is the first place you should look. You can download complete lists of descendants of three different lines of Moll’s. (I’m a descendant of the Moll’s from Velp.)

But while Dutch genealogists have made good use of the internet, the same can’t be said for the other half of my pedigree, from Mecklenburg-Schwerin. On that side, there’s not much more information than there was 15 years ago.

So what are my next steps? First, there’s the old question: Is my Boldt family related to the millionaire George Boldt? This is a question I wouldn’t bother with if it weren’t for an old family story about a weatlhy American relative visiting the Boldt home in Hindenberg. Second, I have significant unexplored areas in my Mecklenburg pedigree, specifically the ancestors of Carl Ludwigs (died 1909 in Rostock) and Emma Elise Katharine Wulff (died 1916 in Hamburg). Finally, a lot of additional little details need to be filled in, as well as expanding the list of relations.

Cheers! Hans

Operation Red-Nose Project

About 13 months ago, I started working on a project to replace the software used by the local Operation Red-Nose (ORN) organization. Up until then, they had been using an old DOS-based system that was long past its best-before date. In fact, they were only using part of the system, and even that had major usability issues. The project was suggested by my supervisor at the MCF Practice Firm, a volunteer at ORN. The purpose of the project was for me to pick up some specific programming skills. At the time, I couldn’t complete the project since I got a job offer five weeks into the program. But that job didn’t last, and I was able to return to the ORN project. (During the summer, federal funding for the practice firms was withdrawn, and so MCF was forced to close.)

For the ORN project, I decided on CakePHP and MySQL. I chose PHP and MySQL since they are pretty much ubiquitous in the I.T. realm. For the framework, I quickly narrowed down the choices to CodeIgniter and CakePHP. I chose the latter since it strongly encouraged the use of an MVC design. The ORM also impressed me, with its ability to get all the data associated with a transaction in one operation (typically). That is, all the SQL joins were taken care of automatically.

In a nutshell, the ORN application manages many aspects of the operation, in particular, the event nights during the annual campaign. The system keeps track of volunteers. During an event night, volunteers are checked in to the system and assigned to teams. Operators take calls from clients and enter their ride requests into the system. The dispatcher assigns the requests to the available teams, and tracks the progress of the requests. And at the end of the evening, the treasurer tracks the donations.

An essential part of the development process was demonstrating the system to the ORN volunteers and getting feedback. After each weekly meeting, I’d normally have several pages of suggested improvements. The main issue was understanding how the volunteers would learn the capabilities of the system, which wasn’t always easy for a programmer geek like me. As the programmer, I knew how to get things done. But for others, especially those with little computer experience, it wasn’t always clear.

Add to that some language issues. ORN Kingston is managed through La Route du Savoir, an organization that provides training and services to French speaking people in the Kingston area. Although everyone at ORN speaks English, one person had a bit of trouble with some of the more technical language I used. Often, someone had to translate my technical language into a form that that person could understand, and her requirements into language I could understand. But we managed, and the result was a system that everyone was happy with, even if it took a few weeks after the start of the 2012 campaign to get all the required features in place and the defects fixed.

Is there more work to do on the new Kingston ORN system? Sure. The data entry form for the telephone operators can be improved. I took a few phone calls myself, and readily saw one problem with the layout of the entry fields. For the 2013 campaign, I’ll rearrange the entry fields to reflect the order that questions are asked of the callers. That is, if the first question is “Where are you?”, the pickup location should be the first item on the form. In general, that form should have a list of questions for the operators to ask to ensure that nothing is missed.

How did CakePHP work out? In retrospect, I think it was a perfectly reasonable choice. At no time was there anything that CakePHP couldn’t handle. There was one annoying issue with session timeout. However, upgrading to version 2.2 addressed that problem. The upgrade didn’t go without some effort, though. When I started the project, I didn’t always follow the preferred naming convention. For version 2.2, I had to rename my controller classes.

What about MySQL? The application currently uses 16 tables, which is puny compared to other production systems. Although I prefer more robust DBMS’s, I could clearly see how MySQL has matured over the past few decades. The InnoDB engine (now the default) is sufficiently robust for this type of application, supporting foreign keys and transactions, vital features in even the smallest of databases. In contrast, today in the year 2013, there are still production MySQL databases that use the old MyISAM engine. In my opinion, any database administrator who entrusts vital company data to a MyISAM database should be fired immediately.

If I were to start the project today from scratch, would I do things differently? Styles of programming for web applications are always changing. For the ORN project, I designed it as a fairly traditional server-based web application, with just a bit of client-side programming. But the trend is to move more processing to the client, with the view and controller components on the client and the model on the server. But for this type of application, I don’t think I’d do things any differently.

Open Mic Night At The Royal

The Royal Tavern in downtown Kingston has a history. Sure, there are lots of old 19th Century buildings in the city. But the Royal is significant historically for a couple of reasons. First, it’s supposedly the oldest continuously operated bar in the city. Second, the building was once owned by Sir John A. Macdonald, Canada’s first prime minister.

Note that there’s no bronze plaque outside the bar noting the fact that Sir John A. drank here. Someone said that if there were a bar in the States once owned and frequented by George Washington, there’d be a line of tour buses waiting outside today. But here in Canada, we tend not to confer mythical hero status to our founding fathers. There are plenty of sites in Kingston related to Sir John A., such as his law office, grave site, and home. But apart from the latter, we don’t make too big a deal of them.

But getting back to the Royal, in addition to its historical significance, it has a bit of a reputation as a rough bar. The owner is trying to reverse that reputation, with success. And now, the bar is establishing itself as a good place for live music. Take Thursday nights for example, when there’s an open mic or open jam. Between songs by the great house band, usually blues or jazz inspired, others can take the stage. And yesterday, I was one of those, banjo-ukulele in hand.

What’s it like going up on stage at the Royal? The place is noisy. Although it’s a few block from the university, most people here are middle-aged. It’s a place to drink, talk, and generally have a good time. Few people actually pay direct attention to the musicians, but still show their appreciation of the music at the end of each song. I’m usually nervous on stage, however I found the environment pretty comfortable, probably due to the fact that there weren’t forty pairs of eyeballs staring at me. And afterwards, a number of people asked me questions about my banjo-uke, something few if any had actually seen or heard close up.

To borrow a 1960’s cliche, on Thursday nights, this is a “happening place”. And it seems to have gotten this way without much in the way of publicity. Or much in the way of choice in beer. There’s one beer on tap, Canadian, plus a modest selection of bottled brew. But considering the ambiance and the music, I don’t mind the limited choice. If anything, that’s part of the character of the place.

Cheers! Hans

The Song Remains the Same

Are you unsatisfied with current trends in music? Although good music has always been produced, does it seem to you that there’s less and less good music coming out these days? Well, you’re not alone. Joan Serrà and his colleagues at the Artificial Intelligence Research Institute in Barcelona have studied music over the past few decades, and their conclusions show that music has become more homogenous over time. And louder too. You can read about their research at The Economist.

Granted, it’s hard to find good music these days. And perhaps my age is showing too. The defining style of music for me was the New Wave of the late 1970’s. The early 1970’s featured a lot of good music, but nothing that really spoke to me the way the music of Elvis Costello, Talking Heads, Blondie, and B-52’s did. In the 1980’s, I explored other musical genres, like jazz and classical. But other pressures increasingly hampered my ability to keep up with current events in music. But most of what I did hear in the 1990’s and 2000’s wasn’t especially noteworthy, in my opinion.

Fast forward to Christmas 2007, when I got my first ukulele, an inexpensive Beaver Creek. I fell in love again with music. Sure, I tried my hand at guitar when I was young. But I lost interest after a while, especially once I tried practicing the barred chords. But the ukulele was something else. Four strings, four fingers – what could make more sense? The neat thing about the uke is that it’s easy to form the chords. And not just the basic chords. In many cases, more esoteric chords aren’t that difficult either. Practice helps immensely, of course. However, the success rate at learning chords, and the ease of playing barred chords, makes it possible for anyone to master songs that use more than just your basic chords.

What’s the point of today’s missive? I suppose it’s this: More musicians should learn ukulele. With it’s ease of learning and playing, I would suggest that it’s easier to explore different and original chord sequences on the uke. Have you ever wondered where the diminished chords have gone? They were very common in the early 20th Century. How come we don’t see them very often today?

Think of the songs of George Harrison, and note that he was a big fan of the ukulele. I wonder how many of his songs were inspired from just noodling on the uke? If you have a uke handy, try out this iconic chord sequence, one strum per chord:

Familiar? Should be. It’s from one of his most famous songs! And the rest of this song can be played just as easily. And not just the chords. The melody line of this song is easily played as well.

For some time now, I’ve been wondering what the next big trend in music will be. Will we ever again see some new movement as sweeping and refreshing as the late 1970’s New Wave? Is there enough cohesiveness among music fans to give a New New Wave a chance in today’s fragmented entertainment environment? Or will commercial interests continue to foist blandness upon us?

I call on all songwriters and musicians to turn back the tide. Let’s bring back variety and interest to our songs. Have all the songs already been written? No, of course not. There’s a whole slew of new chord sequences to explore. And the ukulele can help you to explore them.

Cheers! Hans

PHP – What Really Sucks About It?

PHP sucks. That’s something I think a lot of programmers will agree on, even PHP programmers. For example, Jeff Atwood offers an interesting viewpoint in his blog entry The PHP Singularity. But heck, a lot of programming languages suck. And even though they suck, there are many millions of KLOC written in languages like COBOL, PL/I, and RPG.

Programming languages, like human languages, evolve. PHP started life as a web templating system, and evolved into a general-purpose programming language. During subsequent releases, new features have been added and some cruft deprecated. Other languages, like Perl and RPG have over the decades undergone similar transformations away from their original purposes.

Why is PHP so maligned? Perhaps because many of us have had to deal with PHP code written 10-15 years ago when the language lacked many of the nice features added in recent releases. Or PHP code written by programmers who knew better than the previous programmers on the project.  Or PHP code written by programmers without extensive programming experience. 10-15 years ago, programmers who knew the risks associated with web programming typically chose other languages if they could.

When I started doing PHP programming, I started with PHP 5 and CakePHP. With Cake, you can’t help but structure your application using a more or less proper MVC design. It’s probably too much trouble not to. And so I know from personal experience that it is indeed possible to write relatively clean code using PHP. Unfortunately, we don’t all have the luxury of working with clean PHP code.

What kind of programming shop typically uses PHP? I would guess the typical PHP shop evolved as follows: The shop started out small, perhaps as a one-person company. As the business grew, the demands on the custom PHP application grew as well. Other programmers were brought in, each with their own programming styles. Perhaps one of them was assigned the task of managing the others. But without any significant management experience, eventually the programming staff gets to the point of running from crisis to crisis as the code base gets harder and harder to maintain. Does that sound like your PHP experience? It’s a sure-fire recipe for job stress and significant staff turnover.

Based on my own experience, the next time I’m interviewed for a programming position, PHP or otherwise, I would come armed with a bunch of questions, including:

  1. Can I see your documents describing your development process?
  2. Can I see proof that the documented development process is followed?
  3. Would I be reporting to a manager with specific management experience?

To be fair, it’s possible to write bad code in any language. But if a programming shop wants to grow beyond a small business, it needs to adopt a different mindset. It needs professional management experience. It needs proper coding standards and processes. It needs programmers who know what it means to work as a team. It needs a staff that understands the importance of egoless programming. Can those things be found in the typical PHP shop?

Cheers! Hans

Is RPG Dead? The Wake

In a previous post called Is RPG Dead? The Autopsy, I suggested I’d probably have more to say on the subject. This offering is in response to Scott Klement’s editorial, RPG is Dead? Are You Serious?! I’d like to respond to a couple of points he makes.

First, he brings up the fact that people have been debating RPG’s death for the past 20 years, and yet RPG is still around. But why bring up the question at all if there was any doubt as to RPG’s future? Does anyone ask if Python is dead? Or PHP? Of course not! No one has to.

Next, he raises the point that most application development on IBM i is done in RPG. No one is denying that. However, no one can deny that IBM i is a platform in decline. The numbers just don’t lie. The fortunes of RPG are intimately tied to the fortunes of the platform. As IBM i slowly dies, so does RPG. (I said more on this theme in my blog posting Is RPG Dead? Do We Still Have To Ask?.)

Skipping past some history, Scott talks about what’s important to programming business logic. Let’s look at each in turn:

Business logic uses numbers heavily. Well, this is not unique to business applications. However, most arithmetic in any business application, like in any other domain, is integer arithmetic. Business logic does make use of decimal numbers, but even there, most operations involving decimal numbers are simply the movement of data. Actual decimal arithmetic is a small part of the logic, and in most business apps, could be implemented fully in SQL code. That said, other languages do have support for decimal arithmetic. Scott mentions Java for one. Python is another. Even PHP has support for decimals.

Business logic uses databases heavily. Business applications don’t have a monopoly on using databases. Many different domains, from gaming to on-line social networking to statistical analysis make at least moderate use of databases. And so you can find support for databases in practically every programming language out there. RPG gives you two choices: built-in I/O operations and pre-processed SQL. Other languages often provide higher-level access to databases. For example, in CakePHP, you define your high-level relationships (1-1, n-1, 1-n, n-n) between your tables, and one find() operation can bring in all related data for a transaction. That is, the framework figures out the SQL for you, including joins. Among the available RPG frameworks, which one can provide that level of power?

Business logic uses dates frequently. And so do many other types of programs. And so you can find date support in practically all modern programming languages. RPG is certainly not unique. Python has the datetime class. PHP has an extensive list of date/time functions and classes.

Business logic uses a lot of string manipulation. I disagree with that assertion since strings are most commonly needed in the presentation layer of an application. But let’s assume it’s true for business logic. Again, what modern programming language lacks support for strings? Languages like Python, Perl, and PHP (to name a few) all have very powerful string support. Much more powerful than RPG’s support. In those other languages, strings are all objects, with a rich set of methods. RPG, in comparison, has a rather limited choice of string operations. Consider the ease of doing regular expression matching in Perl, Python, and PHP. And compare that to what you need to do in RPG.

If these four categories define what’s important in programming business logic, there are clearly languages other than RPG that have a definite advantage. Whenever I see someone claim that RPG is the best language for business logic, I always interpret that to mean that the author simply knows RPG best. And Scott certainly is an expert on RPG.

Finally, Scott makes the point that RPG is still being enhanced and supported. True. However, other languages have long ago surpassed RPG in terms of features and capabilities. In my previous missive, I listed half a dozen features common to other programming languages that are still lacking in RPG. And I could have listed more. And other languages continue to grow and gain in popularity.

RPG will not disappear overnight. To say that RPG is dead is an exaggeration. However, it is becoming increasingly irrelevant in the I.T. world. I’m reminded of a job interview I had back in 2008 where the interviewer looked at my resume and asked: “What’s an iSeries?”. (RPG wasn’t discussed at all in that interview.)

Cheers! Hans

Is RPG Dead? The Autopsy

In a previous post, I promised to say more on the subject of RPG’s death. But I’m finding it tougher than I expected. Don’t misunderstand me, it’s not for lack of content. It’s just that I worked with RPG for a long time. I don’t want to see RPG go away. Writing this blog posting feels like I’m kicking an old friend while he’s down on the ground. On the other hand, it’s just a programming language. And the facts need to be understood.

When I first learned RPG III, 31 years ago, I was impressed by a couple of things. First, I was impressed with the externally-described file. As far as I knew, no other language had such a powerful feature. Second, I was impressed with the syntax-checking source editor. At my university, some professors were just beginning to think about something like that.

But other aspects of RPG III were definitely goofy, such as the fixed-form syntax and the indicators. Fortunately, the language has grown since then. Indicators can be largely avoided, and calculations can be coded in a free-form syntax. However, although RPG has progressed, other languages have progressed faster, and new languages have cropped up with even more powerful features. More and more, RPG looks like an anachronism, rather than a modern programming language.

I’ll list some features that are commonplace in other, modern programming languages that RPG still lacks:

1) Namespaces. That is, what happens when you want to import two libraries with the same name? In languages like Java and Python, imports can be put into a directory hierarchy. And if there are conflicts, things can be renamed.

2) User-defined data types. Sorry, data structures and LIKEREC just don’t cut it.

3) Object-oriented programming. What language doesn’t have OO support these days? It’s something we now take for granted elsewhere.

4) Extensive list of built-in functions or classes. Just compare what RPG has to the Python Standard Library or PHP’s Function Reference. No comparison.

5) Frameworks. Most modern programming languages have a goodly selection of frameworks that simplify programming web applications. These frameworks have various levels of functionality, however, typically they take care of a lot of nitty-gritty details. Using a framework, you should never see a query string, or XML, or JSON, or SQL.

6) Operating system independence. Programs written in languages like Java, Python, and PHP can easily be ported across different operating systems.

Some would argue that RPG could be further enhanced to address these short-comings. But why bother when there are already other languages that have these features? The planners at IBM certainly know what’s lacking in RPG, and they still seem to have the resources to make the occasional enhancement. But over the past decade, there seems to have been little effort to address these specific short-comings. Looking at the situation from that perspective, one could argue that IBM itself also sees no future for RPG.

So far, I’ve written about 500 words, and yet there’s still more to be said. Stay tuned.

(Update: Next installment: Is RPG Dead? The Wake)

Cheers! Hans