By Nicholas Barzelay
The question, “What is the best programming language for VDP?” seems to be a persistently unanswered issue for those developing or contemplating VDP development. There are very many programming languages these days. Some are more suitable for handling textual and numeric data than others. This is one consideration, but beyond functionality, execution method may be a more relevant first step in making a selection.
Language Execution Method
For purposes here, there are two types of languages: compiled languages and interpretive languages. In a compiled language the program code is checked for errors and then converted into machine-readable instructions using a software application called a compiler. The compilation takes place once, and programs are only recompiled if later modified. This produces very fast programs that are very stable – stable in the sense that they are not intended to change with every run. Such languages are very good for developing application frameworks, graphical user interfaces (GUI’s), function libraries, and standard (shrink-wrapped) application software packages.
Programs written in an interpreted language are converted into machine-executable instructions as the interpreter reads the written program. This means that every time the program is run, it is interpreted (essentially the same as being compiled at runtime). Therefore, interpreted programs run slightly slower than compiled programs. However, interpreted programs are very flexible because they can be modified and run on the fly. This makes them ideal for VDP jobs, because each processing run is liable to be different. Program logic that will be reused with variations can be retained as programming templates or sets of functions that can be customized prior to running.
Most VDP processing will involve data file or XML manipulation, as opposed to creating fixed logic applications, GUIs, or code libraries. Therefore programming languages like C, C++, Objective-C, Java, and C# are really not needed for everyday VDP development. It is unlikely that a printer or ad agency, for example, is going to be building application software packages. Java script, VB (Visual Basic) script, and VB have their own functional or platform limitations.
Because every VDP job is liable to use different sets of data or require different processing, a high degree of flexibility is needed. Interpreted languages such as Perl or Ruby are more appropriate selections. Both are very quick at runtime, and extremely well suited for text processing (the primary need when manipulating data or raw text for VDP).
Training is relatively straightforward for both Perl and Ruby. A strong open source developer community supports both. Documentation and tutorials are plentiful. And both languages are cross-platform capable, meaning for example, the same program can run on Mac OS X, PC Windows, Linux, or Unix.