Akankah Emacs menjadikan saya seorang programmer yang lebih baik? [Tutup]

130

Steve Yegge menulis komentar di blognya :

Semua insinyur terhebat di dunia menggunakan Emacs. Jenis pengubah dunia. Bukan cewek hebat di kubus di sebelah Anda. Bukan Fred, pria luar biasa di ujung lorong. Saya berbicara tentang pengembang perangkat lunak terhebat dalam profesi kita, yang mengubah wajah industri. James Goslings, Donald Knuths, Paul Grahams, Jamie Zawinskis, Eric Bensons. Insinyur nyata menggunakan Emacs. Anda harus menjadi pintar untuk menggunakannya dengan baik, dan itu membuat Anda sangat kuat jika Anda bisa menguasainya. Lihatlah ke balik pundak Paul Nordstrom saat dia bekerja kapan-kapan, jika kamu tidak percaya padaku. Ini adalah pembuka mata nyata bagi seseorang yang menggunakan Visual Blub .NET-seperti IDE sepanjang karier mereka.

Emacs adalah editor 100 tahun.

Terakhir kali saya menggunakan editor teks untuk menulis kode adalah kembali ketika saya masih menulis HTML di Notepad sekitar 1000 tahun yang lalu. Sejak itu, saya sedikit banyak bergantung pada IDE, setelah menggunakan Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio, dan Eclipse untuk seluruh karier saya.

Untuk apa nilainya, saya telah mencoba Emacs, dan pengalaman saya adalah frustasi karena kurangnya fitur yang dapat ditemukan di luar kotak. (Rupanya ada perintah Emacs untuk menemukan perintah Emacs lain, yang tidak bisa saya temukan - itu seperti menjalani lelucon Anda yang kejam seperti Zen.) Saya mencoba membuat diri saya seperti program untuk bulan yang baik, tetapi akhirnya memutuskan bahwa saya lebih suka memiliki desainer GUI drag-and-drop, IntelliSense, dan debugging interaktif.

Sulit untuk memisahkan fakta dari fanboyisme, jadi saya belum mau menerima komentar Yegge begitu saja.

Apakah ada perbedaan terukur dalam keterampilan, produktivitas, atau kenikmatan pemrograman antara orang-orang yang bergantung pada IDE dan mereka yang tidak, atau hanya fanboyisme saja?

Juliet
sumber
22
Perlu dicatat juga bahwa Paul Graham menggunakan vi; Yegge menawarkan koreksi ini sendiri dalam catatan kaki di artikel yang ditautkan.
Eli Courtwright
16
Dari semua editor yang saya gunakan, Emacs adalah satu-satunya yang memberitahu Anda cara menjalankan tutorial setiap kali dimulai (sampai Anda cukup belajar untuk memberitahunya untuk berhenti memberi tahu Anda cara menjalankan tutorial).
Michael Paulukonis
16
Untuk apa EMACS berdiri? Escape Meta Alt Control Shift! ;-)
Peter K.
24
Terminologi pilihan: Emacs adalah "editor programer," bukan sekadar "editor teks." GUI IDE juga memiliki kemampuan untuk mengedit teks, tetapi mereka juga bukan editor teks. Membandingkan Notepad dengan Emacs seperti membandingkan ... melempar batu sesuatu untuk memukul sesuatu dengan senjata itu di Death Star.
Greg Mattes
8
Jelas beberapa orang tidak memahami perbedaan antara korelasi dan kausalitas
Chubas

Jawaban:

119

Pertama, izinkan saya mengatakan, saya adalah orang yang mengaku benar-benar percaya pada kultus Emacs.

Konon, blogger itu gila. Anda menulis apa yang menurut Anda berguna. Saya menemukan bahwa Emacs membantu saya, terutama karena saya menghabiskan tahun-tahun kuliah saya sebelum membayar biaya awal untuk belajar bagaimana memodifikasinya sesuai dengan kebutuhan saya, dan memodifikasi diri saya untuk kebutuhannya.

Tetapi orang lain melakukan berbagai hal secara berbeda, dan ketika mereka mengatakan "Tidak apa-apa".

Brian Postow
sumber
73
Sepakat. Saya suka Emacs, tetapi berpikir bahwa Emacs akan menjadikan Anda seorang programmer yang lebih baik seperti berpikir bahwa menggunakan klub golf Tiger Woods akan membuat Anda menjadi pegolf yang lebih baik, atau menggunakan gitar Eddie Van Halen akan membuat Anda menjadi musisi yang lebih baik.
Kristopher Johnson
31
Sangat tidak setuju dengan komentar Kristopher di atas. Menggunakan alat olahragawan / artis hebat pasti tidak akan membuat Anda sehebat mereka. Tapi, menggunakan alat pemrograman yang BENAR untuk pekerjaan yang BENAR pasti! Anda mungkin dimaafkan karena menyamakan pemrograman dengan olahraga dan seni. :)
Susheel Javadi
6
@ Bart: Maksudnya adalah ada beberapa "alat yang tepat". Klub golf Tiger Wood adalah alat yang sangat baik dan sempurna untuk pekerjaan itu, tetapi ada juga klub lain yang dapat memberikan hasil yang sama. Alat yang digunakan oleh programmer yang baik tidak mendefinisikan mereka, kreativitas dan kemampuan mereka lakukan.
Seth Moore
9
Saya pikir inti dari pernyataan Steves adalah bahwa programmer hebat menggunakan emacs, pengembang perangkat lunak yang baik lebih produktif menggunakan IDE. Programmer hebat selalu memprogram, bahkan ketika memproduksi kode yang mereka programkan, mereka mengotomatiskan tugas, mereka suka membuat, semut, bash, perl dan hudson. Mereka tahu bahwa tugas manual di bagian mana pun dari siklus pengembangan perangkat lunak rentan terhadap kesalahan. Pemrogram hebat juga tahu bahwa jika orang lain membuat kode Anda (mis. IDE atau siapa pun) maka Anda selalu bergantung pada keterampilan yang dimiliki orang lain ketika harus mempertahankan kode (mis. IDE atau siapa pun)
Ernelli
4
Steve Yegge adalah orang yang menulis parser JavaScript lengkap di elisp, jadi tidak ada pertanyaan bahwa ia gila sejauh Emacs :)
Tikhon Jelvis
106

Dia (Steve Yegge) telah menguraikan hal ini, dalam potongan-potongan kecil, dalam posting-posting lain miliknya. http://steve-yegge.blogspot.com/2008_04_01_archive.html mungkin yang paling komprehensif, tetapi info tersebut terkubur di sana karena bersinggungan dengan subjek utama.

Saya kira untuk meringkas: programmer yang hanya baik atau kompeten akan mengambil IDE dan mengenalnya dengan sangat baik, dan mungkin cukup sopan di dalamnya, tetapi mereka akan membatasi diri dengan apa yang disediakan IDE untuk mereka. Dengan kata lain, mereka menyesuaikan diri dengan IDE. The besar programmer, di sisi lain, akan beradaptasi mereka lingkungan sesuai diri mereka sendiri , dengan cara seperti menulis skrip atau alat-alat mereka sendiri, atau memperpanjang alat-alat mereka. Dan untuk poin terakhir itu, tidak hanya Emacs adalah lingkungan yang paling dapat dikembangkan, tetapi juga lingkungan termudah untuk diperluas, dan juga lingkungan di mana Anda menuai paling banyak manfaat besar. dari memperpanjangnya - ekstensi Anda berintegrasi ke Emacs seperti itu adalah fitur saham, dan ekstensi masa depan Anda dapat dibangun di atas yang sebelumnya (semacam umpan balik positif).

Nietzche-jou
sumber
15
Perbedaannya adalah energi yang dibutuhkan untuk memperluas IDE. Dengan emacs, semua file konfigurasi adalah file program elisp. Jadi pada dasarnya, hambatan untuk masuk ridiculously rendah (hanya mengubah berkas Emacs)
shsmurfy
18
Sepanjang garis yang sama dengan Angus. IDE yang baik seharusnya tidak perlu dikerjai tanpa henti untuk menyelesaikan pekerjaan. IDE yang baik harus memiliki semua fitur yang dibutuhkan. Tentu Anda mungkin ingin mengonfigurasi pintasan dan tata letak, tetapi Anda tidak perlu menulis banyak skrip untuk menangani semuanya.
Kibbee
5
Angus: kamu benar. Jika Anda harus mengacaukan dengan menambahkan hal-hal alih-alih menyelesaikan pekerjaan Anda, Anda telah melewatkan intinya - Emacs atau tidak. Sol: Ada lebih banyak untuk memperluas kemudian mengirim sumber melalui program eksternal. Faktanya, itu sama sekali bukan mekanisme perpanjangan yang kuat.
Jonathan Arkell
15
Perbedaan antara memperluas emacs dan memperluas netbeans, studio visual atau gerhana adalah kecepatan. Menambahkan ekstensi ke gerhana seperti menulis seluruh aplikasi. Sebagai perbandingan, menulis ekstensi untuk emacs dapat berupa satu baris kode.
Justin Tanner
4
@supercheetah - terlihat sangat primitif dibandingkan dengan intellisense yang ditemukan di Visual Studio, misalnya ikon yang ditampilkan di sebelah anggota yang tersedia berguna! Secara pribadi, tanpa dukungan refactoring yang kuat, saya sedikit tertarik pada Emacs.
si618
57

Pemrogram terbaik menggunakan vi atau emacs, karena pemrogram yang paling berpengalaman adalah yang terbaik, dan 20 tahun yang lalu, tidak ada banyak pilihan kecuali vi dan emacs.

Setelah memulai dengan vi (sekitar 1987) pada mesin dengan terminal teks yang sangat lambat, saya mengonversikan ke (GNU) Emacs setelah beberapa tahun (pada mesin yang lebih cepat), dan menggunakannya hampir secara eksklusif selama hampir 10 tahun.

Emacs adalah lingkungan pengembangan terintegrasi pertama - seluruh siklus edit / tautan / kompilasi dapat dikontrol dalam emacs, dan Anda dapat menjalankannya sendiri untuk kompiler apa pun yang Anda gunakan.

Saat ini, IDE seperti eclipse bahkan lebih terintegrasi (jujur: emacs sucks di grafis), tetapi Emacs masih salah satu lingkungan terbaik untuk mengedit teks "murni".

mfx
sumber
10
+1 untuk ramalan yang terpenuhi sendiri di paragraf pertama.
OregonGhost
12
"programmer yang paling berpengalaman adalah yang terbaik" - sangat jauh dari kebenaran, setidaknya dengan implikasi. Tidak mengatakan programmer yang tidak berpengalaman lebih baik, tetapi hanya karena dia telah melakukan hal yang sama selama lebih dari 20 tahun - TIDAK berarti dia melakukannya dengan baik.
AviD
7
Ada banyak editor berbeda 20 tahun lalu. Sebagian besar dari mereka belum selamat, umumnya dengan alasan yang bagus. Mengapa seorang pria yang menggunakan vi atau emacs pada tahun 1989 lebih baik daripada seorang pria yang menggunakan editor berbasis MS-DOS pada tahun 1989, atau apa pun yang saya gunakan pada mainframe Data Kontrol?
David Thornley
Heck, 10 tahun lalu tidak ada IDE Java yang bagus !
Susheel Javadi
Dari apa yang saya ingat 20 tahun yang lalu, vi dan emac adalah editor yang sangat dominan - hanya karena ada banyak editor pada waktu itu (seperti sekarang) tidak berarti mereka semua sama-sama digunakan secara luas.
FinnNk
34

Meningkatkan pemikiran jernih dan pemecahan masalah akan membuat Anda menjadi programmer yang lebih baik. Tidak ada program yang bisa melakukannya.

Menggunakan palu yang lebih baik tidak akan membantu saya membangun rumah yang lebih bagus kecuali saya tahu bagaimana dan mengapa. ;)

Jas Panesar
sumber
Analogi yang bagus untuk apa yang ingin saya katakan juga.
Rob
21
Tetapi palu yang buruk akan merusak produktivitas Anda saat mencoba membangun rumah yang sama dan Anda mungkin akan berakhir dengan rumah yang berbeda.
user51568
Itu adil! Seorang programmer biasa tidak akan membayar jauh lebih baik dengan palu mahal.
Jas Panesar
5
Seorang programmer yang hebat dapat membangun rumah yang bagus menggunakan batu untuk palu. (Dia lambat - tapi dia masih bisa melakukannya.: D)
Egon
Ya, tetapi memiliki editor yang memungkinkan kode mengalir keluar dari Anda secara organik (yang menurut saya Emacs lebih baik daripada kebanyakan editor) dapat meningkatkan pemikiran jernih Anda dan karenanya memecahkan masalah.
Skilldrick
21

Yegge harus bertemu dengan Bill Joy. Tidak hanya dia salah satu programmer hebat di dunia, dia juga menulis banyak vi. Dalam vi.

Pengakuan Memalukan Singkat: Setelah 20 tahun menggunakan vi (dan vim / gvim dalam beberapa tahun terakhir) untuk semuanya, dalam setahun terakhir ini saya mulai menggunakan Eclipse untuk pengeditan java (dan Thunderbird untuk email), meskipun pada pekerjaan saya saat ini saya Mesin memiliki sedikit memori sehingga saya biasanya menggunakan vi kecuali ketika saya membutuhkan debugger.

Paul Tomblin
sumber
7
+1 untuk vi (sebenarnya, gunakan vim, tetapi perbedaannya sama). Ini adalah 98% dari apa yang dapat dilakukan emac dengan kurang dari setengah upaya.
rmeador
25
Saya menggunakan vim selama 5 tahun. Setelah 20 menit di Emacs aku bersumpah aku tidak akan pernah kembali. Vim terasa mundur.
MattBelanger
5
Yegge sendiri menyebutkan ini: [Satu-satunya pengecualian yang penting adalah VIM, yang juga sangat kuat di semua akun, meskipun saya tidak punya pengalaman dengannya. Jika Anda telah mengembangkan preferensi untuk vi daripada emacs, maka Anda mungkin mengalami kebahagiaan yang lebih besar mengejar keahlian dengan VIM. Psh] Sumber: steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062
1
Uh .. Bill Joy tidak menggunakan vi lagi.
Plumenator
13

Apakah ada perbedaan terukur dalam keterampilan, produktivitas, atau kenikmatan pemrograman antara orang-orang yang bergantung pada IDE dan mereka yang tidak, atau hanya fanboyisme saja?

Mari kita mempersempit ini ke Visual Studio vs. Emacs --- pertanyaannya terlalu luas, dan saya curiga kebanyakan orang (setidaknya di sini di StackOverflow) sudah terbiasa dengan keduanya. [Saya, dan saya menggunakan dan lebih suka emacs]

Selanjutnya, mari kita pisahkan tiga komponen pertanyaan.

Kesenangan pemrograman terprogram terutama karena menyukai pemrograman itu sendiri, dan yang kedua adalah tidak adanya faktor gangguan ketika Anda melakukannya. Menggunakan alat yang Anda perjuangkan akan mengurangi kenikmatan. Jadi, saya akan memperkirakan, kenikmatannya mungkin dimaksimalkan dengan menggunakan alat yang Anda sukai dan terbiasa.

Tentu saja, setelah Anda terbiasa dengan alat baru, Anda mungkin menemukan bahwa Anda menyukai alat itu lebih baik, dan dengan demikian akan lebih suka pemrograman jika Anda melakukannya dengan alat favorit baru Anda . Tidak jelas bagi saya bahwa orang-orang pada umumnya akan menyukai VS daripada emacs (atau sebaliknya) ketika mereka mengenal mereka dengan baik.

Selanjutnya, keterampilan pemrograman. Jika ada hubungan antara skill dan pilihan VS / emacs, saya pikir skill itu menyebabkan pilihan, bukan pilihan yang menyebabkan skill. Tak satu pun dari {VS, emacs}, dalam pengalaman saya, tampaknya membuat saya belajar apa pun tentang menulis kode yang lebih baik .

Alat yang baik dapat membuat saya dapat menulis kode yang sama (dan karenanya sama kualitas kode yang sama) dalam jumlah waktu yang lebih sedikit; jika kita menganggap itu productivity = quality of code `times` code per time, maka masuk akal bahwa setiap editor yang akan membiarkan Anda menulis kode yang baik dalam waktu yang lebih singkat adalah dorongan produktivitas.

Saya mungkin terlalu tidak terbiasa dengan VS, tapi di sini saya pikir emacs memiliki beberapa kekuatan yang belum saya temukan di VS. Ini mungkin terdengar konyol, tetapi sesuatu yang sederhana seperti gerakan kursorCtrl-[fbnp] adalah keuntungan nyata --- itu berarti Anda tidak perlu menggerakkan tangan Anda ke tombol panah. Hal lain: Anda dapat melakukan pencarian atau mengganti yang mencakup baris baru, yang saya gunakan cukup sering sehingga saya benci untuk melewatkannya.

Hal lain yang saya suka adalah kemampuan untuk menanamkan shell di editor saya. Dalam pengalaman saya, ini jauh lebih berharga pada platform non-windows (dan pengalaman "pemrograman" pertama saya, IIRC, sedang menulis file DOS .bat, jadi saya bukan hanya penggemar koboi yang menyala-nyala), tetapi pada platform itu adalah kemenangan besar . Itu membuat emacs "mengintegrasikan" dengan "segalanya" (pencarian file dengan find / temukan, pencarian teks dengan grep, kontrol versi dengan svn / git / hg / ..., sebut saja).

Putusan akhir - haruskah Anda mempelajari emacs atau tidak? Dan apakah ini semua fanboyisme? Jika Anda punya waktu, saya akan mengatakan itu selalu layak belajar cara baru melakukan hal yang sama, karena cara baru itu ternyata bekerja lebih baik untuk Anda. Dan saya mendorong Anda untuk tidak menolaknya untuk apa yang tampak ketika Anda semua baru. Dalam hal itu, ini seperti beralih ke tata letak keyboard Dvorak: Anda lebih lambat pada awalnya, tetapi begitu Anda naik ke kecepatan Anda kemungkinan akan setidaknya secepat di qwerty, dan lebih nyaman. Saya merekomendasikan pendekatan yang sama untuk mempelajari bahasa (pemrograman) baru juga: karena Anda tidak tahu kosa kata (perpustakaan standar), mengatakan hal-hal sulit, tetapi hadiahnya masih ada di cakrawala menunggu Anda.

Jonas Kölker
sumber
1
"Mari kita persempit ini menjadi Visual Studio vs. Emacs --- pertanyaannya terlalu luas, dan saya curiga kebanyakan orang (setidaknya di sini di StackOverflow) sudah terbiasa dengan keduanya." -- Betulkah? Saya pikir ada banyak fanboy fanatik seperti saya yang tidak akan dipaksa untuk menggunakan VisualStudio, apalagi menggunakannya secara sukarela. Hrm
Xiong Chiamiov
"Gerakan kursor dengan Ctrl- [fbnp] adalah anugerah nyata". Meskipun saya suka Emacs, setelah kembali ke sana setelah lama tidak ada, saya menemukan gerakan kursor dengan cara ini aspek yang paling tidak berguna dan nyaman menggunakan Emacs lagi. Sebaliknya saya dapat menjangkau dan menemukan tombol kursor khusus tanpa melihat atau bahkan berpikir. Mungkin membantu menjadi pemain piano? :) Tapi siapa tahu, seiring waktu, mungkin huruf C-scrunch akan terasa lebih alami.
Greg Hendershott
2
ps Saya sangat setuju tentang cangkang dan platform. Jika Anda ingin berpindah di antara Windows, OS X, dan Linux, maka Anda ingin Cygwin pada yang pertama dan Emacs pada ketiganya. Lemparkan .emacs.d Anda di GitHub dan Anda emas.
Greg Hendershott
juga, Anda dapat melakukan pencarian yang menyertakan baris baru di Visual Studio menggunakan
regex
10

Dengan teks yang dikutip dimulai, "Semua insinyur terhebat di dunia menggunakan Emacs," saya juga tidak akan menerimanya. Apakah dia kenal semua insinyur terhebat di dunia? Apakah ini daftar insinyur terbaik dunia yang sama dengan yang Anda atau saya miliki?

Setelah dipelajari, editor yang kuat seperti EMACS atau vi akan membuat Anda lebih efisien, atau setidaknya lebih efisien jika Anda tertangkap tanpa IDE favorit Anda.

Itu bagian "yang pernah dipelajari", itulah pembunuhnya. Ini banyak pekerjaan dan praktik untuk menggunakan alat-alat ini secara produktif, dan itu sangat sulit pada awalnya.

John
sumber
1
Saya pikir salah satu kualitas yang benar-benar membantu seseorang untuk menjadi insinyur "hebat" adalah mampu menunda kepuasan dan menanggung biaya startup yang lebih besar untuk meningkatkan efisiensi.
Tikhon Jelvis
9

Saya seorang fanboy Emacs, secara pribadi, tetapi Emacs hanyalah alat. Itu tidak akan membuat Anda seorang programmer yang lebih baik daripada pena super mewah akan membuat Anda menjadi penulis yang lebih baik.

Klarifikasi bahwa "programmer hebat" menyesuaikan lingkungan mereka dengan diri mereka sendiri mungkin memiliki beberapa kelebihan, tetapi banyak alat dapat melakukan itu (misalnya vim dan SlickEdit), jadi tidak ada yang khusus tentang Emacs dalam hal itu.

Saya pikir apa yang paling mungkin benar adalah bahwa "programmer hebat" bergairah tentang pemrograman dan orang-orang yang bersemangat tentang hal itu cenderung menemukan alat yang membantu mendorong gairah itu. Emacs (dan vim dan SlickEdit, et al) adalah alat seperti itu.

Joe Casadonte
sumber
Pena super mewah membuatku merasa seperti Hemingway-ish.
Cheeso
2
Apa yang khusus tentang Emacs sehubungan dengan "mengadaptasi lingkungan" adalah bahwa jauh lebih mudah untuk melakukannya di Emacs daripada di Vim atau SlickEdit. (atau editor lain yang saya kenal)
vedang
8

Saya tidak percaya ada perbedaan, ini lebih merupakan masalah preferensi.

Namun apa yang saya perhatikan adalah bahwa semakin lama Anda membuat kode, atau semakin rendah tingkat kode Anda, semakin tinggi kemungkinan bahwa Anda telah menggunakan emacs atau vi.

Stephane Grenier
sumber
"Semakin lama Anda telah berkode" tampaknya berpendapat untuk memulai pengkodean sebelum ada IDE yang bagus.
Paul Tomblin
3
Apakah ada yang namanya IDE yang bagus, Sonny?
David Thornley
8

Sementara IDE telah menjadi jauh lebih baik dalam dekade terakhir, mereka masih mengandung pemrograman dalam "gelembung" yang sedikit aman, jauh dari beberapa detail yang lebih buruk. Apa yang cenderung terjadi adalah bahwa peningkatan abstraksi ini memungkinkan lebih banyak programmer untuk melakukan lebih banyak, dengan lebih sedikit pengetahuan. Itu, tentu saja, tidak berlaku untuk semua programmer, tetapi alat yang lebih mudah memang membawa pemrograman ke khalayak yang lebih luas.

Lebih banyak pengetahuan tentang alat tingkat rendah, sering diterjemahkan menjadi lebih stabil dalam kode, karena ada sedikit peluang "melawan arus" secara tidak sengaja. Tidak adil hanya mencantumkan EMACS sebagai satu-satunya indikator utama, karena ia berasal dari berbagai macam bahasa dan alat, dan benar-benar lebih tentang kedalaman pemahaman, bukan teknologi spesifik.

Di masa lalu, Anda dapat mempelajari VI atau EMACS pada kotak UNIX atau Anda berspesialisasi dalam PC (OK, ada VMS, CMS, AS400, dll. Juga, tetapi itu adalah teknologi yang lebih tua). Kedua aliran menarik orang yang sangat tajam, tetapi orang-orang UNIX cenderung menginginkan solusi yang canggih, sedangkan orang-orang PC hanya ingin itu dilakukan dengan cepat. Budaya-budaya itu sangat berbeda.

Paul W. Homer
sumber
7

IDE IMHO cenderung dioptimalkan di sekitar platform atau bahasa atau OS tertentu: Eclipse JDT bagus untuk Java, Visual Studio adalah C ++ / .NET-sentris, dll. Mereka sangat membantu produktivitas (sekali lagi IMHO) jika Anda hanya mengerjakan platform itu, tetapi jika Anda mengubah platform, pada dasarnya Anda harus mempelajari IDE baru (atau setidaknya satu set plugin, pandangan, perspektif dan saya tidak tahu apa lagi untuk Eclipse).

Keuntungan mengetahui emacs, atau Textmate, atau vim (preferensi pribadi saya), atau editor generik apa pun , adalah bahwa keterampilan yang Anda peroleh dalam editor itu berlaku terlepas dari platform apa yang Anda tulis. Mereka dioptimalkan untuk mengedit teks , dan setelah Anda menguasainya, Anda dapat mengedit teks dengan sangat efisien dalam bahasa apa pun.

Ada juga pernyataan Yegge bahwa pemrogram hebat menyesuaikan alat mereka dengan gaya kerja mereka dan bukan sebaliknya. Saya pikir ini adalah kemenangan untuk editor umum, karena Anda mengkustomisasi satu editor, daripada harus mencari cara untuk mengadaptasi empat IDE yang berbeda untuk semua berperilaku seperti yang Anda inginkan.

Sam Stokes
sumber
Masalahnya muncul ketika Anda harus menulis pada platform yang berbeda dari yang pernah Anda gunakan: misalnya Anda berpindah dari * nix ke Windows, dan skrip Anda pecah karena mereka mengasumsikan shell bourne dengan path berbasis '/' di sebuah Struktur seperti FHS dengan pencetakan berbasis PostScript ...
SamB
Saya telah bekerja dengan emacs untuk beberapa waktu, sekarang, dan hanya gerakan kursor sudah cukup bagi saya untuk membenci menulis dalam hal lain - bahkan jika itu email di KMail.
Arne Babenhauserheide
@ArneBabenhauserheide ini adalah salah satu alasan saya suka Mac OS X, hampir semua dukungan textfields C-[npfbaed]. (Tapi sayangnya tidak M-)
porglezomp
6

Saya berpendapat bahwa programmer terbaik cenderung yang akan meluangkan waktu untuk menyesuaikan lingkungan mereka, membuatnya lebih cepat / lebih mudah untuk melakukan tugas-tugas yang cenderung mereka lakukan. Emacs adalah salah satu editor paling kuat ketika datang untuk menyesuaikan lingkungan Anda. Ini memiliki kurva belajar yang curam tetapi, setelah Anda melewati itu, hampir tidak ada batasan untuk apa yang dapat Anda lakukan untuk Anda.

Seseorang pernah berkata bahwa programmer terbaik adalah yang malas; yang, begitu mereka perlu melakukan sesuatu lebih dari sekali, menemukan cara untuk mengotomatiskannya sehingga membutuhkan lebih sedikit usaha untuk melakukannya. Emacs membuat Anda menjadi sangat, sangat malas;)

RHSeeger
sumber
4

Saya telah menggunakan IDE sejak awal (bisa dibilang; sudah mulai dengan QBASIC), dan selama bertahun-tahun. Saya sekarang telah beralih hampir sepenuhnya ke VIM (dalam berbagai rasa) untuk semua pekerjaan pengembangan saya dan saya tidak menyesalinya. Produktifitas saya pasti meningkat.

Tentu saja, tidak ada yang akan menggantikan desainer Windows Forms dari Visual Studio. Tetapi dibandingkan dengan VIM (dan Emacs, saya yakin) editor teks di dalam Visual Studio benar-benar buruk. Setelah Anda memanfaatkan kekuatan mentah dari konsol dan alat pengembang GNU (yang saya maksud make, GCC, binutilsdan gdb, dan kemudian beberapa) Anda akan melihat bahwa alat ini mungkin terlihat primitif tapi mereka justru sebaliknya, dan benar-benar menawarkan semua alat yang disediakan oleh IDE (well, kecuali untuk form designer).

Hanya saja Anda memiliki pendakian yang sangat curam di depan Anda ketika Anda pertama kali mulai menggunakan alat-alat ini dan insentifnya mungkin kecil. Saya cukup beruntung (?) Dipaksa menggunakan alat-alat ini sehingga saya tidak punya pilihan yang bisa saya musang.

Konrad Rudolph
sumber
3

Secara pribadi, saya merasa Anda harus menggunakan apa pun yang membuat Anda lebih produktif. Jika Anda tidak punya waktu untuk berinvestasi dalam proyek untuk duduk dan belajar Emacs, maka itu mungkin bukan penggunaan waktu Anda yang terbaik saat itu.

Namun, saya merasa itu adalah ide yang baik untuk mengenal IDE lain ketika Anda memiliki cukup waktu untuk melakukannya. Saya menggunakan Visual Studio dalam pekerjaan saya sehari-hari, tetapi di rumah saya menggunakan Eclipse untuk proyek-proyek kecil dan telah menggunakan Emacs juga. Pada titik tertentu di mana saya mempertimbangkan untuk menggunakan Emacs, usaha saya lebih baik melayani menyelesaikan pekerjaan yang sebenarnya daripada memperlambat diri saya bergulat dengan Emacs.

Saya pikir sampai batas tertentu tidak masuk akal untuk berpikir bahwa semua programmer terbaik menggunakan Emacs. Ada banyak programmer luar biasa yang tidak sepopuler (atau vokal, mungkin) yang tidak menggunakan Emacs.

jamesmillerio
sumber
3

Saya mulai menggunakan Emacs sekitar satu setengah tahun yang lalu karena itu adalah pertemuan beberapa keinginan - ingin bekerja dengan ekspresi reguler (dalam editor yang mendukung mereka), ingin belajar bahasa Inggris, ingin editor yang lebih baik.

Mengedit kode saya dengan regex mengajari saya banyak hal tentang menemukan pola dalam kode. Menekan tombol memerlukan waktu beberapa saat untuk terbiasa, tetapi saya terbang jauh lebih cepat tanpa mouse.

Emacs memberi saya kemampuan untuk tetap bekerja dengan catatan dan pengkodean dalam aplikasi yang sama - pengalihan konteks minimal berarti pengalihan otak minimal, dan saya dapat tetap fokus pada tugas yang ada.

Michael Paulukonis
sumber
3

Tidak. Kode yang baik membuat Anda menjadi programmer yang lebih baik.

Yang mengatakan, manipulasi teks yang baik adalah kunci efisiensi. Baik vim atau emacs akan mengubah cara Anda bekerja dengan teks - keduanya terbukti efektif tetapi hampir bertentangan satu sama lain dalam hal gaya. Juga, perdebatan ini agak lama (kembali ke tahun 80-an dan 90-an di mana teks -> kompiler adalah kunci), jadi ada banyak editor teks dan / atau IDE lain yang dapat membantu Anda menjadi programmer terbaik yang Anda bisa.

Meluap
sumber
3

Tidak. Jika Anda yakin menggunakan emacs menjadikan Anda seorang programmer yang lebih baik, Anda membingungkan sebab dan akibat.

Saya menggunakannya setiap hari. Saya menemukan bahwa saya lebih produktif dengan emacs + maven daripada dengan Eclipse untuk pengembangan java (walaupun saya masih menjalankan Eclipse setiap sekarang dan kemudian untuk sesekali melakukan sesi refactoring atau debug).

Inilah alasan saya:

  • Pengalaman mengedit teks aktual di emacs mengalahkan semua yang lain. Sungguh menakjubkan seberapa cepat Anda dapat mencapai begitu banyak hanya menggunakan keyboard Anda. Eclipse lebih berorientasi pada mouse, dan ketika Anda mengetik Anda menghadapi banyak hambatan menjengkelkan.
  • Mampu menyesuaikan emacs menggunakan elisp sangat kuat. Saya akan mengatakan lebih jauh bahwa jika Anda tidak meluangkan waktu untuk mempelajari bidang yang belum sempurna dan menyesuaikan lingkungan Anda, Anda hanya membuang-buang waktu.
  • Ada ekstensi untuk hampir semua hal yang ingin Anda lakukan di editor teks.
fred-o
sumber
1
+1 untuk korelasi! = Sebab-sebab
Xiong Chiamiov
Mode java apa yang Anda gunakan?
avendael
1
Saya menggunakan mode stock java yang datang dengan Emacs23, dengan beberapa penyesuaian dan peretasan untuk menjalankan maven build. Saya juga mulai menggunakan emacs-eclim, yang bertindak sebagai jembatan antara emacs dan gerhana. Ini bagus dan dapat digunakan, tetapi cukup kasar saat ini.
fred-o
3

Bagi saya alasan utama saya akan memilih Emacs daripada IDE adalah karena itu memungkinkan saya untuk melakukan semuanya hanya dari keyboard saya. Ini bagus karena menghemat waktu ketika saya biasanya menggunakan mouse. Juga karena saya menemukan diri saya sangat mobile, saya memiliki kecenderungan "alur" pemrograman saya terganggu karena menggunakan touch pad saya yang lambat. Selain itu kustomisasi membuatnya bersinar atas beberapa IDE untuk saya. Namun jika Anda menemukan diri Anda pemrograman cukup cepat dengan IDE maka saya akan mengatakan kurva belajar Emacs tidak sebanding dengan masalahnya.

Anton
sumber
2

Apakah ada perbedaan terukur dalam keterampilan, produktivitas, atau kenikmatan pemrograman antara orang-orang yang bergantung pada IDE dan mereka yang tidak, atau hanya fanboyisme saja?

Saya tidak berpikir Anda benar-benar bisa mendapatkan jawaban untuk itu. Ada begitu banyak cara untuk mengukur keterampilan, produktivitas dan kenikmatan pemrograman - dan semuanya mungkin sangat subjektif dan / atau tidak dapat dipecah menjadi SATU hal yang menyebabkannya atau tidak.

Itu masih merupakan pertanyaan yang menarik.

Keyakinan pribadi saya adalah - itu tergantung pada programmer :)

G-Man

GeoffreyF67
sumber
Fanboys dude. IDE bukan Editor. IDE tidak perlu menjadi editor terbaik.
Perpetualcoder
2

Saya tidak berpikir itu akan membuat Anda seorang programmer yang lebih baik, tetapi ketika Anda memiliki tingkat ITU, Anda kemungkinan besar akan menggunakan emacs (atau vi)

: - /

Hal yang baik tentang kedua (saya belum pernah menggunakan emacs sebelumnya, tapi saya masih menggunakan vi untuk tugas yang paling biasa) adalah kenyataan, mereka tidak mengganggu jalan pikiran Anda Anda, Anda tidak perlu mengeluarkan tangan Anda dari keyboard untuk mengambil mouse, dan berburu di menu file untuk opsi yang benar. Anda hanya, terus menulis. Di dalam pikiran Anda, Anda mengatakan sesuatu seperti: "Ganti semua kemunculan kata ini untuk itu", tekan enter dan lanjutkan dengan pekerjaan Anda.

Selain itu, saya tidak berpikir mereka menggunakan emacs adalah satu-satunya alat mereka.

Apakah ini akan membuat Anda menjadi programmer yang lebih baik? Mungkin tidak. Tetapi ketika Anda memiliki tingkat keahlian itu, mungkin Anda akan menyukai seberapa cepat Anda bisa membuat kode menggunakan alat-alat itu.

OscarRyz
sumber
Berburu di menu adalah untuk orang yang tidak tahu IDE. Saya tidak tahu kapan terakhir kali saya harus "berburu" untuk opsi menu.
kisah
Jadi menurut Anda apakah menggunakan "File-> Save" lebih baik daripada Ctrl-S? Saya kira tidak. Harus mengambil mouse, klik pada file Menu dan kemudian gerakkan mouse ke bawah untuk Simpan entri sepertinya banyak bagi saya ketika Anda dapat melakukannya tanpa mengambil tangan keyboard.
OscarRyz
jelas saya setuju. Semua IDE yang saya gunakan memiliki hotkey dan kombinasi yang luas dan dapat disesuaikan seperti halnya emacs.
kisah
2

Tidak.

Disiplin, pemikiran kritis dan keinginan untuk perbaikan diri akan membuat Anda menjadi programmer yang lebih baik. Kumpulan alat Anda, yang merupakan faktor utama dalam produktivitas Anda, tidak akan menciptakan kejeniusan.

Jika Anda tidak suka emacs atau vi, jangan gunakan mereka. Dengan membuat pilihan sadar untuk tidak melakukannya, Anda membentuk lingkungan pengembangan Anda agar sesuai dengan kebutuhan dan praktik kerja Anda sendiri. Bagaimanapun, Anda berhak menggunakan apa yang Anda suka - dan abaikan siapa saja yang cukup bodoh untuk mencaci maki Anda untuk alat yang Anda gunakan untuk menulis bit ke disk - itu adalah bit yang penting.

Catatan: "Kumpulan alat" di sini berarti, secara harfiah, "merek" alat - editor khusus, penyusun, dll. Kumpulan alat konseptual, misalnya penggunaan kontrol versi, pengujian unit - semuanya pada umumnya - adalah bagian dari self proses perbaikan.

rampok
sumber
2

Salah satu fitur hebat dari emacs adalah ia dapat menangani hampir semua jenis file yang Anda gunakan, dengan ukuran berapa pun. Memang, jika Anda membuka file terenkripsi besar yang gila, itu tidak selalu berguna tetapi akan terbuka. Kebanyakan editor (dan IDE) akan memberi Anda sakit hati besar jika Anda memberikan mereka file yang terlalu besar dan / atau tidak salah satu format yang diharapkan.

Sebagai contoh, coba buka file 1 Gig di Notepad.

Saya mulai menggunakan Emacs di suatu tempat sekitar tahun 1980 dan selalu menjadi alat di kotak alat saya. Ini bukan satu - satunya alat tetapi selalu sesuatu yang bisa saya lihat dan tahu bahwa saya akan bisa menyelesaikan pekerjaan yang bermanfaat.

Komentar peradangan yang wajib : Di sisi lain, saya tidak punya hal baik untuk dikatakan tentang vi. Saya selalu merasa bahwa vi akan dengan senang hati membunuh saya dan menjual organ saya hanya karena dendam ....

Dalam kehidupan nyata, saya menggunakan Netbeans untuk hampir semua bentuk pengembangan dan saya menggunakan emacs sekarang dan kemudian untuk membuat edit cepat. Hampir tidak ada apa pun di luar sana yang sama mudahnya dengan emacs (bagi saya) dalam hal mendapatkan sesuatu yang gila dilakukan sekarang.

Adakah yang harus mengedit string statis dalam executable biner yang dikompilasi? Apakah ada alat yang lebih baik untuk hal semacam itu daripada emacs? Itu pasti bekerja untuk saya.

Bob Cross
sumber
1
Sedangkan Visual Studio akan benar-benar kehilangan kesempatan itu, dan sebagai gantinya puas dengan rifling melalui dompet Anda untuk melihat apakah ada uang tunai cadangan.
Rob
Maaf saya tidak tahu. Saya menggunakan Netbeans hampir sepanjang waktu dan emacs saat saya membutuhkannya.
Bob Cross
2

Saya tahu Anda tidak menanyakan hal ini, tetapi satu hal yang dipelajari emacs (secara tidak terduga) membaik bagi saya adalah memanipulasi baris perintah. Sebelum saya belajar emacs keybindings, saya biasa menggerakkan kursor dan menavigasi sejarah menggunakan kunci kursor karena saya tidak tahu apa-apa. Itu adalah momen bola lampu ketika saya menyadari bahwa saya dapat menggunakan backward-word, move-beginning-of-linedan backward-kill-word(yang selalu saya yakiniC-w , seperti yang disarankan Stevey ) bash( M-tsering juga bermanfaat, dan paling mengesankan bagi mereka yang belum pernah melihatnya sebelumnya).

Saya melakukan cukup banyak pekerjaan pada Solaris, di mana shell root adalah "shell posix", dan tidak memiliki binding emacs secara default. Saya menemukan bahwa jari-jari saya sekarang mengetik exec bashdengan sendirinya, setiap kali saya masuk, saya merasa jauh lebih cepat dengan perintah pengeditan yang sekarang sudah dikenal di bawah jari saya.

Namun harus saya akui, saya masih menemukan buku-buku Knuth sulit (meskipun sepadan) - jadi saya tidak berpikir itu secara ajaib meningkatkan pemrograman saya.

Tom Dunham
sumber
Sobat, saya benar-benar perlu belajar lebih banyak dari trik-trik itu ... Pokoknya, tidak bisakah Anda mengubah shell login Anda, atau apakah Anda benar-benar bermaksud "shell untuk pengguna root" ketika Anda mengatakan "shell root"? Jika demikian, mengapa Anda masuk sebagai root ???
SamB
2

Emacs membuat saya lebih efisien dalam manipulasi teks dan navigasi sistem file. Dan karena kedua hal ini terlibat ketika saya memprogram, itu membuat saya seorang programmer yang lebih efisien (jadi lebih baik).

Steve
sumber
2

Saya pikir Emacs dapat menjadikan Anda seorang programmer yang lebih baik, meskipun secara tidak langsung. Saya pikir Emacs membuat saya benar-benar menulis dalam bahasa fungsional ( Elisp ) yang membuat saya tertarik pada bahasa fungsional lainnya ( Clojure ) yang saya katakan akan menjadikan saya seorang programmer yang lebih baik. Yang mengatakan, saya kira waktu akan memberi tahu.

Peter Mortensen
sumber
Ini adalah gaya Lisp yang benar-benar tua (dengan hanya dinamis dan tidak ada pelingkupan leksikal), tetapi tentu saja memiliki banyak hal untuk diajarkan. Itu, dan itu bisa menjadi editor teks yang cukup bagus pada hari-hari yang benar-benar berfungsi dengan baik!
SamB
1

Mampu menggunakan beberapa editor yang dapat disesuaikan memungkinkan Anda untuk melakukan hal-hal yang bagus, tetapi emacs khususnya belum tentu Yang Terbaik Mungkin. Saya sendiri pengguna SlickEdit, saya melakukan semua hal setengah otomatis yang sama dan aneh yang terkenal dengan emacs. Saya telah melihat orang melakukan hal serupa dengan vi dan berbagai editor berbasis Windows.

Jadi, yeah, soket sangat bagus, tetapi berpendapat bahwa Craftsman membuat One True Socket Set agak bodoh.

mjfgates
sumber
Sebagai tambahan, saya mungkin akan mencoba SlickEdit jika bukan karena pemasaran braindead: "10 alasan untuk tidak menggunakan SlickEdit - # 1: Anda suka menjadi programmer yang buruk. # 2: Anda ingin menghabiskan lebih banyak untuk melakukan kurang. # 3: Anda orang bodoh bawaan, dll, dll, dll "
Juliet
Saya masuk ke Slick sebelum pemasarannya; hanya saja itu satu-satunya editor nyata yang berjalan di bawah OS / 2 3.0 pada saat itu. Yang mungkin tentang alasan yang sama bahwa semua orang-orang lain menggunakan emacs ...
mjfgates
1

Menguasai binding kunci Emacs dan fungsi-fungsi bawaannya akan memungkinkan Anda untuk memanipulasi teks lebih cepat daripada IDE seperti Eclipse atau Visual Studio.

Jangan mengambil kata-kata saya untuk itu, lihat video pro ini menggunakan Emacs .

Setelah Anda mencapai tingkat yang layak di Emacs, Anda dapat secara efektif mengedit bahasa apa pun: Java Script, Java, Ruby, Python, HTML, C, C ++, dll.

Memulai dengan Emacs adalah rasa sakit di pantat, pengalaman di luar kotak lebih buruk daripada buruk. Konfigurasi default Emacs tidak memunculkan pemula Emacs ke fitur yang lebih kuat (hippie-expand, etags, yasnippets, dll) dari Emacs. Saya sarankan mulai dengan file dot Emacs Starter Kit .

Alasan lain bahwa Steve Yegge mengklaim bahwa programmer terbaik dunia menggunakan Emacs, adalah elisp. Elisp memungkinkan programmer berpengalaman kekuatan untuk dengan mudah memperluas Emacs. Menulis ekstensi di Eclipse atau Visual Studio secara signifikan lebih sulit daripada menulis fungsi cepat atau bahkan mode minor baru di elisp.

Justin Tanner
sumber
pertanyaannya adalah mengapa mulai menggunakannya sama sekali? Jika seseorang bahagia, nyaman dan produktif, mengapa membuang-buang waktu dan upaya belajar emacs? Saya lebih suka belajar bahasa pemrograman baru atau meneliti teknologi baru daripada belajar editor lama, meskipun yang kuat. Hanya ada 24 jam sehari, gunakan waktu dengan bijak.
sarsnake
Satu hal lagi yang ingin saya perhatikan bahwa itu juga tergantung pada teknologi yang Anda gunakan. Apakah Emacs memiliki Kecerdasan? Saya menggunakannya di kampus pada mesin UNIX dan saya yakin itu telah berubah sejak saat itu. Tetapi untuk. NET Intellisence adalah suatu KEHARUSAN. Tidak ada cara siapa pun dapat mengingat SEMUA nama fungsi di semua kelas di semua ruang nama. Dan saya yakin tidak akan menggunakan MSDN setiap kali saya perlu mencari nama fungsi. Jika Emacs menawarkan Intellisence, saya akan mempertimbangkannya.
sarsnake
1

Saya percaya ini adalah kesalahpahaman besar bahwa menggunakan editor berbasis teks seperti VI dan Emacs ini dipandang tinggi atau diperlukan untuk menjadi "programmer hebat". Saya selalu merasa IDE lebih kuat daripada biasanya, dan itu benar-benar menurunkan preferensi dan gaya.

Bryan
sumber
0

Saya menggunakan emacs di perguruan tinggi. itu sekitar 16 tahun yang lalu. Saya belum melihat ke belakang. Meskipun saya berharap saya masih bisa merasa nyaman dengan emacs, kenyataannya adalah saya cukup produktif dengan MS IDE saya.

teks yang Anda posting hanyalah troll. Ya. Tidak ada alasan lain selain memulai perang agama.

Tim
sumber
0

Saya mulai dengan emacs tetapi beralih ke vi yang bagi saya lebih elegan karena kesederhanaannya. Juga jika Anda pernah terjebak dalam mode pengguna tunggal, perintah ed adalah bagian dari perintah vi. Saya tidak tahu apakah emacs bisa mengatasinya.

Jadi dalam hal itu saya pikir vi membuat Anda seorang programmer yang lebih baik ..

klyde
sumber
Emacs APAKAH memiliki Mx vi-mode meskipun, saya menduga bahwa itu adalah semacam lelucon ...
Brian Postow
Mengetahui dasar-dasar vi sangat penting untuk melakukan sysadminning. Namun itu bukan pemrograman.
Xiong Chiamiov