"Programmer tells computer to do the job as it is, not as it could be."
Slave Oriented Programming is the idea that computers are slaves and are here to serve our very command (even if they hate it.. who cares). One should be able to just demand (whip) his slave to makeDirectory() instantly without first creating some factory object or other complex nonsense.
I would provide a hyperlink to my rant, but I cant.. because it contains a BadWord in the page title.
I presume you must use a BondageAndDisciplineLanguage? Or maybe a BDSM langauge?
Not really since some times I want to tell my computer to "shoot me in the foot, now, and don't ask questions". Whereas a BDSM language like Ada wouldn't even easily permit me to use pointers. Although it is nice to avoid RhetoricalIndirection when commanding the computer.
Slave Oriented Programming can be higher level, especially if you can make words and commands and just say them out loud now where assembly and machine code are harder to do this so easily. But... that being said look at below.. making a word (or phrase) out of assembly..
pro doWhatiWantOrElse; asm // insert assembly (A much more readable rendition of machine language) e;Sometimes Slave Oriented Programming involves threats and can seem like bondage and discipline but in fact usually the threats are left out since the slave already listens to you even without the threat.
pro makeDirectoryOrElseYouWillBeUnpluggedAndKilled(path: astr); b // insert normal readable code here e;We can shorten this to just:
pro makeDir(path: astr); b // here we make a directory called "path". e;Using the slave command:
b // The slave is told WHAT to do now. makeDir('/etc/thathurt/'); e.There are no "thank yous" or "pretty please". JustDoIt. Precise. To the point.
No creation of some three object instances that interact with each other just to make a directory.
The b and e tokens say BEGIN NOW and END NOW (no questions, no games, no fancy lips {} or other icing on the cake).
The asm token says INSERT ASSEMBLY NOW. No questions asked. No games. No fancy pretty pleases with a cherry on top.
Use the stack where it makes sense - don't become in love with the heap, like so many people do (AntiCreation).
Commands. Whips. Force. Actions and Verbs (less nouns, as opposed to some VerboseLanguageWeenies)
Dijkstra stated several times that we should not be comparing computers to humans. Slavery is very inhuman. I treat computers as if they do whatever I want them to do. They are not people, children, etc. They are slaves - very inhuman (a.k.a. anti anthropomorphism).
http://lambda-the-ultimate.org/node/264 http://no.reddit.com/r/programming/info/6c9yv/comments/
A sexist might claim that a computer will do your dishes for you without you having to ask nicely, and that the computer is the woman you should marry. Again, very inhuman. A computer must be programmed first, though - again very inhuman.
Another sexist may claim that a computer will do your dishes for you without you having to ask nicely, and that the computer is the husband you should marry. Again, very inhuman.
Typing text into a computer is also very inhuman. We do not type text into humans. Being inhuman does not make a machine bad. It is a good thing.
Let's use computers. 'Abuse them. Order them. Force'' them. Bitch slap them. Etc. That's what they were designed for.
See also: AntiCreation, ImperativeProgramming, ModularProgramming, CodeKing