क्या Emacs मुझे एक बेहतर प्रोग्रामर बनाएंगे? [बन्द है]


130

स्टीव येजे ने अपने ब्लॉग पर एक टिप्पणी लिखी :

दुनिया के सभी महानतम इंजीनियर Emacs का उपयोग करते हैं। विश्व-परिवर्तक प्रकार। आपके बगल में क्यूब में महान गैल नहीं। फ्रेड नहीं, हॉल के नीचे अद्भुत आदमी। मैं अपने पेशे के सबसे बड़े सॉफ्टवेयर डेवलपर्स के बारे में बात कर रहा हूं, जिन्होंने उद्योग का चेहरा बदल दिया है। जेम्स गोसलिंग्स, डोनाल्ड नथ्स, पॉल ग्राहम्स, जेमी ज़ाविन्किस, एरिक रेन्सन। असली इंजीनियर Emacs का उपयोग करते हैं। आपको इसे अच्छी तरह से उपयोग करने के लिए स्मार्ट होना होगा, और यदि आप इसे मास्टर कर सकते हैं तो यह आपको अविश्वसनीय रूप से शक्तिशाली बनाता है। अगर वह मुझ पर विश्वास नहीं करता है, तो पॉल नॉर्डस्ट्रॉम के कंधे पर कुछ समय के लिए नज़र डालें। यह किसी के लिए एक वास्तविक आंख खोलने वाला है जिसने अपने पूरे करियर में विजुअल ब्लब .NET की तरह उपयोग किया है।

Emacs 100 साल का संपादक है।

पिछली बार जब मैंने कोड लिखने के लिए एक पाठ संपादक का उपयोग किया था, तब मैं लगभग 1000 साल पहले नोटपैड में HTML लिख रहा था। तब से, मैं अपने पूरे करियर के लिए विजुअल स्टूडियो, नेटबिन्स, इंटेलीज, बोरलैंड / कोडगियर स्टूडियो और एक्लिप्स का इस्तेमाल करते हुए कम या ज्यादा आईडीई पर निर्भर रहा।

क्या यह की कीमत के लिए, मैं है Emacs की कोशिश की, और मेरे अनुभव से पता लगाने योग्य सुविधाओं आउट-ऑफ-द-बॉक्स की अपनी पूर्ण अभाव की वजह से एक निराशा से एक था। (जाहिरा तौर पर अन्य Emacs कमांड की खोज के लिए एक Emacs कमांड है, जिसे मैं वैसे नहीं खोज सका - यह आपके अपने क्रूर ज़ेन-जैसे मज़ाक को जीने जैसा है।) मैंने खुद को एक अच्छे महीने के लिए प्रोग्राम की तरह बनाने की कोशिश की, लेकिन आखिरकार। तय किया कि मैं बजाय GUI डिजाइनरों, IntelliSense, और इंटरेक्टिव डीबगिंग को ड्रैग-एंड-ड्रॉप करूंगा।

तथ्य को कट्टरता से अलग करना कठिन है, इसलिए मैं अभी तक फेस वैल्यू पर येज की टिप्पणी लेने को तैयार नहीं हूं।

क्या आईडीई पर निर्भर रहने वाले और न करने वाले लोगों के बीच कौशल, उत्पादकता, या प्रोग्रामिंग आनंद में एक औसत अंतर है, या यह सब केवल कट्टरता है?


22
यह भी ध्यान देने योग्य है कि पॉल ग्राहम vi का उपयोग करता है; येजगे ने इस सुधार को लिंक किए गए लेख में एक फुटनोट में प्रस्तुत किया है।
एली कोर्टराइट

16
मेरे द्वारा उपयोग किए जाने वाले सभी संपादकों में, Emacs एकमात्र ऐसा है जो आपको बताता है कि हर बार शुरू होने वाले ट्यूटोरियल को कैसे चलाया जाए (जब तक कि आप इसे सीखने के लिए पर्याप्त नहीं बताते कि आप ट्यूटोरियल कैसे चलाएं।
माइकल पॉलुकोनिस

16
EMACS क्या है? एस्केप मेटा अल्ट कंट्रोल शिफ्ट! ;-)
पीटर के।

24
शब्दावली नट पिक: Emacs एक "प्रोग्रामर एडिटर," मात्र "टेक्स्ट एडिटर" नहीं है। जीयूआई आईडीई में पाठ को संपादित करने की क्षमता भी है, लेकिन वे केवल टेक्स्ट एडिटर नहीं हैं। Emacs के लिए नोटपैड की तुलना तुलना करने के लिए है ... रॉक को डेथ स्टार पर उस बंदूक के साथ कुछ मारने के लिए कुछ फेंकना।
ग्रेग मैट्स

8
स्पष्ट रूप से कुछ लोग सहसंबंध और कार्य
चुबस

जवाबों:


119

पहले मुझे कहने दो, मैं Emacs के पंथ में एक आत्मविश्वासी सच्चा आस्तिक हूं।

उस ने कहा, ब्लॉगर पागल है। आप वही लिखते हैं जो आपको उपयोगी लगता है। मुझे लगता है कि Emacs मेरी मदद करता है, मुख्य रूप से क्योंकि मैंने अपने कॉलेज के वर्षों को अपनी जरूरतों को पूरा करने के लिए इसे संशोधित करने के लिए सीखने की शुरुआती लागत का भुगतान किया, और अपनी आवश्यकताओं के लिए खुद को संशोधित किया।

लेकिन अन्य लोग चीजों को अलग तरह से करते हैं, और जैसा कि वे कहते हैं कि "यह ठीक है"।


73
माना। मुझे Emacs बहुत पसंद है, लेकिन यह सोचकर कि Emacs आपको एक बेहतर प्रोग्रामर बना देगा, यह सोचने जैसा है कि Tiger Woods के गोल्फ क्लबों का उपयोग करने से आप एक बेहतर गोल्फर बनेंगे, या Eddie Van Halen के गिटार का उपयोग करके आप एक बेहतर संगीतकार बनेंगे।
क्रिस्टोफर जॉनसन

31
ऊपर क्रिस्टोफर की टिप्पणी से असहमत। एक महान खेल व्यक्ति / कलाकार के औजारों का उपयोग करना निश्चित रूप से आपको उनके जैसा महान नहीं बनाएगा। लेकिन, सही काम के लिए सही प्रोग्रामिंग उपकरण का उपयोग निश्चित रूप से होगा! खेल और कला के साथ प्रोग्रामिंग को समान करने के लिए आपको क्षमा किया जा सकता है। :)
सुशील जावड़ी

6
@ बर्ट: उनका कहना है कि कई "सही उपकरण" हैं। टाइगर वुड के गोल्फ क्लब उत्कृष्ट उपकरण हैं और नौकरी के लिए एकदम सही हैं, लेकिन अन्य क्लब भी हैं जो समान परिणाम प्रदान कर सकते हैं। एक अच्छा प्रोग्रामर का उपयोग करता है उपकरण उन्हें परिभाषित नहीं करता है, उनकी रचनात्मकता और क्षमताओं को करते हैं।
सेठ मूर

9
मुझे लगता है कि स्टीव्स स्टेटमेंट के साथ पूरे बिंदु यह है कि महान प्रोग्रामर एमएसीएस का उपयोग करते हैं, अच्छे सॉफ्टवेयर डेवलपर्स एक आईडीई का उपयोग करके अधिक उत्पादक होते हैं। महान प्रोग्रामर हमेशा प्रोग्राम करते हैं, यहां तक ​​कि जब वे कोड प्रोग्राम का निर्माण करते हैं, तो वे कार्यों को स्वचालित करते हैं, वे मेक, एंट, बैश, पर्ल और हडसन से प्यार करते हैं। वे जानते हैं कि सॉफ्टवेयर विकास चक्र के किसी भी भाग में मैन्युअल कार्य त्रुटियों के लिए प्रवण हैं। महान प्रोग्रामर यह भी जानते हैं कि अगर कोई आपका कोड बनाता है (जैसे आईडीई या कोई भी) तो आप हमेशा उस एक पर निर्भर करते हैं, जब वह कोड बनाए रखने के लिए कौशल का उपयोग करता है (जैसे आईडीई या कोई भी)
अर्नेल्ली

4
स्टीव येजेग वह लड़का है जिसने क्विक में एक पूर्ण जावास्क्रिप्ट पार्सर लिखा है, इसलिए कोई सवाल नहीं है कि वह पागल है जहाँ तक Emacs चला जाता है :)
Tikhon Jelvis

106

उन्होंने (स्टीव येजे) इस पर विस्तार से, टुकड़ों में बिट्स में, उनकी अन्य पोस्टिंग में विस्तार से बताया है। http://steve-yegge.blogspot.com/2008_04_01_archive.html शायद सबसे व्यापक है, लेकिन मुख्य विषय के स्पर्शरेखा पर जानकारी को दफन किया जाता है।

मैं संक्षेप में प्रस्तुत करने का अनुमान लगाता हूं: जो प्रोग्रामर केवल हैं अच्छे या सक्षम एक आईडीई लेंगे और इसे वास्तव में अच्छी तरह से जान पाएंगे, और हो सकता है कि इसमें शालीनता से पर्याप्त हो, लेकिन वे खुद को सीमित कर लेंगे कि आईडीई उनके लिए क्या प्रदान करता है। दूसरे शब्दों में, वे खुद को आईडीई के अनुकूल बनाते हैं। महान प्रोग्रामर, दूसरे हाथ पर, उनके लिए अनुकूल होगा पर्यावरण के अनुरूप करने के लिए खुद को स्क्रिप्ट या अपने स्वयं के उपकरणों लेखन, या उनके उपकरणों का विस्तार करने जैसे तरीकों का,। और उस अंतिम बिंदु पर, न केवल Emacs वहां सबसे अधिक विलुप्त होने वाला वातावरण है, यह वहाँ का विस्तार करने के लिए सबसे आसान वातावरण भी है, और यह वह वातावरण है जहाँ आप सबसे अधिक लाभ उठाते हैं इसे विस्तारित करने से - आपके एक्सटेंशन एमएसीएस में एकीकृत हो जाते हैं जैसे वे स्टॉक फीचर्स हैं, और इसलिए आपके भविष्य के एक्सटेंशन आपके पिछले वाले (सकारात्मक-प्रतिक्रिया-पाश तरह की चीज) का निर्माण कर सकते हैं।


15
अंतर वह ऊर्जा है जो आईडीई को विस्तारित करने के लिए ले जाती है। एमएसीएस के साथ, सभी कॉन्फ़िगरेशन फाइलें क्विक प्रोग्राम फाइलें हैं। इसलिए अनिवार्य रूप से, प्रवेश के लिए अवरोध हास्यास्पद रूप से कम है (बस अपनी
.emacs

18
एंगस के समान ही लाइनों के साथ। एक अच्छी IDE को काम पूरा करने के लिए पूरी तरह से नहीं होना चाहिए। एक अच्छी IDE में सभी सुविधाएँ होनी चाहिए। सुनिश्चित करें कि आप शॉर्टकट और लेआउट को कॉन्फ़िगर करना चाहते हैं, लेकिन आपको सब कुछ संभालने के लिए स्क्रिप्ट का एक गुच्छा लिखने की आवश्यकता नहीं होनी चाहिए।
किबी

5
एंगस: तुम सही हो। यदि आपको अपना काम पूरा करने के बजाय चीजों को जोड़ने के लिए चारों ओर पेंच करना पड़ता है, तो आप बिंदु से चूक गए हैं - Emacs या नहीं। सोल: बाहरी कार्यक्रमों के माध्यम से फिर विस्तार करना है। वास्तव में, यह सब इतना शक्तिशाली विस्तार तंत्र नहीं है।
जोनाथन आर्केल

15
ई-मेल के विस्तार और शुद्धिकरण, दृश्य स्टूडियो या ग्रहण के बीच अंतर गति है। एक्लिप्स में एक्सटेंशन जोड़ना एक संपूर्ण एप्लिकेशन लिखने जैसा है। तुलना लिखने में एमएसीएस के लिए एक विस्तार कोड की एक पंक्ति हो सकती है।
जस्टिन टान्नर

4
@supercheetah - विजुअल स्टूडियो में पाए जाने वाले इंटैलिजेंस की तुलना में बहुत आदिम दिखता है, जैसे उपलब्ध सदस्यों के बगल में दिखाए गए आइकन उपयोगी हैं! व्यक्तिगत रूप से, मजबूत रीफैक्टरिंग समर्थन के बिना मुझे Emacs में बहुत कम दिलचस्पी है।
si618

57

सर्वश्रेष्ठ प्रोग्रामर vi या emacs का उपयोग करते हैं, क्योंकि सबसे अनुभवी प्रोग्रामर सबसे अच्छे होते हैं, और 20 साल पहले, vi और emacs को छोड़कर कोई विकल्प नहीं था।

बहुत धीमी पाठ टर्मिनल वाली मशीन पर vi (ca 1987) के साथ शुरू होने के बाद, मैंने कुछ वर्षों के बाद (GNU) एमएसीएस को एक तेज़ मशीन में परिवर्तित कर दिया और लगभग 10 वर्षों तक इसका उपयोग किया।

Emacs पहला सही मायने में एकीकृत विकास वातावरण था - संपूर्ण संपादित / लिंक / संकलन चक्र को emacs में नियंत्रित किया जा सकता था, और आप जो भी संकलक इस्तेमाल करते थे, उसके लिए आप अपना रोल कर सकते थे।

आजकल, इस तरह के ग्रहण के रूप में आईडीई और भी बेहतर एकीकृत हैं (ईमानदार होने के लिए: ग्राफिक्स पर emacs बेकार है), लेकिन Emacs अभी भी "शुद्ध" पाठ संपादन के लिए सबसे अच्छे वातावरण में से एक है।


10
पहले पैराग्राफ में स्व-पूर्ति की भविष्यवाणी के लिए +1।
ओरेगनगॉस्ट

12
"सबसे अनुभवी प्रोग्रामर सबसे अच्छे हैं" - सच्चाई से बहुत दूर, कम से कम निहितार्थ से। अनुभवहीन प्रोग्रामर नहीं कहना बेहतर है, लेकिन सिर्फ इसलिए कि वह 20 साल से एक ही काम कर रहा है - इसका मतलब यह नहीं है कि वह इसे अच्छी तरह से कर रहा है।
AviD

7
20 साल पहले बहुत सारे संपादक थे। उनमें से ज्यादातर बस बच नहीं पाए हैं, आम तौर पर अच्छे कारण के साथ। एक आदमी जिसने 1989 में vi या emacs का उपयोग किया है, वह उस आदमी की तुलना में बेहतर है जिसने 1989 में कुछ MS-DOS आधारित संपादक का उपयोग किया था, या जो भी मैं इसे कंट्रोल डाटा मेनफ्रेम पर उपयोग कर रहा था वह कुछ भी नहीं था?
डेविड थॉर्नले

हेक, 10 साल पहले एक अच्छा जावा आईडीई नहीं था !
सुशील जावड़ी

20 साल पहले जो मुझे याद आया था, उसमें से vi और emacs अत्यधिक प्रभावशाली संपादक थे - सिर्फ इसलिए कि तब बहुत सारे संपादक थे (अब के रूप में) इसका मतलब यह नहीं है कि वे सभी समान रूप से व्यापक रूप से उपयोग किए गए थे।
फिनकॉक

34

अपनी स्पष्ट सोच और समस्या को सुलझाने में सुधार करने से आप एक बेहतर प्रोग्रामर बनेंगे। कोई भी कार्यक्रम ऐसा नहीं कर सकता।

एक बेहतर हथौड़ा का उपयोग करने से मुझे एक अच्छे घर का निर्माण करने में मदद नहीं मिलेगी जब तक कि मुझे नहीं पता कि कैसे और क्यों। ;)


मैं जो कहना चाहता था, उसके लिए एक अच्छा सादृश्य भी।
रॉब

21
लेकिन एक खराब हथौड़ा एक ही घर बनाने की कोशिश करते समय आपकी उत्पादकता को बर्बाद कर देगा और आप शायद एक अलग घर के साथ समाप्त हो जाएंगे।
user51568

ये उचित है! एक औसत प्रोग्रामर महंगे हथौड़ा के साथ ज्यादा बेहतर किराया नहीं देगा।
जस पनेसर

5
एक महान प्रोग्रामर हथौड़ा के लिए एक पत्थर का उपयोग करके एक शानदार घर बना सकता है। (वह धीमा है - लेकिन वह अभी भी यह कर सकता है।: डी)
एगॉन

हां, लेकिन एक संपादक होने से जो आपको व्यवस्थित रूप से प्रवाहित करने देता है (जो मुझे लगता है कि Emacs ज्यादातर संपादकों की तुलना में बेहतर है) आपकी स्पष्ट सोच और इसलिए समस्या सुलझाने में सुधार कर सकता है।
Skilldrick

21

येज को बिल जॉय से मिलने की जरूरत है। न केवल वह दुनिया के महान प्रोग्रामरों में से एक हैं, उन्होंने vi के बड़े अंश भी लिखे हैं। Vi में।

लघु शर्मनाक कबूलनामा: 20 साल के बाद (और हाल के वर्षों में vim / gvim का उपयोग करने के लिए) सब कुछ के लिए, पिछले वर्ष में या तो मैंने java संपादन के लिए ग्रहण का उपयोग करना शुरू कर दिया है (और ईमेल के लिए थंडरबर्ड), हालांकि मेरी वर्तमान नौकरी में मशीन में इतनी कम मेमोरी होती है कि मैं डिबगर की आवश्यकता होने पर आमतौर पर वी का उपयोग करता हूं।


7
वी के लिए +1 (वास्तव में, विम का उपयोग करें, लेकिन समान अंतर)। यह 98% है जो एमएसीएस आधे से भी कम प्रयास के लिए कर सकता है।
rmeador

25
मैंने 5 साल तक विम का इस्तेमाल किया। Emacs में 20 मिनट के बाद मैंने कसम खाई कि मैं कभी वापस नहीं जाऊंगा। विम पीछे की ओर महसूस करता है।
मैटलबेलर

5
येज ने खुद इसका उल्लेख किया है: [एक उल्लेखनीय अपवाद VIM है, जो सभी खातों द्वारा बहुत शक्तिशाली है, हालांकि मुझे इसके साथ कोई अनुभव नहीं है। यदि आप पहले से ही वीआईएसी से अधिक के लिए वरीयता विकसित कर चुके हैं, तो आपको वीआईएम के साथ विशेषज्ञता हासिल करने में अधिक खुशी का अनुभव हो सकता है। Psh
user674062

1
उह .. बिल जॉय अब vi का उपयोग नहीं करता है।
प्लूमनेटर

13

क्या आईडीई पर निर्भर रहने वाले और न करने वाले लोगों के बीच कौशल, उत्पादकता, या प्रोग्रामिंग आनंद में एक औसत अंतर है, या यह सब केवल कट्टरता है?

चलिए इसे केवल Visual Studio बनाम Emacs तक सीमित करते हैं --- प्रश्न बहुत व्यापक है अन्यथा, मुझे संदेह है कि अधिकांश लोग (कम से कम यहां StackOverflow पर) उन दोनों से परिचित हैं। [मैं हूँ, और मैं emacs का उपयोग और पसंद करता हूँ]

अगला, चलो प्रश्न के तीन घटकों को तोड़ दें।

प्रोग्रामिंग आनंद मुख्य रूप से अपने आप में प्रोग्रामिंग को पसंद करता है, और जब आप इसे करते हैं तो झुंझलाहट के कारक नहीं होते हैं। उन उपकरणों का उपयोग करना जिनके साथ आप संघर्ष करते हैं, आनंद से घटाना है। इसलिए, मैं अनुमान लगाऊंगा कि आपके द्वारा पसंद किए जाने वाले औजारों का उपयोग करके आनंद की अधिकतम संभावना है।

बेशक, एक बार जब आप एक नए टूल से परिचित हो जाते हैं, तो आप पा सकते हैं कि आप उस टूल को बेहतर पसंद करते हैं, और इस तरह से प्रोग्रामिंग करना अधिक पसंद करेंगे यदि आप इसे अपने नए पसंदीदा टूल के साथ करते हैं । मेरे लिए यह स्पष्ट नहीं है कि जब वे उन दोनों को अच्छी तरह से जानते हैं, तो सामान्य रूप से लोग वीएस (या इसके विपरीत) से अधिक वीएस पसंद करेंगे।

अगला, प्रोग्रामिंग कौशल। यदि वीएस / एमएसीएस के कौशल और पसंद के बीच कोई संबंध है, तो मुझे लगता है कि यह कौशल का कारण है, न कि कौशल का कारण। {VS, emacs} में से कोई भी, मेरे अनुभव में, मुझे बेहतर कोड लिखने के बारे में कुछ भी सीखने के लिए नहीं लगता है ।

एक अच्छा उपकरण मुझे उसी कोड (और इस प्रकार कोड की समान गुणवत्ता ) को कम मात्रा में लिखने में सक्षम बना सकता है ; अगर हम यह मान लेते हैं productivity = quality of code `times` code per time, तो यह इस कारण से खड़ा होता है कि कोई भी संपादक जो आपको कम समय में अच्छा कोड लिखने देगा वह उत्पादकता को बढ़ावा देता है।

मैं वीएस से बहुत अपरिचित हो सकता हूं, लेकिन यहां मुझे लगता है कि एमएसीएस में कुछ ताकतें हैं जो मुझे वीएस में नहीं मिली हैं। यह हास्यास्पद लग सकता है, लेकिन कर्सर आंदोलन के रूप में सरल Ctrl-[fbnp]एक असली वरदान है --- इसका मतलब है कि आपको अपने हाथों को तीर कुंजियों तक नहीं ले जाना है। एक और बात: आप एक खोज कर सकते हैं या प्रतिस्थापित कर सकते हैं, जिसमें नई लिपि भी शामिल है, जिसका उपयोग मैं अक्सर करता हूं कि मैं इसे याद करने से नफरत करता हूं।

एक और चीज जो मुझे पसंद है वह है मेरे संपादक में एक शेल एम्बेड करने की क्षमता। मेरे अनुभव में, यह गैर-विंडोज़ प्लेटफार्मों (और मेरे पहले "प्रोग्रामिंग" अनुभव, IIRC पर अधिक मूल्यवान है, डॉस .bat फाइलें लिख रहा था, इसलिए मैं सिर्फ एक ज्वलंत प्रशंसक नहीं हूं), लेकिन उन प्लेटफार्मों पर यह एक बड़ी जीत है। । यह emacs को "सब कुछ" के साथ "एकीकृत" करता है (फ़ाइल खोज / पता लगाएं, grep के साथ पाठ खोज, svn / git / hg / ... के साथ संस्करण नियंत्रण, आप इसे नाम देते हैं)।

अंतिम फैसला - क्या आपको एमएसीएस सीखना चाहिए या नहीं? और क्या यह सब कट्टरता है? यदि आपको समय मिला है, तो मैं कहूंगा कि यह हमेशा एक ही काम करने के नए तरीके सीखने लायक है, क्योंकि नया तरीका बस आपके लिए बेहतर काम कर सकता है। और मैं आपको प्रोत्साहित करता हूं कि जब आप इसके लिए नए हों तो इसे अस्वीकार न करें। इस अर्थ में, यह ड्वोरक कीबोर्ड लेआउट पर स्विच करने जैसा है: आप पहली बार में धीमे हैं, लेकिन एक बार जब आप गति के लिए उठते हैं तो आप कम से कम क्वर्टी पर अधिक तेज़ होने की संभावना रखते हैं, और अधिक आरामदायक होते हैं। मैं नई (प्रोग्रामिंग) भाषा सीखने के लिए समान दृष्टिकोण की सलाह देता हूं: क्योंकि आप शब्दावली (मानक पुस्तकालय) नहीं जानते हैं, यह कहना कि चीजें कठिन हैं, लेकिन इनाम अभी भी आपके लिए इंतजार कर रहा है।


1
"चलिए इसे केवल Visual Studio बनाम Emacs तक सीमित करते हैं --- प्रश्न बहुत व्यापक है अन्यथा, मुझे संदेह है कि अधिकांश लोग (कम से कम यहां StackOverflow पर) उन दोनों से परिचित हैं।" -- वास्तव में? मैंने सोचा कि मेरे जैसे और भी बहुत से रबीद * निक्स फैनबॉय हैं जो विजुअलस्टडियो का उपयोग करने के लिए मजबूर नहीं होंगे, बहुत कम स्वेच्छा से इसका उपयोग करते हैं। मानव संसाधन विकास मंत्री।
Xiong Chiamiov

"Ctrl- [fbnp] के साथ कर्सर आंदोलन एक वास्तविक वरदान है"। हालाँकि मुझे Emacs बहुत पसंद है, एक लंबे अंतराल के बाद इसे वापस करने पर मुझे कर्सर की गति इस तरह से मिली और Emacs का उपयोग करने का सबसे कम उपयोगी और आरामदायक पहलू। इसके विपरीत मैं बिना देखे या सोचे भी समर्पित कर्सर कुंजियों तक पहुँच और पा सकता हूँ। शायद यह एक पियानो वादक बनने में मदद करता है? :) लेकिन जो जानता है, समय के साथ, शायद सी-स्क्रंच-पत्र अधिक स्वाभाविक लगेगा।
ग्रेग Hendershott

2
ps मैं पूरी तरह से गोले और प्लेटफार्मों के बारे में सहमत हूं। यदि आप Windows, OS X और Linux के बीच जाना चाहते हैं, तो आप पहले तीनों पर Emgs और तीनों पर Emacs चाहते हैं। GitHub पर अपना .emacs.d फेंको और तुम सुनहरे हो।
ग्रेग हेंडरशॉट

इसके अलावा, आप खोज कर सकते हैं कि regexes का उपयोग करते हुए विजुअल स्टूडियो में
नए सिरे शामिल हैं

10

"दुनिया में सबसे बड़े इंजीनियरों में से सभी एमएसीएस का उपयोग करते हैं" उद्धृत पाठ की शुरुआत के साथ, मैं इसे अंकित मूल्य पर भी नहीं ले जाऊंगा। क्या वह दुनिया के सभी महानतम इंजीनियरों को जानता है? क्या यह दुनिया के सबसे महान इंजीनियरों की सूची है जो आपके या मेरे पास है?

एक बार सीख लेने के बाद, EMACS या vi जैसा शक्तिशाली संपादक आपको अधिक कुशल बना देगा, या कम से कम और अधिक कुशल बना देगा यदि आप अपने पसंदीदा आईडीई के बिना पकड़े जाते हैं।

यह "एक बार सीखा" हिस्सा है जो हत्यारा है। यह इन उपकरणों का उपयोग करने के लिए बहुत काम और अभ्यास है, और यह शुरुआत में बहुत कठिन है।


1
मुझे लगता है कि गुणों में से एक है जो वास्तव में किसी को "महान" होने में मदद करता है इंजीनियर को संतुष्टि में देरी करने में सक्षम है और दक्षता में सुधार के लिए एक बड़ी निश्चित स्टार्टअप लागत को कंधे में डाल सकता है।
तिखन जेल्विस

9

मैं व्यक्तिगत रूप से एक Emacs प्रशंसक हूं, लेकिन Emacs सिर्फ एक उपकरण है। यह आपको एक बेहतर प्रोग्रामर नहीं बनाएगा, जो किसी सुपर-फैंसी पेन से अधिक आपको बेहतर लेखक बना देगा।

यह स्पष्टीकरण कि "महान प्रोग्रामर" अपने वातावरण को खुद के अनुकूल बनाते हैं, कुछ योग्यता हो सकती है, लेकिन बहुत सारे उपकरण ऐसा कर सकते हैं (जैसे कि विम और स्लिकएडिट), इसलिए उस संबंध में Emacs के बारे में कुछ खास नहीं है।

मुझे लगता है कि जो सबसे अधिक सच है, वह यह है कि "महान प्रोग्रामर" प्रोग्रामिंग के बारे में भावुक होते हैं और जो लोग इसके बारे में भावुक होते हैं वे उन उपकरणों को खोजने में मदद करते हैं जो उस जुनून को चलाने में मदद करते हैं। Emacs (और vim और SlickEdit, et al) एक ऐसा उपकरण है।


सुपर-फैंसी पेन मुझे सभी हेमिंग्वे-ईश महसूस करते हैं।
Cheeso

2
Emacs के बारे में "पर्यावरण को अनुकूल बनाने" के संबंध में विशेष रूप से यह है कि यह Emacs में विम या स्लिकएडिट की तुलना में कहीं अधिक सरल है। (या किसी अन्य संपादक के बारे में मुझे पता है)
वेदांग

8

मुझे विश्वास नहीं है कि इसमें कोई अंतर है, यह अधिक प्राथमिकता की बात है।

हालाँकि, मैंने देखा है कि आपने जितनी बार कोडिंग की है, या निचले स्तर पर आपने कोडित किया है, उतनी अधिक संभावना है कि आपने emacs या vi का उपयोग किया है।


"अब आपके द्वारा कोडित किया गया" अच्छा आईडीई होने से पहले कोडिंग शुरू करने के लिए तर्क देता है।
पॉल टॉम्बलिन

3
क्या एक अच्छी IDE, सन्नी जैसी कोई चीज है?
डेविड थार्नले

8

जबकि IDE के पिछले दशक में बहुत बेहतर हुआ है, वे अभी भी प्रोग्रामिंग को थोड़ा सुरक्षित "बबल" में रखते हैं, जो कुछ बदसूरत विवरणों से दूर है। जो कुछ होता है वह यह है कि अमूर्तता में यह वृद्धि अधिक प्रोग्रामर को कम ज्ञान के साथ और अधिक करने की अनुमति देती है। यह, ज़ाहिर है, सभी प्रोग्रामर पर लागू नहीं होता है, लेकिन आसान उपकरण प्रोग्रामिंग को व्यापक दर्शकों तक पहुंचाते हैं।

निचले स्तर के औजारों का अधिक ज्ञान, अक्सर कोड में अधिक स्थिरता का अनुवाद करता है, क्योंकि गलती से "अनाज के खिलाफ जाने" की संभावना कम होती है। यह केवल प्रमुख संकेतक होने के नाते ईएमएसीएस को सूचीबद्ध करना अनुचित है, क्योंकि यह भाषाओं और उपकरणों की एक पूरी श्रृंखला से आता है, और वास्तव में समझ की गहराई के बारे में अधिक है, न कि विशिष्ट तकनीक।

जिस तरह से आप या तो UNIX बॉक्स पर VI या EMACS सीखते हैं या आप पीसी (ओके, वीएमएस, सीएमएस, एएस 400 इत्यादि) में भी विशिष्ट थे, लेकिन वे पुराने तकनीक थे)। दोनों धाराओं ने बहुत उत्सुक लोगों को आकर्षित किया, लेकिन UNIX लोग एक परिष्कृत समाधान चाहते हैं, जबकि पीसी लोग इसे जल्दी से पूरा करना चाहते थे। संस्कृतियाँ बहुत अलग थीं।


7

IMHO IDEs को किसी विशिष्ट प्लेटफ़ॉर्म या भाषा या OS के आसपास अनुकूलित किया जाता है: ग्रहण JDT जावा के लिए बहुत अच्छा है, विजुअल स्टूडियो C ++ /। NET-केंद्रित है, आदि। वे उत्पादकता में बहुत मदद करते हैं (फिर IMHO) यदि आप केवल काम कर रहे हैं। वह प्लेटफ़ॉर्म, लेकिन यदि आप प्लेटफ़ॉर्म बदलते हैं तो आपको मूल रूप से एक नया आईडीई सीखना होगा (या कम से कम प्लगइन्स, विचारों, दृष्टिकोणों का एक नया सेट और मुझे नहीं पता कि ग्रहण के लिए और क्या है)।

Emacs, या Textmate, या विम (मेरी व्यक्तिगत पसंद), या किसी भी सामान्य संपादक को जानने का लाभ यह है कि आप उस संपादक में जो कौशल हासिल करते हैं, वह इस बात पर ध्यान दिए बिना लागू होता है कि आप किस प्लेटफॉर्म के लिए लिख रहे हैं। वे पाठ संपादित करने के लिए अनुकूलित हैं , और एक बार जब आप उन्हें मास्टर कर लेते हैं, तो आप किसी भी भाषा में बहुत कुशलता से पाठ संपादित कर सकते हैं।

येज के जोर भी है कि महान प्रोग्रामर अपने उपकरणों को अपनी कार्यशैली के बजाय इसके विपरीत के अनुकूल बनाते हैं। मुझे लगता है कि यह जेनेरिक संपादकों के लिए एक जीत है, क्योंकि आप एक संपादक को अनुकूलित करते हैं, न कि यह जानने के लिए कि आप कैसे चाहते हैं, सभी के लिए चार अलग-अलग आईडीई को अनुकूलित करें।


समस्या तब आती है जब आपको एक अलग प्लेटफॉर्म पर लिखना होता है, जिस पर आप गए हैं: जैसे कि आप * nix से Windows में जाते हैं, और आपकी स्क्रिप्ट्स टूट जाती हैं क्योंकि वे '/' - आधारित रास्तों के साथ एक बॉर्न शेल मान रहे थे पोस्टस्क्रिप्ट-आधारित मुद्रण के साथ
एफएचएस

मैं काफी समय से emacs के साथ काम कर रहा हूं, अब, और बस कर्सर आंदोलन मेरे लिए कुछ और लिखने में आक्रोश करने के लिए पर्याप्त है - भले ही वह केमाइल में एक ईमेल हो।
अरने बबेनहॉसरहाइड

@ArneBabenhauserheide यह एक कारण है कि मुझे मैक ओएस एक्स बहुत पसंद है, लगभग सभी टेक्स्टफिल्ड समर्थन C-[npfbaed]। (लेकिन दुख की बात नहीं M-)
porglezomp

6

मेरा तर्क है कि सबसे अच्छे प्रोग्रामर वही होते हैं जो अपने वातावरण को अनुकूलित करने के लिए समय लेंगे, जिससे उन कार्यों को करने में तेजी से / आसान हो जाएगा जो वे करने की संभावना रखते हैं। Emacs सबसे शक्तिशाली संपादकों में से एक है जब यह आपके पर्यावरण को अनुकूलित करने की बात आती है। यह एक सीखने की अवस्था है, लेकिन जब आप अतीत में हो जाते हैं, तो वस्तुतः इसकी कोई सीमा नहीं है कि आप इसे अपने लिए क्या कर सकते हैं।

किसी ने एक बार कहा था कि सबसे अच्छे प्रोग्रामर आलसी होते हैं; वे जो, एक बार उन्हें एक से अधिक बार कुछ करने की आवश्यकता होती है, उसे स्वचालित करने का एक तरीका खोजते हैं ताकि ऐसा करने में कम प्रयास लगे। Emacs आपको बहुत, बहुत आलसी होने की अनुमति देता है;)


4

मैंने शुरुआत से ही IDE का उपयोग किया है (यकीनन, QBASIC से शुरू हुआ है), और कई के लिए, कई वर्षों से। मैंने अब अपने सभी विकास कार्यों के लिए लगभग पूरी तरह से VIM (विविध स्वादों में) में बदल दिया है और मुझे इसका कोई अफसोस नहीं है। मेरी उत्पादकता में निश्चित रूप से वृद्धि हुई है।

बेशक, विजुअल स्टूडियो से विंडोज फॉर्म डिजाइनर की जगह कुछ भी नहीं होगा। लेकिन VIM (और Emacs की तुलना में, मुझे यकीन है) विज़ुअल स्टूडियो के अंदर पाठ संपादक वास्तव में घटिया है। एक बार जब आप कंसोल और जीएनयू डेवलपर टूल (जिसके द्वारा मेरा मतलब है make, जीसीसी, binutilsऔर) की कच्ची शक्ति का उपयोग करते हैंgdb , और फिर कुछ) आप इन उपकरणों आदिम लग सकता है कि ध्यान देंगे लेकिन वे सिर्फ विपरीत कर रहे हैं, और वास्तव में सभी की पेशकश उपकरण जो एक IDE प्रदान करता है (अच्छी तरह से, फॉर्म डिजाइनर को छोड़कर)।

यह सिर्फ इतना है कि जब आप पहली बार इन साधनों का उपयोग करना शुरू करते हैं और प्रोत्साहन छोटा हो सकता है, तो आपके सामने बहुत खड़ी चढ़ाई है। मैं इन उपकरणों का उपयोग करने के लिए पर्याप्त रूप से भाग्यशाली था (), इसलिए मेरे पास ऐसा कोई विकल्प नहीं था कि मैं इससे बाहर निकल सके।


3

व्यक्तिगत रूप से, मुझे लगता है कि आपको जो कुछ भी अधिक उत्पादक बनाता है उसका उपयोग करना चाहिए। यदि आपके पास Emacs को सीखने और सीखने के लिए किसी परियोजना में निवेश करने का समय नहीं है, तो यह उस समय आपके समय का शायद सबसे अच्छा उपयोग नहीं है।

हालाँकि, मुझे लगता है कि अन्य IDE को जानने के लिए यह एक अच्छा विचार है जब आपके पास ऐसा करने के लिए पर्याप्त समय हो। मैं अपने दिन के काम में विजुअल स्टूडियो का उपयोग करता हूं, लेकिन घर पर मैं छोटी परियोजनाओं के लिए ग्रहण का उपयोग करता हूं और उनका उपयोग करता हूं साथ ही खाली करता है। उस विशेष बिंदु पर जहां मैंने Emacs का उपयोग करने पर विचार किया था, मेरा प्रयास बेहतर था कि खुद को Emacs के साथ कुश्ती में धीमा करने की तुलना में वास्तविक काम किया जाए।

मुझे लगता है कि कुछ हद तक यह सोचना बेतुका है कि सभी बेहतरीन प्रोग्रामर Emacs का उपयोग करते हैं। कई अद्भुत प्रोग्रामर हैं जो लोकप्रिय नहीं हैं (या मुखर, शायद) जो Emacs का उपयोग नहीं करते हैं।


3

मैंने लगभग डेढ़ साल पहले Emacs का उपयोग करना शुरू कर दिया था क्योंकि यह कई चाहने वालों का संगम था - नियमित भावों के साथ काम करना चाहता था (एक संपादक ने उनका समर्थन किया), लिस्प सीखना चाहता था, एक बेहतर संपादक चाहता था।

रेगेक्स के साथ अपने कोड को संपादित करना मुझे कोड में पैटर्न खोजने के बारे में बहुत कुछ सिखाता है। कीस्ट्रोक्स की आदत पड़ने में थोड़ा समय लगा, लेकिन मैं बिना माउस के बहुत तेजी से उड़ता हूं।

एमएसीएस ने मुझे अपने नोट्स के साथ काम करने और एक ही एप्लिकेशन में कोडिंग करने की क्षमता दी - न्यूनतम संदर्भ स्विचिंग का मतलब न्यूनतम मस्तिष्क-स्विचिंग है, और मैं हाथ में काम पर ध्यान केंद्रित रख सकता हूं।


3

नहीं। अच्छा कोड आपको एक बेहतर प्रोग्रामर बनाता है।

यह कहा, अच्छा पाठ हेरफेर दक्षता के लिए महत्वपूर्ण है। या तो विम या एमएसीएस बदल जाएगा कि आप पाठ के साथ कैसे काम करते हैं - दोनों प्रभावी साबित होते हैं लेकिन शैली के संदर्भ में एक-दूसरे के साथ लगभग हैं। इसके अलावा, यह बहस पुरानी है (80 और 90 के दशक में जहां पाठ -> संकलक प्रमुख था), इसलिए कई अन्य पाठ संपादक और / या आईडीई हैं जो आपको सबसे अच्छा प्रोग्रामर बनने में आपकी मदद कर सकते हैं।


3

यदि आप मानते हैं कि emacs का उपयोग आपको बेहतर प्रोग्रामर बनाता है, तो आप कारण और प्रभाव को भ्रमित कर रहे हैं।

मैं इसे दैनिक उपयोग करता हूं, हालांकि। मुझे लगता है कि मैं java डेवलपमेंट के लिए एक्लिप्स की तुलना में एमएसीएस + मावेन के साथ अधिक उत्पादक हूं (हालांकि मैं अभी भी हर बार ग्रहण को आग लगाता हूं और कभी-कभार रिफैक्टरिंग या डिबग सत्र करने के लिए)।

ये मेरे कारण हैं:

  • Emacs में वास्तविक टेक्स्ट एडिटिंग का अनुभव बाकी सब कुछ धड़कता है। यह आश्चर्यजनक है कि आप केवल अपने कीबोर्ड का उपयोग करके कितनी तेजी से पूरा कर सकते हैं। ग्रहण अधिक माउस-उन्मुख है, और जब आप टाइप करते हैं तो आपको बहुत सारे चिड़चिड़ाहट वाले स्नैक्स मिलते हैं।
  • Elisp का उपयोग कर emacs को अनुकूलित करने में सक्षम होने के नाते अविश्वसनीय रूप से शक्तिशाली है। मैं यहाँ तक कहूँगा कि यदि आप अल्पविकसित सीखने के लिए समय नहीं निकाल रहे हैं और अपने वातावरण को अनुकूलित कर रहे हैं तो आप बस अपना समय बर्बाद कर रहे हैं।
  • वहाँ व्यावहारिक रूप से कुछ भी आप कभी भी एक पाठ संपादक में करना चाहते हो सकता है के लिए एक्सटेंशन हैं।

1
सहसंबंध के लिए +1! = कारण
जिओगिआ चुआमोवोव

आप किस जावा मोड का उपयोग कर रहे हैं?
एवेंदेल

1
मैं स्टॉक java मोड का उपयोग कर रहा हूं जो Emacs23 के साथ आता है, कुछ कस्टमाइज़ेशन और हैक्स के साथ मावेन बिल्ड चलाता है। मैंने emacs-eclim का उपयोग भी शुरू कर दिया है, जो emacs और ग्रहण के बीच एक सेतु का काम करता है। यह अच्छा है और प्रयोग करने योग्य है, लेकिन इस समय बहुत कठिन है।
फ्रेड-ओ

3

मेरे लिए मुख्य कारण मैं एक IDE पर Emacs चुनूंगा क्योंकि यह मुझे मेरे कीबोर्ड से सब कुछ करने की अनुमति देता है। यह अच्छा है कि यह कुछ समय के लिए बचाता है जब मैं सामान्य रूप से एक माउस का उपयोग करता हूं। इसके अलावा जब से मैं अपने आप को बहुत मोबाइल पाता हूं, मेरे पास मेरे प्रोग्रामिंग "ग्रूव" होने की प्रवृत्ति है, जो मेरे धीमे टच पैड का उपयोग करने के कारण बाधित है। इसके अलावा इसका अनुकूलन मेरे लिए कुछ IDE पर चमक बनाता है। हालाँकि अगर आप खुद को एक आईडीई के साथ तेजी से प्रोग्रामिंग पाते हैं तो मैं कहूंगा कि एमएसीएस की सीखने की अवस्था परेशानी के लायक नहीं है।


2

क्या आईडीई पर निर्भर रहने वाले और न करने वाले लोगों के बीच कौशल, उत्पादकता, या प्रोग्रामिंग आनंद में एक औसत अंतर है, या यह सब केवल कट्टरता है?

मुझे नहीं लगता कि आपको वास्तव में इसका जवाब मिल सकता है। कौशल, उत्पादकता और प्रोग्रामिंग आनंद को मापने के लिए बहुत सारे अलग-अलग तरीके हैं - और वे सभी संभवतः बहुत व्यक्तिपरक हैं और / या किसी एक चीज में टूट नहीं सकते हैं, जिसके कारण यह है या नहीं।

यह अभी भी एक दिलचस्प सवाल है।

मेरी व्यक्तिगत मान्यता है - यह प्रोग्रामर पर निर्भर करता है :)

जी-मैन


फैनबॉय दोस्त। आईडीई संपादक नहीं है। आईडीई को सबसे अच्छा संपादक होने की आवश्यकता नहीं है।
पेराप्यूज़लॉकर

2

मुझे नहीं लगता कि यह आपको एक बेहतर प्रोग्रामर बना देगा, लेकिन जब आपके पास यह स्तर होगा, तो आप सबसे अधिक संभावना emacs (या vi) का उपयोग करेंगे

: - /

उन दोनों के बारे में अच्छी बात (मैंने पहले कभी एमएसीएस का उपयोग नहीं किया है, लेकिन मैं अभी भी सबसे अधिक सांसारिक कार्य के लिए vi का उपयोग करता हूं) तथ्य यह है, वे आपके विचार की ट्रेन को बाधित नहीं करते हैं , आपको अपने हाथों को बाहर निकालने की ज़रूरत नहीं है। माउस को पकड़ने के लिए कीबोर्ड, और सही विकल्प के लिए फ़ाइल मेनू में शिकार करें। तुम बस, लिखते रहो। अपने मन के अंदर आप ऐसा कुछ कहते हैं: "उसके लिए इस शब्द की सभी घटनाओं को बदलें", अपने काम के साथ एंटर दबाएं और जारी रखें।

इसके अलावा, मुझे नहीं लगता कि वे emacs का उपयोग करते हैं उनका एकमात्र उपकरण है।

क्या यह आपको बेहतर प्रोग्रामर बना देगा? शायद ऩही। लेकिन जब आपके पास विशेषज्ञता का स्तर होता है, तो शायद आप यह पसंद करेंगे कि आप उन टूल का उपयोग करके कितनी तेजी से कोड कर सकते हैं।


मेनू में शिकार उन लोगों के लिए है जो आईडीई को नहीं जानते हैं। मुझे नहीं पता कि पिछली बार मुझे मेनू विकल्प के लिए "शिकार" करना पड़ा था।
tster

तो क्या आपको लगता है कि "File-> Save" का उपयोग Ctrl-S से बेहतर है? मुझे ऐसा नहीं लगता। माउस को हथियाने के लिए, मेनू फ़ाइल पर क्लिक करें और फिर वें माउस को नीचे ले जाएँ सेव एंट्री मेरे लिए बहुत कुछ लगता है जब आप इसे कीबोर्ड के हाथों के बिना कर सकते हैं।
OscarRyz

जाहिर है मैं सहमत हूं। मेरे द्वारा उपयोग किए गए सभी आईडीई में ईमैक्स की तरह व्यापक और अनुकूलन योग्य हॉटकी और संयोजन हैं।
20

2

नहीं।

अनुशासन, आलोचनात्मक सोच और आत्म-सुधार की इच्छा आपको एक बेहतर प्रोग्रामर बनाएगी। आपका उपकरण सेट, जबकि आपकी उत्पादकता का एक प्रमुख कारक, प्रतिभा पैदा नहीं करेगा।

यदि आप emacs या vi पसंद नहीं करते हैं, तो उनका उपयोग न करें। होश में नहीं करने का विकल्प बनाकर, आप अपनी आवश्यकताओं और कार्य प्रथाओं को फिट करने के लिए अपने विकास के माहौल को आकार दे रहे हैं। किसी भी स्थिति में, आप उस चीज़ का उपयोग करने के हकदार हैं जो आपको पसंद है - और जिस किसी को भी आप डिस्क को बिट लिखने के लिए उपयोग करते हैं उस टूल के लिए आपको बहुत परेशान करना है - यह बिट्स की बात है।

नोट: "टूल सेट" का अर्थ है, शाब्दिक रूप से, टूल का "ब्रांड" - विशिष्ट संपादक, संकलक, आदि। वैचारिक उपकरण सेट, जैसे संस्करण नियंत्रण, इकाई परीक्षण का उपयोग - सभी सामान्य रूप से स्व का एक हिस्सा हैं- सुधार प्रक्रिया।


2

Emacs की एक बड़ी खासियत यह है कि यह किसी भी फाइल टाइप को आप इसे किसी भी साइज के, इस पर फेंक सकते हैं। बेशक, यदि आप एक पागल विशाल एन्क्रिप्टेड फ़ाइल खोल रहे हैं, तो यह आवश्यक रूप से उपयोगी नहीं होगा, लेकिन यह खुल जाएगा। अधिकांश संपादकों (आईडीई) आपको प्रमुख दिल का दर्द देंगे यदि आप उन्हें एक फ़ाइल सौंपते हैं जो बहुत बड़ा है और / या उनके अपेक्षित स्वरूपों में से एक नहीं है।

एक उदाहरण के लिए नोटपैड में 1 गिग फ़ाइल खोलने का प्रयास करें।

मैंने 1980 के आसपास कहीं Emacs का उपयोग करना शुरू किया और यह हमेशा मेरे टूलबॉक्स में एक उपकरण रहा है। यह एकमात्र उपकरण नहीं है, लेकिन यह हमेशा कुछ ऐसा है जिसे मैं बदल सकता हूं और जान सकता हूं कि मैं कुछ उपयोगी काम कर पाऊंगा।

अप्रचलित भड़काऊ टिप्पणी : दूसरी ओर, मुझे vi के बारे में कहने के लिए कुछ भी अच्छा नहीं है। मैंने हमेशा महसूस किया है कि vi मुझे ख़ुशी से मार देगा और मेरे अंगों को बेच देगा बस ...।

वास्तविक जीवन में, मैं लगभग सभी प्रकार के विकास के लिए नेटबीन्स का उपयोग करता हूं और त्वरित संपादन करने के लिए मैं अब हर बार ईमैक्स का उपयोग करता हूं। वहाँ लगभग कुछ भी नहीं है कि यह emacs (मेरे लिए) के रूप में के रूप में काफी सुविधाजनक है जब यह अभी कुछ पागल हो रही करने के लिए आता है।

किसी और को कभी भी संकलित बाइनरी निष्पादनयोग्य में स्थिर तार को संपादित करना होगा? क्या emacs की तुलना में उस तरह का एक बेहतर उपकरण है? यह निश्चित रूप से मेरे लिए काम करता है।


1
जबकि विज़ुअल स्टूडियो उस अवसर को पूरी तरह से याद नहीं करेगा, और इसके बजाय अपने बटुए के माध्यम से राइफल के साथ सामग्री को देखने के लिए कि क्या कोई अतिरिक्त नकद था।
रॉब

क्षमा करें, मुझे नहीं पता होगा। मैं लगभग हर समय नेटबीन्स का उपयोग करता हूं और जब मुझे इसकी आवश्यकता होती है तब ईएसीएस।
बॉब क्रॉस

2

मुझे पता है कि आपने यह नहीं पूछा था, लेकिन मेरे लिए एक चीज़ सीखना (अप्रत्याशित रूप से) मेरे लिए सुधार एक कमांड लाइन में हेरफेर कर रहा था। इससे पहले कि मैं emacs keybindings सीखता मैं कर्सर को स्थानांतरित करता था और कर्सर कुंजियों का उपयोग करके इतिहास को नेविगेट करता था क्योंकि मुझे कोई बेहतर पता नहीं था। यह एक लाइटबल्ब क्षण का कुछ था जब मुझे एहसास हुआ कि मैं उपयोग कर सकता हूं backward-word, move-beginning-of-lineऔर backward-kill-word(जो कि मैं हमेशा से बाध्य हूं C-w, जैसा कि स्टीवे सुझाव देता है ) bash( M-tअक्सर उपयोगी भी होता है, और उन लोगों के लिए सबसे प्रभावशाली है जिन्होंने इसे पहले कभी नहीं देखा है)।

मैं सोलारिस पर काफी काम करता हूं, जहां रूट शेल "पॉज़िक्स शेल" है, और डिफ़ॉल्ट रूप से एमएसीएस बाइंडिंग नहीं है। मुझे लगता है कि मेरी उंगलियां अब exec bashअपने हिसाब से टाइप करती हैं , हर बार जब मैं लॉग इन करता हूं, तो मैं अपनी उंगलियों के नीचे अब जाने-पहचाने एडिटिंग कमांड के साथ तेजी से महसूस करता हूं।

हालांकि मानना ​​होगा, मुझे अभी भी नथ की किताबें कठिन लग रही हैं (हालांकि इसके लायक है) - इसलिए मुझे नहीं लगता कि यह जादुई रूप से मेरी प्रोग्रामिंग में सुधार हुआ है।


यार, मुझे वास्तव में उन चालों को और अधिक सीखने की जरूरत है ... वैसे भी, क्या आप अपने लॉगिन शेल को बदल नहीं सकते हैं, या क्या आपने वास्तव में "रूट उपयोगकर्ता के लिए शेल" का मतलब है जब आपने "रूट शेल" कहा था? यदि हां, तो आप रूट के रूप में लॉग इन क्यों कर रहे हैं ???
सैमब

2

Emacs ने मुझे पाठ हेरफेर और फाइलसिस्टम नेविगेशन में अधिक कुशल बनाया । और जब से ये दोनों चीजें शामिल हैं जब मैं कार्यक्रम करता हूं, तो इसने मुझे अधिक कुशल (इस प्रकार बेहतर) प्रोग्रामर बना दिया है।


2

मुझे लगता है कि Emacs आपको एक बेहतर प्रोग्रामर बना सकता है, यद्यपि अप्रत्यक्ष रूप से। मुझे लगता है कि एमएसीएस मुझे वास्तव में एक कार्यात्मक भाषा ( एलिस्प ) में लिखने के लिए मिला है , जिसकी मुझे अन्य कार्यात्मक भाषाओं ( क्लोजर ) में दिलचस्पी है, जो मुझे बताया गया है कि मुझे एक बेहतर प्रोग्रामर बना देगा। उन्होंने कहा, मुझे लगता है कि समय बताएगा।


यह लिस्प की एक बहुत पुरानी शैली है (केवल गतिशील और कोई लेक्सिकल स्कूपिंग के साथ), लेकिन यह निश्चित रूप से सिखाने के लिए बहुत कुछ है। यह, और यह उन दिनों एक बहुत अच्छा पाठ संपादक हो सकता है जिन पर यह वास्तव में सही काम करता है!
सैमब

1

कुछ अनुकूलन संपादक का उपयोग करने में सक्षम होने से आप निफ्टी चीजों को करने की अनुमति देते हैं, लेकिन विशेष रूप से emacs जरूरी नहीं कि बहुत ही बेहतरीन एक संभव है। मैं खुद एक SlickEdit उपयोगकर्ता हूं, मैं इसके साथ सभी अजीब अर्ध-स्वचालित सामान करता हूं जो emacs के लिए प्रसिद्ध है। मैंने देखा है कि लोग vi और विभिन्न विंडोज-आधारित संपादकों के साथ समान काम करते हैं।

तो, हाँ, सॉकेट अच्छा सेट करता है, लेकिन यह तर्क देते हुए कि शिल्पकार वन ट्रू सॉकेट सेट बनाता है एक प्रकार का गूंगा है।


एक तरफ के रूप में, मैं SlickEdit की कोशिश करने के लिए इच्छुक हो सकता हूँ अगर यह braindead विपणन के लिए नहीं थे: "10 कारण SlickEdit का उपयोग न करने के लिए - # 1: आपको एक बुरा प्रोग्रामर होना पसंद है। # 2: आप और अधिक खर्च करना चाहते हैं। कम। # 3: आप एक निरीह मोरन हैं। आदि आदि "
जूलियट

मैं HAD मार्केटिंग से पहले स्लीक में आ गया; यह सिर्फ इतना है कि यह एकमात्र वास्तविक संपादक था जो उस समय OS / 2 3.0 के तहत चलता था। जो शायद उसी कारण के बारे में है जो उन सभी अन्य लोगों ने emacs का उपयोग किया ...
mjfgates

1

Emacs की प्रमुख बाइंडिंग और इसके कार्यों में निर्मित यह आपको IDE जैसे कि ग्रहण या विज़ुअल स्टूडियो की तुलना में तेज़ी से पाठ में हेरफेर करने की अनुमति देगा।

इसके लिए मेरा शब्द न लें, Emacs का उपयोग करते हुए पेशेवरों के इन वीडियो को देखें ।

एक बार जब आप Emacs में एक सभ्य स्तर पर पहुंच जाते हैं तो आप किसी भी भाषा को प्रभावी रूप से संपादित कर सकते हैं: जावा स्क्रिप्ट, जावा, रूबी, पायथन, एचटीएमएल, सी, सी ++, आदि।

एमएसीएस के साथ शुरुआत करना बट में दर्द है, बॉक्स अनुभव से बाहर खराब से खराब है। Emacs डिफ़ॉल्ट कॉन्फ़िगरेशन Emacs नौसिखिया को Emacs की अधिक शक्तिशाली सुविधाओं (हिप्पी-विस्तार, etags, yasnippets, आदि) के लिए उजागर नहीं करता है। मेरा सुझाव है कि Emacs स्टार्टर किट डॉट फाइलों के साथ शुरू किया गया ।

एक और कारण है कि स्टीव येजे का दावा है कि दुनिया के सर्वश्रेष्ठ प्रोग्रामर Emacs का उपयोग करते हैं, यह बहुत ही महत्वपूर्ण है। Elisp अनुभवी प्रोग्रामर को आसानी से Emacs का विस्तार करने की शक्ति देता है। एक्लिप्स या विजुअल स्टूडियो में एक विस्तार लिखना त्वरित कार्य या यहां तक ​​कि एक नया मामूली मोड लिखने की तुलना में काफी कठिन है ।


सवाल यह है कि इसका उपयोग क्यों शुरू करें? यदि कोई खुश, आरामदायक और उत्पादक है, तो ईएमएसी सीखने में समय और प्रयास क्यों बर्बाद करते हैं? मैं एक शक्तिशाली संपादक के साथ, एक पुराने संपादक को सीखने के बजाय एक नई प्रोग्रामिंग भाषा या नई तकनीक सीख सकता हूं। एक दिन में केवल 24 घंटे होते हैं, बुद्धिमानी से समय का उपयोग करें।

एक और बात मैं यह नोट करना चाहूंगा कि यह उस तकनीक पर भी निर्भर करता है जिसका आप उपयोग कर रहे हैं। क्या Emacs में अंतर्मुखता है? मैंने इसे UNIX मशीनों पर कॉलेज में इस्तेमाल किया और मुझे यकीन है कि यह तब से बदल गया है। लेकिन .NET इंटेलीजेंस के लिए एक MUST है। वहाँ कोई रास्ता नहीं किसी को भी सभी नामस्थानों में सभी वर्गों में सभी समारोह के नाम याद कर सकता है। और मुझे यकीन है कि हर बार मुझे MSDN पर नहीं जाना चाहिए, क्योंकि मुझे एक फ़ंक्शन का नाम देखना होगा। यदि Emacs Intellisence प्रदान करता है तो मैं इस पर विचार करूंगा।
१५:१५ पर सरसेंक

1

मेरा मानना ​​है कि इसकी एक बड़ी गलतफहमी है कि इन पाठ आधारित संपादकों जैसे VI और Emacs का उपयोग करने पर "महान प्रोग्रामर" बनने की आवश्यकता होती है। मैंने हमेशा महसूस किया कि IDE के mor ई शक्तिशाली हैं और फिर वे उपयोग करते हैं, और यह वास्तव में एक प्राथमिकता और शैली में आता है।


0

मैंने कॉलेज में इमैक का इस्तेमाल किया। यह लगभग 16 साल पहले था। मैंने पीछे मुड़कर नहीं देखा। जबकि मैं चाहता हूं कि मैं अभी भी emacs के साथ सहज हो सकता हूं, सच्चाई यह है कि मैं अपने एमएस आईडीई के साथ काफी उत्पादक हूं।

आपके द्वारा पोस्ट किया गया पाठ केवल एक ट्रोल है। हां। धार्मिक युद्ध शुरू करने के लिए इसके अलावा और कोई कारण नहीं है।


0

मैं emacs के साथ शुरू हुआ, लेकिन vi को स्विच किया, जो मुझे सरलता के कारण अधिक सुरुचिपूर्ण है। यदि आप कभी एकल उपयोगकर्ता मोड में अटके हुए हैं, तो ed कमांड vi कमांड्स का सबसेट है। मैं नहीं जानता कि क्या emacs संभाल सकते हैं।

तो उस संबंध में मुझे लगता है कि vi आपको एक बेहतर प्रोग्रामर बनाता है।


Emacs है , हालांकि, मुझे लगता है कि कि एक मजाक की तरह था ... पर शक एक एमएक्स vi-विधा है
ब्रायन Postow

Vi की मूल बातें जानना sysadminning करने के लिए आवश्यक है। हालांकि, यह प्रोग्रामिंग नहीं है।
जिओनीग चियामोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.