Я ґрунтуюсь на цьому, перш за все, на моїх асемблерах - насамперед MASM, NASM та (меншою мірою) TASM. Деякі з пізніших версій TASM мали (мають?) Деякі функції для підтримки ОО, але я їх не дуже використовував і не намагаюся коментувати їх.
По-перше: більшість мов перемістилися до структури, яка принаймні дещо нагадує дерево. Незалежно від того, чи орієнтована на об'єкт, або на об'єкті, або саме те, що стосується між різними частинами системи, є зовсім небагато. Існує також зовсім небагато, щоб "захистити" одну частину системи від випадкового "втручання", але інших частин (навіть якщо захист, як правило, можна обійти). Навпаки, мова складання є відносно «плоскою» - більшість взаємозв'язків між кодом (та даними) в різних частинах системи встановлюються насамперед документацією та меншою мірою називанням конвенцій.
Результатом цього є те, що часто набагато простіше парувати код набагато щільніше, ніж було б ідеально. Вимоги, які спричинили вибір мови збірки для початку (більш висока продуктивність, менший розмір тощо), часто також це винагороджують - минаючи схвалені інтерфейси, і таким чином ви часто можете отримати код, який менший і швидший (хоча зазвичай не багато краще в будь-якому вимірі). Мова та інструменти самі по собі роблять набагато менше, щоб обмежити те, що ви робите (добре чи погано), що покладає набагато більше навантаження на менеджерів для запобігання проблем. Я б не сказав, що це якісно інше, але в кількісному відношенні воно є - тобто керівництво повинно працювати над тим, щоб запобігти проблемам в будь-якому випадку, але у випадку мови монтажу воно зазвичай приймає більше (і часто жорсткіші) рекомендації щодо того, що є чи ні " t прийнятно.
Пом'якшення цього питання значною мірою є предметом більш ретельних вказівок, більш керівних принципів більш досвідченого персоналу та більш конкретних, ретельно застосовуваних конвенцій про іменування.
Кадровий склад - це чимала проблема. Однак проблеми, з якими я стикався, де не в першу чергу ті, які я очікував. Знайти хлопців, які мали трохи "винищувальної роботи", які із задоволенням заскочили у мовний код збірки, було досить просто. Більшість зробили цілком розумну роботу, незважаючи на майже повну відсутність попереднього досвіду використання мови складання.
Складність, з якою я стикався, полягала в пошуку більш старшого персоналу - людей, які могли тримати проект хоча б певним чином, і не були повністю звикли до мов, які б забезпечували (і значною мірою виконували) вказівки, необхідні для правильного збереження коду. ремонтопридатним і зрозумілим.
Озираючись назад, я, можливо, був / спричинив найбільшу проблему в цьому відношенні. Я бачу два джерела проблем зі свого боку. По-перше, до моменту проекту, про який я замислююсь, я кодував головним чином мови вищого рівня досить довгий час, і використовував лише мову монтажув крайньому випадку. Як такий, коли я його використовував, майже кожен можливий трюк для отримання продуктивності був не лише чесною грою, а й очікуваною. По-друге, тоді, коли я працював над деякими системами, написаними повністю (або в першу чергу) мовою складання, це було під деякими досить залізними керівниками проектів. У той час я був відносно молодим і відверто обурювався тим, як вони керували справами, тому прагнув робити навпаки. Зрештою, те, що вони робили, насправді було важливим, а не зробленим лише тому, що вони були старими і негнучкими (що, я впевнений, було, як я бачив речі в той час).