September 16, 2019

Perl and the invention of scripted languages

Under the UNIX operating system, the Perl language was a milestone. This is on the first look surprising, because Perl is less powerful than the C language. Programs written in a scripted language run compared to a compiled program much slower. Today, Perl is nearly obsolete similar to the Pascal language. Instead the Python VM has replaced former Perl environments. The reason is, that the syntax of Python is more elegant and it's supporting object oriented programming very well. But let us focus on the Perl language. It was the first important language which offered an alternative to compiled programming. The reason why so many perl scripts were developed was because it's much easier to write a script over compiling a program.

Programming in the C language is equal to classical programming. That means, a system specialist has a concrete project, he has a lot of experience with the C language and is creating an efficient program. In perl the situation is a different. Perl scripts are developed as throw away programs. They were written by non experts, and for tasks which are not important enough to create a standalone c application. In contrast to a c program a perl script doesn't know the difference betwen sourcecode and executable binary file. It's both the same similar to a plain text file. If somebody has received the perl script over a modem, he has the executable program, the documentation and the sourcecode all in the same file.

Many modern programming languages like PHP, Java and Python are derived from Perl. They have copied the idea to interpret but not compile the program. That means, the code is not executed by the operating system direct similar to a system routine, but the code is transmitted to the perl interpreter first and he executes the code. That means, a perl script isn't a standalone program but needs always the perl interpreter as a runtime environment.

In a direct comparison, Python can be treated as the inofficial Perl successor. It's working with the same principle but has improved the syntax. Also more libraries are available for python than for the perl language. The open question is what will come after Python? One option is, that the python interpreter evolves into the direction of java, which means, that it will precompile the code first which results into a higher performance. Another option is, that Python is nearly perfect and will be used for the next 30 years. Last but not least one very unlikely option would be to evolve the Python interpreter into a complete GUI operating system, similar to the micropython framework https://en.wikipedia.org/wiki/MicroPython which stays in contrast to existing Linux OS. In this case, the Python language would replace C drivers and the linux kernel and take control over the entire machine.