{singhi}
我们程序员

好的一面

the red sports car
the red sports car

最近有一个红色运动型小汽车驶向了小行星带。正是我们程序员将之送至那里的。哦,我并不是轻视 Elon Musk 和那些在 SpaceEx 工作的火箭科学家以及工程师们。这正是他们的愿景、他们的成绩。但是,如果没有我们程序员,他们不会完成这项工程。

稍微想一想,所有贯穿整个项目的软件系统。想一想航天飞机的自动化;想一想那些着地信号放大器(in tandem,未翻译);想一想那螺旋桨、引擎平衡环以及节流阀;想一想设备的着陆控制器以及通讯协议;等等。

想一想工程师们是如何工作的;想一想 CAD/CAM 软件;想一想 NC 设备和 3D 模型软件。想一想流体动力模拟、有限元分析、轨道计算、电子表格以及语言处理器、电子邮件、短信、电话…

我认为你已经清楚了我想表达何意。在通往梦想道路上的每一小步,都因为软件而变得顺利、可能、增强、简单。是的,软件,由亿万行的代码组成,而这亿万行正是我们程序员写成的。

prong-horn antelope
prong-horn antelope

现在,思考一下,这件事对于文明意味着什么。不过沧海一粟耳!但,那是怎样的一粟呢?想想那纯粹无所顾忌的、巨大的、傲慢的、激情的、愉快的消遣!那正是孔雀展开了她美丽的尾巴,是糜鹿兴奋地跳跃;是我们人类对限制的反抗态度;是为实现梦想的哪怕千万分之一而断然耗费大量的资源的心甘情愿。

peacock
peacock

那是一个消息,发送给我们人类自己、发送给宇宙,告诉它我们来了,没有什么能阻挡我们探索的步伐。是我们程序员,而不是别人,能够发送这个消息。这些,让你、我,所有地方的所有的程序员,感觉到美妙!

坏的一面

Elaine Herzberg is killed by self-driving car
Elaine Herzberg is killed by self-driving car

Elain Herzberg 死了。她死于“自动驾驶”汽车,当时她正骑着自行车穿越马路。是我们程序员杀死了她。哦,不,我不是说,那是我们有意为之,或因为工作的马虎,而导致她的死去。但是,如若不然,那就是我们的代码“自己”杀死了她。

也许,是某处的 IF 条件语句,获得了与预期相反的布尔(boolean)值,否则,事情不会发生;也或许,是某个函数(function),生成的数字较预期稍稍少了几个位(bit),否则,事情亦不会发生!

我们可能永远不能找到那个 IF 语句或函数。机器学习(Machine learning)的神经网络是难以理解的。即使,我们有全部输入的日志文件,并且我们能一遍又一遍地再现事件,而在如此混乱的权衡、平均、反馈循环中,我们还是不能真正理解为什么汽车要那样做。

但是,能说的是,我们程序员用代码(code)杀死了她。这些,让你、我,所有地方的所有程序员,感觉到糟糕!

丑陋的一面

在我们的程序员当中,有一类倾向,认为对我们的实践与原则的探讨不必参杂伦理道德。它主张,我们的实践与原则应该仅仅关乎纯碎逻辑与经济学理论。对于这两种说法,我感到深深的不安。对于我来说,似乎,伦理与道德与我们程序员做的一切都有关系,因为太多的事情都深深地依赖于我们产出的质量!

我们的格言

我们程序员一贯将自己与外边的世界隔离开,这在过去还好。如今,我们不能再将自己藏匿在科技的气泡里了。我们写的代码事关重大!它关系到我们社会和文明的希望与梦想;它关系到人们骑着自行车穿越马路;它关系任何人、每个人,因为我们程序员写的代码会让我们生活的方方面面变得顺畅、可能、增强、简单。小至一个年轻妈妈查看婴儿监控器,大至国际核武器政策、星际旅行,我们的代码意义重大!

最近,Grady Booch 发推,我想我们程序员应该采纳以为格言:

Every line of code represents an ethical and moral decision.