أفضل محرري البرمجة؟ معركة لا تنتهي بدون فائز واضح
نشرت: 2022-03-11بغض النظر عن الدليل الظاهر على عكس ذلك ، فإن المبرمجين هم بشر. وكجميع البشر ، نحب الاستفادة من حريتنا في الاختيار. سواء كان هذا الاختيار يتعلق بتناول الحبة الحمراء أو الحبة الزرقاء ، أو ارتداء فستان أو بنطلون ، أو استخدام بيئة تطوير على أخرى ، فإن الاختيار الذي نتخذه يضعنا في مجموعة واحدة أو أخرى. يأتي الاختيار حتمًا بعد تقييمنا للخيارات. وبعد أن قمنا بالاختيار ، نميل إلى الاعتقاد بأن أي شخص يختار بشكل مختلف قد ارتكب خطأ.
يمكنك البحث في الإنترنت بسهولة والعثور على مئات المناقشات حول Emacs vs Vim. حتى لو قرأتها جميعًا ، فسيكون من المستحيل اختيار الفائز بموضوعية. ومع ذلك ، هل يخبرك اختيار بيئة التطوير بأي شيء عن جودة العمل الذي يمكن للمطور تقديمه؟ بالطبع لا!
يمكن للمطور الرائع كتابة التعليمات البرمجية الخاصة به في برنامج Notepad والاستمرار في تقديم أشياء رائعة.
بالتأكيد ، هناك الكثير من الأشياء التي يأخذها المحترفون في الاعتبار عند اختيار الأدوات لعملهم. هذا صحيح لكل مهنة ، بما في ذلك تطوير البرمجيات. ومع ذلك ، في كثير من الأحيان ، يعتمد الاختيار على الذوق الشخصي ، وليس شيئًا ملموسًا بسهولة.
يقضي المبرمجون معظم وقتهم في النظر إلى بيئة التطوير ، لذلك من الطبيعي أن نريد شيئًا جميلًا بالإضافة إلى أنه عملي. كل بيئة تطوير لها مزاياها وعيوبها. ككل ، هم قوة دافعة لصناعة تطوير البرمجيات.
ما هي الأشياء التي يجب على المطور تقييمها عند اختيار مجموعة من أدوات البرمجة مثل محرر البرمجة المفضل؟ الإجابة على هذا السؤال ليست بالبساطة التي قد تبدو عليها. تطوير البرمجيات قريب من الفن ، وهناك عدد قليل جدًا من العوامل "الغامضة" التي تفصل التحفة الفنية عن التحف باهظ الثمن.
كل لغة برمجة ، سواء كانت Java أو C # أو PHP أو Python أو Ruby أو JavaScript وما إلى ذلك ، لها ممارسات تطوير خاصة بها تتعلق بهيكل المشروع وتصحيح الأخطاء والنشر. ومع ذلك ، هناك شيء واحد مشترك بينهم جميعًا وهو تحرير الكود. سنقوم في هذه المقالة بتقييم منصات التطوير المختلفة من منظور المهمة الأكثر شيوعًا في تطوير البرمجيات: كتابة التعليمات البرمجية.
IDE مقابل محرر نصوص للأغراض العامة
بيئة التطوير المتكاملة (IDE) (أو بيئة التطوير التفاعلية) هي تطبيق برمجي يوفر تسهيلات شاملة لمبرمجي الكمبيوتر لتطوير البرامج. يتكون IDE عادةً من محرر الكود المصدري ، وأدوات البناء الآلي ، ومصحح الأخطاء ، ويدعم الكثير من الإضافات والإضافات الإضافية.
محررات النصوص هي تطبيقات أبسط. بالمقارنة مع IDEs ، فإنها تتوافق عادةً مع جزء محرر الكود من IDE. ومع ذلك ، فهم غالبًا ما يكونون أكثر من ذلك بكثير. يتم إنشاء IDEs لخدمة الغرض من تطوير البرامج ، بينما تم تصميم العديد من برامج تحرير النصوص ليتم استخدامها من قبل غير المطورين أيضًا.
يمكن أن تحصل اللغات المكتوبة الثابتة على الكثير من الفوائد من IDEs. بسبب قواعد الكتابة الصارمة ، يمكن لـ IDE اكتشاف الأخطاء وتناقضات التسمية عبر الفئات والوحدات النمطية ، وحتى عبر الملفات ، مباشرة في المحرر ، قبل التجميع. تأتي هذه الوظيفة بشكل قياسي مع العديد من IDEs ، ولهذا السبب ، تحظى IDEs بشعبية كبيرة للغات المكتوبة الثابتة.
ومع ذلك ، من المستحيل أن تفعل الشيء نفسه مع اللغات المكتوبة ديناميكيًا. على سبيل المثال ، إذا كان من الممكن إنشاء اسم طريقة بواسطة الكود نفسه ، الذي تم إنشاؤه من سلسلة من السلاسل المتسلسلة ، فإن محاولة اكتشاف أخطاء التسمية في اللغات الديناميكية لا تتطلب أقل من تشغيل البرنامج الفعلي. نظرًا لأن إحدى الفوائد الرئيسية لـ IDE لا تنطبق على مبرمجي اللغة الديناميكيين ، فإن لديهم ميلًا أكبر للالتزام بمحرري النصوص مثل Sublime. كملاحظة جانبية ، يعد هذا أيضًا سببًا رئيسيًا لنمو حركة التطوير المدفوعة بالاختبار حول مجتمعات اللغة الديناميكية ، ولم يكن لها متابعون قويون في اللغات الثابتة.
ما الذي يجعل محرر البرمجة رائعًا؟
بصرف النظر عن عدد من الميزات المختلفة للغات مختلفة ، يحتاج كل محرر برمجة إلى واجهة مستخدم جيدة التنظيم ونظيفة. لا ينبغي التغاضي عن النداء الجمالي العام أيضًا. لا يتعلق الأمر فقط بالمظهر الجيد ، فالمحرر المصمم جيدًا مع الاختيار الصحيح للخط والألوان يساعد في الحفاظ على إجهاد العين ويتيح لك أن تكون أكثر إنتاجية.
في بيئة التطوير الحالية ، يعد منحنى التعلم الحاد مسؤولية ، بغض النظر عن مجموعة الميزات. دائمًا ما يكون الوقت ثمينًا ، لذا يجب أن يكون من السهل التعود على المحرر الجيد. من الناحية المثالية ، يجب أن يكون المبرمج قادرًا على بدء العمل على الفور ، دون الحاجة إلى القفز عبر العديد من الحلقات. سكين الجيش السويسري أداة عملية ومفيدة ، ومع ذلك يمكن لأي شخص إتقانها في دقائق. وبالمثل ، بالنسبة لمحرري البرمجة ، فإن البساطة هي فضيلة.
واجهة المستخدم والميزات وسير العمل
دعنا نلقي نظرة فاحصة على واجهة المستخدم والميزات والإمكانيات المختلفة والأدوات المستخدمة بشكل متكرر والتي يجب أن تكون جزءًا من أي محرر برمجة.
يجب أن تكون أرقام الأسطر ، بالطبع ، في وضع التشغيل افتراضيًا وبسيطة للتشغيل أو الإيقاف.
المقتطفات مفيدة لإدراج كتل معيارية من النص في تخطيط ثابت. ومع ذلك ، فإن البرمجة تتعلق كثيرًا بقول الأشياء مرة واحدة فقط ، لذا كن حذرًا مع المقتطفات لأنها قد تجعل من الصعب الحفاظ على شفرتك في المستقبل.
القدرة على فحص ، أو التحقق من بناء الجملة ، الملف الحالي مفيدة ، وكذلك القدرة على تشغيله. بدون هذه الميزة ، يجب على المبرمج التبديل إلى نافذة سطر أوامر خارجية ، واختيار الأمر الصحيح وتشغيله ، ثم التنقل عبر رسائل الخطأ للعثور على مصدر الخطأ. ومع ذلك ، يجب أن يكون الفحص تحت سيطرة المبرمج ، لأن التأخير الناتج عن النسالة قد يقطع المبرمج في لحظة حاسمة.
يُعد المستند المضمن مفيدًا طالما أنه لا يعيق الطريق ، ولكن فتح صفحة متصفح على تعريفات الفئات يكون أحيانًا أكثر فائدة ، خاصةً عندما يكون هناك الكثير من الفئات ذات الصلة التي لا تتوسع بشكل مباشر في بعضها البعض. من السهل بما يكفي قص ولصق الكود من وثائق المتصفح إلى الكود الذي تتم كتابته ، وبالتالي فإن التعقيد الإضافي للوثائق المضمنة غالبًا ما يصبح أقل فائدة ، بل وأكثر إزعاجًا ، حيث تزداد معرفة المبرمج بالوثائق.
يعد إكمال الكلمات مفيدًا لأنه سريع وموثوق تقريبًا مثل التوثيق أثناء التحرير ، بينما يكون أقل تدخلاً. إنه لمن دواعي سرورنا إدخال بضعة أحرف من الكلمة ثم الضغط على Enter للحصول على الباقي. خلاف ذلك ، يعمل المرء تحت ضغط الكتابة الزائدة ، ويمقت من قبل المبرمجين الكسالى ، الذين يريدون كتابة ee
بدلاً من exponentialFunctionSquared
الأطول وظيفة مربعة. يُرضي إكمال الكلمات عن طريق تقليل الكتابة وفرض تسمية متماسكة وعدم إعاقة الطريق.
تعد إعادة تسمية المتغيرات والوظائف عبر البرنامج أمرًا مفيدًا ، ولكن عليك أن تكون قادرًا على مراجعة التغييرات والتأكد من عدم تعطل التعليمات البرمجية الخاصة بك. مرة أخرى ، يعد إكمال الكلمات وسيلة مفيدة في منتصف الطريق ، من حيث أنه يعمل مع جميع اللغات ؛ يمكنك استخدام أسماء طويلة للعناصر ذات الأعمار الطويلة ، دون تكبد نفقات الطباعة. يمكنك استخدام مراجع لها عبر اسم أقصر محليًا ، من أجل تقصير التعبيرات التي قد تنتشر عبر عدد كبير جدًا من الأسطر. إذا كنت بحاجة إلى إعادة التسمية ، فستكون الأسماء الطويلة فريدة ، لذا يعمل هذا الأسلوب عبر جميع اللغات وجميع الملفات.
يمكن أن تنمو ملفات المصدر كثيرًا في بعض الأحيان. تعد ميزة طي الكود ميزة رائعة تسهل القراءة من خلال الملفات الطويلة.
يعد البحث / التغيير مع تحديد النطاق المحلي أو التزايدي أو العام باستخدام الأحرف الوصفية والتعبيرات العادية جزءًا من الحد الأدنى من المتطلبات هذه الأيام ، كما هو الحال مع تمييز بناء الجملة.
نظرة عامة على محرري البرمجة المشهورين
على مر السنين ، مررت بعدد من المحررين ، وهذا ما أفكر به فيهم:

Emacs: أحد أشهر المحررين في العالم. تتمثل أعظم ميزة لـ Emacs في قابليتها للتوسعة ، على الرغم من تعقيد لغة الامتداد الخاصة بها (يمكنك حتى لعب Tetris فيها باستخدام
Mx tetris
). يعتبر عشاق Emacs أن واجهته القائمة على المحطة الطرفية ميزة رائعة ، بينما قد يناقش الآخرون أنها عيب. من خلال تجربتي الشخصية ، وجدت أن الكثير من التبني والتعلم. أنا متأكد من أنك إذا كنت تعرف كيفية استخدام Emacs ، فلن تستخدم أي شيء آخر أبدًا ، ولكن لتتعلم وتعلم الثقافة بأكملها كان أكثر مما أردت. ومع ذلك ، فإن شعبيتها بين المطورين تثبت أنها بعيدة كل البعد عن أن تكون من بقايا العصور القديمة ، وتظل جزءًا من مستقبلنا أيضًا.Vi / Vim: Vim هو محرر قوي آخر قائم على المحطة ، وهو يأتي بشكل قياسي مع معظم أنظمة تشغيل xNIX. بصرف النظر عن وجود واجهة مختلفة عن Emacs ، فإن وجهة نظري هي نفسها تقريبًا. إذا نشأت عليه ، فأنا متأكد من أنك لن تستخدم أي شيء آخر. إن امتلاك مهارات Vi سيجعل حياتك أبسط بكثير عند العمل من خلال SSH والأماكن الضيقة الأخرى ، ولن تواجه مشاكل في السرعة ، بمجرد أن تتعرف على ضغطات المفاتيح. على الرغم من أنه ليس من الصعب اختراقه مثل Emacs ، إلا أن منحنى التعلم لا يزال شديد الانحدار ، ويمكنه بالتأكيد استخدام بعض الميزات الرائعة لمحرر ذي نوافذ.
SublimeText: طبقًا لاسمه ، SublimeText هو محرر نصوص جميل يحتوي على العديد من الميزات. على عكس بعض برامج التحرير المماثلة ، يعد SublimeText مصدرًا مغلقًا ، لذلك لا يمكن تعديله عند مستوى منخفض. يوفر SublimeText بساطة برامج تحرير النصوص التقليدية ، مع واجهة مستخدم بسيطة وسريعة. يجد العديد من المطورين أنه أسهل في الاستخدام من Vim ، وهذا ينطبق بشكل خاص على الوافدين الجدد. منحنى التعلم ليس شديد الانحدار. في حين أن واجهة المستخدم بسيطة ومباشرة ، تقدم SublimeText بعض الميزات الرائعة ، مثل رمز العرض المصغّر على يمين واجهة المستخدم ، مما يسمح للمستخدمين بالتمرير بسرعة عبر الكود الخاص بهم والتنقل بسهولة نسبية. على الرغم من أنه ليس مجانيًا تمامًا ، إلا أن الإصدار التجريبي محدود الميزات هو. سيكلفك فتح جميع الميزات 70 دولارًا.
Atom هو نتيجة جهد GitHub لإنتاج محرر برمجة لجيل جديد من المطورين. بينما لا يزال العمل قيد التقدم ، يعد Atom محررًا قادرًا للغاية مع مجتمع نابض بالحياة من المطورين الحريصين على الإضافات الجديدة ومكتبات JavaScript والمزيد. تتضمن سلبياته بعض المراوغات في واجهة المستخدم ، واحتمال أن تتصرف بعض الحزم الإضافية بشكل سيء ، والإبلاغ عن مشكلات في الأداء عند العمل مع ملفات كبيرة (جدًا). لكن المشروع قيد التطوير النشط ، ومن المرجح أن يتم تحسين أوجه القصور الحالية. Atom هو مشروع مفتوح المصدر ، ويمكن اختراقه بسهولة ليناسب احتياجاتك.
نانو: ممتاز في زاوية ضيقة ، ولكنه ليس غنيًا بالميزات بما يكفي لمنع الفكر الحتمي من التسلل إلى ذهن المرء بأنه يجب أن تكون هناك طريقة أسرع للقيام بذلك بينما يكافح المرء من خلال ضغطات المفاتيح لوضع مسافة بادئة لكتلة من التعليمات البرمجية ، مع إبقاء التعليقات مبطنة في العمود 80! لا يحتوي حتى على تمييز نصي ، ولا ينبغي استخدامه لأي شيء أكثر من تغييرات ملف التكوين.
TextMate2: أكبر عيب في TextMate هو أنه يعمل فقط على نظام Mac. كما قال منشئوه ، "يجلب TextMate نهج Apple لأنظمة التشغيل إلى عالم محرري النصوص." من خلال ربط أسس UNIX وواجهة المستخدم الرسومية ، يختار TextMate Cherry أفضل ما في العالمين ، لصالح المبرمجين الخبراء والمستخدمين المبتدئين على حد سواء. إنه المحرر المفضل للعديد من مطوري Ruby و Python و JavaScript ، مع دعم كبير لـ Bash أو Markdown أيضًا. في لحظة نشر هذا المقال ، لا يزال TextMate 2 في الإصدار التجريبي ، ولكنه يحتوي بالفعل على نظام مكوّن إضافي ناضج للغاية والذي يعد بتوسيعه حتى إلى ما هو أبعد من امتدادات Emacs.
jEdit: يعتمد على جافا ، ويعتبره البعض بطيئًا. قد يدفع التكوين خارج الصندوق بعض الأشخاص بعيدًا ، ولكن يمكن أن يكون jEdit سريعًا للغاية إذا تم تكوينه بشكل صحيح ، فضلاً عن المظهر الجميل للغاية.
Eclipse: بيئة تطوير متكاملة أخرى مستخدمة على نطاق واسع ، Eclipse تحظى بشعبية كبيرة بين مطوري Java ، ولكن تم تكييفها مع العديد من الأنظمة الأساسية المختلفة. يمكننا القول أن هندسته المعمارية المتجانسة عبارة عن صخرة تسحبها تحت الماء ، لكنها لا تزال واحدة من أكثر المنصات شعبية بين المطورين.
Aptana Studio: بيئة تطوير متكاملة لتطبيق ويب مفتوح المصدر شامل. إنه متاح كمكوِّن إضافي Eclipse ، مما يجعله مشهورًا بين بعض مطوري Java. الإصدار المستقل هو أصغر حجمًا ، ويوفر مجموعة من السمات وخيارات التخصيص المختلفة. قد تكون قدرات إدارة مشروع Aptana مفيدة أيضًا للمبرمجين الذين صقلوا مهاراتهم في Eclipse. بينما عانت الإصدارات السابقة من مشكلات في الأداء على بعض الأنظمة الأساسية للأجهزة ، تمت معالجة هذه المشكلات في Aptana Studio 3 ، ويجب أن تكون شيئًا من الماضي.
NetBeans: بيئة تطوير متكاملة أخرى ذات مصدر مفتوح وشائع نسبيًا مع دعم عبر الأنظمة الأساسية. إنه أبطأ إلى حد ما عند بدء التشغيل من برامج التحرير البسيطة مثل SublimeText ، واختيار الوظائف الإضافية محدود مقارنة ببعض البدائل. أصبح العديد من مطوري Java يحبون NetBeans بفضل تكامل SCM السلس ودعم HTML5. كما تحسن دعم NetBeans لـ PHP في الإصدارات الأخيرة.
JetBrains: تقدم عائلة من IDEs لـ Java و Ruby و Python و PHP. كلهم يعتمدون على نفس المحرك الأساسي. تتمتع JetBrains IDEs بقدرات كبيرة في حد ذاتها ، وتكتسب أتباعًا متزايدًا. ومع ذلك ، فهي ليست حلولًا مجانية مفتوحة المصدر ، على الرغم من توفر نسخة تجريبية مدتها 30 يومًا ، والسعر معقول.
Komodo Edit: يتمتع Komodo Edit بإمكانيات كبيرة ، ومع ذلك فهو مليء بالقليل من "المشاكل" والخصوصيات المزعجة التي يمكن أن تكون محبطة بسبب افتقارها إلى التعامد. يشعر Komodo Edit بالفوضى ، وهو أمر مخز لأنه من الواضح أن لديه قدرة هائلة. أستمر في العودة إلى Komodo Edit على أمل أن أكون قد فاتني بعض المبادئ التنظيمية ، وفي كل مرة ، أتعرض للضرب من قبل مزيج من القدرة غير المنظمة.
جيني: جيني ليس لاعباً رئيسياً مثل العديد من المحررين الآخرين في هذه القائمة. يتم تعريفه من خلال "ما هو ليس كذلك" أكثر من "ما هو عليه". إنه ليس بطيئًا ، ولا يحتوي على الكثير من التراث من الأيام الخوالي ، ولا يمتلك قدرة كبيرة ، أو الكثير من النوافذ المتعددة على قدرة التخزين المؤقت. ومع ذلك ، فإن الأشياء التي تقوم بها تعمل بشكل جيد بما فيه الكفاية. ربما يكون هذا هو الأقل تطلبًا من بين جميع المحررين الذين جربتهم وما زلت قادرًا على فعل 90 في المائة مما تتوقعه من محرر المبرمج. يبدو Geany جيدًا بما يكفي على Ubuntu ، وهذا أحد أسباب اختياره كمحرر مفضل لدي.
استنتاجي
سيكون من الغرور إعلان واحد فقط كأفضل محرر برمجة من بين هذه الأدوات الرائعة. وهناك عدد غير قليل من المحررين الذين لم أجربهم حتى. لا يوجد حل واحد يناسب الجميع. هذا ما دفعني إلى تجربة عدد من المحررين المختلفين. إذا كنت مهتمًا بشكل أكبر بطول عمر المحرر ، فستحتاج أيضًا إلى قراءة تقييم Roben Kleene لمحرري الأكواد.
أنا أستخدم Geany حاليًا ، لكن هذا لأنه يناسب المتطلبات التي أملكها. مع Geany ، والكثير من المساعدة من Perl / Gimp / Audacity / Sox ، يمكنني تطوير وصيانة قاعدة كود Java لتطبيقات Android التي أطورها ، وتجهيزها للتجميع في تكوينات مختلفة لعدة موزعين ، ومصدر ، ونص. وتجميعها وتنفيذها وإنتاجها. .apk
وتقديم هذه التطبيقات عالميًا.
قد يصف خط التطوير الخاص بك مجموعة مختلفة من المتطلبات ، وآمل أن أوفر لك بعض الوقت في البحث عن أكثر محرري البرمجة ملاءمة.