During second semester I took a module called ‘Scripting Languages’. Although I have always been more interested in using regular programming languages such as Java and C#, I thought it important to expand my skill-base (and the module was being taught by a very good lecturer).
This turned out to be a good choice. My ‘Scripting Languages’ module was part of what kept me going this semester through other modules such as ‘Distributed Systems‘ and ‘Principles of C and Memory Management‘. I think that the main reason for this is that scripting languages show you an immediate result. You see, scripting languages are a subset of programming languages which do not require a main() method as most programming languages do. Instead, a scripting language will execute beginning from the top of the script and running through to the end (although it may skip to functions during running). In C, C++, and Java, the main() function is the entry point from which execution begins.
In addition, scripting languages are usually interpreted, meaning that they do not require the compilation step (e.g. using gcc in C, javac in Java). Compilation creates a binary executable file (by translating the source code) from which the code can be executed. Interpretation takes each line of the source code and processes it as a series of actions at run-time, which is much more convenient than distributing pre-compiled code.
Scripting languages are often more suited to web development or controlling webpage behaviour than most programming languages.
We were given an assignment to complete in each language:
Perl: Develop a Perl script using CGI.pm to perform a statistical analysis of input program code.
PHP: Develop a web-based system using HTML, CSS, PHP, and MySQL to allow users to sign up for training sessions using online forms and enter the data into a MySQL database on the University servers. You can see what I produced here.
The emotional advantage of studying scripting languages this semester has been that I could actually see my progress and check whether what I was going in the right direction as I went along, the lack of which is often the most frustrating aspect of programming.