Bunu öncelikle kullandığım montajcılara dayandırıyorum - öncelikle MASM, NASM ve (daha az ölçüde) TASM. TASM'nin sonraki sürümlerinden bazıları, OO'yu desteklemek için bazı özelliklere sahipti (var mı?), Ancak onları çok fazla kullanmadım ve bunlar hakkında yorum yapmaya çalışmıyorum.
Birincisi: çoğu dil en azından biraz ağaç benzeri bir yapıya doğru ilerledi. Nesne yönelimli veya nesne tabanlı veya tam olarak ne olursa olsun, bir sistemin farklı bölümleri arasındaki ilişkiler hakkında biraz tanımlanmış. Ayrıca, bir sistemin bir parçasını kazara "karışmaya" ama diğer parçalara karşı "korumak" için biraz da vardır (eğer isterseniz koruma genellikle atlanabilir olsa da). Aksine, montaj dili nispeten "düzdür" - sistemin farklı bölümlerindeki kod (ve veriler) arasındaki ilişkilerin çoğu öncelikle belgelerle ve daha az ölçüde adlandırma kurallarıyla belirlenir.
Bunun sonucu, kodu ideal olandan çok daha sıkı bir şekilde birleştirmenin genellikle çok daha kolay olmasıdır. Başlangıç için montaj dili seçimini başlatan gereksinimler (daha yüksek performans, daha küçük boyut, vb.) Çoğu zaman bunu da ödüllendirir - onaylanmış arayüzleri atlayarak ve genellikle daha küçük ve daha hızlı kodlar alabilirsiniz (genellikle çok fazla olmasa da) herhangi bir boyutta daha iyi). Dil ve araçların kendisi, yaptığınız işi (iyi veya kötü) kısıtlamak için çok daha az şey yapar, bu da sorunları önlemek için yöneticilere çok daha fazla yük getirir. Niteliksel olarak farklı olduğunu söyleyemem, ancak niceliksel olarak - yönetim, sorunları her iki şekilde önlemek için çalışmak zorundadır, ancak montaj dili söz konusu olduğunda, genellikle ne olup olmadığı hakkında daha fazla (ve genellikle daha sıkı) yönergeler alır ' t kabul edilebilir.
Bu durumun hafifletilmesi büyük ölçüde daha dikkatli yönergeler, daha deneyimli personelden daha fazla rehberlik ve daha spesifik, dikkatle uygulanan adlandırma sözleşmeleri meselesidir.
Çalışanlar bir problemdir. Ancak karşılaştığım sorunlar, öncelikle beklediğim gibi değil. Meclis dil koduna atlamaktan mutluluk duyan biraz "savaşçı jock" kişiliğine sahip çocuklar bulmak oldukça kolaydı. Çoğu, montaj dilini kullanma konusunda neredeyse tamamen deneyimsiz olmasına rağmen oldukça makul bir iş çıkardı.
Karşılaştığım zorluk, daha üst düzey personel bulmaktı - projeyi en azından bir miktar kontrol altında tutabilen ve kodu makul bir şekilde tutmak için gerekli yönergeleri sağlayacak (ve büyük ölçüde uygulayan) dillere tamamen alışmamış insanlar bakımı ve anlaşılırlığı.
Geriye dönüp baktığımda, bu açıdan en büyük sorunlardan bazılarına neden olmuş olabilirim. Benim tarafımda iki sorun kaynağı görebiliyorum. İlk olarak, düşündüğüm proje boyunca, bir süredir öncelikle daha üst düzey dillerde kod yazıyordum ve sadece montaj dilini kullanıyordumSon çare olarak. Bu nedenle, onu kullandığımda, performans kazanmak için mümkün olan her numara sadece adil bir oyun değil, beklenen bir şeydi. İkincisi, tamamen (veya öncelikle) montaj dilinde yazılmış bazı sistemlerde çalıştığımda, oldukça demir yumruklu proje yöneticileri altındaydı. O zamanlar nispeten gençtim ve açıkçası şeyleri yürütme şekline kızdım, bu yüzden tam tersini yapma eğilimindeydi. Geriye dönüp bakıldığında, yaptıkları gerçekten önemliydi ve sadece eski ve esnek olmadıkları için yapılmadı (ki, o zaman işleri nasıl gördüğümden eminim).