سؤال

كتب ستيف ييجي تعليق على مدونته:

جميع أعظم المهندسين في العالم استخدام Emacs.مغير العالم انواع.ليس غال العظيم في المكعب بجانبك.ليس فريد ، الرجل المذهل أسفل القاعة.أنا أتحدث عن أعظم مطوري البرامج لدينا المهنة ، أولئك الذين غيروا وجه الصناعة.ذا جيمس جوسلينجس ، دونالد كنوث ، بول غراهامز ، جيمي زاوينسكيس ، إريك بنسون.يستخدم المهندسون الحقيقيون ايماكس.يجب أن تكون ذكيا في الاستخدام إنه جيد ، ويجعلك بشكل لا يصدق قوية إذا كنت تستطيع إتقانها.اذهب وانظر على كتف بول نوردستروم بينما يعمل في وقت ما ، إذا لم تفعل ذلك صدقني.انها فتحت العين الحقيقية ل شخص يستخدم Visual Blub . NET-like IDEs حياتهم المهنية كلها.

Emacs هو محرر 100 عام.

آخر مرة استخدمت فيها محرر نصوص لكتابة التعليمات البرمجية كانت عندما كنت لا أزال أكتب HTML في برنامج "المفكرة" منذ حوالي 1000 عام.منذ ذلك الحين، أصبحت أعتمد بشكل أو بآخر على IDE، حيث استخدمت Visual Studio وNetBeans وIntelliJ وBorland/Codegear Studio وEclipse طوال مسيرتي المهنية.

لما يستحق، أنا يملك لقد قمت بتجربة Emacs، وكانت تجربتي محبطة بسبب افتقارها الكامل إلى الميزات الجاهزة القابلة للاكتشاف.(من الواضح أن هناك أمر Emacs لاكتشاف أوامر Emacs الأخرى، والذي لم أتمكن من العثور عليه بالمناسبة - إنه مثل عيش نكتة قاسية تشبه مزحة Zen.) حاولت أن أجعل نفسي أحب البرنامج لمدة شهر جيد، ولكن في النهاية قررت أنني أفضل استخدام مصممي واجهة المستخدم الرسومية بالسحب والإفلات، والتحسس الذكي، والتصحيح التفاعلي بدلاً من ذلك.

من الصعب فصل الحقيقة عن المعجبين، لذا فأنا لست على استعداد لأخذ تعليقات Yegge على محمل الجد حتى الآن.

هل هناك فرق ملموس في المهارات أو الإنتاجية أو الاستمتاع بالبرمجة بين الأشخاص الذين يعتمدون على بيئات التطوير المتكاملة (IDEs) وأولئك الذين لا يعتمدون عليها، أم أن الأمر كله مجرد إعجاب؟

هل كانت مفيدة؟

المحلول

اسمحوا لي أولاً أن أقول إنني مؤمن حقيقي بعبادة إيماكس.

ومع ذلك، فإن المدون مجنون.تكتب في ما تجده مفيدًا.أجد أن Emacs يساعدني، ويرجع ذلك أساسًا إلى أنني أمضيت سنوات دراستي الجامعية في دفع تكاليف البدء مسبقًا لتعلم كيفية تعديله ليناسب احتياجاتي، وتعديل نفسي وفقًا لاحتياجاته.

لكن الأشخاص الآخرين يفعلون الأشياء بشكل مختلف، وكما يقولون "لا بأس".

نصائح أخرى

لقد شرح (ستيف ييجي) هذا الأمر بالتفصيل، في منشورات أخرى له. http://steve-yegge.blogspot.com/2008_04_01_archive.html من المحتمل أن يكون هذا هو الأكثر شمولاً، ولكن المعلومات مدفونة هناك نظرًا لأنها مرتبطة بالموضوع الرئيسي.

أعتقد أن تلخيص:المبرمجين الذين هم مجرد جيد أو كفؤ سوف يلتقطون IDE ويتعرفون عليه جيدًا، وربما يقومون به بشكل لائق بما فيه الكفاية، لكنهم سيقيدون أنفسهم بما يوفره IDE لهم.وبعبارة أخرى، فإنها تتكيف مع IDE.ال عظيم ومن ناحية أخرى، سوف يقوم المبرمجون بتكييف برامجهم بيئة لتناسب أنفسهم, ، بطرق مثل كتابة النصوص أو الأدوات الخاصة بهم، أو توسيع أدواتهم.وإلى هذه النقطة الأخيرة، ليس Emacs فقط هو معظم هناك بيئة قابلة للتوسيع، وهي أيضًا أسهل هناك بيئة للتوسع، وهي البيئة التي تجني فيها أكثر من غيرها فائدة من توسيعها - تتكامل ملحقاتك في Emacs كما لو كانت ميزات مخزون، وبالتالي قد تعتمد ملحقاتك المستقبلية على ملحقاتك السابقة (نوع من ردود الفعل الإيجابية).

أفضل المبرمجين يستخدمون vi أو emacs، لأن المبرمجين الأكثر خبرة هم الأفضل، وقبل 20 عامًا، لم يكن هناك الكثير من الخيارات باستثناء vi وemacs.

بعد أن بدأت مع السادس (ca.1987) على جهاز به محطة نصية بطيئة جدًا، قمت بالتحويل إلى (GNU) Emacs بعد بضع سنوات (على جهاز أسرع)، واستخدمته بشكل حصري تقريبًا لمدة 10 سنوات تقريبًا.

كانت Emacs أول بيئة تطوير متكاملة حقًا - يمكن التحكم في دورة التحرير/الربط/الترجمة بأكملها في emacs، ويمكنك إنشاء برنامجك الخاص لأي مترجم تستخدمه.

في الوقت الحاضر، أصبحت بيئة تطوير متكاملة مثل Eclipse أكثر تكاملاً (لأكون صادقًا:emacs سيئة في الرسومات)، لكن Emacs لا تزال واحدة من أفضل البيئات لتحرير النص "الخالص".

إن تحسين تفكيرك الواضح وحل المشكلات سيجعلك مبرمجًا أفضل.لا يوجد برنامج يستطيع أن يفعل ذلك.

إن استخدام مطرقة أفضل لن يساعدني في بناء منزل أجمل إلا إذا كنت أعرف كيف ولماذا.;)

يحتاج Yegge إلى مقابلة بيل جوي.فهو ليس واحدًا من أعظم المبرمجين في العالم فحسب، بل إنه كتب أيضًا أجزاء كبيرة من vi.في السادس.

اعتراف مخزي قصير:بعد 20 عامًا من استخدام vi (وvim/gvim في السنوات الأخيرة) لكل شيء، بدأت في العام الماضي أو نحو ذلك في استخدام Eclipse لتحرير Java (وThunderbird للبريد الإلكتروني)، على الرغم من أن جهازي في وظيفتي الحالية لا يحتوي إلا على القليل جدًا الذاكرة التي أستخدمها عادةً vi إلا عندما أحتاج إلى مصحح الأخطاء.

هل هناك فرق ملموس في المهارات أو الإنتاجية أو الاستمتاع بالبرمجة بين الأشخاص الذين يعتمدون على بيئات التطوير المتكاملة (IDEs) وأولئك الذين لا يعتمدون عليها، أم أن الأمر كله مجرد إعجاب؟

دعنا فقط نقوم بتضييق نطاق هذا الأمر إلى Visual Studio مقابل Visual Studio.Emacs --- السؤال واسع جدًا بخلاف ذلك، وأظن أن معظم الأشخاص (على الأقل هنا في StackOverflow) على دراية بهذين الاثنين.[أنا أستخدم إيماكس وأفضّله]

بعد ذلك، دعونا نقسم المكونات الثلاثة للسؤال.

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

بالطبع، بمجرد أن تتعرف على أداة جديدة، قد تجد أنك تحب تلك الأداة بشكل أفضل، وبالتالي سوف تحب البرمجة أكثر إذا كنت تفعل ذلك باستخدام حاسوبك. جديد الأداة المفضلة.ليس من الواضح بالنسبة لي أن الناس بشكل عام سيفضلون VS على emacs (أو العكس) عندما يعرفونهما جيدًا.

التالي، مهارة البرمجة.إذا كان هناك أي علاقة بين المهارة واختيار VS/emacs، فأعتقد أن المهارة هي التي تسبب الاختيار، وليس المهارة التي تسبب الاختيار.لا يبدو أن أيًا من {VS, emacs}، في تجربتي، يجعلني أتعلم أي شيء عن الكتابة أحسن شفرة.

قد تجعلني الأداة الجيدة قادرًا على كتابة نفس الكود (وبالتالي نفس الشيء جودة من التعليمات البرمجية) في فترات زمنية أقل؛إذا افترضنا ذلك productivity = quality of code `times` code per time, ، فمن المنطقي أن أي محرر يسمح لك بكتابة تعليمات برمجية جيدة في وقت أقل يعد بمثابة زيادة في الإنتاجية.

قد لا أكون على دراية بـ VS، ولكن هنا أعتقد أن emacs لديه بعض نقاط القوة التي لم أجدها في VS.قد يبدو الأمر سخيفًا، لكنه شيء بسيط مثل حركة المؤشر Ctrl-[fbnp] هي نعمة حقيقية --- فهي تعني أنك لست مضطرًا إلى تحريك يديك إلى مفاتيح الأسهم.شيء آخر:يمكنك إجراء بحث أو استبدال يشتمل على أسطر جديدة، والتي أستخدمها كثيرًا لدرجة أنني أكره تفويتها.

شيء آخر يعجبني هو القدرة على تضمين الصدفة في المحرر الخاص بي.في تجربتي، إنها أكثر قيمة بكثير على الأنظمة الأساسية التي لا تعمل بنظام Windows (وكانت تجربتي الأولى في "البرمجة"، IIRC، هي كتابة ملفات DOS .bat، لذا فأنا لست مجرد معجب مشتعل)، ولكن على تلك الأنظمة الأساسية يعد هذا فوزًا كبيرًا .فهو يجعل emacs "يندمج" مع "كل شيء" (البحث عن الملفات باستخدام البحث/التحديد، والبحث عن النص باستخدام grep، والتحكم في الإصدار باستخدام svn/git/hg/...، سمها ما شئت).

الحكم النهائي - هل يجب أن تتعلم emacs أم لا؟وهل الأمر كله جماهيرية؟إذا كان لديك الوقت، أود أن أقول إن الأمر يستحق دائمًا تعلم طرق جديدة لفعل الشيء نفسه، لأن الطريقة الجديدة قد تكون أفضل بالنسبة لك.وأنا أشجعك على عدم رفضه كما يبدو عندما تكون جديدًا عليه.وبهذا المعنى، فإن الأمر يشبه التبديل إلى تخطيط لوحة مفاتيح دفوراك:أنت أبطأ في البداية، ولكن بمجرد أن تصل إلى السرعة، فمن المحتمل أن تكون على الأقل بنفس سرعة Qwerty، وأكثر راحة.أوصي بنفس النهج لتعلم لغات (برمجة) جديدة أيضًا:لأنك لا تعرف المفردات (المكتبة القياسية)، قول الأشياء صعب، لكن المكافأة لا تزال موجودة في الأفق في انتظارك.

مع النص المقتبس الذي يبدأ "جميع أعظم المهندسين في العالم يستخدمون Emacs،" لن أعتبره أيضًا على محمل الجد.هل يعرف كل أعظم المهندسين في العالم؟هل هي نفس قائمة أعظم المهندسين في العالم التي لديك أو أنا؟

بمجرد أن تتعلم، فإن محررًا قويًا مثل EMACS أو vi سوف يجعلك أكثر كفاءة، أو على الأقل أكثر كفاءة إذا تم القبض عليك بدون IDE المفضل لديك.

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

أنا شخصيًا من محبي Emacs، لكن Emacs مجرد أداة.لن يجعلك هذا مبرمجًا أفضل، مثلما لن يجعلك القلم الفاخر كاتبًا أفضل.

قد يكون للتوضيح بأن "المبرمجين العظماء" يكيفون بيئتهم مع أنفسهم بعض المزايا، ولكن يمكن للعديد من الأدوات القيام بذلك (على سبيل المثال.vim وSlickEdit)، لذلك لا يوجد شيء خاص بشأن Emacs في هذا الصدد.

أعتقد أن ما هو صحيح على الأرجح هو أن "المبرمجين العظماء" متحمسون للبرمجة وأن الأشخاص المتحمسين لها يميلون إلى العثور على الأدوات التي تساعد في تحفيز هذا الشغف.تعتبر Emacs (و vim و SlickEdit، وآخرون) بمثابة أداة من هذا القبيل.

لا أعتقد أن هناك فرقا، بل هو مسألة تفضيل.

ومع ذلك، ما لاحظته هو أنه كلما طالت فترة الترميز، أو المستوى الأدنى الذي قمت بتشفيره، زادت فرص استخدامك لـ emacs أو vi.

في حين أن بيئة التطوير المتكاملة (IDE) قد تحسنت كثيرًا في العقد الماضي، إلا أنها لا تزال تحتوي على البرمجة في "فقاعة" آمنة صغيرة، بعيدًا عن بعض التفاصيل القبيحة.ما يحدث هو أن هذه الزيادة في التجريد تسمح لعدد أكبر من المبرمجين بالقيام بالمزيد، بمعرفة أقل.وهذا بالطبع لا ينطبق على جميع المبرمجين، ولكن الأدوات الأسهل توفر البرمجة لجمهور أوسع.

غالبًا ما تُترجم المعرفة الإضافية بالأدوات ذات المستوى الأدنى إلى مزيد من الاستقرار في التعليمات البرمجية، نظرًا لوجود فرص أقل "لمخالفة التيار" عن طريق الخطأ.من غير العدل أن نكتفي بإدراج EMACS باعتباره المؤشر الرئيسي الوحيد، لأنه يأتي من مجموعة كاملة من اللغات والأدوات، ويتعلق في الحقيقة بعمق الفهم، وليس التكنولوجيا المحددة.

منذ فترة طويلة، إما أنك تعلمت VI أو EMACS على صناديق UNIX أو كنت متخصصًا في أجهزة الكمبيوتر (حسنًا، كان هناك VMS، وCMS، وAS400، وما إلى ذلك).أيضًا، ولكن تلك كانت تقنيات قديمة).لقد اجتذب كلا المسارين أشخاصًا متحمسين للغاية، لكن رجال UNIX كانوا يميلون إلى الرغبة في حل متطور، بينما أراد رجال الكمبيوتر الشخصي أن يتم ذلك بسرعة.وكانت الثقافات مختلفة جدا.

تميل IMHO IDEs إلى التحسين حول نظام أساسي أو لغة أو نظام تشغيل محدد:يعد Eclipse JDT رائعًا لـ Java، أما Visual Studio فهو متمحور حول C++/.NET، وما إلى ذلك.إنها تساعد في الإنتاجية كثيرًا (مرة أخرى IMHO) إذا كنت تعمل فقط على هذا النظام الأساسي، ولكن إذا قمت بتغيير الأنظمة الأساسية، فيجب عليك أن تتعلم بشكل أساسي IDE جديدًا (أو على الأقل مجموعة جديدة من المكونات الإضافية وطرق العرض ووجهات النظر وأنا لا أفعل ذلك) تعرف ماذا أيضًا عن Eclipse).

ميزة معرفة emacs أو Textmate أو vim (تفضيلي الشخصي) أو أي منها نوعي المحرر، هو أن المهارات التي تكتسبها في هذا المحرر تنطبق بغض النظر عن النظام الأساسي الذي تكتب له.لقد تم تحسينها من أجل تحرير النص, وبمجرد إتقانها، يمكنك تحرير النص بكفاءة عالية بأي لغة.

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

أنا أزعم أن أفضل المبرمجين يميلون إلى أن يكونوا هم الذين سيأخذون الوقت الكافي لتخصيص بيئتهم، مما يجعل أداء المهام التي من المحتمل أن يقوموا بها أسرع/أسهل.يعد Emacs أحد أقوى برامج التحرير عندما يتعلق الأمر بتخصيص بيئتك.إنه يشتمل على منحنى تعليمي حاد، ولكن بمجرد تجاوز ذلك، لن يكون هناك حدود لما يمكنك القيام به من أجلك.

قال أحدهم ذات مرة أن أفضل المبرمجين هم الكسالى؛تلك التي، عندما تحتاج إلى القيام بشيء ما أكثر من مرة، تجد طريقة لأتمتة ذلك بحيث يستغرق القيام به جهدًا أقل.يتيح لك Emacs أن تكون كسولًا جدًا جدًا ؛)

لقد استخدمت IDEs منذ البداية (يمكن القول؛بعد أن بدأت مع QBASIC)، ولعدة سنوات.لقد تحولت الآن بشكل كامل تقريبًا إلى VIM (بنكهات متنوعة) لجميع أعمال التطوير الخاصة بي ولست نادمًا على ذلك.لقد زادت إنتاجيتي بالتأكيد.

وبطبيعة الحال، لن يحل أي شيء محل مصمم Windows Forms من Visual Studio.لكن بالمقارنة مع VIM (و Emacs، أنا متأكد) فإن محرر النصوص داخل Visual Studio رديء حقًا.بمجرد تسخير القوة الخام لوحدة التحكم وأدوات مطور GNU (أعني بذلك make, ، مجلس التعاون الخليجي، binutils و gdb, ، وبعد ذلك بعضًا) ستلاحظ أن هذه الأدوات قد تبدو بدائية ولكنها على العكس تمامًا، وتقدم في الواقع جميع الأدوات التي يوفرها IDE (حسنًا، باستثناء مصمم النماذج).

كل ما في الأمر هو أن أمامك صعودًا شديد الانحدار عندما تبدأ في استخدام هذه الأدوات لأول مرة وقد يكون الحافز صغيرًا.لقد كنت محظوظًا بما فيه الكفاية (؟) لأنني أُجبرت على استخدام هذه الأدوات، لذلك لم يكن لدي خيار يمكنني التراجع عنه.

أنا شخصياً أشعر أنه يجب عليك استخدام كل ما يجعلك أكثر إنتاجية.إذا لم يكن لديك الوقت الكافي للاستثمار في مشروع ما للجلوس وتعلم Emacs، فمن المحتمل ألا يكون هذا أفضل استخدام لوقتك في تلك المرحلة.

ومع ذلك، أشعر أنه من الجيد التعرف على بيئة تطوير متكاملة (IDE) أخرى عندما يكون لديك متسع من الوقت للقيام بذلك. أستخدم Visual Studio في عملي اليومي، ولكن في المنزل أستخدم Eclipse للمشروعات الصغيرة وقد استخدمته ايماكس كذلك.عند النقطة المحددة التي فكرت فيها باستخدام Emacs، كان من الأفضل أن أبذل مجهودًا في إنجاز العمل الفعلي بدلاً من إبطاء نفسي في المصارعة مع Emacs.

أعتقد إلى حد ما أنه من السخافة الاعتقاد بأن جميع أفضل المبرمجين يستخدمون Emacs.هناك العديد من المبرمجين الرائعين الذين لا يتمتعون بالشعبية (أو ربما لا يتمتعون بشعبية كبيرة) ولا يستخدمون Emacs.

لقد بدأت استخدام Emacs منذ عام ونصف تقريبًا لأنه كان نتيجة التقاء العديد من الرغبات - أردت العمل مع التعبيرات العادية (في محرر يدعمها)، وأردت تعلم اللثغة، وأردت محررًا أفضل.

لقد علمني تحرير الكود الخاص بي باستخدام regexes الكثير عن العثور على أنماط في الكود.استغرقت ضغطات المفاتيح بعض الوقت للتعود عليها، لكنني أطير بشكل أسرع كثيرًا بدون الماوس.

أعطتني Emacs القدرة على مواصلة العمل باستخدام ملاحظاتي والبرمجة في نفس التطبيق - الحد الأدنى من تبديل السياق يعني الحد الأدنى من تبديل الدماغ، ويمكنني الاستمرار في التركيز على المهمة التي بين يدي.

لا.الكود الجيد يجعلك مبرمجًا أفضل.

ومع ذلك، فإن التلاعب الجيد بالنص هو مفتاح الكفاءة.سيغير كل من vim أو emacs طريقة تعاملك مع النص - كلاهما أثبت فعاليته ولكنهما يتعارضان تقريبًا مع بعضهما البعض من حيث الأسلوب.كما أن هذا النقاش قديم إلى حد ما (يعود إلى الثمانينيات والتسعينيات حيث كان النص -> المترجم هو المفتاح)، لذلك هناك العديد من برامج تحرير النصوص و/أو بيئة التطوير المتكاملة (IDEs) الأخرى التي يمكن أن تساعدك على أن تصبح أفضل مبرمج على الإطلاق.

لا.إذا كنت تعتقد أن استخدام إيماكس يجعلك مبرمجًا أفضل، فأنت تخلط بين السبب والنتيجة.

أنا أستخدمه يوميًا، بالرغم من ذلك.أجد أنني أكثر إنتاجية مع emacs+maven مقارنةً بـ Eclipse لتطوير Java (على الرغم من أنني لا أزال أقوم بتشغيل Eclipse بين الحين والآخر لإجراء جلسة إعادة البناء أو تصحيح الأخطاء من حين لآخر).

هذه هي أسبابي:

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

بالنسبة لي، السبب الرئيسي الذي يجعلني أختار Emacs بدلاً من IDE هو أنه يتيح لي القيام بكل شيء بدءًا من لوحة المفاتيح فقط.يعد هذا أمرًا رائعًا لأنه يوفر بعض الوقت عندما أستخدم الماوس عادةً.نظرًا لأنني أجد نفسي متحركًا جدًا، فأنا أميل إلى مقاطعة "أخدود" برمجتي بسبب استخدام لوحة اللمس البطيئة.بالإضافة إلى ذلك، فإن تخصيصه يجعله يتألق على بعض IDEs بالنسبة لي.ومع ذلك، إذا وجدت نفسك تبرمج بسرعة كافية باستخدام IDE، فسأقول إن منحنى التعلم الخاص بـ Emacs لا يستحق العناء.

هل هناك فرق ملموس في المهارات أو الإنتاجية أو الاستمتاع بالبرمجة بين الأشخاص الذين يعتمدون على بيئات التطوير المتكاملة (IDEs) وأولئك الذين لا يعتمدون عليها، أم أن الأمر كله مجرد إعجاب؟

لا أعتقد أنه يمكنك حقًا الحصول على إجابة لذلك.هناك العديد من الطرق المختلفة لقياس المهارات والإنتاجية والاستمتاع بالبرمجة - وربما تكون جميعها ذاتية للغاية و/أو لا يمكن تقسيمها إلى شيء واحد يسبب ذلك أم لا.

لا يزال سؤالًا مثيرًا للاهتمام.

اعتقادي الشخصي هو أن ذلك يعتمد على المبرمج :)

جي مان

لا أعتقد أن هذا سيجعلك مبرمجًا أفضل، ولكن عندما يكون لديك هذا المستوى، فمن المرجح أن تستخدم emacs ( أو vi )

: - /

الشيء الجيد في هذين الاثنين (لم أستخدم emacs من قبل، لكني ما زلت أستخدم vi في المهام العادية) هو الحقيقة، فهما لا يقاطعان حبل أفكار, ، ليس عليك أن ترفع يديك عن لوحة المفاتيح لتلتقط الماوس، وتبحث في قائمة الملفات عن الخيار الصحيح.أنت فقط، استمر في الكتابة.داخل عقلك تقول شيئا مثل:"استبدل كل تكرارات هذه الكلمة بذاك"، اضغط على زر الإدخال واستمر في عملك.

الى جانب ذلك، لا أعتقد أنهم يستخدمون emacs هو أداتهم الوحيدة.

هل سيجعلك مبرمجًا أفضل؟على الاغلب لا.ولكن عندما يكون لديك هذا المستوى من الخبرة، فمن المحتمل أنك ستحب مدى سرعة البرمجة باستخدام هذه الأدوات.

لا.

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

إذا كنت لا تحب emacs أو vi، فلا تستخدمهما.ومن خلال اتخاذ القرار الواعي بعدم القيام بذلك، فإنك تقوم بتشكيل بيئة التطوير الخاصة بك لتناسب احتياجاتك وممارسات العمل الخاصة بك.على أية حال، يحق لك استخدام ما تريد - وتجاهل أي شخص لديه من الغباء ما يكفي لتوبيخك على الأداة التي تستخدمها لكتابة البتات على القرص - فالبتات هي التي تهم.

ملحوظة:تعني "مجموعة الأدوات" هنا، حرفيًا، "العلامة التجارية" للأدوات - محررين محددين، ومترجمين، وما إلى ذلك.مجموعات الأدوات المفاهيمية، على سبيل المثال.يعد استخدام التحكم في الإصدار واختبار الوحدة - بشكل عام - جزءًا من عملية التحسين الذاتي.

إحدى الميزات الرائعة لبرنامج emacs هي أنه يمكنه التعامل تقريبًا مع أي نوع ملف تضعه عليه، وبأي حجم.من المسلم به أنه إذا كنت تفتح ملفًا مشفرًا ضخمًا ومجنونًا، فلن يكون مفيدًا بالضرورة ولكنه سيتم فتحه.سوف يسبب لك معظم المحررين (و IDEs) وجعًا كبيرًا إذا سلمتهم ملفًا كبيرًا جدًا و/أو ليس أحد التنسيقات المتوقعة.

حاول فتح ملف بحجم 1 جيجا في برنامج "المفكرة" على سبيل المثال.

لقد بدأت استخدام Emacs في عام 1980 تقريبًا، وكانت دائمًا أداة في صندوق الأدوات الخاص بي.انها ليست فقط إنها أداة يمكنني دائمًا اللجوء إليها وأعلم أنني سأتمكن من إنجاز بعض الأعمال المفيدة.

تعليق التهابي إلزامي:ومن ناحية أخرى، ليس لدي أي شيء جيد لأقوله عن السادس.لقد شعرت دائمًا أن vi سيقتلني بكل سرور ويبيع أعضائي بدافع الحقد....

في الحياة الواقعية، أستخدم Netbeans في جميع أشكال التطوير تقريبًا وأستخدم emacs بين الحين والآخر لإجراء تعديل سريع.لا يوجد شيء تقريبًا مريح تمامًا مثل emacs (بالنسبة لي) عندما يتعلق الأمر بإنجاز شيء مجنون في الوقت الحالي.

هل يتعين على أي شخص آخر تحرير السلاسل الثابتة في الملفات التنفيذية الثنائية المترجمة؟هل هناك أداة أفضل لهذا النوع من الأشياء من إيماكس؟إنه بالتأكيد يعمل بالنسبة لي.

أعلم أنك لم تسأل هذا، ولكن هناك شيء واحد تحسن بالنسبة لي في تعلم emacs (بشكل غير متوقع) وهو التلاعب بسطر الأوامر.قبل أن أتعلم روابط مفاتيح emacs كنت أستخدم تحريك المؤشر والتنقل في السجل باستخدام مفاتيح المؤشر لأنني لم أكن أعرف أي شيء أفضل.لقد كانت بمثابة لحظة مضيئة عندما أدركت أنه يمكنني استخدامها backward-word, move-beginning-of-line و backward-kill-word (وهو ما التزمت به دائمًا C-w, كما يقترح ستيفي) في bash (M-t غالبًا ما يكون مفيدًا أيضًا، وأكثر إثارة للإعجاب لأولئك الذين لم يروه من قبل).

لقد قمت بالكثير من العمل على Solaris، حيث تكون قشرة الجذر هي "صدفة posix"، ولا تحتوي على روابط emacs افتراضيًا.أجد أن أصابعي تكتب الآن exec bash من تلقاء أنفسهم، في كل مرة أقوم فيها بتسجيل الدخول، أشعر بشكل أسرع بكثير بأوامر التحرير المألوفة الآن تحت أصابعي.

يجب أن أعترف رغم ذلك، أنني ما زلت أجد كتب Knuth صعبة التنفيذ (على الرغم من أنها تستحق العناء) - لذلك لا أعتقد أنها حسنت برمجتي بطريقة سحرية.

إيماكس جعلني أكثر فعال في معالجة النصوص والتنقل في نظام الملفات.وبما أن هذين الأمرين متضمنان عندما أقوم بالبرمجة، فقد جعلني ذلك مبرمجًا أكثر كفاءة (وبالتالي أفضل).

أعتقد أن Emacs يمكنه أن يجعلك مبرمجًا أفضل، ولو بشكل غير مباشر.أعتقد أن Emacs جعلني أكتب بالفعل بلغة وظيفية (إليسب) مما جعلني مهتمًا باللغات الوظيفية الأخرى (كلوجر) والذي قيل لي أنه سيجعلني مبرمجًا أفضل.ومع ذلك، أعتقد أن الوقت سيخبرنا بذلك.

أن تكون قادرة على استخدام بعض يتيح لك المحرر القابل للتخصيص القيام بأشياء رائعة، ولكن برنامج emacs على وجه الخصوص ليس بالضرورة هو الأفضل على الإطلاق.أنا شخصياً أحد مستخدمي SlickEdit، وأقوم بنفس الأشياء الغريبة نصف الآلية التي يشتهر بها نظام emacs.لقد رأيت أشخاصًا يقومون بأشياء مماثلة باستخدام vi والعديد من برامج التحرير المستندة إلى Windows.

لذا، نعم، مجموعات المقابس جيدة، لكن الجدال حول أن شركة Craftsman هي التي تصنع مجموعة المقابس الحقيقية الواحدة هو نوع من الغباء.

سيسمح لك إتقان روابط مفاتيح Emacs ووظائفها المضمنة بمعالجة النص بشكل أسرع من IDE مثل Eclipse أو Visual Studio.

لا تأخذ كلامي على محمل الجد، تحقق من أشرطة الفيديو هذه الايجابيات باستخدام إيماكس.

بمجرد وصولك إلى مستوى لائق في Emacs، يمكنك تحرير أي لغة بشكل فعال:جافا سكريبت، جافا، روبي، بايثون، HTML، C، C ++، الخ.

يعد البدء باستخدام Emacs بمثابة ألم في المؤخرة، وتجربة الخروج من الصندوق أسوأ من سيئة.لا يُعرِّض التكوين الافتراضي لـ Emacs مبتدئ Emacs إلى الميزات الأكثر قوة (hippie-expand، وetags، وyasnippets، وما إلى ذلك) في Emacs.أقترح البدء بـ مجموعة إيماكس المبتدئة ملفات النقطة.

السبب الآخر الذي يجعل Steve Yegge يدعي أن أفضل المبرمجين في العالم يستخدمون Emacs هو elisp.يتيح Elisp للمبرمج ذي الخبرة القدرة على ذلك بسهولة قم بتوسيع إيماكس.تعد كتابة ملحق في Eclipse أو Visual Studio أصعب بكثير من كتابة وظيفة سريعة أو حتى وظيفة جديدة الوضع البسيط في إليسب.

أعتقد أنه من المفاهيم الخاطئة الكبيرة أن استخدام برامج تحرير النصوص هذه مثل VI وEmacs يحظى بتقدير كبير أو يحتاج إلى أن يصبح "مبرمجًا عظيمًا".لقد شعرت دائمًا أن بيئة التطوير المتكاملة (IDE) أكثر قوة مما كانت عليه من قبل، وهي حقًا تأتي حسب التفضيل والأسلوب.

لقد استخدمت إيماكس في الكلية.كان ذلك قبل حوالي 16 عامًا.أنا لم أنظر إلى الوراء.على الرغم من أنني أتمنى أن أظل مرتاحًا مع emacs، فالحقيقة هي أنني منتج تمامًا مع MS IDE الخاص بي.

النص الذي نشرته هو مجرد القزم.نعم.ولا يوجد سبب آخر لذلك سوى بدء حرب دينية.

لقد بدأت مع emacs ولكنني تحولت إلى vi الذي يعتبر أكثر أناقة بالنسبة لي بسبب بساطته.أيضًا، إذا كنت عالقًا في وضع المستخدم الفردي، فإن أوامر ed هي مجموعة فرعية من أوامر vi.لا أعرف ما إذا كان بإمكان emacs التعامل مع ذلك.

لذا في هذا الصدد أعتقد أن vi يجعلك مبرمجًا أفضل..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top