I disagree with the line of thinking that ease of obfuscation = flexibility = definition of the best programming language.
All programs in all programming languages can be obfuscated. The quality of a language that allows a program to be especially obfuscated is not so much related to flexibility, as much as it is related to the number of language contexts, the allowable set of tokens in a language, and the large scope of operations possible using these tokens.
In the simplest sense, this may relate to 'flexibility', however, there is no evidence that a language with a simpler, or more rigourous syntax, is any less capable, or 'flexible' than a language with a looser syntax, or a richer set of built-in operators. Assembly language has far more flexibility than Perl, in that all Perl can be represented using Assembly language. To many, most programs written or generated in Assembly appear obfuscated without any manipulation at all. This does not make Assembly the 'best language' for programs to be written in.
Obfuscation is an art. Obfuscation is the opposite of poetry. Instead of creating patterns, and token sequences that are pleasant to the eye, obfuscation is the creation of apparently random token sequences that are impossible to ungroup or derive true intentions from. Although obfuscation is the opposite of poetry, it shares qualities and traits with poetry. Languages that provide the best opportunities for obfuscation, or poetry, are those that are not internally consistent, contain numerous contexts, and subtle differences, even for apparently similar token sequences.
Larry Wall believes that programming languages that contain these traits are more naturally familiar to most programmers. The Perl programming language has followed an accelerated evolution that attempts to mimick the evolution of human languages such as English. For this reason, Perl represents an excellent language for those inclined to practice the art of obfuscation.
I personally believe that these qualities of Perl make it popular, but do not make it better. I believe that Perl has evolved to the point that it is a significant competitor in terms of capabilities, even with languages that have been designed from scratch to be excellent, because of the number of talented people that have been drawn to use Perl, or develop Perl. Perl would be nothing without the rich libraries provided by CPAN, or the forced evolution by people who were not satisfied with Perl 4.x and earlier.
Perl is a capable language because it was honed into a capable language over several years. The ability for Perl to be used as a language to practice the art of obfuscation is not a trait that I actively seek out when determining the proper language to be used for a product.
In reply to Re: Re: About Obfuscation
by MarkM
in thread About Obfuscation
by Ananda
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |