Mengapa saya harus menggunakan IDE? [Tutup]

391

Dalam pertanyaan lain, Mark sangat memuji IDE, mengatakan "beberapa orang masih tidak tahu" mengapa "mereka harus menggunakan satu ...". Sebagai seseorang yang menggunakan vim untuk pemrograman, dan bekerja di lingkungan di mana sebagian besar / semua kolega saya menggunakan vim atau emacs untuk semua pekerjaan mereka, apa kelebihan IDE? Mengapa saya harus menggunakannya?

Saya yakin ini adalah masalah bagi sebagian orang, dan saya tidak tertarik memulai perang api, jadi tolong jawab saja dengan alasan Anda yakin pendekatan berbasis IDE lebih unggul . Saya tidak tertarik mendengar mengapa saya tidak harus menggunakan IDE; Saya sudah tidak menggunakannya. Saya tertarik mendengar dari "sisi lain pagar", jadi untuk berbicara.

Jika Anda berpikir bahwa IDE mungkin cocok untuk beberapa jenis pekerjaan tetapi tidak untuk yang lain, saya juga tertarik untuk mendengar alasannya.

Simon Howard
sumber
1
Terima kasih telah menghubungi saya melalui blog saya, seharusnya ada sistem pesan pribadi di situs ini!
Tandai
11
emacs adalah contoh buruk. Sulit menemukan fitur IDE yang kurang dimiliki emacs. Perbedaannya adalah apa yang tersedia di luar kotak dan apa yang membutuhkan penyesuaian.
jfs
8
IDE tidak berguna, programmer nyata menggunakan vim
30
Jadi, sudahkah Anda mulai menggunakan IDE karena komentarnya?
Aftershock
1
Kadang-kadang Anda tidak punya pilihan selain menggunakan IDE :(
Lorem Ipsum Dolor

Jawaban:

537

Ini benar-benar tergantung pada bahasa apa yang Anda gunakan, tetapi dalam C # dan Java saya menemukan IDE bermanfaat untuk:

  • Menavigasi dengan cepat ke jenis tanpa perlu khawatir tentang namespace, proyek, dll
  • Menavigasi ke anggota dengan memperlakukan mereka sebagai hyperlink
  • Pelengkapan otomatis saat Anda tidak dapat mengingat nama semua anggota dengan hati
  • Pembuatan kode otomatis
  • Refactoring (masif)
  • Atur impor (secara otomatis menambahkan impor yang sesuai di Jawa, menggunakan arahan dalam C #)
  • Jenis peringatan-saat-Anda (yaitu beberapa kesalahan bahkan tidak memerlukan siklus kompilasi)
  • Mengarahkan sesuatu untuk melihat dokumen
  • Tetap melihat file, kesalahan / peringatan / konsol / tes unit dll dan kode sumber semua di layar pada saat yang sama dengan cara yang bermanfaat
  • Kemudahan menjalankan unit test dari jendela yang sama
  • Debugging terintegrasi
  • Kontrol sumber terintegrasi
  • Menavigasi ke tempat kesalahan waktu kompilasi atau pengecualian waktu berjalan terjadi langsung dari detail kesalahan.
  • Dll!

Semua ini menghemat waktu. Itu hal-hal yang bisa saya lakukan secara manual, tetapi dengan lebih banyak rasa sakit: Saya lebih suka mengkode.

Jon Skeet
sumber
90
Saya kira emacs adalah IDE, lalu;)
Svante
97
Ketika bertindak seperti itu, saya akan mengatakan Vim dianggap sebagai IDE.
Jon Skeet
58
Dalam pengalaman saya, hal terbesar yang tidak dimiliki Vim dan Emacs dari IDE "nyata" (ya, saya tahu mereka bisa menjadi Greate Development Environment) adalah bagian peringatan-saat-Anda-ketik. Itu pada dasarnya berarti menanamkan kompiler canggih di editor dan saya tidak berpikir mereka mendapatkan tingkat integrasi.
Joachim Sauer
16
saua: apakah Anda sudah melihat Flymake, flymake.sourceforge.net ? Itu setidaknya memberikan beberapa fungsi peringatan-saat-Anda-ketik untuk Emacs
polyglot
62
Peringatan-saat-Anda-ketik, saya berasumsi John Skeet membutuhkan ini untuk memperingatkan IDE yang mencoba memperbaiki kode berikut ini akan menjadi upaya yang sia-sia.
cmcginty
100

Pelengkapan kode. Ini sangat membantu dengan menjelajahi kode.

Darren
sumber
107
Saya akan mengatakan penyelesaian kode bukan Intellisense
Hannoun Yassir
2
Kemudian lagi, saya bisa menekan Ctrl + P, memberi saya daftar dropdown dari sejumlah perintah yang vimmenurut saya bisa saya gunakan.
new123456
17
Lebih dari sekadar menjelajahi kode. Jika saya mengetik a. dan tidak ada yang muncul, itu berarti ada yang salah dengan kode saya; Saya biasanya bahkan tidak perlu mengkompilasi untuk menemukannya. Jika saya mengetik a. dan tidak mendapatkan apa yang saya harapkan, itu berarti saya menggunakan tipe yang salah, atau lupa membuat sesuatu internal atau publik, atau beberapa masalah lain seperti itu; Saya tidak harus lari untuk menemukan masalahnya. Intellisense sangat berguna untuk menemukan kesalahan sesegera mungkin.
Ryan Lundy
1
Bagaimana ini jawabannya? Ketika Anda membacanya dengan keras, itu terdengar seperti slogan Microsoft yang buruk ...
Kolob Canyon
Ok ... YouCompleteMe, Deoplete ... Jika Anda ingin bahwa jenis kode selesai. Saya tidak tahu tentang ini untuk Emacs. Juga Vim memiliki penyelesaian otomatis luar biasa yang saya lewatkan saat menggunakan editor lain.
JakeD
85

Jawaban singkat mengapa saya menggunakan IDE adalah kemalasan.

Saya seorang pemalas yang tidak suka melakukan hal-hal dengan cara yang sulit ketika ada cara yang mudah untuk melakukannya. IDE membuat hidup jadi mudah dan menarik bagi kita rakyat yang malas.

Saat saya mengetik kode, IDE secara otomatis memeriksa validitas kode, saya dapat menyoroti metode dan menekan F1 untuk mendapatkan bantuan, klik kanan dan pilih "pergi ke definisi" untuk melompat langsung ke tempat yang didefinisikan. Saya menekan satu tombol dan aplikasi, dengan debugger terpasang secara otomatis diluncurkan untuk saya. Dan begitulah daftarnya berlanjut. Semua hal yang dilakukan pengembang setiap hari dikumpulkan dalam satu atap.

Tidak perlu menggunakan IDE. Ini adalah pekerjaan yang jauh lebih sulit daripada tidak.

David Arno
sumber
Jika Anda menggunakan Visual Studio .NET, F12 dipetakan ke "Pergi ke definisi." (Saya baru saja menemukan itu) Jadi Anda tidak perlu mengklik kanan untuk mendapatkannya. 8)
Knobloch
@ Kenobloch, saya cenderung menggunakan VS2008 dan Eclipse. Sebelumnya saya banyak menggunakan FlashDevelop. Pintasan "Go to definition" berbeda untuk ketiganya, jadi saya cenderung mengandalkan mengklik kanan :)
David Arno
Dan Anda bisa akrab dengan mengklik kanan pada bilah menu, dan memilih Customize / Keyboard Shortcuts.
dkretz
19
Ini bukan hanya masalah kemalasan :) - sebuah IDE menghemat waktu yang berharga dan karenanya meningkatkan produktivitas.
Alex Schimp
Selain itu, sebuah IDE siap digunakan, seseorang tidak perlu mengatur banyak hal sulit untuk membuatnya produktif.
Akira Yamamoto
56

Saya tidak berpikir itu adil untuk melakukan klasik "editor teks dan jendela konsol vs IDE" ketika "editor teks" benar-benar emacs. Sebagian besar fitur yang khas untuk IDE: s juga ada di emacs. Atau mungkin mereka bahkan berasal dari sana, dan IDE modern: terutama perbaikan / penyederhanaan antarmuka.

Ini berarti bahwa untuk pertanyaan awal, jawabannya tidak begitu jelas. Itu tergantung pada bagaimana orang-orang di situs tersebut menggunakan emacs, jika mereka terutama menggunakannya sebagai editor teks, atau jika mereka pergi keluar semua dan menggunakan skrip kustom, mempelajari perintah untuk mode yang relevan, tahu tentang penandaan kode dan sebagainya.

beristirahat
sumber
9
Ya, itu bukan generalisasi yang aman. Saya menggunakan Emacs untuk semua fitur IDE yang disebutkan dalam jawaban ini.
jfm3
21
Saya pikir waktu yang diperlukan untuk mengkonfigurasi fitur seperti IDE dalam editor teks yang kuat bisa lebih baik menghabiskan pengkodean dalam IDE menggunakan fitur out-of-the-box.
jfs
6
Saya menggunakan vim seperti saya menggunakan IDE.
12
@ JF Sebastian: Masalahnya adalah, untuk meningkatkan produksi Anda harus mempelajari seluk-beluk IDE itu dan, jika Anda beralih bahasa dan menggunakan banyak alat yang berbeda, itu bisa menjadi masalah. Saya telah belajar vim saat ini dan, meskipun sulit untuk membiasakan diri pada awalnya, dengan cepat terbayar ketika saya dapat menemukannya di sistem yang berbeda dan untuk banyak bahasa yang berbeda.
Isaac Nequittepas
7
@ JFSebastian: Saya pikir ini lebih produktif untuk mengkonfigurasi Emacs untuk melakukan hal-hal IDE daripada mengkonfigurasi IDE untuk melakukan hal-hal Emacs seperti navigasi, gelandangan, shell-mode, dired ... dll.
Tikhon Jelvis
51

Saya datang pada pertanyaan ini dari arah yang berlawanan. Saya dibesarkan dalam pemrograman dengan sangat sedikit pitstop di Makefile + Emacs land. Dari kompiler saya yang paling awal di DOS, Microsoft Quick C, saya punya IDE untuk mengotomatisasi sesuatu. Saya menghabiskan bertahun-tahun bekerja di Visual C ++ 6.0, dan ketika saya lulus ke Enterprise Java, saya bekerja dengan Borland JBuilder dan kemudian menetap di Eclipse, yang telah menjadi sangat produktif bagi saya.

Sepanjang otodidak awal saya, kuliah, dan sekarang karir profesional, saya menjadi tahu bahwa setiap pengembangan perangkat lunak utama yang dilakukan hanya dalam IDE menjadi kontraproduktif. Saya mengatakan ini karena sebagian besar IDE ingin Anda bekerja di dalamnyagaya I-control-how-the-world-yang aneh. Anda harus mengiris dan memotong-motong proyek Anda di sepanjang garis mereka. Anda telah mengelola pembangunan proyek menggunakan kotak dialog ganjilnya. Sebagian besar IDE mengelola dependensi build kompleks di antara proyek-proyek dengan buruk, dan dependensi mungkin sulit untuk dapat bekerja 100%. Saya telah dalam situasi di mana IDE tidak akan menghasilkan membangun kode saya kecuali saya melakukan Clean / Rebuild All. Akhirnya, jarang ada cara bersih untuk memindahkan perangkat lunak Anda dari pengembangan dan ke lingkungan lain seperti QA atau Produksi dari IDE. Biasanya festival klik untuk membuat semua unit penyebaran Anda dibangun, atau Anda memiliki alat yang canggung yang vendor IDE berikan kepada Anda untuk menggabungkan berbagai hal. Tapi lagi,

Saya telah belajar bahwa, untuk melakukan pengembangan skala besar dengan sebuah tim, kita bisa menjadi yang paling produktif jika kita mengembangkan kode kita menggunakan IDE dan melakukan semua pembangunan kita menggunakan skrip baris perintah yang ditulis secara manual. (Kami menyukai Apache Ant untuk pengembangan Java.) Kami telah menemukan bahwa menjalankan skrip kami dari IDE hanya dengan klik klik atau mimpi buruk otomatisasi untuk pembuatan kompleks, akan jauh lebih mudah (dan tidak terlalu mengganggu) untuk alt + tab ke + shell dan jalankan skrip di sana.

Pembuatan manual mengharuskan kita kehilangan beberapa keunggulan dalam IDE modern seperti kompilasi latar belakang, tetapi apa yang kita peroleh jauh lebih penting: pembuatan bersih dan mudah yang dapat hidup di berbagai lingkungan. "Membangun satu klik" yang dibicarakan oleh semua pria tangkas ini? Kami memilikinya. Skrip build kami dapat secara langsung dipanggil oleh sistem integrasi berkelanjutan juga. Dengan pengelolaan yang dikelola melalui integrasi berkesinambungan, kami dapat lebih formal melakukan tahap dan memigrasikan penerapan kode Anda ke lingkungan yang berbeda, dan memberi tahu kami segera ketika seseorang memeriksa kode yang salah yang merusak pengujian unit atau bangunan.

Sebenarnya, saya mengambil peran membangun jauh dari IDE tidak menyakiti kita terlalu buruk. Intellisense dan alat refactoring di Eclipse masih sepenuhnya berguna dan valid - kompilasi latar belakang hanya berfungsi untuk mendukung alat-alat itu. Dan, penguraian proyek Eclipse yang aneh telah berfungsi sebagai cara yang sangat bagus untuk memecah set masalah kita secara mental dengan cara yang dapat dipahami semua orang (meskipun sedikit masih terasa sesuai dengan selera saya). Saya pikir salah satu hal terpenting tentang Eclipse adalah integrasi SCM yang sangat baik, itulah yang membuat pengembangan tim sangat menyenangkan. Kami menggunakan Subversion + Eclipse, dan itu sangat produktif dan sangat mudah untuk melatih orang-orang kami untuk menjadi ahli.

Davew
sumber
2
+1, kompleksitas yang diperkenalkan pada bahan bangunan (setidaknya biasanya) adalah salah satu alasan terbesar saya cenderung membenci IDE
Scott Schulthess
24

Menjadi penulis respons yang Anda soroti dalam pertanyaan Anda, dan memang agak terlambat datang ke pertanyaan ini, saya harus mengatakan bahwa di antara banyak alasan yang telah terdaftar, produktivitas pengembang profesional adalah salah satu yang paling penting. keterampilan yang sangat dihormati.

Dengan produktivitas, maksud saya kemampuan untuk melakukan pekerjaan Anda secara efisien dengan hasil sebaik mungkin. IDE memungkinkan ini di banyak tingkatan. Saya bukan ahli Emacs, tapi saya ragu itu tidak memiliki fitur dari IDE utama.

Desain, dokumentasi, pelacakan, pengembangan, pembangunan, analisis, penyebaran, dan pemeliharaan, batu loncatan utama dalam aplikasi perusahaan, semuanya dapat dilakukan dalam IDE.

Mengapa Anda tidak akan menggunakan sesuatu yang begitu kuat jika Anda punya pilihan?

Sebagai percobaan, komit diri Anda untuk menggunakan IDE selama, katakanlah, 30 hari, dan lihat bagaimana perasaan Anda. Saya ingin membaca pendapat Anda tentang pengalaman itu.

Tandai
sumber
10
Ada fitur yang dimiliki Emacs, Eclipse, setidaknya, tidak memiliki atau menyembunyikan dengan sangat baik. Misalnya, kemampuan untuk memilih sepotong garis dan mengurutkannya di tempat. Paragraf isi Emacs juga sulit dikalahkan saat mengedit komentar; Jenis Eclipse memiliki fitur serupa, tetapi sangat lemah dibandingkan.
Porculus
17
Saya pikir alasan utama orang tidak memilih IDE adalah kegembiraan mereka. Jika Anda hanya ingin membuat sandwich, Anda tidak perlu seluruh supermarket.
9
Dalam pengalaman saya, IDE tidak membiarkan Anda berinteraksi secara menyeluruh dan konsisten dengan semua yang menggunakan keyboard. Juga, Emacs memang memiliki banyak fitur hebat yang tidak dimiliki oleh IDE, mulai dari yang kecil tapi bermanfaat (daerah persegi panjang, perluasan hippie, keyboard naviagtion yang luas) hingga yang agak utama (kustomisasi tramp, dired, transparan dengan elisp, makro keyboard). Saya yakin beberapa IDE memiliki beberapa fitur ini, tetapi saya belum melihatnya.
Tikhon Jelvis
20

Memiliki IDE memiliki keuntungan sebagai berikut:

  • Kompilasi biasanya "on the fly" yang berarti tidak perlu lagi beralih ke baris perintah untuk dikompilasi
  • Debugging terintegrasi, dan memiliki itu dalam IDE berarti bahwa langkah debugger sebenarnya menggunakan editor di tempat Anda untuk secara visual menunjukkan kode mana yang dieksekusi
  • IDE biasanya memiliki lebih banyak pengetahuan semantik tentang bahasa tempat Anda bekerja, dan dapat menunjukkan kemungkinan masalah saat mengetik. Refactoring jauh lebih kuat daripada "ganti pencarian".

Ada banyak lagi, mungkin Anda harus mencobanya.

Rolf
sumber
Saya tidak dapat berbicara untuk setiap editor minimal, tetapi Vim memiliki makro yang dapat Anda skrip yang dapat melakukan banyak hal seperti kompilasi dan jalankan.
@Corey intinya adalah bahwa ANDA harus menulis skrip mereka. Seharusnya sudah tersedia.
naksir
20

IDE pada dasarnya:

  • Editor dengan penyempurnaan kode, refactoring, dan dokumentasi
  • Debugger
  • Penjelajah filesystem
  • Klien SCMS
  • Alat membangun

semua dalam satu paket.

Anda dapat memiliki semua ini (dan lebih banyak lagi) menggunakan alat yang terpisah atau hanya editor yang dapat diprogram dan alat tambahan, seperti Emacs (Vim juga tetapi memiliki IMO IDEbility sedikit kurang).

Jika Anda menemukan banyak peralihan di antara satu utilitas dan yang berikutnya yang dapat diintegrasikan di lingkungan atau jika Anda kehilangan beberapa kemampuan yang tercantum di sini (dan lebih lengkap di pos lain), mungkin sekarang saatnya untuk pindah ke IDE (atau untuk meningkatkan IDEbility lingkungan Anda dengan menambahkan macro atau yang tidak). Jika Anda telah membuat sendiri 'IDE' (dalam arti yang saya sebutkan di atas) menggunakan lebih dari satu program, maka tidak perlu pindah ke IDE yang sebenarnya.

Vinko Vrsalovic
sumber
12

Gerhana:

Memiliki kode higlighting, kompilasi di latar belakang, menunjukkan kesalahan saya saat saya melanjutkan.

Integrasi dengan javadoc, menyarankan nama variabel dengan ctrl-Space.

Ketika saya kompilasi, saya mendapatkan kesalahan di sana. Saya dapat mengklik dua kali pada kesalahan, dan itu menampilkan baris yang sesuai.

Terintegrasi dengan JUnit, ctrl-F11 menjalankan tes, memberi tahu saya bahwa tes gagal. Jika ada pengecualian di jendela output, saya bisa klik dua kali pada sebuah baris, dan membawa saya ke baris yang gagal. Tidak hanya itu, tetapi ctrl-F11 memastikan semuanya dikompilasi sebelum menjalankan tes (yang berarti saya tidak pernah lupa untuk melakukan itu).

Integrasi dengan semut. Satu perintah untuk membangun dan menggunakan aplikasi.

Integrasi dengan debugger, termasuk debugging jarak jauh dari server web.

Alat refactoring FANTASTIC, mencari referensi ke bagian kode. Bantu saya mengetahui dampak perubahan.

Secara keseluruhan, itu membuat saya lebih produktif.

Matthew Farwell
sumber
Masalahnya adalah bahwa Emacs melakukan hampir semua itu, untuk lebih banyak bahasa daripada Eclipse.
Tikhon Jelvis
11

Saya telah menggunakan Emacs sebagai lingkungan utama saya untuk pengembangan dan surat / berita selama sekitar 10 tahun (1994-2004). Saya menemukan kekuatan IDE ketika saya memaksakan diri untuk belajar Java pada tahun 2004, dan saya terkejut bahwa saya benar-benar menyukai IDE ( IntelliJ IDEA ).

Saya tidak akan membahas alasan khusus karena banyak dari mereka telah disebutkan di sini - hanya ingat bahwa orang yang berbeda menyukai fitur yang berbeda. Saya dan seorang kolega menggunakan IDE yang sama, kami berdua hanya menggunakan sebagian kecil dari fitur yang tersedia, dan kami tidak saling menyukai cara menggunakan IDE (tapi kami berdua menyukai IDE itu sendiri).

Tetapi ada satu keuntungan dengan IDE dibanding Emacs / Vim terkait lingkungan yang ingin saya fokuskan: Anda menghabiskan lebih sedikit waktu menginstal / mengkonfigurasi fitur yang Anda inginkan.

Dengan Wing IDE (for Python) saya siap untuk mulai mengembangkan 15-20 menit setelah instalasi. Tidak tahu berapa jam saya harus mendapatkan fitur yang saya gunakan dan jalankan dengan Emacs / Vim. :)

Eigir
sumber
2
Butuh waktu lebih lama untuk memulai, tetapi lebih baik 'disesuaikan' setelahnya.
sjas
3
Mengkonfigurasi Emacs / Vim hanyalah masalah menyalin file yang sesuai ke tempat di mana program dapat menemukannya. Sebenarnya tidak terlalu sulit jika Anda menyimpan file-file konfigurasi Anda dengan rapi di satu direktori, setelah itu Anda dapat menyimpannya di flash drive, penyimpanan internet, atau di repositori sehingga Anda dapat menyimpannya clonekapan pun Anda perlu mengatur pekerjaan Anda. lingkungan Hidup. :)
Gordon Gustafson
10

Ini jelas mengarah pada peningkatan produktivitas bagi saya. Sampai-sampai saya membuat kode aplikasi Linux di Visual Studio di Vista dan kemudian menggunakan mesin virtual Linux untuk membuatnya.

Anda tidak harus menghafal semua argumen untuk panggilan fungsi atau metode, setelah Anda mulai mengetiknya, IDE akan menunjukkan kepada Anda argumen apa yang dibutuhkan. Anda mendapatkan penyihir untuk mengatur properti proyek, opsi kompiler, dll. Anda dapat mencari hal-hal di seluruh proyek, bukan hanya dokumen atau file saat ini dalam folder. Jika Anda mendapatkan kesalahan kompiler, klik dua kali dan itu membawa Anda langsung ke baris yang menyinggung.

Integrasi alat-alat seperti editor model, menyambung ke dan menelusuri basis data eksternal, mengelola koleksi kode "snippet", alat pemodelan GUI, dll. Semua hal ini dapat dimiliki secara terpisah, tetapi memiliki semuanya dalam lingkungan pengembangan yang sama menghemat banyak waktu dan membuat proses pengembangan mengalir lebih efisien.

Gerald
sumber
8

Mungkin ada alasan berbeda untuk orang yang berbeda. Bagi saya inilah kelebihannya.

  1. Memberikan nuansa terintegrasi ke proyek. Misalnya saya akan memiliki semua file proyek terkait dalam tampilan tunggal.
  2. Memberikan peningkatan produktivitas seperti kode
    1. Menyoroti Sintaks
    2. Mengacu majelis
    3. Intellisense
    4. Tampilan terpusat dari database dan file UI terkait.
    5. Fitur debugging

Akhir hari, ini membantu saya untuk kode lebih cepat daripada yang bisa saya lakukan di notepad atau wordpad. Itu adalah alasan yang cukup bagus bagi saya untuk memilih IDE.

vikramjb
sumber
8

Suatu IDE bisa menjadi pilihan 'unggul' berdasarkan pada apa yang ingin dicapai pengembang.

Editor teks dapat menjadi 'unggul' karena IDE biasanya diarahkan pada satu (atau pilihan kecil) bahasa.

Jika pengembang menghabiskan sebagian besar waktunya dalam satu languge atau 'cluster' bahasa terkait (seperti C # dan T-SQL), dalam satu OS, maka desain GUI, debug, intellisense, refactoring dll. Alat yang ditawarkan oleh IDE yang baik bisa sangat menarik. Jika, misalnya, Anda menghabiskan sebagian besar waktu Anda bekerja di VB.NET, dengan mungkin sedikit T-SQL sekarang dan kemudian, di lingkungan Windows, maka Anda akan sangat konyol untuk tidak melihat Visual Studio atau IDE yang sebanding .

Saya tidak memiliki prasangka terhadap mereka yang lebih suka IDE atau editor teks, keduanya bisa sangat produktif dan berguna jika dipelajari dengan baik !

TMealy
sumber
7

Saya pikir ini sebagian besar berkaitan dengan ruang lingkup kesadaran untuk pengembang. IDE memberikan pandangan makroskopis dari konteks kerja pengembang. Anda dapat secara bersamaan melihat hierarki kelas, sumber referensi, skema basis data, referensi bantuan SDK, dll. Dan dengan begitu banyak hal yang dipengaruhi oleh, dan memengaruhi, penekanan tombol Anda, dan volume arsitektur dan persimpangan arsitektur yang semakin luas, semakin sulit untuk bekerja hanya dari satu pulau kode pada suatu waktu.

OTOH, "hanya saya dan vim dan halaman manual" memberi saya pandangan mikroskopis yang lebih ramping - tapi intens dan tepat - tentang pekerjaan saya. Ini ok jika saya memiliki basis kode yang dirancang dengan baik, dipartisi dengan baik, sangat kohesif, sangat jarang dibangun dalam satu bahasa dengan satu set perpustakaan statis untuk bekerja - bukan situasi khas Anda, terutama ketika ukuran tim pengembang bertambah dan membentuk kembali struktur kode seiring waktu, jarak, dan preferensi pribadi.

Saat ini saya sedang mengerjakan proyek di Flex dan .NET. Salah satu hal yang lebih baik tentang Flex adalah bagaimana beberapa cara berbeda ada untuk mencapai hal standar - tarik data dari database, buka / tutup / baca / tulis file, dll. (Namun saya menggunakan Flex Builder / Eclipse IDE - contoh berat-berat khas seperti VS, karena saya masih belajar dasar-dasarnya dan saya membutuhkan roda pelatihan. Saya berharap untuk berevolusi kembali ke vim begitu saya yakin dengan pola saya.) Dalam pandangan ini, saya bisa melakukan apa Saya perlu melakukannya secara profesional dengan mengetahui beberapa hal dengan sangat baik.

OTOH, saya tidak bisa membayangkan sampai ke titik itu dengan .NET karena pandangan yang saya harapkan akan terus berkembang dan berubah. Ada jauh lebih sedikit integritas konseptual, dan lebih dari beberapa pengembang pada suatu proyek selama beberapa bulan, apalagi konsistensi - tetapi IDE mendukungnya, mungkin mendorongnya. Jadi pengembang benar-benar perlu (dan bisa lebih mudah) mengetahui lebih banyak hal secara memadai. Yang juga memiliki manfaat membantu mereka menjawab (atau bahkan memahami) persentase pertanyaan yang lebih tinggi di StackOverflow. Yaitu kita bisa memiliki tumpukan pengetahuan yang lebih dalam. Dan kami dapat merespons beragam iklan yang diinginkan dengan bantuan.

Banyak hal bisa terjadi terlalu jauh di kedua arah. Mungkin dengan lingkup "editor-only", itu seperti "jika Anda hanya memiliki palu, semuanya terlihat seperti paku". Dengan pendekatan IDE, untuk apa pun yang ingin Anda kencangkan bersama, Anda memiliki berbagai pilihan pengencang dan rentang alat terkait untuk dipilih - nals / palu, sekrup / obeng, baut / kunci pas, perekat / lem-senjata / klem, magnet , dan seterusnya - semuanya ada di ujung jari Anda (dengan wizard untuk membantu Anda memulai).

le dorfier
sumber
5

Jangan menganggapnya eksklusif. Gunakan IDE untuk manfaat yang diberikannya, dan beralihlah ke editor teks vim / preferen saat Anda membutuhkan fokus serius.

Saya menemukan IDE lebih baik untuk refactoring dan browsing dan debugging dan untuk mengetahui apa yang harus dilakukan. Hal-hal kecil kemudian dilakukan dengan benar di IDE, hal-hal besar yang saya balikkan untuk menyelesaikan pekerjaan.

Daniel Bungert
sumber
5

Selain jawaban lain, saya suka menggabungkan kekuatan pengembangan IDE dengan kekuatan mengedit Vim menggunakan sesuatu seperti ViPlugin untuk Eclipse .

nayfnu
sumber
5

IntelliSense , debugger terintegrasi, dan jendela langsung membuat saya jauh lebih produktif ( Visual Studio 2008 ). Dengan semua yang ada di ujung jari saya, saya dapat menyimpan sebagian besar proyek besar di dalam kepala saya saat menulis kode. Microsoft mungkin terus menjatuhkan bola pada OS mereka, tetapi Visual Studio adalah salah satu produk terbaik yang pernah dikembangkan.

Peter Mortensen
sumber
4

Saya tidak mengerti apa yang Anda minta. Anda bertanya "Haruskah saya menggunakan IDE, bukan ...", tapi saya tidak mengerti apa alternatifnya - Vim dan Emacs memenuhi banyak fungsi yang diberikan oleh IDE. Satu-satunya aspek mereka tidak menangani bahwa IDE yang lebih besar mungkin adalah hal-hal seperti desainer UI. Kemudian pertanyaan Anda bermuara pada "IDE apa yang harus saya gunakan" dengan argumen yang dibuat untuk ranah Vim dan Emacs yang lebih sederhana.

Peter Mortensen
sumber
3

Bagi saya, IDE lebih baik karena memungkinkan navigasi lebih cepat dalam kode yang penting jika Anda memiliki sesuatu dalam pikiran Anda untuk diimplementasikan. Misalkan Anda tidak menggunakan IDE, perlu waktu lebih lama untuk sampai ke tujuan. Pikiran Anda mungkin lebih sering diinterupsi. Ini berarti lebih banyak klik / lebih banyak tombol harus ditekan. Kita harus lebih berkonsentrasi pada pemikiran bagaimana mengimplementasikan sesuatu. Tentu saja, Anda dapat menuliskan hal-hal juga tetapi kemudian orang harus melompat antara desain dan implementasi. Juga, seorang desainer GUI membuat perbedaan besar. Jika Anda melakukannya dengan tangan, mungkin perlu waktu lebih lama.

Setelah terkejut
sumber
3

IDE berbasis GUI seperti Visual Studio dan Eclipse memiliki beberapa keunggulan dibandingkan dengan IDE berbasis teks seperti Emacs atau vim karena kemampuan tampilannya:

  • Pratinjau WYSIWYG dan penyuntingan langsung untuk desain GUI
  • Editor properti yang efisien (mis. Pemilihan warna menggunakan palet GUI, termasuk penentuan posisi berhenti gradien dll)
  • Penggambaran grafis garis besar kode, hubungan antar file, dll
  • Penggunaan real-estate layar yang lebih efisien untuk menampilkan breakpoints, bookmark, kesalahan, dll
  • Dukungan drag and drop yang lebih baik dengan OS dan aplikasi lain
  • Pengeditan terintegrasi gambar, gambar, model 3D, dll
  • Menampilkan dan mengedit model basis data

Pada dasarnya dengan IDE berbasis GUI Anda bisa mendapatkan informasi yang lebih berguna di layar sekaligus dan Anda dapat melihat / mengedit bagian grafis dari aplikasi Anda semudah bagian teks.

Salah satu hal paling keren untuk dialami sebagai pengembang adalah mengedit metode yang menghitung beberapa data dan melihat output langsung dari kode Anda ditampilkan secara grafis di jendela lain, seperti halnya pengguna Anda akan melihatnya ketika Anda menjalankan aplikasi. Nah, itu editing WYSIWYG!

IDE berbasis teks seperti Emacs dan vim dapat menambahkan fitur seperti penyelesaian kode dan refactoring dari waktu ke waktu, sehingga dalam jangka panjang keterbatasan utama mereka adalah model tampilan berbasis teks.

Ray Burns
sumber
3

Saya juga hampir secara eksklusif menggunakan Vim (hampir karena saya sedang mencoba mempelajari emacs sekarang) untuk semua hal pengembangan saya. Saya pikir intuisi belaka (dari GUI tentu saja) adalah alasan utama mengapa orang suka menggunakan IDE. Dengan menjadi intuitif, sedikit atau tidak ada overhead pembelajaran alat diperlukan. Semakin sedikit overhead pembelajaran, semakin banyak yang bisa mereka lakukan.

Avendael
sumber
3

Sebuah IDE memungkinkan seseorang bekerja lebih cepat dan lebih mudah ... Saya perhatikan saya menghabiskan banyak waktu menavigasi kode dalam editor teks sederhana ...

Dalam IDE yang baik, waktu akan turun jika IDE mendukung fungsi melompat, ke posisi pengeditan sebelumnya, ke variabel ... Juga, IDE yang baik mengurangi waktu untuk bereksperimen dengan fitur dan proyek bahasa yang berbeda, sebagai waktu start-up bisa kecil.

gempa susulan
sumber
3

Beberapa alasan yang dapat saya pikirkan untuk menggunakan IDE:

  • Bantuan terpadu adalah favorit.
  • Refactor bawaan dengan Pratinjau Visual Studio
  • IntelliSense , hightlighting sintaksis, kemudahan navigasi untuk proyek-proyek besar, debugging terintegrasi, dll. (Walaupun saya tahu dengan addins Anda mungkin bisa mendapatkan banyak dari ini dengan Emacs dan Vim ).
  • Juga, saya pikir IDE hari ini memiliki basis pengguna yang lebih luas, dan mungkin lebih banyak orang mengembangkan add-in untuk mereka, tetapi saya mungkin salah.

Dan sejujurnya, saya suka mouse saya. Ketika saya menggunakan editor berbasis teks murni itu menjadi sepi.

Furis
sumber
2

Menghemat waktu untuk mengembangkan
Membuat hidup lebih mudah dengan menyediakan fitur-fitur seperti Integrated debugging, intellisense.

Ada banyak sekali, tetapi akan merekomendasikan untuk menggunakannya, mereka lebih dari jelas.

Nrj
sumber
2
Terima kasih atas jawabannya, tetapi jika saya pikir itu sudah jelas, saya tidak akan mengajukan pertanyaan sejak awal!
Simon Howard
2

Saya tidak yakin ada garis pemisah yang jelas antara editor teks dan IDE. Anda memiliki orang-orang seperti Notepad di salah satu ujung skala, dan IDE modern terbaik di ujung yang lain, tetapi ada banyak hal di antaranya. Sebagian besar editor teks memiliki penyorotan sintaksis; editor yang ditujukan untuk programmer sering memiliki berbagai fitur lain seperti navigasi kode yang mudah dan otomatis lengkap. Emacs bahkan memungkinkan Anda mengintegrasikan debugger. IDE bahkan sepuluh tahun yang lalu memiliki fitur yang jauh lebih sedikit untuk membantu programmer daripada yang Anda harapkan dari editor teks serius hari ini.

Mark Baker
sumber
+1 untuk mencatat bahwa "editor" hari ini memiliki lebih banyak fitur daripada "ides" kemarin.
Sean McMillan
2

Alasan utama saya menggunakannya adalah ketika kode melampaui 100 file.

Meskipun ctag dapat melakukan pekerjaannya, beberapa IDE memiliki cara yang cukup bagus untuk menavigasi file dengan sangat cepat.

Menghemat waktu ketika Anda memiliki banyak pekerjaan yang harus dilakukan.

OscarRyz
sumber
2

Bagi saya itu hanya versi GUI dari semua yang kami lakukan di masa lalu yang baik dari terminal. Saya akan selalu setuju bahwa IDE tidak terlalu unggul karena mereka menyembunyikan banyak hal, terutama mengenai hal-hal yang menghubungkan, tetapi mereka memiliki keunggulan penting dalam beberapa kasus, misalnya dengan platform pengembangan tertentu seperti Qt.

Beberapa IDE seperti visual dari yang lain bahkan tampaknya mem-parsing kode Anda saat Anda mengetiknya, dan mendeteksi kesalahan bahkan sebelum Anda mengkompilasi: tampaknya logika bahwa hanya IDE yang dapat bekerja sama dengan kompiler untuk segera mendeteksi masalah pada sumber yang diketik.

Jawaban liar saya bahwa IDE / Command-line flame war ada hanya karena bangunan yang dapat dieksekusi C / C ++ tidak ditangani dengan baik dari sudut pandang standar, tidak seperti dengan bahasa D; setiap platform menangani kompilasi / menautkan / dll dengan caranya sendiri, sehingga agar tidak berantakan mereka membuat IDE.

Dari sudut pandang Anda, mungkin lebih mudah menggunakan command-line, jika hanya ada satu kompiler dengan opsi standar, itu akan mudah, tetapi kenyataannya adalah C / C ++ fleksibel, jadi pada akhirnya, semua platform lakukan dengan caranya sendiri, maka dari itu IDE jangan buang menjelaskan bagaimana melakukannya.

Jika Anda dapat mempelajari bagaimana sebuah executable dapat berbicara dengan kernel atau jika Anda mengetahui sesuatu tentang desain compiler, mungkin ada cara untuk bekerja dengan command-line yang tepat, tetapi saya ragu Anda memilikinya.

Microsoft atau Apple, semua kejahatannya, harus mengusulkan cara langsung untuk membangun aplikasi tanpa memasukkan perincian, dan karena membangun aplikasi tergantung langsung pada arsitektur OS, itu tidak akan menjadi "standar" seperti halnya baris perintah adalah.

Untuk membuatnya sederhana, aplikasi besar dan kompleks di mana Anda tidak ingin menggali terlalu dalam apa yang dilakukannya -> IDE, potongan kecil perangkat lunak atau desain perangkat lunak sistem sederhana -> command-line. Kecuali tentu saja perpustakaan-perpustakaan bagus yang menanamkan Makefile, tapi itu cerita lain.

Juga saya pikir IDE digunakan ketika aplikasi yang dikirim ada hubungannya dengan, ironisnya, GUI atau sesuatu yang memiliki antarmuka atau langsung terikat ke OS, jadi sekali lagi, itu juga untuk orang-orang yang akan menggunakan UI / GUI tanpa mengetahui cara kerjanya, sementara orang yang akan memprogram sistem tidak akan membutuhkan semuanya.

IDE hanya omong kosong modern, tapi saya pikir dalam 100 tahun baris perintah masih akan ada.

jokoon
sumber
1

Saya suka IDE karena menempatkan banyak fungsi di ujung jari saya. Mengedit / Kompilasi / visibilitas file dalam proyek adalah semua hal yang saya hargai dalam IDE. Saya menggunakan Visual Studio sekarang tetapi di kehidupan sebelumnya saya menggunakan SlickEdit dan menemukan bahwa itu membuat proses pengembangan saya lebih efisien daripada ketika saya tidak menggunakannya.

itsmatt
sumber
1

Hanya ada satu hal yang perlu dipertimbangkan ketika memutuskan apakah akan menggunakan IDE atau tidak, dan apakah itu membuat Anda lebih produktif atau tidak.

Pertanyaan singkat jadi jawaban singkat :)

Nick Pierpoint
sumber
Terima kasih atas tanggapannya, tetapi jelas bahwa beberapa orang percaya ini sebelum saya mengajukan pertanyaan. Saya benar-benar ingin tahu mengapa Anda berpikir itu mungkin membuat Anda lebih produktif? Apakah itu membuat Anda produktif dalam beberapa skenario tetapi tidak yang lain?
Simon Howard
1

Ini sangat tergantung pada apa yang Anda lakukan dan bahasa apa yang Anda gunakan. Secara pribadi, saya cenderung tidak menggunakan IDE (atau "IDE saya terdiri dari 3 xterms menjalankan vim, satu menjalankan klien basis data, dan satu dengan bash prompt atau tailing log ", tergantung pada seberapa luas Anda mendefinisikan" IDE ") untuk sebagian besar pekerjaan saya, tetapi, jika saya menemukan diri saya mengembangkan GUI platform-asli, maka saya akan meraih IDE yang sesuai bahasa di instan - IMO, IDE, dan pengeditan form grafis jelas dibuat untuk satu sama lain.

Dave Sherohman
sumber