如果有人问你,诗人跟程序员有关系吗?
千万不要随便回答说没关系,虽然这两个职业看起来风马牛不相及,但实际上,诗人和程序员还真有很密切的关系。
“If should see y year.”
“How should I greet,with sileears “,这两句是著名的诗人拜伦的名句,
“一别经年,若再见,问候你的,是我的沉默,还有泪水“
你会问,诗人有了,程序员呢?
别急,拜伦的女儿,Ada Lovelace,是世界上第一个程序员,她的父亲是伟大的诗人,母亲是一位业余数学家,她没有继承父亲的浪漫,却继承了母亲的数学才能。
Ada 帮助巴贝奇设计了世界上第一台计算机-巴贝奇的分析机。
并书写了第一个巴贝奇分析机的程序,一个解伯努利方程的程序(巧合的是,伯努利方程是流体力学的基础,也是所有飞行器上能飞上天的理论基础)。
我们今天所使用的什么 for ,什么 do while 包括子程序的概念,全部来自 Ada ,神奇不?
Ada 和他父亲一样,在最灿烂的年华就离开了,他们在世上都只呆了短短三十六载。
天妒英才,莫过于此啊。
王一男唏嘘了一会诗人和程序员之间的关系,把容与公司几个程序员,还有116所的飞控程序设计员唬得一愣一愣的。
老板就是老板啊,一个简简单单的开场白,硬生生被他弄出花来了。
他在白板上写下
“Ada”,三个字母。
“今天,我们就来讲一讲Ada”
“Ada是米国军方使用的程序设计语言,也是华国大量军工企业使用的程序设计语言”
“所以说兔子是最大的美粉,这是没问题的”,
“当然,这样做也没毛病”,“ADA设计出来,正是为了应对软件危机的”
“上世纪六七十年代,由于软件规模的扩大,质量越来越难以保证,bug增加的速度甚至超过了软件开发的速度”
“所以有了软件危机一说,什么人月神话啊,什么米有免费的银弹之类的著作都是讲这些的”
“后来米国国防部就针对这些问题,专门设计了一个新的语言,就是Ada”
王一男说,”我觉得 Ada 最成功的地方,就在于他回答了一个核心问题,什么问题呢“
”就是在软件开发中,什么是最重要的“,
“我觉得当年设计Ada的米国国防部所分析的程序设计语言设计时候考虑的优先顺序,直到今天都还是正确的”,王一男在白板上写下三个词,
“稳定性“”可维护性“”表达能力“
“稳定性毫无疑问是最重要的,如果程序不能稳定运行,任何军用系统,都不可能将它投入实际使用。”
“可维护性在几十年前是被忽略的,但是今天,大家越发认识到它的重要作用了,程序的生存周期越长,可维护性的重要性越高“
“程序写出来容易,但是程序就像生命一样,会跟周围的环境发生作用,会慢慢的长大,会变化,会生长,会成熟,也会老去。”
“很多程序的寿命要超过人的寿命,所以,不同的人会来维护他,修改他,首先要读懂它”
“读都读不懂,怎么长大?而可读性,正是可维护性中最重要的一部分”
“表达能力是我给总结的,虽然从理论上来说,任何程序设计语言的表达能力跟只有向前和向后两个指令的图灵机是等价的“
“但是语言能力还是体现在无歧义啊,简洁,清晰等等上,所以最早的设计目标,跟自然语言接近啥的,被我理解为表达能力”
“不得不说,米国国防部还是非常强大的”
“Ada语言至少领先工业界三十年以上”
“当工业界还在为挖掘每一个时钟周期的性能而绞尽脑汁的时候,人家已经把可维护性放在仅次于稳定性的位置了”
“所以116所选择Ada作为飞控系统的开发语言,那是非常有远见的”
李文静在台下举手了,“你说的很好,很正确”
“不过我们接下来该怎么干呢”
”难道我们重新用哥德尔系统理解的语言重写一遍飞控吗“,李文静的话还没说完呢,就听见呯呯的声音,116所的几个程序开发人员口吐白沫,瘫倒在椅子上。
”还是我们写一套编译器,将使用Ada语言书写的飞控系统编译成哥德尔系统能够理解的语言“,
呯呯的声音又响起来了,这回是赵天成和李飞口吐白沫,瘫倒在椅子上。
”Good Question“,王一男指了指李文静,”很好的问题“,
“要不怎么说咱们是最佳拍档呢”
“这就要感谢我们伟大的开源事业了”
“有一个开源项目,叫做LLVM的,有人知道吗”
立刻好几个人举起了手,王一男指着116所的一个程序员,“你来说说吧”
“LLVM是Low Level Virtual Mae 的意思,也就是低级虚拟机,它实际上是一组规范和工具的集合,为开发现有语言的编译器,甚至设计新的程序设计语言,提供了一个非常强大的基础“