We are programmers
A translation of Robert Martin's article “ We Programmers ” in which he discusses the importance of programmers in the modern world.
A small red sports car is heading to the asteroid belt, and we programmers sent it there. Oh, I didn’t mean a decrease in the merits of Ilon Musk, rocket scientists and SpaceX engineers. This is their vision and achievement. But they would not have achieved this without us.
Think for a moment about all the software involved in this project. Think about automation in the spaceship itself. Think about the ability of boosters to land in tandem. Think of steering racks, engine driveshafts and throttles. About ground control, communication protocols, ...
Think about how engineers work. Think about CAD / CAM software. Think about networked computers and 3D modeling software. Think about simulating fluid dynamics, finite element analysis, orbital calculations, spreadsheets, word processors, email, text messages, calls ...
I think you already understood what I’m leading to. Every step on the way from a dream to implementation was constantly oiled, lightened, expanded and simplified using software. The billions and billions of lines of software that were written by us programmers . [Yes, saganism was deliberate.]
Now think about what this means for our civilization. Yes, it was a sign - a gesture - nothing more than a drop in the sea of potentials. But what a drop. Think of absolute insolence, colossal, arrogant, violent, joyful wastefulness. It was a peacock spreading its splendid tail feathers. It was a pronghorn antelope leaping with pure enthusiasm. This was an expression of our rejection of restrictions, and our willingness to easily spend enormous resources to achieve a small part of a passionate dream.
It was a message that we sent to ourselves and to the Universe as a whole, stating that we would come and nothing in the Universe would stop us.
And it was we the programmers who invested more in sending this message than anyone else. This is why I, and you, and all programmers in the world should feel very good.
Elaine Herzberg is dead. She was hit by a self-driving car when she was crossing the road with her bicycle. And we programmers killed her. Oh, I don't mean to say that one of the programmers maliciously or carelessly wrote the code that killed her. But, make no mistake about it, what killed her was code.
Perhaps there is an IF statement in this code that, if the Boolean predicate was in the opposite state, would have prevented a collision. Or maybe it was a function that spawned a number that, if it was a few bits different, would have prevented a collision.
We can never define this IF statement or function. Machine learning of neural networks is insidious and difficult to understand. Even if the car’s log files contain all the input data and we can repeat this event again and again, we may never understand why the car behaved this way in a whirlpool of scales, mediums and feedback loops.
But we can say that we are programmers , wrote the code that killed her. And therefore, I, and you, and all programmers in the world, should feel very bad.
There is an opinion among programmers that the arguments of ethics and morality should not play a role in our discussions about knowledge and experience.
Those who hold this opinion say that our knowledge and experience should be a matter of pure logic and economics. Given the two scenarios above, I find this alarming. It seems to me that ethics and morality have become an integral part of everything that we programmers do; because a lot depends on the quality of our work.
It is good that time passed when we programmers could secure and isolate ourselves from the outside world. We are programmers , we no longer have to hide in our little technical bubbles from the code that we programmers write. The code that we write is important for the hopes and dreams of our society and civilization. It’s important for people to ride bicycles and cross the streets with or without them. This is important for everyone and everyone, because the code that we programmerswe write lubricates, facilitates, improves and simplifies almost every aspect of everyday life. In everything, from something small like a young mother checking her child’s monitor, to such large-scale things as international nuclear weapons policy and interplanetary travel, our code matters .
Recently, Grady Booch tweeted what I think we programmers should accept as our motto:
Each line of code represents an ethical and moral decision.