There is also a website focused on polyglot programming. The website is "dedicated to exploring the benefits (and drawbacks) of combining multiple programming languages and multiple "modularity paradigms" in application development. The "paradigms" include Object-Oriented Programming, Aspect-Oriented Programming, Functional Programming, etc."
What combination of languages do you (or should you) use in most of your application development? Is there a perfect language combination for all of your work? Depending on the requirements, you will at least consider a mix of four language choices: an object-oriented language, SQL, a markup language and a scripting language. There are many articles and conference presentations describing the "right language for the right job".
Several examples of polyglot programming are listed on the Polyglot (computing) Wikipedia page:
- Polyglot - a program in eight languages (COBOL, Pascal, Fortran, C, PostScript, Linux/Unix shell script, X86 machine language and Perl)
- Obfuscated Programming - 6 language Polyglot (C, Shell, Perl, Brainf***, Befunge, Whitespace)
- Happy New Year in 4 languages (C, Fortran, C Shell and Bourne Shell)
- The Polyglot List (many different multi-language examples)
Sadek Drobi, in an InfoQ article, discussed "Paradigm based Polyglot Programming". "To be able to do the right decision one should keep in mind that the main reason of adopting polyglot programming is to be able to choose the right programming language for the domain problem at hand. But then, the question is how to choose the right language for a given domain or sub-domain?" He guides developers to take into consideration the properties of each programming language, the paradigm (or paradigms) that a language embodies and to choose the right languages for the application domain or sub-domain.
For native code development, you can (often) link code from several compiled language programs to create executables, libraries and dynamic link libraries or shared objects. For managed code development, the byte-code based Java and .NET virtual machines both support multiple programming languages. When you need to mix programming and scripting languages you will often have to use multiple runtimes. Does this sound too complicated? Years ago, developing and deploying applications built with multiple languages required a team of software developers. Today, we don't think twice about leveraging multiple languages in our every day development work.
What programming, scripting, domain specific and markup language combinations do you use? Post a comment below.
Programming is Life!
Recent news for developers: