मैं इसे मुख्य रूप से असेंबलरों का उपयोग कर रहा हूं - मुख्य रूप से MASM, NASM और (कुछ हद तक) TASM। TASM के बाद के संस्करणों में से कुछ के पास OO का समर्थन करने के लिए कुछ विशेषताएं थीं, लेकिन मैंने उनका अधिक उपयोग नहीं किया है, और मैं उन पर टिप्पणी करने का प्रयास नहीं कर रहा हूं।
पहला: अधिकांश भाषाएँ एक ऐसी संरचना की ओर बढ़ गई हैं जो कम से कम कुछ पेड़ जैसी है। ऑब्जेक्ट ओरिएंटेड, या ऑब्जेक्ट-बेस्ड, या वास्तव में क्या है, सिस्टम के विभिन्न हिस्सों के बीच संबंधों के बारे में काफी कुछ परिभाषित है। सिस्टम के एक हिस्से को आकस्मिक "ध्यान" से "सुरक्षा" करने के लिए भी काफी कुछ है, लेकिन अन्य भागों (भले ही संरक्षण आमतौर पर बाईपास हो सकता है यदि आप चाहते हैं)। इसके विपरीत, असेंबली भाषा अपेक्षाकृत "सपाट" है - सिस्टम के विभिन्न हिस्सों में कोड (और डेटा) के बीच के अधिकांश संबंध मुख्य रूप से प्रलेखन और कुछ हद तक नामकरण सम्मेलनों द्वारा स्थापित किए जाते हैं।
इसका नतीजा यह है कि यह अक्सर युगल कोड के लिए बहुत अधिक आसान होता है, आदर्श की तुलना में बहुत अधिक कसकर। आवश्यकताएं जो असेंबली लैंग्वेज के चुनाव को शुरू करती हैं (उच्च प्रदर्शन, छोटे आकार, आदि) के साथ शुरू करने के लिए अक्सर इसे पुरस्कृत करते हैं - अनुमोदित इंटरफेस को दरकिनार करके और जैसे कि आप अक्सर कोड प्राप्त कर सकते हैं जो छोटा और तेज़ है (हालांकि आमतौर पर बहुत अधिक नहीं है किसी भी आयाम में बेहतर)। आप जो भी करते हैं (अच्छा या बुरा), उसे रोकने के लिए भाषा और उपकरण खुद को बहुत कम करते हैं, जो समस्याओं को रोकने के लिए प्रबंधकों पर बहुत अधिक बोझ डालता है। मैं यह नहीं कहूंगा कि यह गुणात्मक रूप से भिन्न है, लेकिन मात्रात्मक रूप से यह है - अर्थात, प्रबंधन को समस्याओं को रोकने के लिए किसी भी तरह से काम करना होगा, लेकिन असेंबली भाषा के मामले में यह आम तौर पर (और अक्सर सख्त) दिशानिर्देश है कि क्या है या isn ' टी स्वीकार्य है।
इसे कम करना काफी हद तक अधिक सावधानीपूर्वक दिशानिर्देश, अधिक अनुभवी कर्मियों से अधिक मार्गदर्शन, और अधिक विशिष्ट, ध्यान से नामांकित सम्मेलनों का मामला है।
स्टाफिंग एक समस्या है। हालाँकि, मैंने जिन समस्याओं का सामना किया है, वे मुख्य रूप से वे नहीं हैं जिनकी मुझे उम्मीद थी। एक "लड़ाकू जॉक" व्यक्तित्व के साथ लोगों को खोजना जो विधानसभा भाषा कोड में कूदने के लिए खुश थे, काफी आसान था। असेंबली लैंग्वेज का उपयोग करने में पूर्व अनुभव की लगभग कमी के बावजूद अधिकांश ने काफी उचित काम किया।
मुझे जो कठिनाई हुई वह अधिक वरिष्ठ कर्मियों को खोजने में थी - जो लोग परियोजना को कम से कम कुछ नियंत्रण के अधीन रख सकते थे, और पूरी तरह से उन भाषाओं के आदी नहीं थे जो कोड को यथावत रखने के लिए आवश्यक दिशा-निर्देश (और बड़े पैमाने पर लागू) प्रदान करते थे। बनाए रखने योग्य और समझने योग्य है।
पीछे देखते हुए, मैं उस संबंध में सबसे बड़ी समस्या हो सकती है। मैं अपनी ओर से समस्याओं के दो स्रोत देख सकता हूं। सबसे पहले, जिस परियोजना के बारे में मैं सोच रहा हूँ, तब तक मैं उच्च स्तर की भाषाओं में मुख्य रूप से काफी समय से कोडिंग कर रहा हूँ , और केवल विधानसभा भाषा का उपयोग कर रहा हूँएक अंतिम उपाय के रूप में। जैसे, जब मैंने इसका उपयोग किया, तो प्रदर्शन हासिल करने की लगभग हर संभव कोशिश न केवल निष्पक्ष खेल थी, बल्कि अपेक्षित थी। दूसरा, जब मैंने पूरी तरह से (या प्राथमिक रूप से) विधानसभा भाषा में लिखी गई कुछ प्रणालियों पर काम किया था, तो यह कुछ नहीं बल्कि लौह-आधारित परियोजना प्रबंधकों के अधीन था। जिस समय मैं अपेक्षाकृत युवा था, और काफी स्पष्ट रूप से वे चीजों को चलाने के तरीके पर नाराजगी जताते थे, इसलिए इसके विपरीत करने की कोशिश की। पूर्वव्यापी में, वे जो कर रहे थे वह वास्तव में महत्वपूर्ण था, और केवल इसलिए नहीं किया गया क्योंकि वे पुराने और अनम्य थे (जो, मुझे पूरा यकीन है कि मैंने उस समय चीजों को कैसे देखा था)।