Gorilla-Based Programming.

“The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” -- Joe Armstrong

"For we wrestle not against flesh and blood, but against principalities, against powers, against the rulers of the darkness of this world, against spiritual wickedness in high places." -- Ephesians 6:12

As a programmer, I find these two quotes work very well together.

In my grim old QBASIC* days, I could keep in my head all of the language, which is pretty useful when stringing together a solution. I had the banana.

With C, the 'reserved' words are easy to remember. I would like to think I know most of STDIO, MATH, STRING, STDLIB and TIME. Everything else I have to use via endless man page checks, and header file examination. This gives me the banana and maybe the gorilla's arm.

Am I right in assuming that if I took up Java, I'd get the jungle as well? I'm having enough trouble with the 800-lb gorilla as it is...

How many programmers have the gorilla memorized?

Perhaps a tool could be written to analyse command usage - and I understand that a 'function' isn't really a 'command', but conceptually it is - and determine if most programmers merely understand a subset well, and prefer known commands to unknown ones...

This may only be analyzable by studying where bugs appear. I am quite willing to believe that there will be more bugs when programmers use unfamiliar command sets.
Stack Overflow and Google, while useful, are poor substitutes from actually internalizing the code.

*I learned QBASIC from altering a crude BASIC implementation of Donkey Kong. Or at least it was some sort of monochrome (not grayscale) game involving flaming barrels, bananas and pixelated tantrums.

No comments:

Post a Comment