Editor Pemrograman Terbaik? Pertempuran Tanpa Akhir Tanpa Pemenang yang Jelas

Diterbitkan: 2022-03-11

Terlepas dari bukti nyata yang bertentangan, programmer adalah manusia. Dan, seperti semua manusia, kami suka mengambil keuntungan dari kebebasan memilih kami. Apakah pilihan itu tentang meminum pil merah atau pil biru, mengenakan gaun atau celana, atau menggunakan satu lingkungan pengembangan di atas yang lain, pilihan yang kita buat menempatkan kita dalam satu kelompok orang atau lainnya. Pilihan, mau tidak mau, muncul setelah evaluasi pilihan kita. Dan setelah membuat pilihan, kita cenderung percaya bahwa siapa pun yang memilih secara berbeda membuat kesalahan.

Anda dapat dengan mudah mencari di internet dan menemukan ratusan perdebatan tentang Emacs vs Vim. Bahkan jika Anda membaca semuanya, tidak mungkin untuk memilih pemenang secara objektif. Namun, apakah pilihan lingkungan pengembangan memberi tahu Anda tentang kualitas pekerjaan yang dapat diberikan pengembang? Sama sekali tidak!

Pengembang hebat dapat menulis kodenya ke Notepad dan tetap memberikan hal-hal hebat.

Tentu saja, ada banyak hal yang dipertimbangkan oleh para profesional saat memilih alat untuk pekerjaan mereka. Ini berlaku untuk setiap profesi, termasuk pengembangan perangkat lunak. Cukup sering, bagaimanapun, seleksi didasarkan pada selera pribadi, bukan sesuatu yang mudah terlihat.

Pemrogram menghabiskan sebagian besar waktunya untuk melihat lingkungan pengembangan, jadi wajar jika kita menginginkan sesuatu yang cantik dan juga fungsional. Setiap lingkungan pengembangan memiliki pro dan kontra. Secara keseluruhan, mereka adalah kekuatan pendorong industri pengembangan perangkat lunak.

editor pemrograman terbaik

Apa saja yang harus dievaluasi oleh pengembang saat memilih seperangkat alat pemrograman seperti editor pemrograman pilihan? Jawaban atas pertanyaan ini tidak sesederhana kedengarannya. Pengembangan perangkat lunak dekat dengan seni, dan ada beberapa faktor "kabur" yang memisahkan sebuah mahakarya dari koleksi yang terlalu mahal.

Setiap bahasa pemrograman, baik itu Java, C#, PHP, Python, Ruby, JavaScript, dan sebagainya, memiliki praktik pengembangannya sendiri terkait dengan struktur proyek, debugging, dan penerapan. Namun, satu kesamaan yang mereka miliki adalah mengedit kode. Pada artikel ini kita akan mengevaluasi platform pengembangan yang berbeda dari perspektif tugas paling umum dalam pengembangan perangkat lunak: menulis kode.

IDE vs Editor Teks Tujuan Umum

Lingkungan pengembangan terintegrasi (IDE) (atau lingkungan pengembangan interaktif) adalah aplikasi perangkat lunak yang menyediakan fasilitas lengkap bagi pemrogram komputer untuk pengembangan perangkat lunak. IDE biasanya terdiri dari editor kode sumber, alat otomatisasi build, dan debugger, dan banyak yang mendukung banyak plugin dan ekstensi tambahan.

Editor teks adalah aplikasi yang lebih sederhana. Dibandingkan dengan IDE, mereka biasanya hanya sesuai dengan segmen editor kode dari IDE. Namun, mereka sering lebih dari itu. IDE dibuat untuk melayani tujuan pengembangan perangkat lunak, sementara banyak editor teks dirancang untuk digunakan oleh non-pengembang juga.

Bahasa yang diketik statis bisa mendapatkan banyak manfaat dari IDE. Karena aturan pengetikan yang ketat, IDE dapat mendeteksi bug dan inkonsistensi penamaan di seluruh kelas dan modul, dan bahkan di seluruh file, langsung di editor, sebelum dikompilasi. Fungsionalitas ini menjadi standar dengan banyak IDE, dan karena alasan itu, IDE sangat populer untuk bahasa bertipe statis.

Namun, tidak mungkin melakukan hal yang sama untuk bahasa yang diketik secara dinamis. Misalnya, jika nama metode dapat dihasilkan oleh kode itu sendiri, dibangun dari serangkaian rangkaian string, mencoba mendeteksi kesalahan penamaan dalam bahasa dinamis memerlukan tidak kurang dari menjalankan program yang sebenarnya. Karena salah satu manfaat utama IDE tidak berlaku untuk pemrogram bahasa dinamis, mereka memiliki kecenderungan lebih besar untuk tetap menggunakan editor teks seperti Sublime. Sebagai catatan tambahan, ini juga merupakan alasan utama mengapa gerakan pengembangan yang digerakkan oleh tes telah tumbuh di sekitar komunitas bahasa yang dinamis, dan tidak memiliki pengikut yang kuat dalam bahasa statis.

Apa yang Membuat Editor Pemrograman Hebat?

Selain sejumlah fitur berbeda untuk berbagai bahasa, setiap editor pemrograman harus memiliki antarmuka pengguna yang terorganisir dengan baik dan bersih. Daya tarik estetika keseluruhan juga tidak boleh diabaikan. Ini bukan hanya soal terlihat bagus, karena editor yang dirancang dengan baik dengan pilihan font dan warna yang tepat membantu menjaga mata tetap lelah dan membuat Anda lebih produktif.

Dalam lingkungan pengembangan saat ini, kurva pembelajaran yang curam adalah kewajiban, terlepas dari kumpulan fitur. Waktu selalu berharga, jadi editor yang baik harus mudah terbiasa. Idealnya, programmer harus dapat segera mulai bekerja, tanpa harus melewati terlalu banyak rintangan. Pisau tentara Swiss adalah alat yang praktis dan berguna, namun siapa pun dapat menguasainya dalam hitungan menit. Demikian juga, untuk editor pemrograman, kesederhanaan adalah suatu kebajikan.

Antarmuka Pengguna, Fitur, dan Alur Kerja

Mari kita lihat lebih dekat UI, berbagai fitur dan kemampuan, dan alat yang sering digunakan yang harus menjadi bagian dari editor pemrograman apa pun.

Nomor baris, tentu saja, harus diaktifkan secara default dan mudah dihidupkan atau dimatikan.

Cuplikan berguna untuk menyisipkan blok teks standar dalam tata letak tetap. Namun, pemrograman banyak tentang mengatakan sesuatu sekali saja, jadi berhati-hatilah dengan cuplikan karena dapat membuat kode Anda sulit dipertahankan di masa mendatang.

Kemampuan untuk lint, atau pemeriksaan sintaks, file saat ini berguna, seperti kemampuan untuk meluncurkannya. Tanpa fasilitas ini, seorang programmer harus beralih ke jendela baris perintah eksternal, memilih dan menjalankan perintah yang benar, dan kemudian menelusuri pesan kesalahan untuk menemukan sumber kesalahan. Namun, linting harus berada di bawah kendali pemrogram, karena penundaan yang ditimbulkan oleh lint dapat mengganggu pembuat kode pada saat yang genting.

dokumen sebaris

Dokumen sebaris berguna selama tidak menghalangi, tetapi membuka halaman browser pada definisi kelas terkadang lebih berguna, terutama ketika ada banyak kelas terkait yang tidak secara langsung saling memperluas. Cukup mudah untuk memotong dan menempelkan kode dari dokumentasi browser ke kode yang sedang ditulis, sehingga kompleksitas tambahan dari dokumentasi sebaris sering kali menjadi kurang berguna, bahkan lebih mengganggu, karena pengetahuan pemrogram tentang dokumentasi meningkat.

Penyempurnaan kata sangat membantu karena cepat, dan hampir dapat diandalkan seperti dokumentasi yang diedit, sementara tidak terlalu mengganggu. Memuaskan untuk memasukkan hanya beberapa karakter dari sebuah kata dan kemudian tekan enter untuk mendapatkan sisanya. Jika tidak, seseorang bekerja di bawah tekanan pengetikan yang berlebihan, yang dibenci oleh pemrogram malas, yang ingin mengetik ee daripada exponentialFunctionSquared yang lebih panjang. Penyelesaian kata memenuhi dengan meminimalkan pengetikan, menegakkan penamaan yang koheren dan dengan tidak menghalangi.

Mengganti nama variabel dan fungsi di seluruh program berguna, tetapi Anda harus dapat meninjau perubahan dan memastikan kode Anda tidak rusak. Sekali lagi, penyelesaian kata adalah rumah singgah yang berguna, karena berfungsi untuk semua bahasa; Anda dapat menggunakan nama panjang untuk item yang memiliki masa pakai yang lama, tanpa menimbulkan biaya pengetikan. Anda dapat menggunakan referensi kepada mereka melalui nama yang lebih pendek secara lokal, untuk mempersingkat ekspresi yang mungkin tersebar di terlalu banyak baris. Jika Anda perlu mengganti nama, nama panjangnya unik, jadi pendekatan ini berfungsi di semua bahasa, dan semua file.

File sumber terkadang bisa bertambah banyak. Pelipatan kode adalah fitur bagus yang menyederhanakan membaca file yang panjang.

Temukan/ubah dengan batasan cakupan ke lokal, inkremental, atau global dengan karakter meta dan ekspresi reguler adalah bagian dari persyaratan minimum hari ini, seperti penyorotan sintaks.

Ikhtisar Editor Pemrograman Populer

Selama bertahun-tahun, saya melewati sejumlah editor, dan inilah yang saya pikirkan tentang mereka:

  • Emacs: Salah satu editor paling populer di dunia. Fitur terbesar Emacs adalah ekstensibilitasnya, meskipun bahasa ekstensinya rumit (Anda bahkan dapat memainkan Tetris di dalamnya dengan Mx tetris ). Penggemar Emacs menganggap antarmuka berbasis terminalnya sebagai fitur yang hebat, sementara yang lain mungkin memperdebatkan bahwa itu adalah kekurangannya. Dalam pengalaman pribadi saya, saya merasa terlalu banyak untuk mengadopsi dan belajar. Saya yakin bahwa jika Anda tahu cara menggunakan Emacs, Anda tidak akan pernah menggunakan yang lain, tetapi mempelajari dan mempelajari seluruh budaya lebih dari yang ingin saya lakukan. Namun demikian, popularitasnya di kalangan pengembang membuktikan bahwa itu jauh dari peninggalan masa lalu, dan tetap menjadi bagian dari masa depan kita juga.

  • Vi/Vim: Vim adalah editor berbasis terminal lain yang kuat, dan menjadi standar dengan sebagian besar sistem operasi xNIX. Selain memiliki antarmuka yang berbeda dari Emacs, pandangan saya praktis sama. Jika Anda dibesarkan di atasnya, saya yakin Anda tidak akan pernah menggunakan apa pun. Memiliki keterampilan Vi akan membuat hidup Anda lebih sederhana saat beroperasi melalui SSH dan titik sempit lainnya, dan Anda tidak akan memiliki masalah dengan kecepatan, setelah Anda terbiasa dengan penekanan tombol. Meskipun tidak sesulit Emacs, kurva pembelajarannya masih cukup curam, dan itu pasti bisa menggunakan beberapa fitur bagus dari editor berjendela.

  • SublimeText: Sesuai dengan namanya, SublimeText adalah editor teks cantik dengan banyak fitur. Tidak seperti beberapa editor serupa, SublimeText adalah sumber tertutup, sehingga tidak dapat dimodifikasi pada level rendah. SublimeText menawarkan kesederhanaan editor teks tradisional, dengan UI yang ramping dan cepat. Banyak pengembang merasa lebih mudah digunakan daripada Vim, dan ini terutama berlaku untuk pendatang baru. Kurva belajar tidak begitu curam. Meskipun UI minimal dan lugas, SublimeText memang menawarkan beberapa fitur bagus, seperti kode tampilan yang diperkecil di sebelah kanan UI, memungkinkan pengguna untuk menggulir kode mereka dengan cepat dan menavigasi dengan relatif mudah. Meskipun tidak sepenuhnya gratis, versi demo dengan fitur terbatas. Membuka kunci semua fitur akan dikenakan biaya $70.

  • Atom adalah hasil dari upaya GitHub untuk menghasilkan editor pemrograman untuk generasi baru pengembang. Meskipun masih dalam proses, Atom adalah editor yang sangat mumpuni dengan komunitas pengembang yang bersemangat yang tertarik pada ekstensi baru, pustaka JavaScript, dan banyak lagi. Kelemahannya termasuk beberapa kebiasaan UI, kemungkinan beberapa paket add-on dapat berperilaku tidak semestinya, dan melaporkan masalah kinerja saat bekerja dengan (sangat) file besar. Tetapi proyek ini sedang dalam pengembangan aktif, dan kekurangan yang ada saat ini kemungkinan besar akan diperbaiki. Atom adalah proyek sumber terbuka, dan dapat dengan mudah diretas sesuai kebutuhan Anda.

  • Nano: Luar biasa di sudut sempit, tetapi tidak cukup kaya fitur untuk mencegah pemikiran yang tak terhindarkan merayap ke dalam pikiran seseorang bahwa harus ada cara yang lebih cepat untuk melakukan ini saat seseorang berjuang melalui penekanan tombol untuk membuat indentasi blok kode, sambil menjaga komentar tetap berjajar di kolom 80! Itu bahkan tidak memiliki penyorotan teks, dan tidak boleh digunakan untuk apa pun selain perubahan file konfigurasi.

  • TextMate2: Kelemahan terbesar TextMate adalah hanya berjalan di Mac. Seperti yang dikatakan pembuatnya, "TextMate membawa pendekatan Apple ke sistem operasi ke dalam dunia editor teks." Dengan menjembatani dasar-dasar UNIX dan GUI, TextMate memilih yang terbaik dari kedua dunia, untuk kepentingan para ahli skrip dan pengguna pemula. Ini adalah editor pilihan bagi banyak pengembang Ruby, Python, dan JavaScript, dengan dukungan hebat untuk Bash atau Markdown juga. Saat artikel ini diterbitkan, TextMate 2 masih dalam versi Beta, tetapi sudah memiliki ekosistem plugin yang sangat matang yang menjanjikan untuk memperluasnya bahkan melampaui ekstensi Emacs.

  • jEdit: Berbasis Java, dan dianggap lambat oleh beberapa orang. Konfigurasi di luar kotak mungkin mendorong orang-orang tertentu menjauh, tetapi jEdit bisa sangat cepat jika dikonfigurasi dengan benar, serta terlihat sangat bagus.

  • Eclipse: IDE lain yang banyak digunakan, Eclipse sangat populer di kalangan pengembang Java, tetapi telah diadaptasi ke berbagai platform. Kita dapat berargumen bahwa arsitektur monolitiknya adalah batu yang akan menariknya ke bawah air, tetapi masih merupakan salah satu platform paling populer di kalangan pengembang.

  • Aptana Studio: IDE aplikasi web sumber terbuka yang komprehensif. Ini tersedia sebagai plugin Eclipse, yang membuatnya populer di antara beberapa pengembang Java. Versi mandiri bahkan lebih ramping, dan menawarkan berbagai tema dan opsi penyesuaian yang berbeda. Kemampuan manajemen proyek Aptana mungkin juga berguna bagi pembuat kode yang mengasah keterampilan mereka di Eclipse. Sementara versi sebelumnya mengalami masalah kinerja pada beberapa platform perangkat keras, masalah ini telah diatasi di Aptana Studio 3, dan seharusnya sudah berlalu.

  • NetBeans: IDE open-source lain yang relatif populer dengan dukungan lintas platform. Ini agak lebih lambat saat startup daripada editor ramping seperti SublimeText, dan pilihan add-on terbatas dibandingkan dengan beberapa alternatif. Banyak pengembang Java yang menyukai NetBeans berkat integrasi SCM yang mulus dan dukungan HTML5. Dukungan NetBeans untuk PHP juga telah ditingkatkan dalam rilis terbaru.

  • JetBrains: Menawarkan keluarga IDE untuk Java, Ruby, Python, dan PHP. Mereka semua didasarkan pada mesin inti yang sama. Sangat mampu dalam dirinya sendiri, IDE JetBrains telah mendapatkan pengikut yang berkembang. Namun, itu bukan solusi sumber terbuka gratis, meskipun uji coba 30 hari tersedia, dan harganya masuk akal.

  • Komodo Edit: Komodo Edit memiliki potensi besar, namun penuh dengan "gotchas" kecil yang mengganggu dan keanehan yang dapat membuat frustasi karena kurangnya ortogonalitas. Komodo Edit terasa berantakan, yang disayangkan karena jelas memiliki kemampuan yang luar biasa. Saya terus kembali ke Komodo Edit dengan harapan bahwa saya telah melewatkan beberapa prinsip pengorganisasian, dan setiap kali, saya dipukul mundur oleh kekacauan kemampuan yang tidak terorganisir.

  • Geany: Geany bukan pemain kekuatan utama seperti banyak editor lain dalam daftar ini. Ini lebih didefinisikan oleh "apa yang bukan" daripada "apa adanya". Itu tidak lambat, tidak memiliki banyak warisan dari masa lalu, tidak memiliki kemampuan makro, atau banyak multi-jendela pada kemampuan buffer. Namun hal-hal yang dilakukannya, cukup baik. Ini, mungkin, yang paling tidak menuntut dari semua editor yang saya coba dan masih dapat melakukan 90 persen dari apa yang Anda harapkan dari editor programmer. Geany terlihat cukup bagus di Ubuntu, yang merupakan salah satu alasan saya memilihnya sebagai editor pilihan saya.

Kesimpulan saya

Akan lancang untuk menyatakan hanya satu sebagai editor pemrograman terbaik di antara alat-alat hebat ini. Dan ada beberapa editor yang bahkan belum saya coba. Tidak ada solusi satu ukuran untuk semua. Inilah yang mendorong saya untuk mencoba sejumlah editor yang berbeda; jika Anda lebih tertarik pada umur panjang editor, Anda juga ingin membaca evaluasi Roben Kleene tentang editor kode.

Saat ini saya menggunakan Geany, tetapi karena sesuai dengan persyaratan yang saya miliki. Dengan Geany, dan banyak bantuan dari Perl/Gimp/Audacity/Sox, saya dapat mengembangkan dan memelihara basis kode Java untuk aplikasi Android yang saya kembangkan, mempersiapkannya untuk kompilasi dalam konfigurasi yang berbeda untuk beberapa distributor, sumber, lint , kompilasi, dex, dan hasilkan file .apk , dan kirimkan aplikasi ini secara global.

Lini pengembangan Anda mungkin meresepkan serangkaian persyaratan yang berbeda, dan saya harap saya menghemat waktu Anda dalam meneliti editor pemrograman yang paling tepat.

Terkait: Tutorial Protokol Server Bahasa: Dari VSCode ke Vim