الجمعة , أغسطس 21 2026

إعادة النظر في C++ وJava ” تحليل مقارن للأداء، وإدارة الذاكرة، ومفاهيم البرمجة كائنية التوجه”

Abstract  

Background: Selecting an appropriate object-oriented programming (OOP) language remains a recurring challenge for students and practitioners, and C++ and Java continue to be the two most widely taught compiled/managed-runtime languages in Libyan and other universities. Objective: This study synthesizes and critically compares C++ and Java across performance, memory management, and core object-oriented programming concepts, and identifies the practical and pedagogical implications of these differences for curriculum design. Method: A structured narrative literature review was conducted, synthesizing findings from 42 previously examined sources together with an updated set of studies published between 2021 and 2026 covering execution-time benchmarking, Java Virtual Machine (JVM) garbage-collection behavior, and modern C++11–C++23 language features. Evidence was organized into a comparative matrix spanning twenty-four technical criteria, including compilation model, memory management, inheritance, concurrency, security, and modern-language constructs such as smart pointers, lambda expressions, and modules. Main Results: The synthesis confirms that C++ retains a consistent performance advantage in execution speed and low-level memory control through deterministic RAII-based resource management, whereas Java offers automatic garbage collection, stronger memory safety guarantees, and simpler cross-platform portability via the JVM. Neither language is unconditionally superior; language choice depends on application domain, safety requirements, and development constraints. Conclusion: The comparative evidence supports a criteria-based, rather than a single-winner, approach to language selection and instruction. Contribution: The study updates a decade-old comparison with post-2021 evidence on modern C++ standards and JVM garbage collectors, offers an expanded twenty-four-criterion comparison matrix, and provides actionable guidance for programming-language curriculum design in engineering and computer science programmers.

Keywords: Object-oriented programming; C++; Java; programming language comparison; memory management; performance evaluation; garbage collection; software engineering education.

الملخص

الخلفية: لا يزال اختيار لغة برمجة كائنية التوجه (OOP) المناسبة يمثل تحديًا متكررًا للطلاب والممارسين، ولا تزال كل من C++ وJava اللغتين الأكثر تدريسًا على نطاق واسع من حيث اللغات المترجمة/ذات البيئة المدارة في الجامعات الليبية والجامعات الأخرى. الهدف: تجمع هذه الدراسة وتقارن بشكل نقدي بين C++ وJava في مجالات الأداء، وإدارة الذاكرة، ومفاهيم البرمجة كائنية التوجه الجوهرية، وتحدد الآثار العملية والتربوية لهذه الاختلافات في تصميم المناهج الدراسية. المنهجية: أُجريت مراجعة أدبية سردية منظمة، تم من خلالها تجميع النتائج المستخلصة من 42 مصدرًا تم فحصها سابقًا، بالإضافة إلى مجموعة محدَّثة من الدراسات المنشورة بين عامي 2021 و2026 والتي تغطي قياسات أداء زمن التنفيذ، وسلوك تجميع البيانات المهملة (Garbage Collection) في آلة جافا الافتراضية (JVM)، وميزات لغات C++ الحديثة من C++11 إلى C++23. وتم تنظيم الأدلة في مصفوفة مقارنة تشمل أربعة وعشرين معيارًا تقنيًا، تشمل نموذج الترجمة، وإدارة الذاكرة، والوراثة، والتزامن، والأمان، وتراكيب اللغات الحديثة مثل المؤشرات الذكية (smart pointers)، وتعبيرات اللامبدا (lambda expressions)، والوحدات النمطية (modules). النتائج الرئيسية: يؤكد التجميع أن C++ تحتفظ بميزة أداء ثابتة في سرعة التنفيذ والتحكم المباشر في الذاكرة على مستوى منخفض من خلال إدارة الموارد القائمة على مبدأ RAII الحتمي، بينما توفر Java تجميعًا تلقائيًا للبيانات المهملة، وضمانات أقوى لسلامة الذاكرة، وقابلية نقل أبسط عبر المنصات بفضل آلة جافا الافتراضية. ولا توجد لغة متفوقة بشكل مطلق؛ بل يعتمد اختيار اللغة على مجال التطبيق، ومتطلبات الأمان، وقيود التطوير. الخلاصة: تدعم الأدلة المقارنة نهجًا قائمًا على المعايير في اختيار اللغة والتدريس، وليس نهجًا يقوم على لغة واحدة متفوقة. المساهمة: تُحدِّث هذه الدراسة مقارنة قديمة يعود تاريخها لعقد مضى بأدلة ما بعد عام 2021 حول معايير C++ الحديثة ومجمِّعات البيانات المهملة في JVM، وتقدم مصفوفة مقارنة موسَّعة بأربعة وعشرين معيارًا، وتقدّم توجيهات عملية قابلة للتطبيق لتصميم مناهج لغات البرمجة في برامج هندسة البرمجيات وعلوم الحاسوب.

الكلمات المفتاحية: البرمجة كائنية التوجه؛ C++؛ Java؛ مقارنة لغات البرمجة؛ إدارة الذاكرة؛ تقييم الأداء؛ تجميع البيانات المهملة؛ تعليم هندسة البرمجيات.


Salah Salem Al-Humaidi¹*

صلاح سالم الحميدي

¹ Department of Electrical and Electronic Engineering, College of Technical Sciences, Misrata, Libya

تقييم المستخدمون: كن أول المصوتون !

عن admin

شاهد أيضاً

المرأة في المثل الشعبيّ الحلبيّ في مدوّنة قوشاقجي “دراسة لغوية اجتماعيّة وبلاغيّة “

Abstract   This study examines the reprentations women in popular proverbs, drawing upon the documented …

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *