الفرق بين المراجعتين لصفحة: «برمجة سي/لماذا تتعلم لغة البرمجة سي؟»
تم حذف المحتوى تمت إضافة المحتوى
طلا ملخص تعديل وسم: تعديل مصدر 2017 |
لا ملخص تعديل وسم: تعديل مصدر 2017 |
||
سطر 20:
فهل من المستغرب أن لغة سي هي لغة شائعة؟
مثل تساقط الدومينو، يتبع الجيل القادم من البرامج اتجاه أسلافه. تحتوي أنظمة التشغيل المُصممة في لغة سي دائمًا على مكتبات نظام مُصممة في لغة سي. تُستخدم مكتبات النظام هذه بدورها لإنشاء مكتبات برمجية ذات مستوى أعلى (مثل [[W:أوبن جي إل|أوبن جي إل]]، أو [[W:جتك|جتك]])، وغالبًا ما يقرر مصممو هذه المكتبات استخدام اللغة التي تستخدمها المكتبات البرمجية للنظام حيث يستخدم مطورو التطبيقات المكتبات عالية المستوى لتصميم برامج معالجة الكلمات والألعاب ومشغلات الوسائط وما شابه. سيختار الكثير منهم البرمجة باللغة التي تستخدمها المكتبة البرمجية من المستوى الأعلى، وهكذا يستمر النمط مرارًا وتكرارًا...
بالرغم من ذلك، يمكن أن يكون تعلم لغة المُجمع ممتعًا وجديرًا بالاهتمام لأنه يمكن أن يمنحك فهمًا عميقًا لكيفية عمل جهاز الحاسوب الخاص في المستويات المنخفضة جدًا. وسيساعدك تعلم لغة المُجمع بالتأكيد على أن تصبح مبرمجًا أكثر مهارة بلغة سي، ولذلك نحن نُشجعك على تعلم لغة المُجمع بكل الطرق الممُكنة، ولكن عندما يحين وقت القيام بعمل حقيقي، سترغب بالتأكيد في إنجازه باستخدام لغة سي.
=== لماذا اللغة سي وليس لغة أخرى؟ ===
الغرض من التصميم الأساسي للغة سي هو إنتاج كود محمول مع الحفاظ على الأداء وتقليل البصمة بقدر الإمكان ([[W:وقت الحوسبة|وقت الحوسبة]]، إستخدام [[W:ذاكرة حاسوب|ذاكرة الحاسوب]]، عمليات القرص الصلب، إلخ.). هذا الأمر مفيد [[W:نظام تشغيل|لنظم التشغيل]] أو [[W:نظام مضمن|الأنظمة المدمجة]] أو غيرها من البرامج التي يكون للأداء فيها أهمية كبيرة (حيث وجود الواجهة “عالية المستوى" ستؤثر على الأداء). باستخدام لغة سي، من السهل نسبيًا الاحتفاظ بصورة ذهنية لما يفعله سطر معين حقًا، لأن معظم الأشياء مكتوبة بشكل صريح في الكود. تحتوي لغة سي على قاعدة بيانات كبيرة للتطبيقات منخفضة المستوى. وهي اللغة "الأم" لنظام [[w:يونكس|يونكس]]، مما يجعلها مرنة ومحمولة. لغة سي مستقرة وناضجة ومن غير المرجح أن تختفي لفترة طويلة وقد تم نقلها إلى معظم إن لم يكن كل المنصات.
أحد الأسباب القوية هو تخصيص الذاكرة. على عكس معظم لغات البرمجة ، تسمح لغة سي للمبرمج بالكتابة مباشرة على الذاكرة. تم تصميم التركيبات الرئيسية في لغة سي مثل الهياكل والمؤشرات والمصفوفات لبناء الذاكرة ومعالجتها بطريقة فعالة ومستقلة عن الآلة. بشكل مخصوص، تمنحك لغة سي إمكانية التحكم في تخطيط الذاكرة لهياكل البيانات. علاوة على ذلك، يخضع تخصيص الذاكرة الديناميكي لسيطرة المبرمج (مما يعني أيضًا أن إلغاء تخصيص الذاكرة يجب أن يتم بواسطة المبرمج). اللغات مثل [[W:جافا (لغة برمجة)|جافا]] و[[w:بيرل|بيرل]] تُعفي المبرمج من الحاجة إلى إدارة معظم تفاصيل تخصيص الذاكرة والمؤشرات (باستثناء [[w:تسرب الذاكرة|تسرب الذاكرة]] وبعض الأشكال الأخرى من الإستخدام المفرط للذاكرة). يمكن أن يكون هذا مفيدًا لأن التعامل مع تخصيص الذاكرة عند إنشاء برنامج عالي المستوى عملية معرضة بشكل كبير للخطأ. ومع ذلك، عند التعامل مع كود منخفض المستوى مثل جزء من نظام التشغيل الذي يتحكم في الجهاز، توفر لغة سي واجهة موحدة ونظيفة. هذه الإمكانيات غير موجودة في معظم اللغات الأخرى.
في حين أن اللغات البرمجية '''بيرل''' و'''بي إتش بي''' و'''بايثون''' و'''روبي''' قد تكون قوية وتدعم العديد من الميزات التي لا يتم توفيرها افتراضيًا في لغة سي، إلا أنها لا تُطبَّق عادةً بلغتها الخاصة. بدلاً من ذلك، اعتمدت معظم هذه اللغات في البداية على كتابتها بلغة سي (أو لغة برمجة أخرى عالية الأداء)، وستتطلب نقل تنفيذها إلى نظام أساسي جديد قبل استخدامها.
كما هو الحال مع جميع لغات البرمجة، فإن ما إذا كنت ترغب في اختيار لغة سي على لغة أخرى عالية المستوى هو مسألة رأي ويمكن أن تُحدد المتطلبات الفنية والتجارية اللغة المطلوبة.
{{تحرك}}
|