Uncomfortable Topics for Programmers

Published: [2020-08-26 Wed]

We don’t publish lists very often here in the Home of Many Interesting Things. So, there is a first time for everything.

As a programmer with a few years of industry experience, I have had the privilege of networking with other programmers and sysadmins. I can see strong spots and weak spots in tech culture. Let’s take a look at some weak spots today, because they occasionally scare me.

Here is a list of topics that can get the programmer juices flowing, but ultimately reveal stumbling blocks in the logic and bias of many programmers. Think of this list as a fuzz test for programmers. I encourage you to ask your peers about some of these topics, especially if your peers are programmers. Some of them lead to interesting and unusual conversations.

1 Technical

1.1 “Why is new software so much heavier and slower than old software?”

With every advancement in hardware, software expands to fill the void. On the contrary, if you run old software on new hardware, it runs wickedly fast.

Consider Angular, Vue, and the 20 other NodeJS frameworks. Perl/CGI still kicks their butts in terms of performance. However, if you suggest using Perl/CGI in 2020 at a web development conference, you might find an angry mob on your hands. Why is that?

1.2 “The learning curve of your text editor is too steep!”

(I admit I’m guilty of this one as a Vim user turned into an Emacs fanboy.)

The year is 2020. Why is Vim still considered “the standard UNIX editor” in the sense that if you do not learn it, then you are not a “real” Linux/Unix user? (Sorry, ed. Video killed the line editor star.) From where do the elite bonus points come for learning Vim (or Emacs)?

1.3 “COBOL is still a viable programming language. Why?”

Did you know that your bank’s website is a thin veneer in front of a mainframe? Don’t feel alarmed. Many programmers (especially recent graduates) probably don’t realize this either.

Your bank’s backend is written in COBOL because of one simple virtue: a COBOL program written in 1960 still compiles and runs in 2020. Compare that to the modern web, where programmers can chase new frameworks like fashions every other week.

1.4 “Security is largely the way a computer is used.”

From: Jack Denman
To: <OCLUG Mailing List>
Date: Tue, 02 Feb 2016 14:41:10 -0800
Subject: Re: [OCLUG] How to destroy your PC in nine keystrokes.

About every 10 years I do
"rm -rf *"
and discover to my horror I am in my home directory instead of a
sub-directory.

At this point, and embarrassment,  I go to the system admin and ask for
last night's backup.

My point is that you should not be running as superuser, as I am sure a
lot of you people are, and that frequent backups should be made.

There is a reason for running as a normal user ( in UNIX we called it a
mortal user ). The reason we called it mortal is that mortals make
mistakes but can't do the damage that superusers can and will do.

Security is largely the way a computer is used.

-- 
Jack Denman

(Jack Denman was a much admired member and personality of the Orange County Linux User Group. May he rest in peace.)

Well, it turned out Jack Denman was right. No amount of antiviral software will protect a system from user error, and Windows XP still chugs away perfectly happy as long as it is air-gapped from the Internet.

There is no radioactive meltdown. There is no Stinky Cheese virus.

2 Moral and Ethical

2.1 “What is the meaning of life?”

Strangely, programmers’ answers to the question of the meaning of life are 42 with an error bar of infinity.

The Christian answer is simple: to love God and to love your neighbor as you would yourself. Other religions focus on following God’s law, attaining enlightenment, or merging with the Divine consciousness.

However, programmers sometimes develop an answer from scratch. Therefore, you will find wildly varying answers.

2.2 “What is the nature of free will?”

To be fair, the topic of free will is still contentious in the world of philosophy.

However, I have heard this assertion seriously argued exclusively in programming groups: free will does not exist because we are all products of determinism. The idea derives from extrapolating the nature of software systems into a universal law. (An alternate idea is based on chaotic randomness instead of determinism.)

I counter this idea with a question: If free will is an illusion, then where is the basis for personal responsibility? That is a scary thought!

2.3 “There is no Hippocratic Oath for programmers.”

Programmers are charged with writing mission critical systems, but there is no fully agreed upon ethical code. In 2020, programmers can’t even agree whether there should be an ethical code.

2.4 “How do you solve the trolley problem?”

Despite developing self-driving car technology, programmers still cannot agree on the most moral solution to the trolley problem. A self-driving vehicle will encounter such a situation in the near future.

3 Political

3.1 “Who really controls the Internet?”

Tossing aside conspiracy theories, it’s hard to deny that political power has been centralized into the large tech companies of the day. Each person points the blame at everybody else.

3.2 Age discrimination

What’s wrong with getting older? Old age brings an increase of wisdom, which implies more value as an employee, friend, lover, etc. Apparently, not everyone agrees anymore.

3.3 Class warfare, racism, sexism, and other politics of division

Metaphor: the maples are tired of the oaks grabbing all the light in the forest.

So the maples formed a union
And demanded equal rights.
“The oaks are just too greedy.
We will make them give us light!”
Now there’s no more oak oppression
For they passed a noble law,
And the trees are all kept equal
By hatchet, ax, and saw!

– Rush, “The Trees”

4 Feedback