ฉันยึดสิ่งนี้เป็นหลักว่าแอสเซมเบลอร์ที่ฉันเคยใช้ - โดยหลักคือ MASM, NASM และ TASM (ในระดับที่น้อยกว่า) TASM เวอร์ชันหลังบางรุ่นมี (มี?) คุณสมบัติบางอย่างเพื่อสนับสนุน OO แต่ฉันไม่ได้ใช้มากนักและฉันไม่ได้พยายามแสดงความคิดเห็น
ข้อแรก: ภาษาส่วนใหญ่ย้ายไปยังโครงสร้างที่อย่างน้อยก็ค่อนข้างเหมือนต้นไม้ ไม่ว่าจะเป็นเชิงวัตถุหรือเชิงวัตถุหรืออะไรก็ตามมีการกำหนดความสัมพันธ์ระหว่างส่วนต่าง ๆ ของระบบค่อนข้างน้อย นอกจากนี้ยังมีบางส่วนที่จะ "ป้องกัน" ส่วนหนึ่งของระบบจากการ "แทรกแซง" โดยไม่ได้ตั้งใจ แต่ส่วนอื่น ๆ (แม้ว่าการป้องกันมักจะสามารถข้ามได้หากคุณต้องการ) ในทางตรงกันข้ามภาษาแอสเซมบลีค่อนข้าง "แบน" - ส่วนใหญ่ของความสัมพันธ์ระหว่างรหัส (และข้อมูล) ในส่วนต่าง ๆ ของระบบจะถูกสร้างขึ้นเป็นหลักโดยเอกสารประกอบและการประชุมการตั้งชื่อขอบเขตน้อย
ผลลัพธ์ของสิ่งนี้คือมันง่ายกว่าที่จะจับคู่รหัสให้แน่นกว่าที่ควรจะเป็น ข้อกำหนดที่ทำให้การเลือกภาษาแอสเซมบลีเริ่มต้นด้วย (ประสิทธิภาพที่สูงขึ้นขนาดที่เล็กลง ฯลฯ ) มักให้รางวัลเช่นนี้ - โดยการข้ามส่วนต่อประสานที่ได้รับอนุมัติและเช่นนั้นคุณมักจะได้รับรหัสที่เล็กลงและเร็วขึ้น ดีกว่าในทุกมิติ) ภาษาและเครื่องมือต่าง ๆ ทำได้น้อยลงเพื่อ จำกัด สิ่งที่คุณทำ (ดีหรือไม่ดี) ซึ่งทำให้ผู้จัดการมีภาระมากขึ้นในการป้องกันปัญหา ฉันจะไม่พูดว่ามันมีคุณภาพแตกต่างกัน แต่เป็นเชิงปริมาณ - นั่นคือการจัดการต้องทำงานเพื่อป้องกันปัญหาไม่ว่าทางใดทางหนึ่ง แต่ในกรณีของภาษาแอสเซมบลีมักจะใช้แนวทางเพิ่มเติม ยอมรับได้
การบรรเทาปัญหานี้ส่วนใหญ่เป็นเรื่องของแนวทางที่ระมัดระวังยิ่งขึ้นคำแนะนำเพิ่มเติมจากบุคลากรที่มีประสบการณ์มากขึ้นและเฉพาะเจาะจงมากขึ้น
การจัดพนักงานเป็นปัญหา อย่างไรก็ตามปัญหาที่ฉันได้พบไม่ใช่ปัญหาหลักที่ฉันคาดหวัง การหาผู้ชายที่มีบุคลิก "จ๊อคนักสู้" ที่มีความสุขที่ได้กระโดดเข้าไปในภาษาแอสเซมบลีนั้นค่อนข้างง่าย คนส่วนใหญ่ทำงานค่อนข้างสมเหตุสมผลแม้ว่าจะไม่มีประสบการณ์ในการใช้ภาษาแอสเซมบลีมาก่อนเกือบทั้งหมด
ความยากลำบากที่ฉันพบคือในการหาบุคลากรระดับสูงมากขึ้น - คนที่สามารถทำให้โครงการอยู่ภายใต้การควบคุมอย่างน้อยบางส่วนและไม่คุ้นเคยกับภาษาที่จะให้แนวทาง (และบังคับใช้เป็นส่วนใหญ่) แนวทางที่จำเป็นเพื่อรักษารหัสอย่างสมเหตุสมผล บำรุงรักษาและเข้าใจได้
เมื่อมองย้อนกลับไปฉันอาจเป็นสาเหตุของปัญหาที่ใหญ่ที่สุดในแง่นั้น ฉันเห็นปัญหาสองอย่างในส่วนของฉัน ครั้งแรกตามช่วงเวลาของโครงการที่ฉันกำลังคิดถึงฉันจะเขียนโปรแกรมเป็นภาษาระดับสูงเป็นระยะเวลานานแล้วและใช้ภาษาแอสเซมบลีเท่านั้นเป็นทางเลือกสุดท้าย เช่นนี้เมื่อฉันใช้มันเกือบทุกอย่างที่เป็นไปได้เพื่อให้ได้ประสิทธิภาพไม่ใช่แค่เกมยุติธรรม แต่คาดว่า ประการที่สองย้อนกลับไปเมื่อฉันทำงานในบางระบบที่เขียนทั้งหมด (หรือหลัก ๆ ) เป็นภาษาแอสเซมบลีมันอยู่ภายใต้ผู้จัดการโครงการที่มีความแข็งแรงมากกว่า ในเวลาที่ฉันยังเด็กและค่อนข้างต่อต้านตรงไปตรงมาในสิ่งที่พวกเขาทำสิ่งต่าง ๆ จึงมีแนวโน้มที่จะทำตรงกันข้าม เมื่อมองย้อนกลับไปสิ่งที่พวกเขาทำมีความสำคัญและไม่ได้ทำเพียงเพราะพวกเขาแก่และไม่ยืดหยุ่น (ซึ่งฉันค่อนข้างแน่ใจว่าเป็นอย่างไรที่ฉันเห็นสิ่งต่าง ๆ ในเวลานั้น)