Programming and morality: alignment

Jorge Castro
Cook php
Published in
4 min readApr 27, 2019

Question: Are you good?.

Most people will say: “yes, I’m good” And of course, it is a subjective viewpoint; it is personal.
But, how we can determine if we are good or not?.

I was reading a document, and I found an interesting topic: the alignment is not measured by what we do but how much we care, and not any care but how we care about humans, and it makes sense. I explain:

For example, let’s say if we measure our alignment by our actions. A cop could kill a criminal, or a doctor could practice euthanasy, and they are inherently evil acts, but they are not bad people. The problem to measure our alignment by our action is:

  • actions are always subjective. For example, for some countries, men or women must act in some way than in other countries are considered blasphemy (or evil).
  • We could do good or bad things; sometimes we are forced to do an evil action, it can’t be helped.

Instead, they are people that don’t care about others, maybe they don’t do evil deeds, but they are evil-aligned, and it’s not rare to find those people don’t care and end acting in a despicable way.

For example, let’s say you are walking. Do you remember how many ants you’ve stepped on? According to the ants, we are a real devil.

You couldn’t say Satan is evil because it actions but because it considers us nothing but simple ants, it doesn’t care about us.

Then, with this measure, it is possible to measure our alignment.
Of course, there are some cheaters; they say that they care about others, but it is a facade because it’s a false “care” they are what you could call: hypocrites. You can’t cheat your alignment (and it doesn’t make a sense to fool yourself), you could always re-alignment (to try to be a good person, or to be less good), but you can’t say “I never cared about anybody, but now I care about all the World”. It is not how it works (we can’t turn 180 degree unless we want to turn into something that we are not are and it is killing your “inner me”).
In any case, the alignment is not a rat-race; we don’t want to achieve anything but to know what is our alignment.

Why we need to know our alignment?

Every time we act outside of our alignment, then something inside us dies.
For example:

  • I did some despicable act, and I feel bad, I regret it.
  • I help him/her, and now I feel like a fool.

Now, are we a good or evil programmer?.

And the answer is simple: customers.

Do we care about the customer or end-user?.

Good: I love 💖 my end user.

Evil: Sorry but nope, I don’t love 💔 it

Microsoft and Windows 10

Our code does not measure our alignment but how it serves the customer. The code is just a way to achieve satisfaction (or frustration, such as Itunes) of the customer. Usually, we could find a correlation between code quality = happy customer but not always; we could please the customer with spaghetti code.

A simple play.

For example, what if our alignment could be measured by a single number?. If the number is negative, then we are evil, and if it’s positive, then we are good. Zero means neutral, and we start as neutral.

<?php

$aligment=0;
// fill those:
$stable=___; // true or false;
$userFriendly=___; // true or false;
$isDocumented=___; // true or false;
$supported=____; // true or false;
if ($stable) {
$aligment+=5; // +%150 test coverage and all the tests are real and not simple stubs
} else {
$aligment-=5; // I add random bugs here and there.
}
if ($userFriendly) {
$aligment+=10; // think about Solitaire
} else {
$aligment-=10; // think about Lotus Notes or SAP
}

if ($isDocumented) {
$aligment+=3;
} else {
$aligment-=3;
}
if ($supported) {
$aligment+=4;
} else {
$aligment-=4; // I send all the complains/tickets to >/dev/null
}
switch ($aligment) {
case $aligment==20:
echo "Mother Theresa!";
break;
case $aligment>10:
echo "Good";
break;
case $aligment>5;
echo "A bit Good";
break;
case $aligment>-5;
echo "Neutral";
break;
case $aligment>-10;
echo "A bit evil";
break;
case $aligment==-20;
echo "Why?";
break;
default:
echo "you can't see it";
}

--

--