Choice of Language
©1996-2009 Roedy Green, Canadian Mind Products
Philosophy is a battle against the bewitchment of our intelligence by means of
language.
~ Ludwig Wittgenstein (born: 1889-04-26 died: 1951-04-29 at age: 62) (Luigi’s
older brother)
Computer languages are gradually evolving to become more fool proof. Using state
of the art languages is unmanly. Insist on using the oldest language you can get
away with, octal machine language if you can (Like Hans und Frans, I am no
girlie man; I am so virile I used to code by plugging gold tipped wires into a
plugboard of IBM unit record equipment (punch cards), or by poking holes in
paper tape with a hand punch), failing that assembler, failing that FØRTRAN
or COBOL, failing that C, and BASIC, failing that C++.
FØRTRAN
Write all your code in FØRTRAN. If your boss ask why, you can reply that
there are lots of very useful libraries that you can use thus saving time.
However the chances of writing maintainable code in FØRTRAN are zero, and
therefore following the unmaintainable coding guidelines is a lot easier.
Avoid Ada
About 20% of these techniques can’t be used
in Ada. Refuse to use Ada. If your manager presses you, insist that no-one else
uses it, and point out that it doesn’t work with your large suite of tools
like lint and plummer that work around C’s failings.
Use ASM
Convert all common utility functions into asm.
Use QBASIC
Leave all important library functions written in QBASIC, then just write an asm
wrapper to handle the large->medium memory model mapping.
Inline Assembler
Sprinkle your code with bits of inline assembler just for fun. Almost no one
understands assembler anymore. Even a few lines of it can stop a maintenance
programmer cold.
MASM call C
If you have assembler modules which are called from C, try to call C back from
the assembler as often as possible, even if it’s only for a trivial
purpose and make sure you make full use of the goto, bcc and other charming
obfuscations of assembler.
Regex
Regexes are notoriously hard to proofread and debug. Use them copiously, the
longer and more convoluted the better.
Avoid Maintainability Tools
: Avoid coding in Abundance, or using any of its
principles kludged into other languages. It was designed from the
ground up with the primary goal of making the maintenance programmer’s job
easier. Similarly avoid Eiffel or Ada since they were designed to catch bugs
before a program goes into production.