COBOL
COBOL, Common Business Oriented Language, has been around since the
1960s. It is one of the oldest programming languages and is still the dominant
language for (legacy) business applications. The majority of big business
applications, such as payroll and accounting, were written in COBOL, and
most programmers who knew it well have retired. A job market exists for
younger programmers willing to learn it and willing to support older
applications that are stable and trusted and still running all over the place.
This is especially true if you are able to understand the business processes
modeled in COBOL and can integrate it with modern technology, which isn’t
always an easy task.
COBOL’s syntax was designed to mimic natural human language. Often a
newcomer can read COBOL source code and have a pretty good idea of what
it does, even if the reader has little to no programming experience. An
interesting feature in early COBOL that is deprecated in more recent versions
is self-modifying code, which had the potential to create some interesting
situations. COBOL has always been a little controversial, as illustrated by the
time that Edsger Dijkstra remarked that “the use of COBOL cripples the
mind; its teaching should, therefore, be regarded as a criminal offense.” (©
Edsger Dijkstra)
In a 2012 survey in ComputerWorld, 46% of the respondents said they were
already noticing a Cobol programmer shortage, while 50% said the average
age of their Cobol staff was 45 or older and 22% said the age was 55 or older
(see
https://www.computerworld.com/s/article/9225099/Cobol_brain_drain_Survey_results
Organizations are trying to move away from COBOL, but it is still in
extensive use.
To use COBOL on Ubuntu, you write programs in your favorite text editor. To
compile, you need the package open-cobol, which actually translates the
programs into C and compiles them using gcc.
D
The D language is a lot like C but much newer. It has similar syntax. It also
has static typing. However, it has some differences that are designed for
convenience, power, and continued efficiency. In D, you are able to write
large amounts of code without redundantly specifying types. Static inference
deduces types and other code properties. Also, memory management is
automatic, and you have built-in linear and associative arrays, slices, and