أدوات البرمجة

أدوات البرمجة أو (أدوات تطوير البرامج) هي مجموعة من البرامج الحاسوبية التي يتم إستخدامها من قبل المبرمجين أو المطورين لبناء وإنشاء و معالجة وصيانة البرامج والتطبيقات. ربما يعبر هذا المصطلح ويشير إلى مجموعة من التطبيقات والبرامج البسيطة والسهلة التي تساعد في إنجاز المهمات, كما هو الحال الآن بتواجد العديد من البرامج اليدوية التي تساعد في تمكين الفرد من إصلاح عناصر بشكل فيزيائي. في عالم تطوير البرمجيات, هنالك عدة مكونات أساسية من أهمها هي "محرر مصادر الأكواد البرمجية" (source code editor) , "المحول البرمجي" (compiler)  و "المترجم" (Interpreter). كل هاؤلاء العناصر هي مكونات رئيسية لا غنى عنها, تستخدم بشكل مطلق ومستمر في عالم البرمجيات والتطوير. بالإضافة, هناك العديد من برمجيات التطوير في في عالم الحوسبة, قد تزيد نسبة استخدام بعضها وقد يكون البعض منها غير مستخدمة بإستمرار, وهذا المعيار يحكمه المطور أو المبرمج بذاته. قد تكون الأدوات على هيئة برامج منفصلة متعددة يتم تشغيلها عبر "واجهات سطور الأوامر" في أنظمة التشغيل, أو قد تكون أيضا متجزئة من برامج أخرى كبيرة الحجم تدعى "بيئة التطوير المتكاملة" ويرمز لها عادة باللغة الإنجليزية "IDE". في أغلب الأحيان وبالتحديد عند الاستخدام السهل والغير معقد أو للإجرائات السريعة والسهلة, يتم استخدام حيل وطرق مشتهرة ومعروفة عند المبرمجين المحترفين بحيث تنجز لهم المهام المطلوبة من دون الحاجة إلى تنزيل وتحميل الأداة البرمجية المختصة. على سبيل المثال, عندما يرغب المبرمج في تصحيح كود برمجي معين (debugging), بالإمكان استخدام طرق معينة مثل استخدام المصحح البرمجي السريع المدمج في متصفحات الإنترنت نفسها ومن دون اللجوء إلى تنزيل وتحميل أدوات برمجية خاصة للتصحيح البرمجي.  
هناك غموض واضح لدى الكثير من الناس حول التفرقة مابين الأدوات والتطبيقات. وللتوضيح, يستخدم المطورين والمبرمجين "الأدوات" كوسيلة في كل الأوقات عند التعامل مع قواعد البيانات التي تتكون من ملفات يخزن فيها كافة العناصر والمعلومات المهمة. ولكن عند التعامل مع قواعد بيانات قد تم تطويرها بالكامل, فهي حينئذ تصبح بحد ذاتها "تطبيق". لسنوات عديدة, كانت ولازالت الهندسة البرمجية بإستخدام الحاسب هي الأكثر طلباََ واستخدام, حيث أنها أدت نجاحات باهرة في الصناعات والهندسة المعمارية وقطاعات التصميم العام, ولكن برامج البيئة المتكاملة "IDE" هي الأكثر نجاحاً.

الترجمة من لغة الإنسان إلى لغة الحاسب (لتنفيذ المهام)

الحواسب الذكية والحديثة تعتبر جداً معقدة, ومن أجل برمجتها, يجب جرد العديد من الأفكار. على سبيل المثال, عوضاً عن الكتابة باللغة الثنائية وتمثيلها برمجياً, سيتطرق المبرمج بكتابة الكود البرمجي بإستخدام لغات مفهومة له مثل لغة سي, ولغة الجافا ولغة البايثون (C, Java, Python). أدوات أو مكونات البرمجة الأساسية التي قمنا بتعريفها سابقاً ستقوم بترجمة وتحويل هذه اللغات المستخدمة والمفهومة من قبل الإنسان إلى (bits & bytes) بحيث تمكن الحاسب نفسه من فهمها وقرائتها ثم بعد ذلك تشغيل أو تنفيذ المهام التي قام بطلبها المبرمج والمطور.
تؤدي هذه البرامج العديد من المهام المحددة والمكررة بشكل جيد والتي ستكون مضيعة للوقت ومعرضة للخطأ عند القيام بها من قبل الأفراد/المستخدمين، مثل وضع أجزاء من البرنامج في الذاكرة وتحديد المراجع بين أجزاء البرنامج كما يفعل الموصل. يمكن أن يؤدي تحسين برامج التحويل البرمجي من ناحية أخرى إلى إجراء تحويلات معقدة على التعليمات البرمجية المصدر لتحسين سرعة التنفيذ أو الخصائص الأخرى للبرنامج. يسمح هذا للمبرمج بالتركيز أكثر على الجوانب المفاهيمية العليا للبرنامج دون القلق بشأن تفاصيل الجهاز الذي يعمل عليه.

إتاحة معلومات البرامج للأفراد

بسبب كمية التعقيد الكبيرة في أنظمة البرمجيات, من الصعب جداً المعرفة والإلمام التام بكافة عناصر وأدوات البرمجة حتى ولو كان هذا البرمج أو المطور خبير جداً ولديه خبرة متميزة. أيضاً, من الصعب جداَ فهم العلاقة الذي تدور وتتصل مابين مصادر السطور البرمجية الذي قد تم كتابتها بواسطة المبرمج وسلوك البرنامج نفسه. عندما يتم إنشاء برامج جديدة عبر المطورين, يحتمل وجود أخطاء برمجية, ومن أجل العثور على هذه الأخطاء من قبل البرمجين/المطورين, يتم استخدام أدوات برمجية أخرى لإستكشاف المزيد من المعلومات الأخرى عن البرامج المستخدمة.  
على سبيل المثال ، يسمح مصحح الأخطاء للمبرمج باستخراج معلومات حول برنامج قيد التشغيل من حيث اللغة المصدر المستخدمة في البرنامج. يمكن للمصحح حساب قيمة متغير في البرنامج المصدر من حالة الجهاز الملموسة باستخدام المعلومات المخزنة بواسطة برنامج التحويل البرمجي. يمكن أن تشير مصححات الذاكرة مباشرة إلى الوصول إلى الذاكرة الخاطئة المشكوك فيها أو الصريحة في تشغيل البرامج التي قد تظل غير مكتشفة ، وهي مصدر شائع لفشل البرنامج.