我主要基于我曾经使用过的汇编器-主要是MASM,NASM和(在较小程度上)TASM。TASM的某些更高版本具有(具有?)某些功能来支持OO,但是我并没有太多使用它们,因此我不打算对此发表评论。
首先:大多数语言都已经转向至少有点像树的结构。无论是面向对象,基于对象还是完全基于对象,都对系统不同部分之间的关系进行了很多定义。还有很多可以“保护”系统的一部分,以防止意外的“干预”,但可以保护其他部分(即使您愿意,通常可以绕过保护)。相比之下,汇编语言是相对“扁平”的-系统不同部分中的代码(和数据)之间的大多数关系主要是通过文档建立的,而在较小程度上则是使用命名约定。
其结果是,比理想的情况更紧密地耦合代码通常要容易得多。促使人们开始选择汇编语言的要求(更高的性能,更小的尺寸等)通常也会得到奖励-通过绕过批准的接口,这样您通常可以获得更小,更快的代码(尽管通常不会很多)在任何方面都更好)。语言和工具本身所做的事情对限制您所做的事情(好是坏)的作用要小得多,这给管理人员预防问题带来了更大的负担。我不会说它在质量上有所不同,但从数量上讲是不一样的-即,管理人员必须以任何一种方式来预防问题,但是就汇编语言而言,它通常需要更多(而且通常是更严格的)关于什么是或不是的指导原则。不能接受。
缓解此问题很大程度上取决于更仔细的指南,经验丰富的人员提供的更多指南以及更具体,更严格执行的命名约定。
人员配备是一个问题。但是,我遇到的问题主要不是我所期望的。找到一个乐于助人的家伙,很乐意跳进汇编语言代码。尽管几乎完全缺乏使用汇编语言的经验,但大多数人的工作还是相当合理的。
我遇到的困难是寻找更多的高级人员,他们可以使项目至少处于某种控制之下,并且不完全习惯于会提供(并在很大程度上执行)合理保留代码必要准则的语言。可维护和可理解的。
回顾过去,我可能已经/在这方面引起了一些最大的问题。我可以看到两个问题来源。首先,在我考虑的项目开发阶段,我已经主要使用高级语言进行了一段时间的编码,并且仅使用汇编语言作为最后的手段。因此,当我确实使用它时,几乎每一种可能的提高性能的技巧不仅是公平的游戏,而且是期望的。其次,当我在使用某些完全(或主要)用汇编语言编写的系统上工作时,它是由一些颇为铁腕的项目经理管理的。那时我还比较年轻,并且很坦率地对他们的办事方式表示不满,所以倾向于做相反的事情。回想起来,他们所做的事情确实很重要,而不仅仅是因为他们年纪大而且不灵活(我很确定那是我当时的看法)而完成的。