斯坦福,我们似乎有问题...

对您的法院而言,这是一个条条问题,一条条理,甚至在某些地方-令人困惑。 一方面,我们得到了莱斯利·兰波特(Leslie Lamport)权威观点, “编程比编码更重要”,该观点将编程和编码放在即兴的排名表中。 相反,我没有足够的地位与他所代表的硕士和传奇大学争执……但我不能否认自己如此高兴和冒险。 我希望更多有经验的同志能够纠正我在推理方面的缺陷。


我从理智上理解,现代世界中的编码通常被认为是最低水平的工程活动,在进化图上,黑猩猩比程序员更接近黑猩猩。 也许这是我们的大错误,因为代码就像DNA。 只有四个核苷酸,产品线中有多种生物。


作为经验丰富的工程师,我们是抽象大师。 因此,对于我们来说,引入名为Leslie Lampport的条件程序员(所有名称和匹配项不是随机的)并不困难,他的主要工具是Turing机。 他是工艺大师,很大程度上要归功于铁道:


  1. 确定程序应该做什么。
  2. 确定它应如何准确地完成其任务。
  3. 编写适当的代码。

最后一步虽然对他来说似乎很重要,但显然不喜欢他,建议无视他。 很难与此争论。 沿着图灵机的环形磁带移动指针是一种致命的渴望。


在这里,他的天才得到了充分的展现。 但是,此过程,例如带有顶针的沙皮刀,必须非常仔细地监视。 他在程序中获得了3分,并在最后一个球的下面放了一个带有代码的球。 我们点头并下注。 然后故意将顶针缓慢混合。 代码在哪里?


实际上,我们几乎不怀疑第三个顶针在哪里,并且代码...在第一个顶针下。旁观者震惊不已,Lamport先生看上去也很困惑,但他内心深处知道自己被骗了。 就在那一刻,当他用第1项中第3项的代码悄悄滚动时,我真的很想抓住袖子。


看起来像鸭子的鸭子像鸭子一样嘎嘎叫,甚至可以肯定鸭子是最有可能的鸭子。 如果您已经开发了用于规范的TLA +语言,则以其所有外观和行为大喊大叫它就是代码。 您在程序指定阶段即“决定程序应该做什么”的第1点使用它的事实,并没有消除对第3点“编写适当的代码”的需要。


让我们在十年前插值Leslie,在此期间他有条不紊地使用他创建的TLA +编写规范。 我认为,无论是分析人员,我们,架构师还是数据库工程师,都不愿承认我们正在成为按常规意义上的编码员。 不同的方言,不同的词典,但使用相同的反射装置,无聊的外观根据我们的性格给出了设计图案,ER图或规格。 而现在,在似是而非的项目#1下,论文的作者认为“编码不是那么重要”隐藏了这种编码。


为了说明这一点,我将邀请另一位证人,让他称为约翰·麦卡锡。 对图灵机进行编程对于像约翰这样的任何人都非常恼火,尤其是在涉及他在人工智能领域非常喜欢的任务时。 为了拯救,他发明了一种新的声明式编码风格来描述任务的执行方式(莱斯利清单的第2段)。 让我们有条件地称其为LISP。


让我们假设约翰一生中没有编写过一个程序,根据Lamport公式,尽管他与代码有最直接的关系,但该程序使他处于浮游生物级别的排名。 问题出现了,他的困惑程度如何,在会议上他会对他说什么?


我不会举很多相同的例子,但我会尝试向同事们提供一些总结。 编码是发展的脉搏。 它以一种或另一种形式存在于所有阶段。 心电图看起来很无聊,但这是该项目还活着的必要标志。 因此,越来越多地出现* -as-a-Code。


我们都是编码员。 我们为此有一定的设备和规则,只有每个人都在自己的地板上进行操作。 没有充分的理由说明,生成PHP代码的人比创建可执行规范的分析员更愚蠢,并且他们全都输给了立即考虑机器代码的年轻黑客。


不同之处在于,我们当中有些人会看到其他人未曾注意到的东西,并为该过程增加价值。 McCarthy-LISP,Lampport-LaTeX和TLA +。 当您对十进制数字系统,盲文,广播或表情符号之类的代码进行排序时,您的舌头不会说“编程不应该编码”。


PS也许来自会议访问者的人想问提出的问题。 如果他们对演讲者和听众似乎很愚蠢,请把所有东西带给我。


PPS碰巧,我有很多关于代码和编码的资料,如果对此话题感兴趣,我会很乐意分享。

Source: https://habr.com/ru/post/zh-CN455214/


All Articles