Apa yang membenarkan penggunaan IDE versus editor standar? [Tutup]

39

Saya menemukan diri saya menggunakan editor teks pilihan saya (vim, nano, gedit, pilih racun Anda) lebih sering daripada IDE apa pun akhir-akhir ini.

Setelah melihat jalan pintas ide saya menjadi berdebu, saya mulai berpikir tentang hal ini dan bertanya-tanya: apa yang membenarkan penggunaan IDE untuk Anda yang menentang editor teks ?

Untuk alasan apa Anda akan memiliki untuk tidak menggunakan IDE dan hanya mengandalkan editor?

Chris
sumber
kemungkinan duplikat dari programer.stackexchange.com/questions/1003/… ?
Larry Coleman
apa yang sebenarnya Anda lakukan di editor Anda?
Tulis kode, kembangkan aplikasi, ... hampir semuanya akhir-akhir ini.
Chris
15
Secara pribadi, saya menemukan IDE jauh lebih berguna ketika membaca kode orang lain (terutama proyek besar) daripada ketika menulis kode saya sendiri. IDE memungkinkan Anda menavigasi sumber lebih mudah, membuatnya lebih mudah untuk dengan cepat memahami kode sumber orang lain.
Charles Salvia
3
Saya ingin membalikkan pertanyaan. Apa yang membenarkan TIDAK menggunakan IDE.
Nailer

Jawaban:

70

I: integrasi . Editor teks yang bagus mungkin bagus untuk menulis kode, tetapi sebagian besar pemrograman Anda tidak digunakan untuk menulis; ini digunakan untuk menguji dan men-debug, dan untuk itu Anda ingin editor teks Anda berintegrasi dengan kompiler dan debugger Anda. Itulah kekuatan terbesar IDE.

Mason Wheeler
sumber
Kalau saja saya bisa menemukan satu yang tidak menghalangi saya :)
Tim Post
5
Saya baru saja menerima pengeditan sub-par sebagai harga yang saya bayarkan untuk kenyamanan integrasi.
TMN
Bukankah menguji pemrograman jika Anda melakukannya dengan benar? Jika Anda menghabiskan sebagian besar waktu Anda debugging dan pengujian monyet, maka saya pikir saya melihat di mana masalah Anda.
Tom Hawtin - tackline
8
@ Tom, Pengujian adalah pemrograman ketika Anda dapat mengotomatiskan tes yang Anda lakukan sepanjang waktu. Kalau tidak, verifikasi dengan metode apa pun menghasilkan kualitas terbaik.
Andres Jaan Tack
49

Ini adalah fitur favorit saya dari IDE favorit saya, IntelliJ, yang saya suka gunakan untuk Java, PHP, Javascript, HTML, bahkan ActionScript.

  • Pemeriksaan kesalahan - Seperti pemeriksaan ejaan untuk kode. Sangat esensial.
  • Navigasi kode - Ctrl+clickpada fungsi, variabel, ketik untuk pergi ke definisi. (IntelliJ sangat pandai dalam hal ini dalam semua bahasa di atas)
  • Penyelesaian kode - Saya menggunakan Ctrl+spaceterus-menerus untuk membantu mengisi kelas atau nama metode yang saya butuhkan. Ini mempercepat pengkodean satu ton , dan bahkan membantu menangkap bug sebelum terjadi ketika sesuatu yang Anda butuhkan tidak dapat diakses dari konteks tempat Anda berada. IntelliJ bahkan akan membantu Anda memperluas akronim - ketik NPE, tekan Ctrl+space, dan itu akan menampilkan "NullPointerException", "NoPageError", dll. Menekan Alt+enteruntuk menambahkan secara otomatis importjuga sangat bagus.
  • Pembuatan kode - Menghasilkan getter dan setter, menerapkan metode dari antarmuka dengan beberapa klik.
  • Pewarnaan kode yang sangat bagus - IntelliJ tidak hanya kata kunci standar, string, pewarnaan nama variabel, tetapi juga warna variabel anggota, variabel lokal, parameter. Dalam ActionScript, variabel yang sebenarnya adalah setter / pengambil akan diwarnai seperti fungsi.
  • Refactoring - Mengganti nama bebas kesalahan adalah yang terbesar. IntelliJ sangat baik dalam mengganti nama bahkan setter dan getter atau penggunaan string. Tentu saja ada pencarian dan penggantian berbasis regex saat Anda membutuhkannya, dan opsi "simpan case" untuk memungkinkan Anda mengganti "myNumber", "MyNumber" dan "MYNUMBER" dengan "myString", "MyString" dan "MYSTRING" dalam satu operasi
  • Integrasi kontrol versi - Kami menggunakan SVN, dan fitur IDE VC favorit saya dapat membuat, menghapus, memindahkan kelas tanpa memikirkan SVN, riwayat penelusuran yang mudah, alat bantu yang sangat bagus, kemampuan penggabungan yang baik, dan anotasi file (menunjukkan garis- by-line history) di editor.
  • Mengimpor ketergantungan - Saat mengandalkan pustaka pihak ketiga tempat Anda memiliki sumbernya, Anda dapat menavigasi ke kode dengan mudah untuk referensi, debugging, dll.
  • Pengetikan cerdas - menempelkan kode dan secara otomatis menempel ke posisi tab yang tepat, penyelesaian otomatis tanda kurung akhir, tanda kurung, tanda kutip, dll.
  • Test runner yang sangat bagus untuk JUnit, FlexUnit, PHPUnit
  • Debugging - tentu saja. Debugs JBoss, Jetty, bahkan Flash dengan sempurna. Ctrl + klik tumpukan jejak untuk langsung ke kode.

Hal-hal seperti pewarnaan kode yang Anda terima begitu saja, tetapi pewarnaan kode yang baik seperti visi periferal - ini memungkinkan Anda untuk fokus pada hal-hal penting tanpa mengambil sepersekian detik ekstra untuk mengidentifikasi kata lengkap.

IntelliJ juga menggunakan Ctrl+spaceuntuk menyarankan nama variabel. Di Jawa, jika Anda mendeklarasikan variabel EventMessageItem baru dan tekan Ctrl+space, itu akan menyarankan "eventMessageItem", "eventMessage", "item", dll.

Semua hal ini memberi saya cara lebih banyak waktu untuk berpikir tentang kode saya dan arsitektur, dan berpikir kurang tentang memperbaiki format, berurusan dengan sistem file, memperbaiki copy-dan-paste kesalahan, beralih antara aplikasi, memburu dokumentasi, dll dll Saya tidak tahu bagaimana Anda bisa mengatakan tidak pada peningkatan produktivitas semacam itu.

Nicole
sumber
4
+1 untuk menyebutkan IntelliJ Idea - Saya suka itu
artjom
3
+1, sebagian besar poin di sini berlaku untuk IDE yang layak, atau seharusnya :)
Matthieu
21

IDE memahami kode Anda jauh lebih baik daripada editor. Hal ini memungkinkan misalnya untuk penyelesaian dan refactoring pengidentifikasi, yang untuk bahasa verbose seperti Java adalah pengiriman Tuhan,

pengguna1249
sumber
1
Perhatikan bahwa semua pemahaman ini membutuhkan memori untuk disimpan. Karenanya IDE cenderung haus sumber daya yang cukup dibandingkan dengan editor "fit-on-a-floppy".
19
Ya, tapi mesin dev 8Gb i7 saya perlu melakukan sesuatu saat saya mengetik. : D
Dominique McDonnell
IDE tidak harus haus sumber daya. Tapi Smalltalk mungkin merupakan ujung tombak: sintaksisnya mudah, sangat sederhana, dan sebagainya.
Frank Shearar
@ Terus terang, tergantung pada apa yang Anda ingin mereka lakukan dan betapa mudahnya itu.
18
[To the IDE] You had me at intellisense/autocomplete
JohnFx
sumber
1
+1 Meskipun selalu membingungkan untuk menyadari bahwa saya tidak pernah mengetikkan kelas penuh, metode, atau nama properti lagi, dan tahu persis berapa banyak penekanan tombol yang diperlukan untuk memilih opsi autocomplete yang benar ... tic-tic-tic-TAB- dot-tic-tic-tic-TAB-dot-tic-tic-tic
grossvogel
5
@ross, tapi itu benar ! Mengetik secara manual seringkali menyiratkan kesalahan pengetikan.
@ TThorbjørnRavnAndersen Kecuali Anda memiliki dua hal yang bernama sama, dan secara tidak sengaja tidak cukup mengetik karakter untuk mendapatkan yang benar. Saya tidak sengaja memasukkan properti "NumberOfPoints" di beberapa area yang membutuhkan "NumberOfSegments" karena tidak memperhatikan cukup dekat dengan pelengkapan otomatis saya: hlm. Yang sedang berkata, saya lebih suka memiliki autocomplete daripada tidak.
KChaloux
14

Produktifitas. Apakah ada pembenaran lain yang masuk akal? Bagi saya, IDE yang dirancang dengan baik yang memusatkan banyak fungsi yang saya lakukan saat pemrograman - membuat dan mengedit kode, menggunakan kontrol sumber, debugging, berinteraksi dengan alat manajemen proyek, berkomunikasi dengan programmer lain, membuat dokumentasi, menjalankan tes otomatis - secara dramatis mengurangi gesekan proses yang mengurangi produktivitas saya.

Selain itu, meskipun saya merasa perlu tahu cara menggunakan setiap alat secara terpisah, saya tidak mau harus melakukannya. Bagi saya setidaknya, klik kanan mouse jauh lebih baik daripada membuka CLI dan mengetik.

Saya telah menggunakan banyak, tetapi IDE yang saya kembali lagi dan lagi adalah Visual Studio, Wing IDE dan NetBeans. Semua menambah nilai signifikan pada waktu yang saya habiskan untuk pemrograman.

Adam Crossland
sumber
9

Secara historis, IDE memberikan kenyamanan tak tertandingi pada komputer satu-tugas. Kompiler C pertama saya memerlukan langkah-langkah berikut dalam siklus edit-kompilasi-lari:

  • Mulai editor
  • Edit program
  • Simpan program, keluar dari editor
  • Kompilasi program
  • Merakit program yang dikompilasi
  • Tautan program yang dikompilasi dan dirakit
  • Jalankan program

pada sistem CP / M saya. (Saya bisa mengotomatisasi banyak dari itu sebagai program batch memiliki disk drive saya lebih besar.)

Ketika saya mendapat Turbo Pascal, saya senang bisa menjaga editor tersedia saat kompilasi dan debugging.

Saya percaya, itulah yang membuat IDE populer.

David Thornley
sumber
Tetapi semua hal itu dapat dilakukan dari banyak editor; Emacs, misalnya.
JasonFruit
@JasonFruit: Tentu saja. Saya menjelaskan apa yang pertama kali membuat saya tertarik pada mereka. Pada saat itu, saya menjalankan CP / M pada TRS-80 Mod 4, dan saya percaya Emacs masih berbasis TECO saat itu.
David Thornley
Oke, tunjukkan. :-) (Emoticon untuk mengisi jumlah karakter yang diperlukan.)
JasonFruit
2
@JasonFruit, mesin CP / M-80 memiliki maksimum 64 Kb RAM. Pertimbangkan berapa banyak Emacs yang dapat Anda masukkan ke dalamnya.
7

Jika Anda kode dalam Lisp, Emacs memiliki kemampuan Intellisense seperti mencari parameter metode dan pelengkapan otomatis, sehingga Anda dapat mengatakan itu adalah IDE asli. Senang juga dapat menggunakan satu program untuk banyak tugas (mengedit secara umum, prompt shell / command, membaca berita).

Secara umum, pertanyaan editor vs IDE tampaknya tergantung pada bahasa pemrograman. Dari apa yang saya lihat, Ruby dan Haskell coders, misalnya, tampaknya lebih menyukai editor teks favorit mereka.

Larry Coleman
sumber
Emacs benar-benar dapat melakukannya dalam hampir semua bahasa. Mode PHP cukup bagus, adalah mode untuk Javascript, Haskell, Erlang dan SQL. (Yang lain mungkin baik juga, tapi saya belum menggunakannya).
Zachary K
Setelah Anda menambahkan semua lonceng dan peluit itu ke emacs (atau editor apa pun), apa yang Anda miliki adalah IDE. Lingkungan Pengembangan Terpadu. Saya membandingkannya dengan membeli kue dari toko roti (IDE) versus membuatnya dari awal (Editor terbohong)
sal
+1, Untuk Coq, Haskell, dan Lisp Emacs adalah satu-satunya hal dengan dukungan yang layak
Daniel Gratzer
4
  • Kompilasi satu-klik
  • Debugging
  • Templat kode
  • Pelengkapan kode
  • Integrasi dengan kontrol versi dan alat refactoring
  • Pengujian unit yang lebih sederhana

untuk beberapa nama

ysolik
sumber
3

Saya pikir jawabannya akan sangat tergantung pada bahasa pemrograman yang Anda gunakan dan seberapa baik Anda melakukannya. Untuk bahasa-bahasa seperti JAVA, suatu IDE adalah keharusan jika Anda melakukan sesuatu yang serius. Di mana pun ketika datang ke bahasa scripting seperti JS atau Ruby IDES tidak banyak digunakan.

Saya menggunakan notepad ++ dan satu set skrip shell (untuk backup, git commit) untuk pengembangan saya dan berfungsi dengan sangat baik.

Biksu Timur
sumber
Saya menggunakan GVIM untuk Javascript dan menemukan bahwa JAUH lebih cepat daripada menggunakan IDE. Ini juga menggunakan memori jauh lebih sedikit. Tambahkan sekitar 3-4 skrip shell untuk hal-hal seperti jsLint, format, dan mengendalikan selenium dan saya menemukan bahwa saya hampir tidak perlu melepaskan tangan dari keyboard. (Dan sejujurnya saya mungkin bisa mengubah semua skrip tersebut menjadi plugin VIM jika saya peduli)
Zachary K
3

Beberapa argumen yang mendukung "editor":

  1. Ada kasus di mana IDE belum dikembangkan atau tidak akan pernah ada.
  2. Dengan editor, Anda dapat membuat perubahan "lebih cepat" dan lebih pembedahan.
  3. Dibutuhkan jauh lebih sedikit sumber daya (sehingga lebih mudah untuk menggunakan banyak yang terbuka pada saat yang sama)
  4. Karena itu adalah satu-satunya cara untuk menyelesaikan beberapa masalah seperti yang dijelaskan di sini .
  5. (pribadi) Kadang-kadang ketika saya harus mengetik semuanya, saya bekerja lebih banyak menggunakan kesadaran saya dan lebih tertarik pada apa yang saya ketik. Banyak kali saya menemukan misalnya kesalahan ejaan dalam suatu metode (formaqString), yang akan luput dari perhatian menggunakan IDE.
  6. Itu membuatnya lebih mudah untuk bekerja hanya dengan menggunakan keyboard (kecepatan / aliran)
  7. Mentalitas menggunakan makro atau penghemat waktu lainnya.

Saya menggunakan IDE setiap hari untuk bekerja, sulit untuk menulis Java / C # sebaliknya.

(2) dibandingkan dengan (3): Pada dasarnya hanya opsi untuk mengedit file dari jarak jauh (lebih dari ssh / desktop jarak jauh) dan melakukan perubahan minimal pada konfigurasi server atau file yang jauh.

Dimitrios Mistriotis
sumber
2

Tergantung tentu saja pada bahasa Anda, beberapa IDE juga menyertakan perancang Formulir / Jendela visual.

Meskipun harus ditunjukkan, garis antara editor teks programmer dan IDE bukanlah yang didefinisikan dengan baik. Banyak editor dapat diperluas untuk menangani kompilasi, penyelesaian kode, debugging, dll.

GrandmasterB
sumber
2

Saya menggunakan IDE untuk pengujian / debugging / integrasi dan KEDIT untuk mengedit karena IDE sangat kurang dalam kemampuan mengedit.
Karena .NET IDE mengenali pengeditan eksternal, yang perlu saya lakukan adalah menyimpan di editor dan menerima prompt untuk memuat ulang sumber. Ini memungkinkan saya untuk mengoptimalkan kemampuan mengedit dan debugging saya pada saat yang sama.
Untuk IDE lain saya menggunakan KEDIT sebagai prosesor template dan program pencarian sumber dan menyalin / menempelkan sumber itu ke dalam IDE.

Dave
sumber
Apa yang Anda lakukan dalam kedit yang tidak dapat dilakukan oleh IDE? Saya benar-benar ingin tahu, karena tidak pernah benar-benar menggunakan apa pun kecuali IDE untuk sebagian besar pengkodean serius saya ...
Dean Harding
KEDIT, seperti editor pintar lainnya, memiliki kemampuan scripting yang memungkinkan saya melakukan hal-hal yang tidak dapat dilakukan oleh IDE. Sebagai contoh, saya menggunakan KEDIT untuk melakukan beberapa buffer (hingga 100 per sesi kedit) menyalin dan menempel dan mengedit kolom yang bahkan tidak dapat didekati oleh IDE.
Dave
1

Untuk IDE:
- fitur canggih dilengkapi kabel di luar kotak.
--Beberapa fitur sangat spesifik untuk kerangka kerja Anda sehingga editor tidak memiliki yang setara.

Untuk editor: -
Pertahankan tangan Anda pada keyboard.
- Lingkungan dev Anda sama di semua sistem -
Lebih baik skrip untuk editor Anda
- Beberapa fitur IDE tersedia dengan alat eksternal atau skrip. (Intellisense, definisi goto, cari referensi)

mike30
sumber
0

Kurva belajar singkat. Itu dia.

nate c
sumber
4
Saya kira Anda belum memaksimalkan IDE apa pun
Harald Scheirich
4
Dengan vim sebagai co-pilot saya, saya tidak perlu melakukannya.
nate c
Kurva pembelajaran singkat untuk ....? maafkan saya, tapi ini tidak jelas bagi saya.
Chris
0

Satu-satunya yang saya benar-benar merekomendasikan adalah debugger. IDE sebenarnya adalah editor yang memuat banyak gubbin lain, tetapi jika Anda dapat mengompilasinya dengan mengetikkan make (atau panah + enter) dalam command prompt, maka Anda tidak memerlukan IDE. Jika Anda dapat berkomitmen ke SCM dengan mengklik kanan di explorer dan memilih item menu yang tepat, Anda tidak perlu IDE.

Sekarang saya tahu beberapa orang memerlukan hal-hal seperti dukungan refactoring (menulis kode Anda dengan benar pertama kali :)) atau beberapa desainer GUI terintegrasi (tetapi bahkan kemudian, menggunakan Visual Studio saya menggunakan Expression untuk melakukan pekerjaan GUI saya, bukan dukungan XAML jelek di VS ), dan banyak orang memerlukan intellisense dan autocomplete (terutama untuk bahasa verbose seperti Java dan C # yang memiliki nama allah mungkin panjang jauh).

Tetapi bagi saya, debugger GUI adalah satu-satunya alasan yang sangat baik untuk menggunakan IDE. Saya masih menggunakan debugger 'command-line' (well, windbg) tetapi untuk hari-hari, itu adalah yang bawaan untuk VS.

gbjbaanb
sumber
0

Ada manfaat untuk IDE. Tidak semua bahasa memiliki IDE komprehensif untuk benar-benar memberi tip skala atau bisa jadi sangat sulit untuk membuatnya untuk bahasa tersebut. Alasan mengapa ingin IDE? Baiklah mari kita mulai dengan ini:

  • Bahasa ini memiliki API standar kaya yang di popup IDE dapat membantu mempercepat pengembangan.
  • Ada banyak kode boiler-plate. (Percobaan / tangkapan paksa, getter / setter, dll)
  • Pelengkapan otomatis dapat secara akurat memenuhi kebutuhan pengkodean Anda
  • Suite pengujian unit bahasa Anda terintegrasi ke dalam IDE tersebut.
  • IDE sadar dan mendukung banyak perpustakaan umum bahasa mengenai praktik terbaik.
  • Plugin tersedia untuk membuat mo'betta berfungsi
  • Tidak terlalu berat karena memperlambat sistem Anda
  • Debugger yang sangat terintegrasi? Itu membantu.

Masalahnya adalah tidak semua bahasa benar-benar mendapatkan keuntungan produktivitas besar dari IDE yang komprehensif. Saya menggunakan IDE untuk beberapa pekerjaan yang saya lakukan (Java, C #) tetapi tidak untuk yang lain (Python, Ruby, Coldfusion). Itu semua benar-benar tindakan penyeimbangan. Beberapa bahasa tidak membutuhkan paket yang begitu komprehensif.

Apakah ada IDE untuk masing-masing? Yakin. Apakah Anda selalu membutuhkannya? Tidak juga.

Rig
sumber