Emacs จะทำให้ฉันเป็นโปรแกรมเมอร์ที่ดีขึ้นได้หรือไม่? [ปิด]


130

Steve Yegge เขียนความคิดเห็นในบล็อกของเขา :

วิศวกรที่ยิ่งใหญ่ที่สุดในโลกทั้งหมดใช้ Emacs ประเภทผู้เปลี่ยนแปลงโลก ไม่ใช่สาวที่ยอดเยี่ยมในลูกบาศก์ถัดจากคุณ ไม่ใช่เฟร็ดคนที่น่าทึ่งในห้องโถง ฉันกำลังพูดถึงนักพัฒนาซอฟต์แวร์ที่ยิ่งใหญ่ที่สุดในอาชีพของเราซึ่งเป็นผู้ที่เปลี่ยนโฉมหน้าของอุตสาหกรรม The James Goslings, Donald Knuths, the Paul Grahams, Jamie Zawinskis, Eric Bensons วิศวกรตัวจริงใช้ Emacs คุณต้องฉลาดในการใช้งานให้ดีและจะทำให้คุณมีพลังอย่างไม่น่าเชื่อหากคุณสามารถเชี่ยวชาญได้ ไปดูไหล่ของ Paul Nordstrom ในขณะที่เขาทำงานบ้างถ้าคุณไม่เชื่อฉัน เป็นโปรแกรมเปิดหูเปิดตาที่แท้จริงสำหรับผู้ที่ใช้ Visual Blub .NET เหมือน IDE ทั้งอาชีพของพวกเขา

Emacs เป็นบรรณาธิการ 100 ปี

ครั้งสุดท้ายที่ฉันใช้โปรแกรมแก้ไขข้อความในการเขียนโค้ดคือย้อนกลับไปเมื่อฉันยังเขียน HTML ใน Notepad เมื่อประมาณ 1,000 ปีก่อน ตั้งแต่นั้นมาฉันก็ขึ้นอยู่กับ IDE มากหรือน้อยโดยใช้ Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio และ Eclipse มาตลอดอาชีพของฉัน

สำหรับสิ่งที่คุ้มค่าฉันได้ลองใช้ Emacs แล้วและประสบการณ์ของฉันก็น่าผิดหวังเพราะไม่มีคุณสมบัติที่สามารถค้นพบได้โดยสิ้นเชิง (เห็นได้ชัดว่ามีคำสั่ง Emacs สำหรับค้นหาคำสั่ง Emacs อื่น ๆ ซึ่งฉันไม่สามารถหาได้ - มันเหมือนกับการใช้ชีวิตตลกแบบ Zen ที่โหดร้ายของคุณเอง) ฉันพยายามทำให้ตัวเองชอบโปรแกรมเป็นเวลาหนึ่งเดือน แต่ในที่สุด ตัดสินใจว่าฉันต้องการให้นักออกแบบ GUI แบบลากแล้วปล่อย IntelliSense และการดีบักแบบโต้ตอบแทน

มันยากที่จะแยกข้อเท็จจริงออกจากความคลั่งไคล้ดังนั้นฉันยังไม่เต็มใจที่จะรับความคิดเห็นของ Yegge ตามมูลค่าที่ตราไว้

มีความแตกต่างที่สามารถวัดได้ในทักษะการผลิตหรือความเพลิดเพลินในการเขียนโปรแกรมระหว่างคนที่พึ่งพา IDE และคนที่ไม่ทำหรือทั้งหมดเป็นเพียงความคลั่งไคล้?


22
นอกจากนี้ยังเป็นที่น่าสังเกตว่า Paul Graham ใช้ vi; Yegge เสนอการแก้ไขนี้ด้วยตัวเองในเชิงอรรถในบทความที่เชื่อมโยง
Eli Courtwright

16
ในบรรดาบรรณาธิการทั้งหมดที่ฉันเคยใช้ Emac เป็นคนเดียวที่บอกวิธีเรียกใช้บทช่วยสอนทุกครั้งที่เริ่มต้น (จนกว่าคุณจะเรียนรู้มากพอที่จะบอกให้หยุดบอกวิธีเรียกใช้บทช่วยสอน)
Michael Paulukonis

16
EMACS ย่อมาจากอะไร? หลบหนี Meta Alt Control Shift! ;-)
Peter K.

24
เลือกศัพท์เฉพาะ: Emacs เป็น "โปรแกรมแก้ไขโปรแกรมเมอร์" ไม่ใช่แค่ "โปรแกรมแก้ไขข้อความ" GUI IDE ยังมีความสามารถในการแก้ไขข้อความ แต่ก็ไม่ใช่แค่โปรแกรมแก้ไขข้อความ การเปรียบเทียบ Notepad กับ Emacs ก็เหมือนกับการเปรียบเทียบ ... การขว้างปาก้อนหินเพื่อตีอะไรบางอย่างด้วยปืนนั้นบน Death Star
Greg Mattes

8
เห็นได้ชัดว่าบางคนไม่เข้าใจความแตกต่างระหว่างสหสัมพันธ์และเวรกรรม
Chubas

คำตอบ:


119

ก่อนอื่นให้ฉันบอกว่าฉันยอมรับว่าตัวเองเป็นผู้ศรัทธาที่แท้จริงในลัทธิของ Emacs

ที่กล่าวว่าบล็อกเกอร์เป็นถั่ว คุณเขียนในสิ่งที่คุณคิดว่ามีประโยชน์ ฉันพบว่า Emacs ช่วยฉันได้ส่วนใหญ่เป็นเพราะฉันใช้เวลาหลายปีในวิทยาลัยจ่ายค่าเริ่มต้นล่วงหน้าเพื่อเรียนรู้วิธีปรับเปลี่ยนให้เหมาะกับความต้องการของฉันและปรับเปลี่ยนตัวเองตามความต้องการ

แต่คนอื่น ๆ ทำสิ่งที่แตกต่างออกไปและอย่างที่พวกเขาพูดว่า "ไม่เป็นไร"


73
ตกลง ฉันรัก Emacs แต่การคิดว่า Emacs จะทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้นก็เหมือนกับการคิดว่าการใช้ไม้กอล์ฟของ Tiger Woods จะทำให้คุณเป็นนักกอล์ฟที่ดีขึ้นหรือการใช้กีตาร์ของ Eddie Van Halen จะทำให้คุณเป็นนักดนตรีที่ดีขึ้น
Kristopher Johnson

31
ไม่เห็นด้วยอย่างยิ่งกับความคิดเห็นของ Kristopher ด้านบน การใช้เครื่องมือของนักกีฬา / ศิลปินที่ยอดเยี่ยมจะไม่ทำให้คุณยอดเยี่ยมเท่าพวกเขา แต่การใช้เครื่องมือการเขียนโปรแกรม RIGHT สำหรับงานที่ถูกต้องแน่นอน! คุณอาจได้รับการอภัยแม้ว่าจะเทียบเคียงการเขียนโปรแกรมกับกีฬาและศิลปะ :)
Susheel Javadi

6
@Bart: ประเด็นของเขาคือมี "เครื่องมือที่เหมาะสม" หลายอย่าง ไม้กอล์ฟของ Tiger Wood เป็นเครื่องมือที่ยอดเยี่ยมและเหมาะสำหรับงานนี้ แต่ยังมีไม้อื่น ๆ ที่สามารถให้ผลลัพธ์แบบเดียวกันได้ เครื่องมือที่โปรแกรมเมอร์เก่ง ๆ ใช้ไม่ได้กำหนดความคิดสร้างสรรค์และความสามารถของพวกเขา
Seth Moore

9
ฉันคิดว่าประเด็นทั้งหมดของคำสั่ง Steves คือโปรแกรมเมอร์ที่ยอดเยี่ยมใช้ emacs นักพัฒนาซอฟต์แวร์ที่ดีมีประสิทธิผลมากขึ้นโดยใช้ IDE โปรแกรมเมอร์ที่ยอดเยี่ยมมักจะเขียนโปรแกรมแม้ว่าจะผลิตโค้ดที่พวกเขาเขียนโปรแกรมพวกเขาทำงานโดยอัตโนมัติพวกเขาชอบทำมดทุบตีเพิร์ลและฮัดสัน พวกเขาทราบดีว่างานด้วยตนเองในส่วนใดส่วนหนึ่งของวงจรการพัฒนาซอฟต์แวร์มีแนวโน้มที่จะเกิดข้อผิดพลาด โปรแกรมเมอร์ที่ยอดเยี่ยมยังรู้ด้วยว่าหากมีคนอื่นสร้างรหัสของคุณ (เช่น IDE หรือใครก็ตาม) คุณจะต้องพึ่งพาทักษะของผู้อื่นเสมอในการรักษารหัส (เช่น IDE หรือใครก็ตาม)
Ernelli

4
Steve Yegge เป็นคนที่เขียนโปรแกรมแยกวิเคราะห์ JavaScript ที่สมบูรณ์ใน elisp ดังนั้นจึงไม่มีคำถามว่าเขาเป็นคนบ้าเท่า Emacs :)
Tikhon Jelvis

106

เขา (Steve Yegge) ได้อธิบายอย่างละเอียดเกี่ยวกับเรื่องนี้เป็นชิ้น ๆ ในโพสต์อื่น ๆ ของเขา http://steve-yegge.blogspot.com/2008_04_01_archive.htmlน่าจะเป็นข้อมูลที่ครอบคลุมที่สุด แต่ข้อมูลจะถูกฝังอยู่ในนั้นเนื่องจากมันอยู่บนเส้นสัมผัสกับหัวเรื่องหลัก

ฉันเดาว่าจะสรุป: โปรแกรมเมอร์ที่เก่งหรือมีความสามารถจะหยิบ IDE ขึ้นมาและทำความรู้จักกับมันเป็นอย่างดีและอาจจะทำได้ดีพอสมควร แต่พวกเขาจะ จำกัด ตัวเองไว้กับสิ่งที่ IDE ให้ไว้สำหรับพวกเขา กล่าวอีกนัยหนึ่งก็คือพวกเขาปรับตัวให้เข้ากับ IDE ดีโปรแกรมเมอร์บนมืออื่น ๆ ที่พวกเขาจะปรับสภาพแวดล้อมให้เหมาะสมกับตัวเองในรูปแบบต่าง ๆ เช่นการเขียนสคริปต์หรือเครื่องมือของตัวเองหรือการขยายเครื่องมือของพวกเขา และจนถึงจุดสุดท้ายนั้นไม่เพียง แต่ Emacs จะเป็นสภาพแวดล้อมที่สามารถขยายได้มากที่สุดเท่านั้น แต่ยังเป็นสภาพแวดล้อมที่ง่ายที่สุดในการขยายและยังเป็นสภาพแวดล้อมที่คุณได้รับประโยชน์สูงสุด จากการขยายส่วนขยาย - ส่วนขยายของคุณจะรวมเข้ากับ Emacs เหมือนเป็นฟีเจอร์สต็อกดังนั้นส่วนขยายในอนาคตของคุณอาจสร้างขึ้นจากส่วนขยายก่อนหน้าของคุณ


15
ความแตกต่างคือพลังงานที่ใช้ในการขยาย IDE ด้วย emacs ไฟล์คอนฟิกูเรชันทั้งหมดคือไฟล์โปรแกรม elisp โดยพื้นฐานแล้วอุปสรรคในการเข้านั้นต่ำมาก (เพียงแค่เปลี่ยนไฟล์.
macs

18
ตามแนวเดียวกันกับ Angus IDE ที่ดีไม่ควรถูกปรับแต่งอย่างไม่รู้จบเพื่อให้งานสำเร็จลุล่วง IDE ที่ดีควรมีคุณสมบัติครบถ้วนตามที่ต้องการ แน่นอนว่าคุณอาจต้องการกำหนดค่าทางลัดและเค้าโครง แต่คุณไม่จำเป็นต้องเขียนสคริปต์มากมายเพื่อจัดการทุกอย่าง
Kibbee

5
Angus: คุณพูดถูก หากคุณต้องยุ่งกับการเพิ่มสิ่งต่างๆแทนที่จะทำให้งานเสร็จแสดงว่าคุณพลาดจุดนั้น - Emacs หรือไม่ Sol: ยังมีอีกมากที่จะขยายแล้วส่งซอร์สผ่านโปรแกรมภายนอก ในความเป็นจริงนั่นไม่ใช่ทั้งหมดที่เป็นกลไกการขยายที่ทรงพลังเลย
Jonathan Arkell

15
ความแตกต่างระหว่างการขยาย emacs และการขยาย netbeans, visual studio หรือ eclipse คือความเร็ว การเพิ่มส่วนขยายให้กับ eclipse ก็เหมือนกับการเขียนแอปพลิเคชันทั้งหมด ในการเปรียบเทียบการเขียนส่วนขยายสำหรับ emac อาจเป็นโค้ดบรรทัดเดียว
Justin Tanner

4
@supercheetah - ดูดั้งเดิมมากเมื่อเทียบกับ Intellisense ที่พบใน Visual Studio เช่นไอคอนที่แสดงถัดจากสมาชิกที่มีอยู่นั้นมีประโยชน์! โดยส่วนตัวแล้วหากไม่มีการสนับสนุนการปรับโครงสร้างใหม่ฉันไม่ค่อยสนใจ Emacs
si618

57

โปรแกรมเมอร์ที่ดีที่สุดใช้ vi หรือ emacs เนื่องจากโปรแกรมเมอร์ที่มีประสบการณ์มากที่สุดนั้นดีที่สุดและเมื่อ 20 ปีที่แล้วไม่มีทางเลือกมากนักนอกจาก vi และ emacs

หลังจากเริ่มต้นด้วย vi (ca. 1987) บนเครื่องที่มีเทอร์มินัลข้อความที่ช้ามากฉันก็แปลงเป็น Emac (GNU) หลังจากนั้นไม่กี่ปี (บนเครื่องที่เร็วกว่า) และใช้มันเกือบ 10 ปีโดยเฉพาะ

Emacs เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการครั้งแรก - วงจรการแก้ไข / ลิงค์ / คอมไพล์ทั้งหมดสามารถควบคุมได้ใน emacs และคุณสามารถม้วนของคุณเองสำหรับคอมไพเลอร์ที่คุณใช้

ปัจจุบัน IDE เช่น eclipse ได้รับการผสานรวมที่ดียิ่งขึ้น (พูดตามตรง: emacs ดูดที่กราฟิก) แต่ Emac ยังคงเป็นหนึ่งในสภาพแวดล้อมที่ดีที่สุดสำหรับการแก้ไขข้อความแบบ "บริสุทธิ์"


10
+1 สำหรับคำทำนายที่ตอบสนองตนเองในย่อหน้าแรก
OregonGhost

12
"โปรแกรมเมอร์ที่มีประสบการณ์มากที่สุดนั้นดีที่สุด" - ยังห่างไกลจากความจริงอย่างน้อยก็โดยนัย ไม่ได้บอกว่าโปรแกรมเมอร์ที่ไม่มีประสบการณ์จะดีกว่า แต่เพียงเพราะเขาทำสิ่งเดียวกันมานานกว่า 20 ปี - ไม่ได้หมายความว่าเขาทำได้ดี
AviD

7
มีบรรณาธิการหลายคนเมื่อ 20 ปีก่อน พวกเขาส่วนใหญ่ไม่รอดชีวิตโดยทั่วไปมีเหตุผลที่ดี ทำไมผู้ชายที่ใช้ vi หรือ emac ในปี 1989 จึงดีกว่าผู้ชายที่ใช้โปรแกรมแก้ไข MS-DOS ในปี 1989 หรืออะไรก็ตามที่ฉันใช้บนเมนเฟรม Control Data
David Thornley

Heck 10 ปีที่แล้วไม่มีJava IDE ที่ดี !
Susheel Javadi

จากสิ่งที่ฉันจำได้เมื่อ 20 ปีที่แล้ว vi และ emacs เป็นบรรณาธิการที่โดดเด่นอย่างท่วมท้นเพียงเพราะมีบรรณาธิการจำนวนมาก (ณ ตอนนี้) ไม่ได้หมายความว่าพวกเขาทั้งหมดใช้กันอย่างแพร่หลาย
FinnNk

34

การปรับปรุงความคิดที่ชัดเจนและการแก้ปัญหาของคุณจะทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น ไม่มีโปรแกรมใดสามารถทำได้

การใช้ค้อนที่ดีกว่าจะไม่ช่วยให้ฉันสร้างบ้านที่ดีกว่าเว้นแต่ฉันจะรู้วิธีและเหตุผล ;)


การเปรียบเทียบที่ดีสำหรับสิ่งที่ฉันต้องการจะพูดเช่นกัน
Rob

21
แต่ค้อนที่ไม่ดีจะทำลายผลผลิตของคุณในขณะที่พยายามสร้างบ้านหลังเดียวกันและคุณอาจจะได้บ้านหลังอื่น
user51568

มันยุติธรรม! โปรแกรมเมอร์ทั่วไปจะไม่ได้รับค่าตอบแทนที่ดีกว่ากับค้อนราคาแพง
Jas Panesar

5
โปรแกรมเมอร์ที่เก่งสามารถสร้างบ้านหลังใหญ่โดยใช้หินสำหรับค้อน (เขาช้า - แต่ก็ยังทำได้: D)
Egon

ใช่ แต่การมีตัวแก้ไขที่ช่วยให้โค้ดไหลออกจากตัวคุณแบบออร์แกนิก (ซึ่งฉันคิดว่า Emacs ดีกว่าบรรณาธิการส่วนใหญ่) สามารถปรับปรุงความคิดที่ชัดเจนของคุณและดังนั้นการแก้ปัญหา
Skilldrick

21

Yegge ต้องพบกับ Bill Joy ไม่เพียง แต่เขาเป็นหนึ่งในโปรแกรมเมอร์ที่เก่งกาจในโลก แต่เขายังเขียน vi จำนวนมาก ใน vi.

คำสารภาพสั้น ๆ ที่น่าอับอาย: หลังจาก 20 ปีของการใช้ vi (และ vim / gvim ในช่วงไม่กี่ปีที่ผ่านมา) สำหรับทุกสิ่งในปีที่แล้วฉันเริ่มใช้ Eclipse สำหรับการแก้ไข java (และ Thunderbird สำหรับอีเมล) แม้ว่าในงานปัจจุบันของฉัน เครื่องมีหน่วยความจำน้อยมากจนฉันมักจะใช้ vi ยกเว้นเมื่อฉันต้องการดีบักเกอร์


7
+1 สำหรับ vi (ที่จริงใช้เป็นกลุ่ม แต่มีความแตกต่างกัน) 98% ของสิ่งที่ emac สามารถทำได้โดยใช้ความพยายามน้อยกว่าครึ่งหนึ่ง
rmeador

25
ฉันใช้เป็นกลุ่มมา 5 ปี หลังจาก 20 นาทีใน Emacs ฉันสาบานว่าจะไม่กลับไปอีก Vim รู้สึกถอยหลัง
MattBelanger

5
Yegge เองกล่าวถึงสิ่งนี้: [ข้อยกเว้นที่น่าสังเกตอย่างหนึ่งคือ VIM ซึ่งมีประสิทธิภาพมากสำหรับทุกบัญชีแม้ว่าฉันจะไม่มีประสบการณ์กับมันก็ตาม หากคุณได้พัฒนาความชอบสำหรับ vi มากกว่า emac แล้วคุณอาจมีความสุขมากขึ้นในการแสวงหาความเชี่ยวชาญกับ VIM Psh] แหล่งที่มา: steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062

1
เอ่อ .. บิลจอยไม่ใช้ vi อีกแล้ว
Plumenator

13

มีความแตกต่างที่สามารถวัดได้ในทักษะการผลิตหรือความเพลิดเพลินในการเขียนโปรแกรมระหว่างคนที่พึ่งพา IDE และคนที่ไม่ทำหรือทั้งหมดเป็นเพียงความคลั่งไคล้?

ลอง จำกัด สิ่งนี้ให้แคบลงเป็น Visual Studio กับ Emacs - คำถามนั้นกว้างเกินไปและฉันสงสัยว่าคนส่วนใหญ่ (อย่างน้อยก็ที่ StackOverflow) คุ้นเคยกับสองคนนี้ [ฉันและฉันใช้และชอบ emacs]

ต่อไปเราจะแบ่งองค์ประกอบสามส่วนของคำถามออก

ความเพลิดเพลินในการเขียนโปรแกรมจะขึ้นอยู่กับความชอบในการเขียนโปรแกรมเป็นหลักและประการที่สองคือไม่มีปัจจัยที่น่ารำคาญปรากฏขึ้นเมื่อคุณทำ การใช้เครื่องมือที่คุณต่อสู้ด้วยกำลังจะลบออกจากความเพลิดเพลิน ดังนั้นฉันจะเดาว่าความเพลิดเพลินน่าจะขยายใหญ่สุดโดยใช้เครื่องมือที่คุณชอบและคุ้นเคย

แน่นอนว่าเมื่อคุณคุ้นเคยกับเครื่องมือใหม่แล้วคุณอาจพบว่าคุณชอบเครื่องมือนั้นมากกว่าและจะชอบการเขียนโปรแกรมมากขึ้นหากคุณใช้เครื่องมือใหม่ที่คุณชื่นชอบ ไม่ชัดเจนสำหรับฉันว่าคนทั่วไปจะชอบ VS มากกว่า emacs (หรือในทางกลับกัน) เมื่อพวกเขารู้จักทั้งคู่ดี

ถัดไปทักษะการเขียนโปรแกรม หากมีการเชื่อมต่อระหว่างทักษะและตัวเลือกของ VS / emacs ฉันคิดว่าทักษะนี้ก่อให้เกิดการเลือกไม่ใช่ตัวเลือกที่ก่อให้เกิดทักษะ จากประสบการณ์ของฉันดูเหมือนจะไม่มี {VS, emacs} เลยที่ทำให้ฉันได้เรียนรู้อะไรเกี่ยวกับการเขียนโค้ดที่ดีขึ้น

เครื่องมือที่ดีอาจทำให้ฉันสามารถเขียนโค้ดเดียวกัน (และคุณภาพของโค้ดเท่ากัน) ในเวลาที่น้อยลง ถ้าเราคิดproductivity = quality of code `times` code per timeอย่างนั้นก็เป็นเหตุผลว่าตัวแก้ไขใด ๆ ที่จะช่วยให้คุณเขียนโค้ดได้ดีโดยใช้เวลาน้อยลงเป็นการเพิ่มประสิทธิภาพการทำงาน

ฉันอาจจะไม่คุ้นเคยกับ VS มากเกินไป แต่ที่นี่ฉันคิดว่า emacs มีจุดแข็งบางอย่างที่ฉันไม่พบใน VS มันอาจฟังดูไร้สาระ แต่สิ่งที่เรียบง่ายอย่างการเคลื่อนไหวของเคอร์เซอร์Ctrl-[fbnp]นั้นเป็นประโยชน์อย่างแท้จริงนั่นหมายความว่าคุณไม่จำเป็นต้องเลื่อนมือไปที่ปุ่มลูกศร อีกอย่าง: คุณสามารถค้นหาหรือแทนที่ซึ่งรวมถึงการขึ้นบรรทัดใหม่ซึ่งฉันใช้บ่อยมากพอที่ฉันจะไม่พลาด

สิ่งที่ฉันชอบอีกอย่างคือความสามารถในการฝังเชลล์ในโปรแกรมแก้ไขของฉัน จากประสบการณ์ของฉันมันมีค่ามากกว่าบนแพลตฟอร์มที่ไม่ใช่ windows (และประสบการณ์ "การเขียนโปรแกรม" ครั้งแรกของฉัน IIRC คือการเขียนไฟล์ DOS .bat ดังนั้นฉันจึงไม่ใช่แค่แฟนบอยที่ลุกเป็นไฟ) แต่บนแพลตฟอร์มเหล่านั้นมันเป็นชัยชนะที่ยิ่งใหญ่ . มันทำให้ emac "รวม" กับ "ทุกอย่าง" (การค้นหาไฟล์ด้วย find / locate, การค้นหาข้อความด้วย grep, การควบคุมเวอร์ชันด้วย svn / git / hg / ... คุณตั้งชื่อ)

คำตัดสินขั้นสุดท้าย - คุณควรเรียนรู้ emacs หรือไม่? และมันเป็นแฟนบอยทั้งหมดหรือไม่? หากคุณมีเวลาฉันจะบอกว่ามันคุ้มค่าเสมอที่จะเรียนรู้วิธีการใหม่ ๆ ในการทำสิ่งเดียวกันเพราะวิธีใหม่อาจช่วยให้คุณได้ผลดีขึ้น และฉันขอแนะนำให้คุณอย่าปฏิเสธสิ่งที่ดูเหมือนจะเป็นเมื่อคุณเป็นคนใหม่ ในแง่นั้นก็เหมือนกับการเปลี่ยนไปใช้รูปแบบแป้นพิมพ์ Dvorak: คุณจะช้าลงในตอนแรก แต่เมื่อคุณเร่งความเร็วคุณก็น่าจะเร็วพอ ๆ กับ qwerty และสะดวกสบายมากขึ้น ฉันขอแนะนำวิธีการเดียวกันในการเรียนรู้ภาษา (การเขียนโปรแกรม) ใหม่ ๆ เช่นกันเพราะคุณไม่รู้คำศัพท์ (ไลบรารีมาตรฐาน) พูดว่าสิ่งต่างๆยาก แต่รางวัลยังคงรอคุณอยู่


1
"ลอง จำกัด สิ่งนี้ให้แคบลงเป็น Visual Studio กับ Emacs กันเถอะคำถามนี้กว้างเกินไปและฉันสงสัยว่าคนส่วนใหญ่ (อย่างน้อยก็ที่ StackOverflow) คุ้นเคยกับสองคนนี้" - จริงเหรอ? ฉันคิดว่ามีแฟนบอยที่คลั่งไคล้ * nix อีกมากมายเช่นฉันที่ไม่ถูกบังคับให้ใช้ VisualStudio ใช้งานน้อยกว่ามากโดยสมัครใจ การบริหารทรัพยากรมนุษย์
Xiong Chiamiov

"การเคลื่อนไหวของเคอร์เซอร์ด้วย Ctrl- [fbnp] เป็นประโยชน์อย่างแท้จริง" แม้ว่าฉันจะรัก Emacs แต่หลังจากที่ได้กลับมาเป็นเวลานานฉันพบว่าการเคลื่อนไหวของเคอร์เซอร์เป็นวิธีที่มีประโยชน์น้อยที่สุดและสะดวกสบายในการใช้ Emacs อีกครั้ง ในทางตรงกันข้ามฉันสามารถเข้าถึงและค้นหาปุ่มเคอร์เซอร์เฉพาะโดยไม่ต้องมองหรือแม้แต่คิด บางทีมันอาจจะช่วยในการเป็นผู้เล่นเปียโน? :) แต่ใครจะรู้ว่าเมื่อเวลาผ่านไปบางที C-scrunch-letter จะรู้สึกเป็นธรรมชาติมากขึ้น
Greg Hendershott

2
ps ฉันเห็นด้วยอย่างยิ่งเกี่ยวกับเชลล์และแพลตฟอร์ม หากคุณต้องการย้ายไปมาระหว่าง Windows, OS X และ Linux คุณต้องการให้ Cygwin เป็นตัวแรกและ Emac ในทั้งสาม โยน. emacs.d ของคุณบน GitHub และคุณก็เป็นสีทอง
Greg Hendershott

นอกจากนี้คุณสามารถค้นหาที่มีการขึ้นบรรทัดใหม่ใน Visual Studio โดยใช้ regexes
Axarydax

10

ด้วยข้อความที่ยกมาขึ้นต้นว่า "วิศวกรที่ยิ่งใหญ่ที่สุดในโลกทุกคนใช้ Emacs" ฉันจะไม่คิดมูลค่าเท่าไหร่ เขารู้จักวิศวกรที่ยิ่งใหญ่ที่สุดในโลกหรือไม่? นี่คือรายชื่อวิศวกรที่ยิ่งใหญ่ที่สุดในโลกที่คุณหรือฉันมีหรือไม่?

เมื่อเรียนรู้แล้วเครื่องมือแก้ไขที่มีประสิทธิภาพเช่น EMACS หรือ vi จะทำให้คุณมีประสิทธิภาพมากขึ้นหรืออย่างน้อยก็มีประสิทธิภาพมากขึ้นหากคุณถูกจับได้โดยไม่มี IDE ที่คุณชื่นชอบ

มันคือส่วนที่ "เรียนรู้ครั้งเดียว" ต่างหากที่เป็นฆาตกร เป็นงานและฝึกฝนมากมายในการใช้เครื่องมือเหล่านี้อย่างมีประสิทธิผลและในช่วงเริ่มต้นก็ยากมาก


1
ฉันคิดว่าคุณสมบัติอย่างหนึ่งที่ช่วยให้ใครบางคนเป็นวิศวกรที่ "ยอดเยี่ยม" ได้คือความสามารถในการชะลอความพึงพอใจและรองรับต้นทุนการเริ่มต้นคงที่ที่มากขึ้นเพื่อปรับปรุงประสิทธิภาพ
Tikhon Jelvis

9

ฉันเป็นแฟนบอยของ Emacs เป็นการส่วนตัว แต่ Emacs เป็นเพียงเครื่องมือ มันจะไม่ทำให้คุณเป็นโปรแกรมเมอร์ที่เก่งขึ้นได้มากไปกว่าปากกาสุดแฟนซีที่จะทำให้คุณเป็นนักเขียนที่ดีขึ้น

การชี้แจงว่า "โปรแกรมเมอร์ที่ยอดเยี่ยม" ปรับสภาพแวดล้อมให้เข้ากับตัวเองอาจมีข้อดี แต่มีเครื่องมือมากมายที่สามารถทำเช่นนั้นได้ (เช่น vim และ SlickEdit) ดังนั้นจึงไม่มีอะไรเป็นพิเศษเกี่ยวกับ Emacs ในเรื่องนั้น

ฉันคิดว่าสิ่งที่เป็นไปได้มากที่สุดก็คือ "โปรแกรมเมอร์ชั้นยอด" หลงใหลในการเขียนโปรแกรมและผู้คนที่หลงใหลในเรื่องนี้มักจะค้นหาเครื่องมือที่ช่วยขับเคลื่อนความหลงใหลนั้น Emacs (และ vim และ SlickEdit และอื่น ๆ ) เป็นเครื่องมือดังกล่าว


ปากกาสุดแฟนซีทำให้ฉันรู้สึกถึงเฮมิงเวย์ทั้งหมด
Cheeso

2
สิ่งที่เป็นพิเศษเกี่ยวกับ Emacs เกี่ยวกับ "การปรับสภาพแวดล้อม" คือการทำใน Emacs นั้นง่ายกว่าใน Vim หรือ SlickEdit (หรือบรรณาธิการอื่น ๆ ที่ฉันรู้จัก)
vedang

8

ฉันไม่เชื่อว่ามีความแตกต่าง แต่เป็นเรื่องของความชอบมากกว่า

อย่างไรก็ตามสิ่งที่ฉันสังเกตเห็นก็คือยิ่งคุณเขียนโค้ดนานขึ้นหรือคุณเขียนโค้ดระดับล่างมากเท่าไหร่โอกาสที่คุณจะใช้ emac หรือ vi ก็ยิ่งสูงขึ้นเท่านั้น


ดูเหมือนว่า "คุณได้เขียนโค้ดนานขึ้น" ดูเหมือนจะโต้แย้งว่าได้เริ่มเขียนโค้ดก่อนที่จะมี IDE ที่ดี
Paul Tomblin

3
มีไอดีที่ดีเหรอ sonny?
David Thornley

8

แม้ว่า IDE จะดีขึ้นมากในทศวรรษที่ผ่านมา แต่ก็ยังมีการเขียนโปรแกรมใน "ฟองสบู่" ที่ปลอดภัยเล็กน้อยห่างไกลจากรายละเอียดที่น่าเกลียด สิ่งที่มีแนวโน้มที่จะเกิดขึ้นคือการเพิ่มขึ้นของสิ่งที่เป็นนามธรรมนี้ทำให้โปรแกรมเมอร์ทำงานได้มากขึ้นโดยมีความรู้น้อยลง แน่นอนว่าไม่ได้ใช้กับโปรแกรมเมอร์ทุกคน แต่เครื่องมือที่ง่ายกว่าจะนำการเขียนโปรแกรมไปสู่ผู้ชมในวงกว้าง

ความรู้เพิ่มเติมเกี่ยวกับเครื่องมือระดับล่างมักจะแปลว่ามีความเสถียรมากขึ้นในโค้ดเนื่องจากมีโอกาสน้อยที่จะ "สู้กับเกรน" โดยไม่ได้ตั้งใจ ไม่ยุติธรรมที่จะระบุ EMACS ว่าเป็นตัวบ่งชี้ชั้นนำเพียงตัวเดียวเนื่องจากมันมาจากภาษาและเครื่องมือที่หลากหลายและจริงๆแล้วเกี่ยวกับความเข้าใจเชิงลึกมากกว่าไม่ใช่เทคโนโลยีเฉพาะ

ในทางกลับกันคุณได้เรียนรู้ VI หรือ EMACS ในกล่อง UNIX หรือคุณเชี่ยวชาญในพีซี (ตกลงมี VMS, CMS, AS400 และอื่น ๆ ด้วย แต่เป็นเทคโนโลยีที่เก่ากว่า) กระแสทั้งสองดึงดูดผู้คนที่กระตือรือร้นมาก แต่พวก UNIX มักต้องการโซลูชันที่ซับซ้อนในขณะที่พวกพีซีต้องการให้มันเสร็จเร็ว ๆ วัฒนธรรมแตกต่างกันมาก


7

IMHO IDE มีแนวโน้มที่จะได้รับการปรับให้เหมาะสมกับแพลตฟอร์มหรือภาษาหรือระบบปฏิบัติการที่เฉพาะเจาะจง: Eclipse JDT นั้นยอดเยี่ยมสำหรับ Java, Visual Studio คือ C ++ / NET-centric เป็นต้นซึ่งช่วยเพิ่มประสิทธิภาพการทำงานได้มาก (อีกครั้ง IMHO) หากคุณทำงานเพียงอย่างเดียว แพลตฟอร์มนั้น แต่ถ้าคุณเปลี่ยนแพลตฟอร์มคุณต้องเรียนรู้ IDE ใหม่โดยพื้นฐาน (หรืออย่างน้อยก็ชุดปลั๊กอินมุมมองมุมมองใหม่และฉันไม่รู้ว่ามีอะไรอีกสำหรับ Eclipse)

ข้อดีของการรู้จัก emacs หรือ Textmate หรือ vim (ความชอบส่วนตัวของฉัน) หรือโปรแกรมแก้ไขทั่วไปใด ๆก็คือทักษะที่คุณได้รับจากเครื่องมือแก้ไขนั้นจะนำไปใช้ไม่ว่าคุณจะเขียนด้วยแพลตฟอร์มใดก็ตาม เหมาะสำหรับการแก้ไขข้อความและเมื่อคุณเชี่ยวชาญแล้วคุณจะสามารถแก้ไขข้อความได้อย่างมีประสิทธิภาพในทุกภาษา

นอกจากนี้ยังมีการยืนยันของ Yegge ว่าโปรแกรมเมอร์ที่ยอดเยี่ยมจะปรับเครื่องมือให้เข้ากับรูปแบบการทำงานมากกว่าในทางกลับกัน ฉันคิดว่านี่เป็นประโยชน์สำหรับบรรณาธิการทั่วไปเนื่องจากคุณปรับแต่งตัวแก้ไขหนึ่งตัวแทนที่จะต้องคิดหาวิธีปรับ IDE สี่แบบที่แตกต่างกันเพื่อให้ทำงานได้ตามที่คุณต้องการ


ปัญหาเกิดขึ้นเมื่อคุณต้องเขียนบนแพลตฟอร์มที่แตกต่างจากที่คุณเคยใช้: เช่นคุณย้ายจาก * nix ไปที่ Windows และสคริปต์ของคุณพังเพราะสมมติว่า bourne shell มีพา ธ ตาม '/' ใน a โครงสร้างคล้าย FHS พร้อมการพิมพ์ตาม PostScript ...
SamB

ฉันทำงานกับ emac มาระยะหนึ่งแล้วและแค่การเลื่อนเคอร์เซอร์ก็เพียงพอแล้วสำหรับฉันที่จะไม่พอใจที่จะเขียนอะไรอีกแม้ว่าจะเป็นอีเมลใน KMail ก็ตาม
Arne Babenhauserheide

@ArneBabenhauserheide นี่คือเหตุผลหนึ่งที่ผมรัก Mac OS X C-[npfbaed]เกือบกรอบข้อความสนับสนุน (แต่ไม่น่าเศร้าM-)
porglezomp

6

ฉันขอยืนยันว่าโปรแกรมเมอร์ที่ดีที่สุดมักจะเป็นคนที่ใช้เวลาในการปรับแต่งสภาพแวดล้อมทำให้ทำงานที่พวกเขาน่าจะทำได้เร็วขึ้น / ง่ายขึ้น Emacs เป็นหนึ่งในเครื่องมือแก้ไขที่ทรงพลังที่สุดในการปรับแต่งสภาพแวดล้อมของคุณ มีเส้นโค้งการเรียนรู้ที่สูงชัน แต่เมื่อคุณผ่านพ้นจุดนั้นมาแล้วแทบไม่มีข้อ จำกัด ว่าคุณจะทำอะไรให้คุณได้บ้าง

มีคนเคยบอกว่าโปรแกรมเมอร์ที่ดีที่สุดคือคนขี้เกียจ คนที่เมื่อต้องทำอะไรมากกว่าหนึ่งครั้งให้หาวิธีทำให้เป็นอัตโนมัติเพื่อที่จะได้ใช้ความพยายามน้อยลง Emacs ช่วยให้คุณขี้เกียจมาก)


4

ฉันใช้ IDE มาตั้งแต่แรก (เนื้อหาเริ่มต้นด้วย QBASIC) และหลายปีมาแล้ว ตอนนี้ฉันเปลี่ยนไปใช้ VIM (ในรสชาติที่หลากหลาย) เกือบทั้งหมดสำหรับงานพัฒนาทั้งหมดของฉันและฉันก็ไม่เสียใจเลย ประสิทธิภาพการผลิตของฉันเพิ่มขึ้นอย่างแน่นอน

แน่นอนว่าจะไม่มีอะไรมาแทนที่ตัวออกแบบ Windows Forms จาก Visual Studio ได้ แต่เมื่อเทียบกับ VIM (และ Emacs ฉันแน่ใจว่า) โปรแกรมแก้ไขข้อความใน Visual Studio นั้นมีหมัดมาก เมื่อคุณใช้ประโยชน์จากพลังดิบของคอนโซลและเครื่องมือสำหรับนักพัฒนา GNU (ซึ่งฉันหมายถึงmakeGCC binutilsและgdbอื่น ๆ ) คุณจะสังเกตเห็นว่าเครื่องมือเหล่านี้อาจดูดั้งเดิม แต่มันตรงกันข้ามและนำเสนอทั้งหมด เครื่องมือที่ IDE มีให้ (ยกเว้นตัวออกแบบฟอร์ม)

เพียงแค่คุณมีทางปีนที่สูงชันอยู่ข้างหน้าเมื่อคุณเริ่มใช้เครื่องมือเหล่านี้เป็นครั้งแรกและแรงจูงใจอาจน้อย ฉันโชคดีพอ (?) ที่ถูกบังคับให้ใช้เครื่องมือเหล่านี้ดังนั้นฉันจึงไม่มีทางเลือกที่จะทำให้พังพอนได้


3

โดยส่วนตัวแล้วฉันรู้สึกว่าคุณควรใช้อะไรก็ได้ที่ทำให้คุณมีประสิทธิผลมากขึ้น หากคุณไม่มีเวลาลงทุนในโครงการเพื่อนั่งและเรียนรู้ Emacs นั่นอาจไม่ใช่การใช้เวลาให้ดีที่สุดในตอนนั้น

อย่างไรก็ตามฉันรู้สึกว่าเป็นความคิดที่ดีที่จะทำความรู้จัก IDE อื่น ๆ เมื่อคุณมีเวลาเหลือเฟือฉันใช้ Visual Studio ในการทำงานประจำวัน แต่ที่บ้านฉันใช้ Eclipse สำหรับโครงการขนาดเล็กและใช้ Emacs เช่นกัน เมื่อถึงจุดหนึ่งที่ฉันคิดว่าจะใช้ Emacs ความพยายามของฉันได้รับการตอบสนองที่ดีกว่าในการทำงานจริงให้เสร็จมากกว่าการทำให้ตัวเองช้าลงในการต่อสู้กับ Emacs

ฉันคิดว่าในระดับหนึ่งมันเป็นเรื่องไร้สาระที่จะคิดว่าโปรแกรมเมอร์ที่ดีที่สุดทุกคนใช้ Emacs มีโปรแกรมเมอร์ที่น่าทึ่งหลายคนที่ไม่ได้รับความนิยม (หรืออาจเป็นแกนนำ) ที่ไม่ใช้ Emacs


3

ฉันเริ่มใช้ Emac เมื่อประมาณหนึ่งปีครึ่งที่ผ่านมาเพราะมันเป็นจุดบรรจบของความต้องการหลายอย่าง - ต้องการทำงานกับนิพจน์ทั่วไป (ในตัวแก้ไขที่รองรับ) ต้องการเรียนรู้เสียงกระเพื่อมต้องการตัวแก้ไขที่ดีกว่า

การแก้ไขโค้ดของฉันด้วย regexes สอนฉันมากมายเกี่ยวกับการค้นหารูปแบบในโค้ด การกดแป้นพิมพ์ใช้เวลาสักครู่เพื่อให้คุ้นเคย แต่ฉันบินได้เร็วขึ้นมากโดยไม่ต้องใช้เมาส์

Emacs ช่วยให้ฉันสามารถทำงานกับโน้ตและการเขียนโค้ดในแอปพลิเคชันเดียวกันได้ - การสลับบริบทที่น้อยที่สุดหมายถึงการสลับสมองน้อยที่สุดและฉันสามารถจดจ่อกับงานที่ทำอยู่ได้


3

ไม่ใช่รหัสที่ดีทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น

กล่าวได้ว่าการจัดการข้อความที่ดีเป็นกุญแจสำคัญในการเพิ่มประสิทธิภาพ ไม่ว่าจะเป็นกลุ่มหรือ emac จะเปลี่ยนวิธีการทำงานของคุณกับข้อความ - ทั้งสองได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพ แต่เกือบจะขัดแย้งกันในแง่ของสไตล์ นอกจากนี้การถกเถียงนี้ค่อนข้างเก่า (ย้อนกลับไปในยุค 80 และ 90 ที่ text -> compiler เป็นกุญแจสำคัญ) ดังนั้นจึงมีโปรแกรมแก้ไขข้อความและ / หรือ IDE อื่น ๆ อีกมากมายที่สามารถช่วยให้คุณเป็นโปรแกรมเมอร์ที่ดีที่สุดได้


3

ไม่หากคุณเชื่อว่าการใช้ emac ทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้นคุณจะสับสนในเหตุและผล

ฉันใช้มันทุกวันแม้ว่า ฉันพบว่าฉันทำงานกับ emacs + maven ได้ดีกว่า Eclipse สำหรับการพัฒนา java (แม้ว่าฉันจะยังคงยิง Eclipse ทุก ๆ ครั้งเพื่อทำการ refactoring หรือ debug เป็นครั้งคราว)

นี่คือเหตุผลของฉัน:

  • ประสบการณ์การแก้ไขข้อความจริงใน emacs เหนือกว่าอย่างอื่น มันน่าทึ่งมากที่คุณสามารถทำสำเร็จได้อย่างรวดเร็วโดยใช้เพียงแป้นพิมพ์ของคุณ Eclipse เน้นเมาส์มากกว่าและเมื่อคุณพิมพ์คุณจะพบกับอุปสรรค์ที่น่ารำคาญมากมาย
  • ความสามารถในการปรับแต่ง emac โดยใช้ elisp นั้นทรงพลังอย่างไม่น่าเชื่อ ฉันจะพูดไปให้ไกลว่าถ้าคุณไม่สละเวลาเรียนรู้พื้นฐานและปรับแต่งสภาพแวดล้อมคุณก็เสียเวลาไปเปล่า ๆ
  • มีส่วนขยายสำหรับทุกสิ่งที่คุณอยากทำในโปรแกรมแก้ไขข้อความ

1
+1 สำหรับความสัมพันธ์! = สาเหตุ
Xiong Chiamiov

คุณใช้โหมดจาวาอะไร
avendael

1
ฉันใช้โหมดสต็อกจาวาที่มาพร้อมกับ Emacs23 พร้อมการปรับแต่งและแฮ็กบางอย่างเพื่อเรียกใช้งานสร้าง maven ฉันยังเริ่มใช้ emacs-eclim ซึ่งทำหน้าที่เป็นสะพานเชื่อมระหว่าง emacs และ eclipse เป็นสิ่งที่ดีและใช้งานได้ แต่ค่อนข้างหยาบในขณะนี้
fred-o

3

สำหรับฉันเหตุผลหลักที่ฉันเลือก Emacs มากกว่า IDE ก็เพราะว่ามันทำให้ฉันทำทุกอย่างได้จากแค่คีย์บอร์ด นี่เป็นเรื่องดีที่ช่วยประหยัดเวลาในการใช้เมาส์ตามปกติ นอกจากนี้เนื่องจากฉันพบว่าตัวเองเคลื่อนที่ได้บ่อยฉันจึงมีแนวโน้มที่จะมีการขัดจังหวะการเขียนโปรแกรม "ร่อง" เนื่องจากการใช้ทัชแพดช้า นอกจากนี้การปรับแต่งยังทำให้มันเปล่งประกายเหนือ IDE สำหรับฉัน อย่างไรก็ตามหากคุณพบว่าตัวเองเขียนโปรแกรมได้เร็วพอกับ IDE ฉันจะบอกว่าเส้นโค้งการเรียนรู้ของ Emacs ไม่คุ้มกับปัญหา


2

มีความแตกต่างที่สามารถวัดได้ในทักษะการผลิตหรือความเพลิดเพลินในการเขียนโปรแกรมระหว่างคนที่พึ่งพา IDE และคนที่ไม่ทำหรือทั้งหมดเป็นเพียงความคลั่งไคล้?

ฉันไม่คิดว่าคุณจะได้รับคำตอบจริงๆ มีหลายวิธีในการวัดทักษะการผลิตและความเพลิดเพลินในการเขียนโปรแกรมและทั้งหมดนี้อาจเป็นเรื่องส่วนตัวมากและ / หรือไม่สามารถแยกย่อยออกเป็นสิ่งเดียวที่ทำให้เกิดหรือไม่

ยังคงเป็นคำถามที่น่าสนใจ

ความเชื่อส่วนตัวของฉันคือ - มันขึ้นอยู่กับโปรแกรมเมอร์ :)

G-Man


แฟนบอยเพื่อน IDE ไม่ใช่บรรณาธิการ IDE ไม่จำเป็นต้องเป็นบรรณาธิการที่ดีที่สุด
Perpetualcoder

2

ฉันไม่คิดว่ามันจะทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น แต่เมื่อคุณมีระดับนั้นคุณมักจะใช้ emac (หรือ vi)

: - /

สิ่งที่ดีเกี่ยวกับสองคนนี้ (ฉันไม่เคยใช้ emac มาก่อน แต่ฉันยังคงใช้ vi สำหรับงานทางโลกที่สุด) คือความจริงพวกเขาไม่ขัดขวางความคิดของคุณคุณไม่จำเป็นต้องละมือออกจาก แป้นพิมพ์เพื่อจับเมาส์และค้นหาในเมนูไฟล์สำหรับตัวเลือกที่ถูกต้อง คุณเพียงแค่เขียนต่อไป ในใจของคุณคุณพูดว่า: "แทนที่คำที่เกิดขึ้นทั้งหมดของคำนี้สำหรับคำนั้น" กด Enter และดำเนินการต่อกับงานของคุณ

นอกจากนี้ฉันไม่คิดว่าพวกเขาใช้อีแมคเป็นเครื่องมือเดียวของพวกเขา

จะทำให้คุณเป็นโปรแกรมเมอร์ได้ดีขึ้นหรือไม่? อาจจะไม่. แต่เมื่อคุณมีความเชี่ยวชาญระดับนั้นคุณอาจจะชอบว่าคุณเขียนโค้ดได้เร็วแค่ไหนโดยใช้เครื่องมือเหล่านั้น


การล่าสัตว์ในเมนูมีไว้สำหรับผู้ที่ไม่รู้จัก IDE ฉันไม่รู้ว่าครั้งสุดท้ายที่ฉันต้อง "ตามล่า" เพื่อหาตัวเลือกเมนู
tster

คุณคิดว่าการใช้ "File-> Save" ดีกว่า Ctrl-S หรือไม่? ฉันไม่คิดอย่างนั้น ต้องจับเมาส์คลิกที่ไฟล์เมนูจากนั้นเลื่อนเมาส์ลงไปที่บันทึกรายการดูเหมือนจะมากสำหรับฉันเมื่อคุณสามารถทำได้โดยไม่ต้องใช้มือคีย์บอร์ด
OscarRyz

เห็นได้ชัดว่าฉันเห็นด้วย IDE ทั้งหมดที่ฉันเคยใช้มีปุ่มลัดและชุดค่าผสมที่หลากหลายและปรับแต่งได้เช่นเดียวกับ emacs
tster

2

เลขที่

ความมีระเบียบวินัยการคิดเชิงวิเคราะห์และความปรารถนาที่จะพัฒนาตนเองจะทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น ชุดเครื่องมือของคุณในขณะที่ปัจจัยหลักในการผลิตของคุณจะไม่สร้างอัจฉริยะ

หากคุณไม่ชอบ emac หรือ vi อย่าใช้มัน การตัดสินใจที่จะไม่เลือกแสดงว่าคุณกำลังกำหนดสภาพแวดล้อมการพัฒนาของคุณให้เหมาะสมกับความต้องการและแนวทางปฏิบัติงานของคุณเอง ไม่ว่าในกรณีใดคุณมีสิทธิ์ใช้สิ่งที่คุณชอบและไม่สนใจใครก็ตามที่โง่เขลาพอที่จะดูถูกคุณสำหรับเครื่องมือที่คุณใช้เขียนบิตลงดิสก์นั่นคือบิตที่มีความสำคัญ

หมายเหตุ: "ชุดเครื่องมือ" ในที่นี้หมายถึง "ยี่ห้อ" ของเครื่องมือ - ตัวแก้ไขเฉพาะคอมไพเลอร์ ฯลฯ ชุดเครื่องมือตามแนวคิดเช่นการใช้การควบคุมเวอร์ชันการทดสอบหน่วยโดยทั่วไปทั้งหมดเป็นส่วนหนึ่งของตัวเอง กระบวนการปรับปรุง


2

คุณสมบัติที่ยอดเยี่ยมอย่างหนึ่งของ emacs คือสามารถจัดการไฟล์ทุกประเภทที่คุณโยนไปได้ทุกขนาด เป็นที่ยอมรับหากคุณกำลังเปิดไฟล์เข้ารหัสขนาดใหญ่อย่างบ้าคลั่งมันไม่จำเป็นต้องมีประโยชน์ แต่จะเปิดขึ้น บรรณาธิการ (และ IDE) ส่วนใหญ่จะทำให้คุณปวดใจหากคุณส่งไฟล์ที่ใหญ่เกินไปและ / หรือไม่ใช่รูปแบบที่พวกเขาคาดหวัง

ลองเปิดไฟล์ 1 Gig ใน Notepad เพื่อดูตัวอย่าง

ฉันเริ่มใช้ Emacs ที่ไหนสักแห่งในช่วงปี 1980 และเป็นเครื่องมือในกล่องเครื่องมือของฉันมาโดยตลอด ไม่ใช่เครื่องมือเดียวแต่เป็นสิ่งที่ฉันสามารถหันมาใช้และรู้ว่าฉันจะสามารถทำงานที่มีประโยชน์ให้ลุล่วงได้

ความคิดเห็นเกี่ยวกับการอักเสบที่บังคับ : ในทางกลับกันฉันไม่มีอะไรจะพูดเกี่ยวกับ vi ฉันรู้สึกเสมอว่า vi จะฆ่าฉันอย่างมีความสุขและขายอวัยวะของฉันโดยไม่หวังผลตอบแทน

ในชีวิตจริงฉันใช้ Netbeans ในการพัฒนาเกือบทุกรูปแบบและฉันใช้ emacs เป็นระยะ ๆ เพื่อทำการแก้ไขอย่างรวดเร็ว แทบไม่มีอะไรที่สะดวกเท่า emacs (สำหรับฉัน) เมื่อต้องทำอะไรบ้าๆในตอนนี้

มีใครเคยแก้ไขสตริงแบบคงที่ในไบนารีไฟล์ปฏิบัติการหรือไม่? มีเครื่องมือที่ดีกว่า emacs หรือไม่? มันเหมาะกับฉันอย่างแน่นอน


1
ในขณะที่ Visual Studio จะพลาดโอกาสนั้นไปโดยสิ้นเชิงและแทนที่จะใช้ปืนไรเฟิลผ่านกระเป๋าเงินของคุณเพื่อดูว่ามีเงินสดสำรองหรือไม่
Rob

ขอโทษฉันไม่รู้ ฉันใช้ Netbeans เกือบตลอดเวลาและ emacs เมื่อฉันต้องการ
Bob Cross

2

ฉันรู้ว่าคุณไม่ได้ถามสิ่งนี้ แต่สิ่งหนึ่งที่การเรียนรู้ emacs (โดยไม่คาดคิด) ได้รับการปรับปรุงสำหรับฉันคือการจัดการกับบรรทัดคำสั่ง ก่อนที่ฉันจะเรียนรู้การเชื่อมโยงปุ่ม emacs ฉันเคยเลื่อนเคอร์เซอร์และนำทางประวัติโดยใช้ปุ่มเคอร์เซอร์เพราะฉันไม่รู้อะไรดีไปกว่านี้แล้ว มันเป็นอะไรบางอย่างที่เป็นช่วงเวลาที่หลอดไฟเมื่อผมรู้ว่าผมสามารถใช้backward-word, move-beginning-of-lineและbackward-kill-word(ซึ่งผมได้เสมอที่จะผูกพันC-w, เป็น Stevey แสดงให้เห็น ) ในbash( M-tมักจะเป็นประโยชน์มากเกินไปและน่าประทับใจที่สุดให้กับผู้ที่ไม่เคยเห็นมันมาก่อน)

ฉันทำงานกับ Solaris ค่อนข้างมากโดยที่รูทเชลล์คือ "เชลล์ posix" และไม่มีการผูก emacs ตามค่าเริ่มต้น ฉันพบว่าตอนนี้นิ้วของฉันพิมพ์exec bashแอคคอร์ดของตัวเองทุกครั้งที่ฉันเข้าสู่ระบบฉันรู้สึกเร็วขึ้นมากกับคำสั่งแก้ไขที่คุ้นเคยในตอนนี้

ต้องยอมรับว่าฉันยังคงพบว่าหนังสือของ Knuth ทำงานได้ยาก (แม้ว่าจะคุ้มค่า) - ดังนั้นฉันจึงไม่คิดว่ามันจะปรับปรุงการเขียนโปรแกรมของฉันได้อย่างน่าอัศจรรย์


ฉันต้องการเรียนรู้กลเม็ดเหล่านั้นให้มากขึ้น ... อย่างไรก็ตามคุณไม่สามารถเปลี่ยนเชลล์ล็อกอินของคุณได้หรือจริงๆแล้วคุณหมายถึง "เชลล์สำหรับผู้ใช้รูท" เมื่อคุณพูดว่า "รูทเชลล์"? ถ้าเป็นเช่นนั้นทำไมคุณถึงเข้าสู่ระบบในฐานะรูท ???
SamB

2

Emacs ทำให้ฉันมีประสิทธิภาพมากขึ้นในการจัดการข้อความและการนำทางระบบไฟล์ และเนื่องจากทั้งสองสิ่งนี้เกี่ยวข้องกันเมื่อฉันเขียนโปรแกรมจึงทำให้ฉันเป็นโปรแกรมเมอร์ที่มีประสิทธิภาพมากขึ้น (ดีกว่า)


2

ฉันคิดว่า Emacs สามารถทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้นได้แม้ว่าจะเป็นทางอ้อมก็ตาม ฉันคิดว่า Emac ช่วยให้ฉันเขียนภาษาที่ใช้งานได้จริง ( Elisp ) ซึ่งทำให้ฉันสนใจภาษาที่ใช้งานได้อื่น ๆ ( Clojure ) ซึ่งฉันบอกว่าจะทำให้ฉันเป็นโปรแกรมเมอร์ที่ดีขึ้น ที่กล่าวว่าฉันคิดว่าเวลาจะบอก


มันเป็น Lisp แบบเก่าจริงๆ (มีเฉพาะไดนามิกและไม่มีการกำหนดขอบเขตคำศัพท์) แต่แน่นอนว่ามีอะไรให้สอนมากมาย นั่นและอาจเป็นโปรแกรมแก้ไขข้อความที่ดีในสมัยนั้นซึ่งใช้งานได้จริง!
SamB

1

ความสามารถในการใช้งานบางอย่างแก้ไขปรับแต่งได้ช่วยให้คุณสามารถทำสิ่งที่ดี แต่ emacs โดยเฉพาะอย่างยิ่งไม่จำเป็นต้องเป็นสิ่งที่ดีที่สุดที่เป็นไปได้อย่างมากเลยทีเดียว ฉันเป็นผู้ใช้ SlickEdit ด้วยตัวเองฉันทำสิ่งแปลก ๆ ครึ่งอัตโนมัติแบบเดียวกันกับที่ emacs มีชื่อเสียง ฉันเคยเห็นผู้คนทำสิ่งที่คล้ายกันกับ vi และตัวแก้ไขต่างๆที่ใช้ Windows

ใช่ซ็อกเก็ตตั้งค่าได้ดี แต่การเถียงว่า Craftsman ทำให้ One True Socket Set เป็นเรื่องโง่


นอกจากนี้ฉันอาจมีแนวโน้มที่จะลองใช้ SlickEdit หากไม่ใช่เพื่อการตลาดแบบ Braindead: "10 เหตุผลที่ไม่ควรใช้ SlickEdit - # 1: คุณชอบเป็นโปรแกรมเมอร์ที่ไม่ดี # 2: คุณต้องการใช้จ่ายมากขึ้นเพื่อทำ น้อยกว่า # 3: คุณเป็นคนปัญญาอ่อน ฯลฯ ฯลฯ ฯลฯ "
Juliet

ฉันเข้าสู่ Slick ก่อนที่จะมีการตลาด มันเป็นเพียงตัวแก้ไขจริงตัวเดียวที่ทำงานภายใต้ OS / 2 3.0 ในเวลานั้น ซึ่งน่าจะเป็นเหตุผลเดียวกับที่คนอื่น ๆ ใช้ emacs ...
mjfgates

1

การควบคุมการผูกคีย์ Emacs และฟังก์ชันในตัวจะช่วยให้คุณจัดการข้อความได้เร็วกว่า IDE เช่น Eclipse หรือ Visual Studio

อย่าใช้คำของฉันมันตรวจสอบวิดีโอเหล่านี้ข้อดีใช้ Emacs

เมื่อคุณไปถึงระดับที่เหมาะสมใน Emacs แล้วคุณสามารถแก้ไขภาษาใด ๆ ได้อย่างมีประสิทธิภาพ: Java Script, Java, Ruby, Python, HTML, C, C ++ และอื่น ๆ

การเริ่มต้นใช้งาน Emacs เป็นความเจ็บปวดที่ก้นประสบการณ์นอกกรอบนั้นแย่ยิ่งกว่าแย่ การกำหนดค่าเริ่มต้นของ Emacs จะไม่ทำให้ผู้เริ่มต้นใช้งาน Emacs ได้สัมผัสกับคุณสมบัติที่มีประสิทธิภาพมากขึ้น (hippie-expand, etags, yasnippets ฯลฯ ) ของ Emacs ฉันขอแนะนำให้เริ่มต้นด้วยไฟล์จุดEmacs Starter Kit

อีกเหตุผลหนึ่งที่ Steve Yegge อ้างว่าโปรแกรมเมอร์ที่เก่งที่สุดในโลกใช้ Emacs คือ elisp Elisp ช่วยให้โปรแกรมเมอร์ที่มีประสบการณ์สามารถขยาย Emacs ได้อย่างง่ายดาย การเขียนส่วนขยายใน Eclipse หรือ Visual Studio นั้นยากกว่าการเขียนฟังก์ชันด่วนหรือแม้แต่โหมดรองใหม่ใน elisp


คำถามคือทำไมเริ่มใช้เลย? ถ้าเรามีความสุขสบายและมีประสิทธิผลทำไมต้องเสียเวลาและความพยายามในการเรียนรู้ emacs? ฉันอยากจะเรียนรู้ภาษาการเขียนโปรแกรมใหม่ ๆ หรือค้นคว้าเทคโนโลยีใหม่ ๆ มากกว่าที่จะเรียนรู้โปรแกรมแก้ไขแบบเก่าแม้ว่าจะเป็นภาษาที่มีประสิทธิภาพก็ตาม มีเพียง 24 ชั่วโมงในหนึ่งวันใช้เวลาอย่างชาญฉลาด
sarsnake

อีกสิ่งหนึ่งที่ฉันอยากจะทราบว่ามันขึ้นอยู่กับเทคโนโลยีที่คุณใช้ด้วย Emacs มี Intellisence หรือไม่? ฉันใช้มันในวิทยาลัยบนเครื่อง UNIX และฉันแน่ใจว่ามันมีการเปลี่ยนแปลงตั้งแต่นั้นมา แต่สำหรับ. NET Intellisence เป็นสิ่งจำเป็น ไม่มีทางที่ใครจะจำชื่อฟังก์ชันทั้งหมดในคลาสทั้งหมดในเนมสเปซทั้งหมดได้ และฉันแน่ใจว่าจะไม่ใช้ MSDN ทุกครั้งที่ฉันต้องค้นหาชื่อฟังก์ชัน หาก Emacs เสนอ Intellisence ฉันจะพิจารณา
sarsnake

1

ฉันเชื่อว่าเป็นความเข้าใจผิดอย่างมากที่ว่าการใช้โปรแกรมแก้ไขข้อความเช่น VI และ Emacs เหล่านี้ได้รับการพิจารณาอย่างมากหรือจำเป็นในการเป็น "โปรแกรมเมอร์ที่ยอดเยี่ยม" ฉันรู้สึกเสมอว่า IDE มีพลังมากจากนั้นก็เคยเป็นและมันก็มาจากความชอบและสไตล์อย่างแท้จริง


0

ฉันใช้อีแมคในวิทยาลัย เมื่อประมาณ 16 ปีที่แล้ว ฉันไม่ได้มองย้อนกลับไป ในขณะที่ฉันหวังว่าฉันจะยังคงสบายใจกับ emacs แต่ความจริงก็คือฉันค่อนข้างมีประสิทธิผลกับ MS IDE ของฉัน

ข้อความที่คุณโพสต์เป็นเพียงเรื่องตลก อ๋อ ไม่มีเหตุผลอื่นใดนอกจากการเริ่มสงครามศาสนา


0

ฉันเริ่มต้นด้วย emacs แต่เปลี่ยนมาใช้ vi ซึ่งสำหรับฉันดูหรูหรากว่าเพราะมันเรียบง่าย นอกจากนี้หากคุณติดอยู่ในโหมดผู้ใช้คนเดียวคำสั่ง ed เป็นชุดย่อยของคำสั่ง vi ฉันไม่รู้ว่า emacs สามารถจัดการได้หรือไม่

ดังนั้นในเรื่องนี้ฉันคิดว่า vi ทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้น ..


Emacs ไม่มี Mx vi โหมดแม้ว่าฉันสงสัยว่านั่นคือการเรียงลำดับของเรื่องตลก ...
ไบรอัน Postow

การรู้พื้นฐานของ vi เป็นสิ่งสำคัญสำหรับการดูแลระบบ อย่างไรก็ตามนั่นไม่ใช่การเขียนโปรแกรม
Xiong Chiamiov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.