JargonFile/entries/MFTL.txt
2014-04-26 16:54:15 +01:00

32 lines
2.0 KiB
Plaintext

MFTL
/MFTL/ [abbreviation: My Favorite Toy Language ] 1. adj. Describes a talk on
a programming language design that is heavy on the syntax (with lots of
BNF), sometimes even talks about semantics (e.g., type systems), but rarely,
if ever, has any content (see content-free ). More broadly applied to talks
even when the topic is not a programming language in which the subject
matter is gone into in unnecessary and meticulous detail at the sacrifice of
any conceptual content. Well, it was a typical MFTL talk. 2. n. Describes a
language about which the developers are passionate (often to the point of
proselytic zeal) but no one else cares about. Applied to the language by
those outside the originating group. He cornered me about type resolution in
his MFTL. The first great goal in the mind of the designer of an MFTL is
usually to write a compiler for it, then bootstrap the design away from
contamination by lesser languages by writing a compiler for it in itself.
Thus, the standard put-down question at an MFTL talk is Has it been used for
anything besides its own compiler? On the other hand, a (compiled) language
that cannot even be used to write its own compiler is beneath contempt. (The
qualification has become necessary because of the increasing popularity of
interpreted languages like Perl and Python. ) See break-even point. (On a
related note, Doug McIlroy once proposed a test of the generality and
utility of a language and the operating system under which it is compiled:
Is the output of a FORTRAN program acceptable as input to the FORTRAN
compiler? In other words, can you write programs that write programs? (See
toolsmith. ) Alarming numbers of (language, OS) pairs fail this test,
particularly when the language is FORTRAN; aficionados are quick to point
out that Unix (even using FORTRAN) passes it handily. That the test could
ever be failed is only surprising to those who have had the good fortune to
have worked only under modern systems which lack OS-supported and -imposed
file types.