En İyi Programlama Editörleri? Kesin Kazanan Olmadan Bitmeyen Bir Savaş
Yayınlanan: 2022-03-11Aksine bariz kanıtlar ne olursa olsun, programcılar insandır. Ve tüm insanlar olarak, seçim özgürlüğümüzden yararlanmayı seviyoruz. Bu seçim ister kırmızı hapı, ister mavi hapı almak, bir elbise veya pantolon giymek veya bir geliştirme ortamını diğerine tercih etmekle ilgili olsun, yaptığımız seçim bizi bir grup insan içine yerleştirir. Seçim, kaçınılmaz olarak, seçenekleri değerlendirmemizden sonra gelir. Ve bir seçim yaptıktan sonra, farklı seçim yapan birinin hata yaptığına inanma eğilimindeyiz.
İnternette kolayca arama yapabilir ve Emacs vs Vim hakkında yüzlerce tartışma bulabilirsiniz. Hepsini okusanız bile, bir kazananı objektif olarak seçmek imkansız olacaktır. Ancak, geliştirme ortamı seçimi size bir geliştiricinin sunabileceği işin kalitesi hakkında bir şey söylüyor mu? Kesinlikle hayır!
Harika bir geliştirici, kodunu Not Defteri'ne yazabilir ve yine de harika şeyler sunabilir.
Elbette, profesyonellerin işleri için araç seçerken göz önünde bulundurdukları pek çok şey vardır. Bu, yazılım geliştirme dahil her meslek için geçerlidir. Bununla birlikte, sıklıkla seçim kişisel zevke göre yapılır, kolayca elle tutulur bir şey değil.
Programcılar zamanlarının çoğunu geliştirme ortamına bakarak geçirirler, bu nedenle hem güzel hem de işlevsel bir şey istememiz doğaldır. Her geliştirme ortamının artıları ve eksileri vardır. Bir bütün olarak, yazılım geliştirme endüstrisinin itici gücüdürler.
Bir geliştiricinin, tercih ettiği bir programlama düzenleyicisi gibi bir dizi programlama aracını seçerken değerlendirmesi gereken şeyler nelerdir? Bu sorunun cevabı sanıldığı kadar basit değil. Yazılım geliştirme bir sanata yakındır ve bir başyapıtı pahalı bir koleksiyondan ayıran oldukça az sayıda "belirsiz" faktör vardır.
Java, C#, PHP, Python, Ruby, JavaScript vb. gibi her programlama dilinin proje yapısı, hata ayıklama ve devreye alma ile ilgili kendi geliştirme uygulamaları vardır. Ancak, hepsinin ortak noktası kod düzenlemedir. Bu yazıda, yazılım geliştirmede en yaygın görev olan kod yazma açısından farklı geliştirme platformlarını değerlendireceğiz.
IDE ve Genel Amaçlı Metin Düzenleyicisi
Entegre geliştirme ortamı (IDE) (veya etkileşimli geliştirme ortamı), bilgisayar programcılarına yazılım geliştirme için kapsamlı olanaklar sağlayan bir yazılım uygulamasıdır. Bir IDE normalde bir kaynak kodu düzenleyicisinden, derleme otomasyon araçlarından ve bir hata ayıklayıcıdan oluşur ve birçoğu çok sayıda ek eklenti ve uzantıyı destekler.
Metin editörleri daha basit uygulamalardır. IDE'lerle karşılaştırıldığında, genellikle bir IDE'nin yalnızca kod düzenleyici bölümüne karşılık gelirler. Ancak, genellikle bundan çok daha fazlasıdır. IDE'ler, yazılım geliştirme amacına hizmet etmek için oluşturulurken, birçok metin düzenleyici, geliştirici olmayanlar tarafından da kullanılmak üzere tasarlanmıştır.
Statik tipte diller, IDE'lerden pek çok fayda sağlayabilir. Katı yazım kuralları nedeniyle, IDE'nin, derlemeden önce doğrudan düzenleyicide, sınıflar ve modüller arasında ve hatta dosyalar arasında hataları ve adlandırma tutarsızlıklarını algılaması mümkündür. Bu işlevsellik birçok IDE ile standart olarak gelir ve bu nedenle IDE'ler statik tipli diller için çok popülerdir.
Ancak, dinamik olarak yazılan diller için aynı şeyi yapmak imkansızdır. Örneğin, bir dizi dize birleşiminden oluşturulmuş kodun kendisi tarafından bir yöntem adı oluşturulabiliyorsa, dinamik dillerdeki adlandırma hatalarını saptamaya çalışmak, asıl programı çalıştırmaktan daha azını gerektirmez. IDE'lerin en büyük faydalarından biri dinamik dil programcıları için geçerli olmadığından, Sublime gibi metin editörlerine bağlı kalma eğilimi daha fazladır. Bir yan not olarak, bu aynı zamanda test odaklı geliştirme hareketinin dinamik dil toplulukları etrafında büyümesinin ve statik dillerde bu kadar güçlü bir takipçi kitlesine sahip olmamasının da önemli bir nedenidir.
Harika Bir Programlama Editörü Yapan Nedir?
Çeşitli diller için bir dizi farklı özelliğin yanı sıra, her programlama düzenleyicisinin iyi organize edilmiş ve temiz bir kullanıcı arayüzüne sahip olması gerekir. Genel estetik çekicilik de göz ardı edilmemelidir. Doğru yazı tipi ve renk seçimine sahip iyi tasarlanmış bir düzenleyici, göz yorgunluğunu azaltmaya yardımcı olduğu ve daha üretken olmanızı sağladığı için, yalnızca iyi görünme meselesi değildir.
Günümüzün geliştirme ortamında, özellik kümesi ne olursa olsun, dik bir öğrenme eğrisi bir zorunluluktur. Zaman her zaman değerlidir, bu nedenle iyi bir editöre alışmak kolay olmalıdır. İdeal olarak, programcı çok fazla çemberin içinden atlamak zorunda kalmadan hemen çalışmaya başlayabilmelidir. Bir İsviçre çakısı pratik ve kullanışlı bir araçtır, ancak herkes dakikalar içinde ustalaşabilir. Aynı şekilde, programlama editörleri için basitlik bir erdemdir.
Kullanıcı Arayüzü, Özellikler ve İş Akışı
Kullanıcı arayüzüne, farklı özelliklere ve yeteneklere ve herhangi bir programlama düzenleyicisinin parçası olması gereken sık kullanılan araçlara daha yakından bakalım.
Tabii ki satır numaraları varsayılan olarak açık olmalı ve açılması veya kapatılması basit olmalıdır.
Parçacıklar, sabit bir düzende standartlaştırılmış metin blokları eklemek için kullanışlıdır. Bununla birlikte, programlama, bir şeyleri yalnızca bir kez söylemekle ilgilidir, bu nedenle, kodunuzun gelecekte bakımını zorlaştırabileceğinden, snippet'lere dikkat edin.
Geçerli dosyayı tiftikleme veya sözdizimi denetimi yeteneği, başlatma yeteneği kadar yararlıdır. Bu olanak olmadan, bir programcı harici bir komut satırı penceresine geçmeli, doğru komutu seçip çalıştırmalı ve ardından hatanın kaynağını bulmak için hata mesajlarını gözden geçirmelidir. Bununla birlikte, tiftiklenme programcının kontrolü altında olmalıdır, çünkü tiftikten kaynaklanan gecikme, kodlayıcıyı çok önemli bir anda kesintiye uğratabilir.
Satır içi belge, engel olmadığı sürece yararlıdır, ancak sınıf tanımlarında bir tarayıcı sayfasının açık olması, özellikle birbirini doğrudan genişletmeyen çok sayıda ilgili sınıf olduğunda bazen daha yararlıdır. Tarayıcı dokümantasyonundan yazılan koda kodu kesip yapıştırmak yeterince kolaydır, bu nedenle satır içi dokümantasyonun ek karmaşıklığı, programcının dokümantasyon bilgisi arttıkça genellikle daha az kullanışlı ve hatta daha sinir bozucu hale gelir.
Sözcük tamamlama, daha az müdahaleci olmakla birlikte hızlı ve neredeyse düzenleme sırasındaki belgeler kadar güvenilir olduğu için yararlıdır. Bir kelimenin sadece birkaç karakterini girmek ve gerisini almak için enter tuşuna basmak tatmin edicidir. Aksi takdirde, daha uzun exponentialFunctionSquared
yerine ee
yazmak isteyen tembel programcılar tarafından nefret edilen aşırı yazma yükü altında çalışır. Kelime tamamlama, yazmayı en aza indirerek, tutarlı adlandırmayı zorlayarak ve araya girmeyerek tatmin edicidir.
Program genelinde değişkenleri ve işlevleri yeniden adlandırmak yararlıdır, ancak değişiklikleri gözden geçirebilmeniz ve kodunuzun bozuk olmadığından emin olmanız gerekir. Yine, sözcük tamamlama, tüm diller için çalıştığı için yararlı bir orta noktadır; Uzun kullanım ömrüne sahip öğeler için uzun adlar kullanabilirsiniz, üstelik yazma yüküne maruz kalmadan. Aksi takdirde çok fazla satıra yayılabilecek ifadeleri kısaltmak için yerel olarak daha kısa bir ad aracılığıyla bunlara referanslar kullanabilirsiniz. Yeniden adlandırmanız gerekirse, uzun adlar benzersizdir, bu nedenle bu yaklaşım tüm dillerde ve tüm dosyalarda çalışır.
Kaynak dosyalar bazen çok büyüyebilir. Kod katlama, uzun dosyaları okumayı kolaylaştıran güzel bir özelliktir.
Yerel, artımlı veya meta karakterlerle ve normal ifadelerle kapsam sınırlamasıyla bul/değiştir, sözdizimi vurgulama gibi bu günlerde minimum gereksinimin bir parçasıdır.

Popüler Programlama Düzenleyicilerine Genel Bakış
Yıllar boyunca bir dizi editörden geçtim ve onlar hakkında şunu düşünüyorum:
Emacs: Dünyanın en popüler editörlerinden biri. Emacs'ın en büyük özelliği, uzantı dilinin karmaşıklığına rağmen genişletilebilirliğidir (içinde
Mx tetris
ile bile oynayabilirsiniz). Emacs hayranları, terminal tabanlı arayüzünün harika bir özellik olduğunu düşünürken, diğerleri bunun bir dezavantaj olduğunu tartışabilir. Kişisel deneyimime göre, benimsemeyi ve öğrenmeyi çok fazla buldum. Emacs kullanmayı bilirseniz, başka hiçbir şey kullanmayacağınızdan eminim, ancak tüm kültürü üstlenmek ve öğrenmek istediğimden daha fazlasıydı. Bununla birlikte, geliştiriciler arasındaki popülerliği, eski zamanların kalıntısı olmaktan çok uzak olduğunu ve geleceğimizin bir parçası olmaya devam ettiğini kanıtlıyor.Vi/Vim: Vim, başka bir güçlü terminal tabanlı düzenleyicidir ve çoğu xNIX işletim sisteminde standart olarak gelir. Emacs'tan farklı bir arayüze sahip olmanın dışında, görüşüm pratik olarak aynı. Üzerinde büyüdüysen, eminim başka bir şey kullanmayacaksın. Vi becerilerine sahip olmak, SSH ve diğer dar alanlarda çalışırken hayatınızı çok daha basit hale getirecek ve tuş vuruşlarına alıştıktan sonra hız konusunda sorun yaşamayacaksınız. Emacs kadar zor olmasa da, öğrenme eğrisi hala oldukça dik ve kesinlikle pencereli bir düzenleyicinin birkaç güzel özelliğini kullanabilir.
SublimeText: Adına sadık kalan SublimeText, tonlarca özelliğe sahip güzel bir metin editörüdür. Bazı benzer editörlerin aksine, SublimeText kapalı kaynaktır, bu nedenle düşük seviyede değiştirilemez. SublimeText, yalın ve hızlı bir kullanıcı arayüzü ile geleneksel metin editörlerinin sadeliğini sunar. Birçok geliştirici, kullanmayı Vim'den daha kolay buluyor ve bu özellikle yeni gelenler için geçerlidir. Öğrenme eğrisi o kadar dik değil. Kullanıcı Arayüzü minimal ve basit olsa da, SublimeText, kullanıcı arayüzünün sağ tarafında küçültülmüş bir ekran kodu gibi birkaç şık özellik sunar ve kullanıcıların kodları arasında hızla gezinmesine ve nispeten kolaylıkla gezinmesine olanak tanır. Tamamen ücretsiz olmasa da, özellik sınırlı demo sürümü. Tüm özelliklerin kilidini açmak size 70 dolara mal olacak.
Atom, GitHub'ın yeni nesil geliştiriciler için bir programlama düzenleyicisi üretme çabasının sonucudur. Hala devam eden bir çalışma olsa da Atom, yeni uzantılar, JavaScript kitaplıkları ve daha fazlasıyla hevesli canlı bir geliştirici topluluğuna sahip çok yetenekli bir düzenleyicidir. Dezavantajları arasında bazı UI tuhaflıkları, bazı eklenti paketlerinin hatalı çalışma olasılığı ve (çok) büyük dosyalarla çalışırken bildirilen performans sorunları sayılabilir. Ancak proje aktif olarak geliştirilmektedir ve mevcut eksikliklerin iyileştirilmesi muhtemeldir. Atom açık kaynaklı bir projedir ve ihtiyaçlarınıza göre kolayca hacklenebilir.
Nano: Dar bir köşede mükemmel, ancak kişi bir kod bloğunu girintilemek için tuş vuruşlarını yaparken ve yorumları sıralı tutarken bunu yapmanın daha hızlı bir yolu olması gerektiğine dair kaçınılmaz düşüncenin zihnine sızmasını engelleyecek kadar zengin özelliklere sahip değil. 80. sütunda! Metin vurgulaması bile yoktur ve yapılandırma dosyası değişikliklerinden başka bir şey için kullanılmamalıdır.
TextMate2: TextMate'in en büyük dezavantajı, yalnızca Mac'te çalışmasıdır. Yaratıcılarının belirttiği gibi, "TextMate, Apple'ın işletim sistemlerine yaklaşımını metin editörleri dünyasına getiriyor." UNIX temelleri ve GUI arasında köprü kurarak TextMate, hem uzman komut dosyası yazarlarının hem de acemi kullanıcıların yararına her iki dünyanın en iyisini seçer. Bash veya Markdown için de büyük desteği olan birçok Ruby, Python ve JavaScript geliştiricisi için tercih edilen editördür. Bu makalenin yayınlandığı anda TextMate 2 hala Beta'da, ancak zaten onu Emacs'in uzantılarının ötesine genişletmeyi vaat eden çok olgun bir eklenti ekosistemine sahip.
jEdit: Java tabanlı ve bazıları tarafından yavaş olarak kabul ediliyor. Kutudan çıktığı gibi yapılandırma belirli insanları uzaklaştırabilir, ancak jEdit düzgün yapılandırılırsa son derece hızlı olabilir ve ayrıca son derece güzel görünebilir.
Eclipse: Yaygın olarak kullanılan bir başka IDE olan Eclipse, Java geliştiricileri arasında çok popülerdir, ancak birçok farklı platforma uyarlanmıştır. Monolitik mimarisinin onu suyun altına çekecek bir kaya olduğunu söyleyebiliriz, ancak geliştiriciler arasında hala en popüler platformlardan biri.
Aptana Studio: Kapsamlı bir açık kaynaklı web uygulaması IDE'si. Bazı Java geliştiricileri arasında popüler olmasını sağlayan bir Eclipse eklentisi olarak mevcuttur. Bağımsız sürüm daha da yalındır ve bir dizi farklı tema ve özelleştirme seçeneği sunar. Aptana'nın proje yönetimi yetenekleri, Eclipse'de becerilerini geliştiren kodlayıcılar için de kullanışlı olabilir. Önceki sürümler bazı donanım platformlarında performans sorunlarından muzdarip olsa da, bu sorunlar Aptana Studio 3'te ele alındı ve geçmişte kalması gerekiyordu.
NetBeans: Platformlar arası desteğe sahip, nispeten popüler bir başka açık kaynaklı IDE. SublimeText gibi yalın editörlere göre başlangıçta biraz daha yavaştır ve bazı alternatiflere kıyasla eklenti seçimi sınırlıdır. Birçok Java geliştiricisi, sorunsuz SCM entegrasyonu ve HTML5 desteği sayesinde NetBeans'i sevmeye başladı. PHP için NetBeans desteği de en son sürümlerde iyileştirildi.
JetBrains: Java, Ruby, Python ve PHP için bir IDE ailesi sunar. Hepsi aynı çekirdek motora dayanıyor. Kendi başına çok yetenekli olan JetBrains IDE'leri giderek artan bir takipçi kitlesi kazanıyor. Ancak, ücretsiz, açık kaynaklı çözümler değiller, ancak 30 günlük deneme süresi mevcut ve fiyatlar makul.
Komodo Edit: Komodo Edit büyük bir potansiyele sahiptir, ancak yine de can sıkıcı küçük “tutuklar” ve dikeylik eksikliğinden dolayı sinir bozucu olabilen tuhaflıklarla doludur. Komodo Edit, çok büyük bir kapasiteye sahip olduğu için utanç verici bir durum olan darmadağın hissediyor. Bazı düzenleme ilkelerini kaçırmış olma ümidiyle Komodo Edit'e geri dönüyorum ve her seferinde, düzensiz bir yetenek kargaşası tarafından dövülüyorum.
Geany: Geany, bu listedeki diğer editörlerin çoğu gibi büyük bir güç oyuncusu değil. “Ne olduğu”ndan çok “ne olmadığı” ile tanımlanır. Yavaş değil, eski günlerden çok fazla mirasa sahip değil, makro yeteneğine sahip değil veya arabellek üzerinde çok pencereli bir yeteneği yok. Yine de yaptığı şeyleri yeterince iyi yapıyor. Belki de, denediğim tüm editörler arasında en az talepkar olanı ve hala bir programcının editöründen beklediğinizin yüzde 90'ını yapabiliyor. Geany, Ubuntu'da yeterince iyi görünüyor, bu da onu tercih ettiğim editör olarak seçmemin nedenlerinden biri.
Benim sonucum
Bu harika araçlardan sadece birini en iyi programlama editörü olarak ilan etmek haddini bilmezlik olur. Ve denemediğim bile birkaç editör var. Herkese uyan tek bir çözüm yoktur. Bu beni bir dizi farklı editör denemeye zorladı; Editörün uzun ömürlülüğüyle daha çok ilgileniyorsanız, Roben Kleene'nin kod editörleri değerlendirmesini de okumak isteyeceksiniz.
Şu anda Geany kullanıyorum, ancak sahip olduğum gereksinimlere uygun olduğu için. Geany ve Perl/Gimp/Audacity/Sox'tan gelen pek çok yardımla, geliştirdiğim Android uygulamaları için Java kod tabanını geliştirebilir ve sürdürebilir, bunları birden çok distribütör, kaynak, tiftik için farklı konfigürasyonlarda derlemeye hazırlayabilirim. , .apk
dosyalarını derleyin, derleyin ve üretin ve bu uygulamaları küresel olarak sunun.
Geliştirme hattınız farklı bir dizi gereksinim önerebilir ve umarım size en uygun programlama düzenleyicilerini araştırma konusunda biraz zaman kazandırmışımdır.