(part II of Outsourcing to Middle Earth)
Few men have seen actual ElfTalk source code, as its syntax and semantics are tightly guarded Elven secrets. However, bits and pieces of early versions of ElfTalk have leaked out, notably in some screenshots of ElfTalk version 432 that appeared in a now very difficult to find issue of Magic in Computing about three hundred years ago.
In a word, the language, like its makers, is beautiful.
Consultants returning from contracts with the Elves are normally bound by geas to speak nothing of their experiences, but occasional slip-ups do happen. Thomas Twelve-Toes, a talented hobbit from Bree, returned from Rivendell Systems unable to type on any keyboard other than one specially modified with fourteen variants of parenthesis and eleven shift bits for each character.
Others who have retained memories of working in ElfTalk are usually unable to write software for a living, preferring manual labor or politics to working with any computer system. When asked, they usually just stammer away about syntax coloring “beyond the ability of mortal eyes,” sentient header files, DWIM, and bugs that fix themselves.
Why use a toothpick when you can bash away with an axe? Pile-drivers are even more fun. Dwarf++ looks like C++ worked over by a mad genius. Multi-dimensional inheritance, Turing-equivalent macro processors and support (and need!) for symbols several megabytes in length throughout the tool chain — this is a manly environment, and wimps need not bother to submit resumes. What this really means is that build times are often measured in days and debuggers are very rustic indeed, but that’s okay because Dwarven code tends to work the first time. Just like you don’t have a second chance to carve a column out of raw mountain rock, Dwarves rarely need a second edit on a source file; a Dwarf using Emacs would be redundant and probably laughed out of the Software Chiselers guild. Most dwarves just write directly from the terminal, like this:
% cat - >compiler.c
int main(int argc, char ** argv)
This is a terrible language, currently in use by most of the Orc shops in the east. It was developed by Arkzarkz the Pitiless for his legion of programmer-slaves; its central theory is that individuals are fungible and that the core experience of software engineering is unending toil and pain. The only control structures of NAZGOL are IF and GOTO, the only data types are 16-bit unsigned integer, arrays, and function pointers. Variables are limited to five characters, uppercase only, and do we need to mention the 72-column line limit? With only a 64K address space, and with a level of asbstraction only a smidgeon above assembly language, the Orcs have become masters of implementing systems using hundreds of overlays and segments.
Despite such a primitive underpinnings, the unique Orcish approach to quality control (ship a bug? You’re dinner!) yields quite stable systems, able to stay up for years in the harshest environments.
Hobbits are capable of programming in practically anything, but in general they prefer small, embeddable languages such as FORTH and Lua, with the notable exception of recreational Perl. Ask any group of BIT students to toss off a one-liner in a pub and there will be mad scramble for napkins, pens and pocket terminals, and much laughter.
Of course, they have invented their own languages, and lots of them, ranging from the very tiny to attempts at their own defense systems languages. These languages are faddish in nature, growing up around pubs or college dormitories, spreading out into the industry, then fading as the next language comes into fashion.
It is not unusual to discover contracts where the deliverables have been written in such a fad language, then mechanically translated to the contractually obligated target language. For this reason it is important to keep a close eye on contractor checkins, since few Men have the ability to fix bugs in (say) Waterton Vastly Extended Basic or BREEBOL.
The Ents are not so much language users as they are thinkers and library builders. The Ents build the best attribute-grammar parsers in the world. This should not come as a surprise, given their tree-like nature, but the relationship with all things tree-like goes deeper than this. They are similarly strong at sorting algorithms, natural language understanding and AI systems. Many pieces of software in Middle Earth use libraries written by Ents.
Beware. Open any barrow or ancient tomb in Middle Earth and you’re likely to find old CDROMs, ROM cartridges and backup tapes “just sitting around.” Let’s face it, if a QIC tape has survived three thousand years buried in muck, there’s probably a good reason to avoid mounting it. Despite preservative sorcery, most of the older media is unreadable, but occasionally some clever but unlucky soul manages to recover an executable from a millenias-old tape and run it in an emulator, “just to be safe.” More fools they.
This, not Orcs, is what the squads of Eagles are really for, and why they practice pinpoint high-altitude bombing.
Most children are taught to avoid unknown media and to recognize the boot screens of evil operating systems, and to notify adults if they encounter any, but the occasional tragedy does happen. It is fortunate that Infections are rare, but when they do happen they must be dealt with quickly and without mercy. It is common knowledge that, without proper vigilance, what happened to the fair land of Mordor could happen anywhere else.
I haven’t talked about Goblins (noted expert virus and worm writers, using mostly assembly language and host scripting environments), Spiders (you guess what they’re superb at), nor of the great archives of dragon algorithms that you can find in old libraries and caves, but often guarded by physical and sorcerous traps. Much of Knuth Vol. VIII (Arithnomantic and Metamathematical Algorithms) was cribbed from such sources. More on the reference works and the history of technological development of Middle Earth later.