Java için ide karşılaştırması. Java Entegre Geliştirme Ortamı

  • 18.06.2019

Dilin özelliklerinden daha hızlı ve daha doğru kod yazmanıza yardımcı olacak programlara geçmenin zamanı geldi. Geliştirme ortamı (IDE - Entegre Geliştirme Ortamı) şunları içerir:

  • kod düzenleyici;
  • derleyici;
  • kolektör;
  • hata ayıklayıcı.

Bazı geliştirme ortamları tüm bunları kutudan çıkarırken içerir, diğerleri ise bu duruma eklentiler ve modüller bağlı olarak getirilir. İşte bugün java için en iyi 10 IDE.

IntelliJ FİKİR

Açıklama: Kod yazarken akıllı yardım sistemiyle donatılmış, Java geliştirme için en işlevsel ortamlardan biri. İçeriğe bağlı olarak, IDEA otomatik tamamlamayı ve araç kullanılabilirliğini ayarlar. Araçların bolluğu, örneğin kalıpları ve tekrarları kullanarak geliştirmeyi hızlandırmanıza ve son programın üretkenliğini artırmanıza olanak tanır. Herhangi bir görev için çok sayıda eklenti ve eklenti, IDEA Java geliştirme ortamını neredeyse ideal bir araç haline getirir.

Maliyet: İlk işletme yılı için 499 $.

NetBeans

Açıklama: Üretici tarafından en son Java özelliklerini destekleyen ve FindBug aracı sayesinde hatasız kod yazmanıza olanak tanıyan bir geliştirme ortamı olarak konumlandırılmıştır. Rusça java için web sitesi, belgeler ve IDE'nin kendisi. Belki de en güçlü ücretsiz java geliştirme ortamı.

Ücretsiz.

Java IDE'lerinin bu listesi tam olmaktan uzaktır ve yalnızca en popüler temsilcileri kapsar. Bu nedenle, bir favori seçmeden önce, en iyi Java geliştirme ortamının, mevcut sorunu minimum çabayla ve en iyi sonuçla çözmenize izin veren ortam olduğunu unutmayın.

Java'da çok sayıda var ve bazen seçimlerine karar vermek zor. Ayrıca, bir kullanıcı gerekli programlama dilini desteklemeyen bir program indirir ve ardından başka bir tane aramak zorunda kalır. Bu yazıda, Java programlama için seçilmiş derslerin yanı sıra bir dizi çalışma programı sunacağız. Tabii ki, tüm programları sunamayacağız, çünkü bunlardan epeyce var. Ancak yine de en popüler ve ilginç olanları burada görebilirsiniz.

Programlar: Java programlama dili

Bu listede, bu durumla başa çıkmanıza yardımcı olacak birkaç program sunacağız.

Java ve diğer popüler dillerde platformlar arası programlar oluşturmak için güçlü bir çalışma ortamı. Ücretsizdir, büyük artı Linux ile uyumlu olmasıdır.

IntelliJ FİKİR

JetBrains tarafından oluşturulan ücretsiz programın farklı geliştirme türleri için 2 sürümü vardır:

    Ultimate - telefon için web uygulamaları ve programlamanın yanı sıra işletme için yazılım geliştirmeye hizmet eder. Ücretlidir ancak deneme süresi ücretsizdir.

    Toplum- Java, Groovy, Scala ve Android uygulamaları için programlama için yaratılmıştır. İndirmemiz gerekiyor. Bunu yapmak için birkaç basit adım atmanız yeterlidir:

  • Resmi JetBrains web sitesine gidelim.
  • Gelelim Araçlar bölümüne.
  • IntelliJ IDEA programını seçiyoruz.
  • İndir düğmesini tıklayın.
  • İşletim sistemimize uygun programı indiriyoruz.

Java Programlama Eğitimleri

Programlama dillerini öğretmek için bazılarını şimdi ele alacağımız birçok program ve oyun var.

Belki de çoğunluk için en ilgi çekici olanla başlayalım: programlama dillerini öğrenmek için oyunlar.

Kodlama Oyunu

Herhangi bir programlama dilini kullanarak kendi yapay zekanızı yazmanız gereken mükemmel bir site. Öğreneceğiniz yol boyunca ilginç ve eğlenceli bulmacaları çözmeniz gerekiyor.

kod avı

Bu oyunda sen bir kod avcısısın. Yalnızca 2 dili destekler - Java ve C #. Oyunda her biri kendi görevi olan 14 seviyeden geçmeniz gerekiyor.

Java, CoffeeScript, JavaScript, Lua, Python gibi bazı programlama dillerinde arkadaşlarınızla kod yazmak için rekabet edebileceğiniz küçük yaşlar ve öğrenciler için popüler bir platform. Klanlar ve hatta arsa, oyuncularla etkileşim - tüm bunlar sizi heyecan verici bir öğrenmeye çekecek.

robotkod

Oyunun adından, içinde Java dilinde kendi robotlarınızı yaratmanız ve ardından yarattıklarınızı savaş alanına bırakmanız gerektiği açıktır.

kod savaşları

Robotlar yaratmak değil, arkadaşlarınızla rekabet etmek, gerçek sorunları çözmek istiyorsanız, o zaman bu oyun şüphesiz tam size göre.

Java öğrenmek için kaynaklar

Programlama dillerini ücretsiz öğrenebileceğiniz ve oradaki sorunları çözebileceğiniz siteler de bulunmaktadır. Şimdi birkaç site tartışılacak.

Kursra

Bu kaynakta programlama dilleri hakkında birçok kurs bulacaksınız, Rusça yerelleştirme var. Site ücretsizdir, ancak ödemeniz gereken ek içerik vardır. Örneğin, üçüncü taraf doğrulaması gerektirmeyen ücretsiz ve eksiksiz pratik ödevler için dünyanın önde gelen üniversitelerinden materyalleri görüntüleyebilirsiniz. Ancak iş başkaları veya bir öğretmen tarafından kontrol edilecekse, o zaman ayda 49 dolardan (3200 ruble) ayrılmanız gerekecek.

Coursera'ya benzer bir kaynak (aynı ücretle), ancak 49 $ (3200 ruble) ödevleri kontrol etmek için değil, kursları tamamlamak için sertifika almak için ücretlendirilirsiniz. Ve geri kalan materyaller size ücretsiz olarak sunulacak.

"Sezgi"

Bu sefer, bu, bir öğretmenin hizmetleri için ücretsiz veya ayda 500 ruble'den ders alabileceğiniz ve hayatta size yardımcı olabilecek iyi bilgiler edinebileceğiniz yerel bir sitedir. Eğer ücretsiz eğitim almak istiyorsanız bunu kendiniz yapabilirsiniz ve eğer özel bir öğretmeniniz olsun istiyorsanız, küçük bir miktar için dışarı çıkmanız gerekecektir.

özetleyelim

Programlamayı öğrenmenize yardımcı olabilecek veya bir çalışma ortamı olarak kullanılabilecek daha birçok site, program veya oyun vardır. Ancak Java'da programlama için tüm programları tanımlamak ve bilmek hiç gerekli değildir, sadece kendiniz için alıştığınız ve geliştirmeniz veya öğrenmeniz için uygun olan tek bir program seçmeniz yeterlidir. Sonunda, seçim senin.

JavaWorld kaynağının programcısı ve editörü Martin Heller'in bir makalesinin bir uyarlamasını dikkatinize sunuyoruz. Java geliştirme için en iyi üç IDE'yi muhtemelen duymuşsunuzdur. Endüstriyel programcıların yaklaşık yüzde 90'ı Eclipse, NetBeans veya IntelliJ IDEA kullanır ve her IDE'nin kendi avantajları ve dezavantajları vardır. Bu yazıda, hangisinin sizin için doğru olduğunu anlamanız için bunları açıklamaya çalışacağız. Tabii ki, üçünü de işte denemek ve hangisinin sizin için en uygun olduğunu bulmak en iyisidir. Bu herhangi bir inceleme ile değiştirilemez. Bu IDE'lerle daha önce çalıştım, ancak bu araştırma için bir MacBook Pro dizüstü bilgisayara IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE ve NetBeans 8.1 Java EE yükledim. IDE'yi birkaç açık kaynaklı Java projesinde test ettim.

Bir IDE'den ne beklenir

Modern bir "sağlıklı Java geliştiricisi" IDE, Java 8, Scala, Groovy ve düzenli olarak kullandığı diğer Java sanal makine dillerini desteklemelidir. Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails ve Vaadin dahil olmak üzere büyük uygulama sunucuları ve en popüler web çerçeveleri için destek gereksiz olmayacaktır. IDE, Git, SVN, CVS, Mercurial veya Bazaar ile birlikte Ant, Maven veya Gradle gibi sürüm kontrol sistemlerinin tüm yapıları ile uyumlu olmalıdır. Ek olarak, geliştirme ortamının veritabanları ve yığınınızın istemci katmanıyla çalışabilmesi, gömülü JavaScript, TypeScript, HTML, SQL, JavaServer Sayfaları, Hazırda Bekletme ve Java Kalıcılık API'sini desteklemesi önemlidir. Son olarak, IDE'nin gereksiz stres olmadan sistemleri düzenlemenize, oluşturmanıza, hata ayıklamanıza ve test etmenize izin vereceğini ummak mantıklıdır. Geliştirme ortamının yalnızca akıllı kod tamamlamayı değil, aynı zamanda akıllı yeniden düzenleme ve kod ölçümlerini de desteklemesi idealdir. Çoğu durumda, çerçeveleri ve taslakları test etmek için destek faydalı olacaktır. Ekibiniz bir bilet sistemi ve CI/CD kullanıyorsa, bunlara bağlanabilmek için IDE'ye ihtiyacınız var. Ayrıca, kapsayıcılarda ve bulutlarda dağıtıma ve hata ayıklamaya ihtiyacınız olup olmadığına karar verin. Biz sadece ana beklentileri listeledik (belki sizin ekleyeceğiniz bir şey vardır) ve şimdi rakiplerimize daha yakından bakalım.

IntelliJ FİKİR


IntelliJ IDEA, özellikler ve fiyat açısından iki farklı şekilde gelir: ücretsiz Topluluk sürümü ve genişletilmiş işlevselliğe sahip ücretli Ultimate sürümü. Topluluk sürümü, JVM ve Android geliştirme içindir. Ücretsiz sürüm Java, Kotlin, Groovy ve Scala'yı destekler; Android; Maven, Gradle ve SBT; Git, SVN, Mercurial ve CVS sürüm kontrol sistemleri ile çalışır. Ultimate sürümü, web ve kurumsal geliştirme için uyarlanmıştır. IDE'nin bu sürümü yalnızca Git, SVN, Mercurial ve CVS ile değil, aynı zamanda Performance, ClearCase ve TFS ile de çalışır; içine JavaScript ve TypeScript ile yazabilirsiniz; doğal olarak Java EE, Spring, GWT, Vaadin, Play, Grails ve bir dizi başka çerçeve için destek var. Ve tabii ki SQL ve veritabanı araçları olmadan olmaz. Bir fiyatlandırma politikası oluştururken bu IDE'nin geliştiricileri tarafından yönlendirilen fikir, ticari versiyonunun (Ultimate), üretkenliklerinin artması nedeniyle profesyonellerin bilgisayarlarında yerini almasıdır. Bir Java programcısı yılda 50 bin dolar (veya daha fazla) kazanırsa, ücretli IntelliJ IDEA IDE'ye (yıllık abonelik başına 500 dolar) harcanan yatırımın geri dönüşü, çalışmalarının hafif bir hızlanması nedeniyle çok hızlı bir şekilde gerçekleşecektir. Sonraki yıllarda, iş fiyatları düşer, yeni başlayanlar, serbest çalışanlar için önemli ölçüde daha düşüktür ve öğrenciler, öğretmenler, Java şampiyonları ve açık kaynak geliştiricileri için tamamen ücretsizdir. IntelliJ IDEA, derin kod anlayışı, akıllı ergonomisi, yerleşik geliştirme işlevleri ve birçok dil desteği ile etkileyicidir.
Şekil 1. IntelliJ IDEA, Java kodunun istatistiksel analizine dayanan uyarı ve varsayımların sayısını gösterir. Varsayımları resimde görüldüğü gibi üzerlerine tıklayarak daha detaylı inceleyebilirsiniz; çoğu durumda, düzeltmeler için seçenekler ve seçenekler içeren bir liste alırsınız.

Kodun derinlemesine anlaşılması

Sözdizimi vurgulama ve basit kod tamamlama, herhangi bir modern Java düzenleyicide yaygındır. IDEA, "akıllı tamamlama" sunarak bunu bir adım öteye taşımıştır. Bu terim, geliştirme ortamının belirli bir bağlamda geçerli olan en alakalı sembollerin bir listesini gösterdiği anlamına gelir. Sembollerin listesi yalnızca "genel olarak kabul edilen" bağlama değil, aynı zamanda geliştiricinin programlama stiline, belirli operatörleri ne sıklıkta kullandığına bağlıdır. "Bir zincirin sonu" aslında mevcut bağlamda yöntemler veya alıcılar aracılığıyla izin verilen uygulanabilir karakterlerin bir listesini gösterir. Ayrıca, statik üyeler veya sabitler söz konusu olduğunda, IDEA, gerekli ithalat ifadelerini otomatik olarak ekler. Tüm otomatik tamamlama durumlarında, IDEA çalışma zamanında bir sembolün türünü tahmin etmeye, seçimini hassaslaştırmaya ve hatta gerekirse bir döküm uygulamaya çalışır. Java kodu genellikle dize olarak diğer dillerden snippet'ler içerir. IDEA, SQL, XPath, HTML, CSS veya JavaScript kodunu Java dize değişmezlerine enjekte edebilir. Bu anlamda, IDE kodu birden çok dilde yeniden düzenleyebilir. Örneğin, JPA eşlemede bir sınıfı yeniden adlandırırsanız, IDEA ilgili JPA varlığını ve ifade sınıfını günceller. Bir kod parçasını yeniden düzenlerken, geliştiricinin (oldukça doğal) bir arzusu vardır: bu kodun tüm kopyalarının da yeniden düzenlenmesi. IDEA Ultimate, kopyaları ve benzer parçaları bulur ve onları da yeniden düzenler. IntelliJ IDEA, kodu yükte ve doğrudan girişte ayrıştırır. Şüpheli sorunları gösterir (yukarıdaki resmimizde olduğu gibi) ve isteğe bağlı olarak algılanan sorunlara olası hızlı düzeltmelerin bir listesini sunar.

ergonomi


IntelliJ IDEA, geliştiriciyi zaten içindeyse akış üretkenliği durumundan çıkarmayacak şekilde tasarlanmıştır. Soldaki ilk şekilde gösterilen Proje penceresi, programcının kod düzenleyici penceresine odaklanabilmesi için basit bir fare tıklamasıyla kaybolur. Kod yazarken ihtiyaç duyulan tüm eylemler için, açılır pencerelerdeki sembollerin tanımı da dahil olmak üzere kısayolları için klavye kısayolları vardır. İlk başta, tüm bu kombinasyonları hatırlamak zordur, ancak yavaş yavaş onlara alışırsınız ve sadece onları kullanırsınız. Bununla birlikte, programcı, uygulamanın gösterdiği gibi tuş kombinasyonlarını kullanmasa bile, IDEA'da hızlı ve kolay bir şekilde çalışmaya alışır. IDEA hata ayıklayıcısına özellikle dikkat etmek isterim: değişkenlerin değerleri doğrudan editör penceresinde, ilgili kaynak kodun yanında görüntülenir. Değişkenin durumu değiştiğinde vurgu rengi de değişir.

Yerleşik araçlar

IntelliJ IDEA, Git, SVN, Mercurial, CVS, Perforce ve TFS dahil olmak üzere çoğu sürüm kontrol sistemiyle etkileşim kurmak için tutarlı bir arayüz sağlar. Değişiklikleri doğrudan IDE'de yönetebilirsiniz, bu çok uygundur. IDEA'yı test ettiğimde, kaynak koddaki son değişikliğin bir açıklama olarak düzenleyici penceresinde gösterilmesini arzuladım (örneğin, Visual Studio'da olduğu gibi). Görünüşe göre IDEA'nın bunun için özel bir eklentisi var. IDEA ayrıca derleme araçlarına, test çalıştırma süresine, kapsama araçlarına ve yerleşik bir terminal penceresine sahiptir. IntelliJ'in kendi profil oluşturucusu yoktur, ancak üçüncü taraf eklentileri buna bağlanabilir. Örneğin, YourKit, eski bir JetBrains veya VisualVM baş geliştiricisi tarafından (bu, NetBeans Profiler'ın yeniden paketlenmiş bir sürümüdür). Java'da hata ayıklama, kaynağına sahip olmadığınız sınıflara garip şeyler olduğunda dayanılmaz olabilir. IDEA, bu gibi durumlar için bir decompiler ile birlikte gelir. Sunucu tarafı Java programlama, sık veritabanı etkileşimlerini içerir, bu nedenle IDEA Ultimate programcıları, SQL ve veritabanı araçlarının rahatlığını takdir edeceklerdir. Ancak yetenekleri birisi için yeterli değilse, yerleşik SQL IDE (DataGrip) ile IDEA Ultimate sürümünü satın alabilirsiniz. Doğru, normal bir IDEA Ultimate aboneliğinden biraz daha pahalı olacak. IntelliJ IDEA, tüm büyük JVM uygulama sunucularını destekler ve Java Enterprise programcılarının aşina olduğu bilinen zorlukları ortadan kaldırarak bu sunucularda konuşlandırmanıza ve hata ayıklamanıza olanak tanır. IDEA ayrıca Docker'ı da destekler (geliştirme ortamına özel bir Docker araçları penceresi ekleyen bir eklenti kullanarak. Bu arada, IDEA'nın bir eklenti denizi vardır).

gerçek çok dilli

IDEA, Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS ve diğer çerçeveler için genişletilmiş kod desteğine sahiptir. Muhtemelen hepsinin Java'ya özgü olmadığını fark etmişsinizdir. IDEA, doğrudan kutunun dışında diğer dilleri "anlıyor" - Groovy, Kotlin, Scala, JavaScript, TypeScript ve SQL. Bu listede istediğiniz dili bulamazsanız, şu anda özellikle R, Elm ve D'yi desteklemek için 19 IntelliJ dil eklentisi bulunmaktadır.


Eclipse, uzun yıllar boyunca Java IDE'leri arasında avuç içi popülerliğini güvenle korumuştur. Bu ortam tamamen ücretsiz, açık kaynaklıdır ve öncelikle Java ile yazılmıştır. Ancak modüler mimarisi Eclipse'in diğer dillerle de kullanılmasına olanak tanır. IBM tarafından başlatılan Eclipse projesi 2001 yılında ortaya çıktı. Smalltalk tabanlı IBM Visual Age geliştirme ortamları ailesini değiştirmek istediler. Eh, asıl amaç, adından bile anlaşılacağı gibi, Microsoft Visual Studio'yu gölgede bırakmaktı (Eclipse, İngilizce'de tutulma anlamına gelir). Java taşınabilirliği Eclipse'in platformlar arası olmasına yardımcı olur: Bu IDE Linux, Mac OS X, Solaris ve Windows üzerinde çalışır. İyi ya da kötü, Java Standard Widget Toolkit (SWT), Eclipse'in görünümünden ve verdiği histen en azından kısmen sorumludur. Eclipse, performansını (veya bazı iyi dilek sahiplerinin dediği gibi, eksikliğini) JVM'ye borçludur. Eclipse oldukça yavaştır çünkü kökleri oldukça eski donanımlara ve JVM'nin eski versiyonlarına dayanmaktadır. Bugün bile, özellikle ona bağlı birçok eklentiyle, halsiz görünüyor. Eclipse'in ek yükünün bir kısmı, bir dosya yüklendiğinde veya kod güncellendiğinde çalışan yerleşik artımlı derleyicisine atfedilebilir. Yararlı bir şey, metin girerken hataları yakalayan kişidir. Derlemeden bağımsız olarak, bir Eclipse projesi, Java öğelerinin tür hiyerarşisi, başvuruları ve bildirimleri hakkında bilgi içeren bir içerik modelini korur. Eclipse'in şu anki sürümü Neon (4.6.0) olarak adlandırılmıştır. Web Geliştiricileri için Eclipse Java EE IDE'yi yükledim (bu tek seçenek değil, başka bir şey seçebilirsiniz). Minimum Eclipse SDK içerir ve isteğe bağlı olarak eklentiler eklenir. Bu arada, bu IDE'deki eklentilerle çalışmak, kalbin zayıflığı için değil. Resmi özellikleri bu konuda hiçbir şey söylemese de, üçüncü taraf eklentileri genellikle birbirleriyle çatışır.
Şekil 2. Eclipse'de soldan sağa dört araç çubuğu vardır: Paket Gezgini, Java Düzenleyicisi, Java Sınıf Yapısı ve Görev Listesi. Bu şekilde Eclipse'e yüklenen proje JUnit test çerçevesidir. Paneller kolayca değiştirilebilir.

Eklenti desteği

Eclipse eklenti ekosistemi, bu IDE'nin hem güçlü noktası hem de ana sorunlarından biridir. Eklentilerin uyumsuzluğu nedeniyle bazen tüm derlemeler çöker ve programcılar baştan başlamak zorunda kalır. Şu anda Eclipse için yazılmış resmi ve gayri resmi 1.700'den fazla eklenti var ve bunlar çok iyi çalışıyor olabilir veya olmayabilir. Eclipse eklentileri 100'den fazla programlama dilini ve 200'e yakın uygulama geliştirme çerçevesini destekler. Çoğu Java sunucusu da desteklenir: Eclipse'den yeni bir sunucu bağlantısı belirlerseniz, yaklaşık 30 uygulama sunucusu bulacağınız satıcı klasör listesine yönlendirilirsiniz. Yalnızca Apache Tomcat'in dokuz çeşidi olacak. Ticari satıcılar, çözümlerini bir araya toplama eğilimindedir: örneğin, yalnızca bir Red Hat JBoss Ara Yazılımı vardır ve içeride WildFly ve EAP sunucu araçlarının yanı sıra JBoss AS'yi bulacaksınız.

Düzenleme, yeniden düzenleme ve hata ayıklama

Eclipse ile ilk deneyim kafa karıştırıcı ve hatta kafa karıştırıcı olabilir. Öncelikle Eclipse'i kurmanız ve çalışma alanları, görünümler ve görünümler için kavramsal mimarisine alışmanız gerekir. Bunların hepsi yüklediğiniz eklentiler tarafından belirlenir. Sunucu tarafı Java geliştirme için muhtemelen Java, Java EE ve Java tarama görünümlerini, Paket Gezgini görünümünü, hata ayıklama görünümünü, Web araçları komut senkronizasyonu görünümünü, veritabanı geliştirme görünümünü ve veritabanı hata ayıklama görünümünü kullanacaksınız. .. Pratikte, istediğiniz pencereleri açtığınızda her şey anlam kazanır. Eclipse hemen hemen her zaman belirli bir görevi gerçekleştirmek için birkaç yol sunar. Örneğin, Java tarama perspektifini kullanarak kodu görüntüleyebilirsiniz. Hangisini seçeceğiniz bir zevk ve seçim meselesidir. Java Özel Arama, Java paketlerinin, türlerinin, yöntemlerinin, alanlarının bildirimlerini, referanslarını ve oluşumlarını bulmanızı sağlar. Arama ve önizleme için hızlı erişimi de kullanabilirsiniz. Kod kalıplarından ortak kod kalıpları oluşturulabilir. Eclipse'de Java yeniden düzenlemesi, yaygın yeniden adlandırma işlemlerinden daha az belirgin dönüşümlere kadar (Martin Fowler'ın kitabında olduğu gibi) 23 işlemi destekler. Eclipse, uzaktan hata ayıklamayı destekleyen bir JVM kullanmanız koşuluyla hem yerel hem de uzaktan hata ayıklamayı destekler. Hata ayıklama oldukça standarttır: kesme noktaları tanımlarsınız ve ardından hata ayıklama sekmesindeki değişkenleri görüntülersiniz. Elbette, kodunuz üzerinden geçebilir ve ifadeleri değerlendirebilirsiniz. Eclipse, her yaştan, değerden ve kullanışlılıktan oluşan geniş bir belge veritabanına sahiptir. Ne yazık ki, kılavuzda, örneğin eski bir arayüz ve düğme düzeni ile mevcut sürüme karşılık gelmeyen bir resim bulmak, bu IDE için yaygın bir şeydir. Ne yazık ki, geç belge güncellemeleri sorunu, kaynak kodlu herhangi bir proje için çok yaygındır.


NetBeans, 1996 yılında Prag'da bir öğrenci üniversite projesi olarak başladı. 1997'de IDE ticari bir ürün haline geldi ve 1999'da Sun Microsystems (Java'nın ebeveynleri) tarafından satın alındı ​​ve ertesi yıl açık kaynaklı bir sürüm sundu. Geçerli sürüm 8.1, Windows, Mac OS X, Linux ve Solaris çalıştıran makinelerde çalışır. Pekala, taşınabilir paket, bir Java makinesinin bulunduğu herhangi bir sistemde çalıştırılabilir. Kendim için, olası altı indirme paketinden biri olan Java EE paketini indirdim. Bu paket JavaScript ve HTML, GlassFish ve Tomcat'i destekler, ancak PHP, C / C ++ / Fortran, Groovy ve Grails'i desteklemez: Bunları Her Şey Dahil (veya yalnızca Hepsi) paketinde alabilirsiniz. Yine de, istersem, uygun eklentiyi (ve diğerlerini) seçerek, yukarıdaki diller için herhangi bir zamanda desteği indirebilirim. NetBeans, Eclipse'den daha azına sahiptir, ancak genellikle birbirleriyle çelişmezler. Bu sonbaharda Oracle (Sun Microsystems'in devralınmasından sonra NetBeans'i devraldı) bu geliştirme ortamını tüm hakları, kaynak kodu, ticari markası, netbeans.org alanı ve bir dizi başka altyapıyla birlikte Apache Software Foundation'ın kanatları altına taşımaya karar verdi. elementler. Bu nedenle, daha önce sistemin belirli ayrıcalıklara sahip olmasına rağmen, projenin geleceği hala belirsizdir. Böylece, güncellenmiş platformun yayınlanmasından hemen sonra Java 8 için ilk desteği alan NetBeans oldu ve "Java 8 için resmi IDE" olarak adlandırıldı. Ancak, piyasaya sürüldükten bir ay sonra bu avantaj kayboldu: o zaman diğer IDE'ler de sekizinci Java için destek aldı. Ancak, NetBeans'in Java 8 desteğinin gerçekten iyi olduğunu ve bu IDE'nin sürüm 8 numaralarını "eski" koda dönüştürmek için harika olduğunu belirtmek isterim. Düzenleyicileri, kod çözümleyicileri ve dönüştürücüleri, programcının Java 8'e özgü yapıları - lambda ifadeleri, işlev operatörleri ve yöntem referanslarını kullanarak kodu yükseltmesine yardımcı olacaktır. NetBeans 8'deki JavaScript eklentileri, Node.js'yi ve Gulp ve Mocha gibi en yeni JavaScript araçlarını desteklemenin yanı sıra Nashorn JavaScript yorumlayıcısını destekleme konusunda mükemmel bir iş çıkarır.
Şekil 3. Burada NetBeans, Şekil 1'de açılan IntelliJ IDEA ile aynı Maven tabanlı projeyle çalışıyor. Bağlam menüsündeki genişletilmiş işlevselliğe ve yeniden düzenleme alt menülerine dikkat edin.

Düzenleme ve yeniden düzenleme

NetBeans Editor dilleri destekler, siz yazarken hataları algılar ve araç ipuçları ve akıllı kod tamamlama konusunda size yardımcı olur. Öznel olarak, IDE bu görevle Eclipse'den daha hızlı, ancak IntelliJ IDEA'dan biraz daha yavaş başa çıkıyor. Ayrıca NetBeans, programcının kodu bozmadan yeniden yapılandırmasını, kaynak analizi yapmasını sağlayan ve hızlı düzeltmeler veya kod uzantıları için çok çeşitli ipuçları sunan eksiksiz bir yeniden düzenleme araçları yelpazesine (Şekil 3'te gösterildiği gibi) sahiptir. NetBeans, daha önce "Project Matisse" olarak bilinen Swing GUI için bir tasarım aracı içerir. Geliştiriciler, NetBeans 7.1'de tanıtılan Inspect & Transform otomatik yeniden düzenleme aracını takdir ediyor. Proje kodunu analiz etmenizi ve önerilen iyileştirmeleri yapmanızı sağlar. Ancak kişisel olarak, önce kendi kodumu birim testleri ile test etmeyi ve ancak daha sonra radikal değişiklikler yapabilen araçları çalıştırmayı tercih ederim. Onarılamaz sonuçlara yol açan her türlü otomatik düzeltmeden defalarca muzdarip oldum.

Derleme, Hata Ayıklama ve Profil Oluşturma

NetBeans, Maven ve Ant için harika bir yerleşik desteğe ve Gradle için bir eklentiye sahiptir. Maven projelerinin sistem tarafından yerel olarak algılandığını keşfettiğimde çok mutlu oldum. Bu, basitçe açılabilecekleri ve içe aktarılamayacakları anlamına gelir. NetBeans ayrıca Maven bağımlılıkları için çekici (ve kullanışlı) bir grafik ekran içerir. NetBeans Java Hata Ayıklayıcı fena değil, ancak uyarıları var. Ayrı bir görsel hata ayıklayıcı, programcının GUI'nin ekran görüntülerini almasına ve JavaFX ve Swing ile yapılan uygulamaların arayüzlerini incelemesine olanak tanır. NetBeans Profiler, CPU ve belleğin nasıl kullanıldığını daha açık hale getirir ve bellek sızıntılarını bulmak için mükemmel araçlara sahiptir.

Üç devin karşılaştırılması

Yıllar boyunca üç IDE'yi, Eclipse, NetBeans ve IntelliJ IDEA'yı kronolojik sırayla kullandım. Ne zaman başka bir IDE'ye geçsem, üretkenliğimin arttığını hissettim. Ancak son seçimimin IDEA olduğuna kesin olarak ikna olduğumda bile, bazen kalan iki IDE'den birine geri dönmek zorunda kaldım. Örneğin, Eclipse'in Android için geliştirmeyi destekleyen tek araç olduğu bir zamanda durum buydu (bugün Android için mevcut resmi IDE olan Android Studio var, IntelliJ IDEA'ya dayanıyor). Tabii ki, üç IDE'nin de hayranları ve rakipleri var. IntelliJ IDEA'yı seven birçok Java geliştiricisinin yanı sıra Visual Studio C++ ve C#'ın sadık hayranlarını tanıyorum. Çoğu zaman, bu insanlar üretkenliklerinin artmasından ve yıllık abonelik maliyetinin, IDEA'nın ücretli sürümünü kullanmanın sadece birkaç haftasında iade edilmesinden memnundur. Bununla birlikte, NetBeans ve Eclipse kullanıcıları da genellikle araçlarına bağlıdır ve diğer programcıların IDEA için neden para ödediğini merak eder. Kalkınan Java geliştiricileri için Eclipse'den uzak durmanızı tavsiye ederim. Java için hala en popüler IDE olmasına rağmen, onunla yeni başlayanlar için zordur: Hem sistem kurulumu sırasında hem de günlük çalışma sırasında Eclipse'in vahşi doğasında kaybolmak kolaydır. Eclipse, tüm IDE'ler arasında en kapsamlı eklenti ekosistemine sahiptir ve aynı eklentilerin uyumsuz bir setinin yüklenmesi nedeniyle çökme olasılığı en yüksek olanıdır. Ne yazık ki, Eclipse'i kullanırken, bu IDE'nin başka bir bozuk montajını tekrar tekrar kaldırmak ve "temiz" bir paket kurmak zorunda kaldım. NetBeans çoğu geliştirici için iyidir, harika bir profil oluşturucuya sahiptir ve ara sıra kullanırım. Ancak, IntelliJ IDEA Ultimate için ödeme yapmayı tercih ederim. Ve NetBeans'in geleceği hala belirsiz. Henüz araç satın alacak araçlara sahip olmayan Java'ya yeni başlayanlar için, ihtiyaçlarına bağlı olarak NetBeans veya IntelliJ IDEA Community Edition'ı kullanmanızı öneririm. İlki Java sunucularını kodlayanlar için seçilmelidir, ancak yalnızca IntelliJ IDEA Ultimate'ı ücretsiz veya büyük bir indirimle alabilenler kategorisine girmiyorsanız (öğrenciler veya açık kaynaklı bir proje geliştiren programcılar) .

Hafif Java IDE'leri

Bugün çoğu Java geliştiricisi IDEA, NetBeans veya Eclipse kullanıyor, ancak bazen daha hafif IDE'lere ve hatta Java eklentilerini destekleyen Sublime Text, emacs veya vim gibi kod düzenleyicilere ihtiyaç duyuluyor. Daha kolay bir şey arayanlar için makul seçenekleri aşağıda sıraladım:
  • DrJava küçük bir ücretsiz geliştirme ortamıdır. Rice Üniversitesi'ndeki öğrenciler için oluşturuldu ve oldukça popüler hale geldi: DrJava şimdiden 2 milyondan fazla indirildi. DrJava, kendini test odaklı geliştirmeye adamıştır. Ortam, bir akıllı kod düzenleyicisi, uygulama kodunu değerlendirmek için bir etkileşim paneli, kaynak düzeyinde bir hata ayıklayıcı ve birim test araçları içerir.
  • BlueJ, University of Kent tarafından hevesli programcılar için oluşturulmuş ücretsiz bir Java geliştirme ortamıdır. Bu ortam Oracle tarafından desteklenmektedir. BlueJ, NetBeans veya Eclipse gibi profesyonel IDE'lerden çok daha özlü ve basit bir arayüze sahiptir ve hatta OOP'nin temelleri hakkında özel bir eğitim içerir.
  • JCreator, Windows için C++ ile yazılmış başka bir küçük Java IDE'dir (performans nedenleriyle). Ücretli Pro sürümünde hata ayıklayıcı, Ant desteği ve kod sihirbazları bulunur, ancak ücretsiz sürümde (LE) yoktur.
  • Eclipse Che, Java, C ++, JavaScript, Python, PHP, Ruby ve SQL'i destekleyen tarayıcı tabanlı bir bulut IDE'sidir.

Projeye bağlı olarak Java IDE seçimi

En önemli üç Java IDE'sinin her birinin önemli avantajlarını açıklamaya çalıştım ve kullanışlı küçük rakiplerini geçerken bahsettim. Doğru IDE'yi seçmek için artıları ve eksileri tartmanız ve bunları ihtiyaçlarınıza ve projelerinizin ihtiyaçlarına göre eşleştirmeniz gerekir. Bir ekibe katılıyorsanız, gerekli olmasa da diğer geliştiricilerle aynı IDE'yi kullanmak akıllıca olacaktır. Ekibiniz kaynağı GitHub'da barındırıyorsa, IDE'nizin GitHub'ı desteklemesi doğal olarak daha uygun olacaktır. Evet, GitHub istemcisini veya git komut satırını kullanarak kod aktarımlarını IDE olmadan gerçekleştirebilirsiniz. Ancak farklı sistemler arasındaki bu tür sıçramalar ne kadar etkili olacak? IDE'nin bir yapı sistemi sürdürmesi de önemlidir. Örneğin, Maven ise, muhtemelen yerel testler için sistemi Ant'ta yeniden oluşturmak istemeyeceksiniz. Neyse ki, üç büyük Java IDE'si de Ant, Maven ve Gradle'ı kutudan çıktığı gibi veya bir eklenti ile destekler. Ancak "küçük" IDE'ler için bu doğru olmayabilir. Geliştirme ortamının projede kullanılan JRE sürümünü desteklemesi doğal bir istektir. Sürümler eşleşmiyorsa, örneğin sizin için görünecek, diğer ekip üyeleri görünmeyecek olan birçok gereksiz hata almanız muhtemeldir. Böyle bir durumun karmanız üzerinde iyi bir etkisi olması pek olası değildir. Açıkça söylemek gerekirse, IDE henüz Java'nın yeni bir sürümüne güncelleme yapmadıkça, JRE tutarsızlıklarının IDE desteği olmamasına kıyasla yapılandırma hatalarıyla ortaya çıkması daha olasıdır. Bana güvenin: IDE'niz projede kullanılan çerçeveleri ve teknolojileri tam olarak destekliyorsa, işinizi hızlandırmanıza gerçekten yardımcı olur. Muhtemelen yine de yapabilirsiniz. Ancak IDE, JPA ifadelerinin JPA varlığı ve ifade sınıfları (IntelliJ gibi) ile nasıl ilişkili olduğunu anlarsa, JPA ile ilgili kod üzerinde tam bir yanlış anlama durumunda olduğundan çok daha az zaman harcarsınız. Eh, IDE proje için kullanılan test çerçevesini ve kod çalıştırıcıyı destekliyorsa, çalışma ortamını değiştirmeden testleri çalıştırabilirsiniz. Bu da geliştirme sürecini hızlandıracak. Son olarak, IDE, projenin hata izleme ve bilet sistemleriyle uyumluysa işler daha hızlı olur. Yine, JIRA gibi bağımsız veya web istemcisi kullanabilirsiniz, ancak pencereyi değiştirmeden ve doğrudan IDE'de kalmadan biletleri kontrol etmenin çok daha hızlı olduğu konusunda hemfikir olmak zor.

Ücretsiz mi Ücretli mi?

IntelliJ IDEA Ultimate'dan test ettikten sonra, doğru geliştirme ortamı hissine kapıldım. IDE dünyasının bir çeşit Cadillac'ı. Yine, ücretsiz olmasa da, onu kullanmaktan elde edilen performans kazanımlarının yıllık aboneliğe değer olduğunu düşünüyorum. IntelliJ IDEA Ultimate 1 yıllık aboneliğine gücü yetmeyen yeni başlayanlar için Eclipse üzerinden NetBeans kullanmanızı öneririm. Tabii ki, Eclipse eklenti ekosistemi bugün diğer tüm IDE'lerden çok daha gelişmiş, ancak çok fazla büyümüş ve dağınık: Acemi bir geliştirici, işe dalmak yerine IDE ormanında çıkmaza girme riskiyle karşı karşıya. İkisi özel olarak eğitim amaçlı tasarlanmış "hafif" alternatiflere de değindim. Peki, dillerle yeni başlıyorsanız ve minimalist bir ortamı tercih ediyorsanız neden olmasın?

Yazardan: Web geliştirmede kullanılan tüm diller arasında Java en hassas olanıdır. Bu PL, karmaşık sözdizimi, yüksek düzeyde yazılmış veriler ve hatalara karşı bağışıklık ile karakterizedir. Bu nedenle Java - IDE için bu araç çok talep görüyor. Geliştirme ortamı, bir metin düzenleyicide yazan bir programcıyı bekleyen tuzakları atlamaya yardımcı olur. Bir metin yazarının uzun ve meşakkatli yoluna gitmek istemiyorsanız, kahve diline en uygun en iyi geliştirme ortamlarının incelemesine hoş geldiniz.

Geliştirme bir IDE gerektirir

Java, geliştirme ortamının bireysel uzmanların kaprisi değil, gerçek bir hayatta kalma aracı olduğu dillerden biridir. Karmaşık bir dil, sistemin tüm öğeleri uygun şekilde yapılandırılmadan okunamaz ve yürütülemez. Bazen bir web geliştiricisinin neden bu kadar hantal ve üretken bir yazılıma ihtiyaç duyduğunu anlaması zordur. HTML / CSS, JavaScript ve PHP gibi tüm web dilleri ek yazılım olmadan uygulanabilir (ikincisi için en yüksek ücretli IDE bile olsa - PHPStorm). Ancak iş Java'ya gelince her şey yerli yerine oturuyor. Uzun ve karmaşık kod belgeleri, manuel sistemleştirmeye uygun değildir.

Ancak, her zaman olduğu gibi, ideoloji karşıtları vardır. Bazı geliştiriciler, yalnızca daha az eğitimli programcılar için gerekli olan IDE'leri "koltuk değneği" olarak adlandırır. Onlar için bir geliştirme ortamı indirmek, temel bilgileri aldatmak gibidir. Ne yazık ki, bu yaklaşım geliştiriciyi programlamanın evriminin arkasında bırakabilir: son derece işlevsel web uygulamaları gibi büyük kurumsal projeler, ekip üyeleri arasında yakın etkileşim, hızlı başlatma ve kodun hata ayıklamasını gerektirir. Ayrıca, temel IDE'lerle çalışma becerisi, en iyi pozisyonlarda istihdam için bir kriterdir.

Elbette, geliştirici araçlarına nasıl ince ayar yapılacağını o kadar iyi bilenler var ki, tam teşekküllü bir IDE gereksiz hale geliyor. Ancak, geliştirme ortamı, geliştirici araçlarının geri kalanına güç sağlamak için gereken cihaz kaynaklarını tüketir. Bu, özellikle Windows / Linux'un eski sürümlerinde belirgindir - geliştirme ortamı başlar başlamaz, kaynakların geri kalanı durgunluk yaşar.

Web'deki geliştiriciler neredeyse her zaman metin editörlerini tercih eder. Daha hafiftirler ve diz üzerinde çözümler oluşturmanıza olanak sağlarlar. Ek araç yok, derin özelleştirme gerekli değil ve yazılım yelpazesi çok daha geniş. Bu, web programcılarının Java'yı kullanmaya başlayana kadar sahip oldukları görünümdür.

bir program seçmek istiyorum

Programlama endüstrisi, eksiksiz kod üretmek için birçok çözüm sunar. Bu, özellikle çeşitli geliştirme ortamları için geçerlidir. IDE'ler oluşturan sadece Oracle gibi büyük şirketler değil. Bu tür bir yazılım üzerinde çalışmak, kural olarak, faaliyetlerini optimize etmek isteyen profesyonellerin ayrıcalığıdır. Visual Studio'da tam olarak olan buydu: tüm zamanların en iyi IDE'lerinden biri. Yeni yüzyıla Windows'un bir sürümünü sunmaya hazırlanan Microsoft, araçlarını tek bir uygulamada sunmuş. Şimdi VS milyonların tercihi.

Ne yazık ki, "Java geliştiricileri için" olarak adlandırılamaz. Hayır, bu, bu geliştirme ortamında Java'da bir şeyler yazmanın mümkün olmayacağı anlamına gelmez: özel uzantılar bile vardır. Sadece C, C# ve diğer bazı Microsoft ürünlerine odaklanmıştır. Java'nın bugün sunacağımız kendi en iyi IDE'si vardır. Ancak, önce ideal IDE'yi (ünsüz) görmek istediğimizi anlamanız gerekir.

Öncelikle online çalışanların bir Java geliştiricisi için uygun olmadığına hemen karar verebilirsiniz. Yorumlama ile ilgili sorunlar yaratacaklar ve sürekli bağımlılıklar sadece programlama arzusunu caydıracak. Bugün sunulan yazılımlardan birini indirmek daha makul bir çözüm olacaktır. Sürekli olarak hatalara katlanmaktansa, indirmeyi bir kez tıklamak daha iyidir. Bulut tabanlı IDE'lerin çağı henüz gelmedi.

Ayrıca, bir Java IDE, verimli kodlama için gerekli olan bir dizi teknolojiyi desteklemelidir. Bunlar, Java sanal makine dillerini içerir: öncelikle Java 10, ayrıca Groovy ve Scala. Sürüm kontrolü de kilit noktalardan biridir. Git tek başına yeterli olmayacak: Mercurial, SVN ve daha fazlasına ihtiyacınız var. Birkaç yıl içinde hangisinin popüler olacağını tahmin etmek imkansız (Git, tabii ki ☺). Bir web geliştiricisi, PL veritabanları, web dilleri, hem ön (TS, JS, HTML) hem de arka uç (popüler genel amaçlı dillerden biri) dahil olmak üzere çok çeşitli dilleri desteklemekten yararlanacaktır. JVM, programlama dilinin sözcüklerini bayt koduna dönüştürmek konusunda özel olduğundan, güçlü yorumlayıcılara da ihtiyaç vardır. Java'yı teoride hızlı, pratikte hızlı hale getirebilirler.

Ve elbette, Java dilinin kendisi gibi, onun için geliştirme ortamı çapraz platform olmalıdır. Diğer tüm kararlar programcının gelişimini engeller. Java'yı seçtiğinden beri çok yönlülüğü seçti.

Java Geliştirmenin Üç Fili

Her zaman olduğu gibi, en iyi üç ve geri kalanlar var. Web geliştirme endüstrisi buna zaten alıştı ve geleneği değiştirmeyeceğiz. İncelememizin avantajı, ücretli bir yazılımın (neredeyse) olmamasıdır. Her geliştirme ortamını resmi sitesinden ücretsiz olarak indirebilirsiniz. Ayrıca kazananı öznel olarak seçeceğimiz en iyi listelerden biri olacak. Peki, deneyimlerinize ve sonuçlarımıza dayanarak kendi kararınızı ekleyebilirsiniz.

Web geliştirme için fikir

IntelliJ IDEA, JetBrains tarafından Java Sanal Makinesine dayalı olarak yayınlanan bir IDE'dir. Ortamın kendisi de Java'da ve kısmen Python'da yazılmıştır ve onlar için tasarlanmıştır. 2001'de kendilerini hemen Java ortamı olarak tanımladılar. Ardından geliştirme ortamı, IDEA'yı hemen zirveye taşıyan eksiksiz bir yeniden düzenleme araçları kitaplığı sundu. Geliştiriciler, kolaylıktan ziyade üretkenlik lehine bir seçim yaptılar. Bazı rutin işlemler tamamen geliştirme ortamı tarafından gerçekleştirilir.

Bugün ücretli yazılım olmayacağına söz vermiştik. Ancak gerçek şu ki, IDEA'nın nihai sürümünün, bir IDE için önemsiz (500 dolara kadar) olsa da kendi maliyeti vardır. Saatte 20 dolardan kazanan profesyonel bir javist iseniz, bu önemsiz bir şey. Bu arada, geliştirici yalnızca Ultimate paketinde Java EE platformuyla çalışabilecektir.

Ancak, IDEA'nın sadeleştirilmiş bir sürüm olarak adlandırılamayacak ücretsiz bir sürümü de var. Evet, bazı özellikler eksik ancak dil desteği ticari sürüme benzer. Üzerine ilk kod satırlarınızı yazmak ve eklentilerle genişletmek uygundur.

Web geliştirmede modern eğilimler ve yaklaşımlar

Site oluşturmada hızlı büyüme algoritmasını sıfırdan öğrenin

IDEA, gerçekten akıllı olarak adlandırılabilecek geliştirme ortamlarından biridir. En basit metin düzenleyicinin bile sahip olduğu düzeltmeler ve vurgulamalar yerine, IDEA otomatik tamamlama sunar: bitmiş programın parçaları geliştiricinin ellerinde oluşturulur. Söylemeye gerek yok, tüm parantezler ve diğer sözdizimsel güzellikler otomatik olarak kapatılacaktır. Ve bir şeyler ters giderse ve IDEA sorunla baş edemezse, Java geliştiricisine hemen ekranın diğer tarafında sinyal verir.

Aynı anda birkaç dilde gerçekleşen yeniden düzenleme de büyüleyici. Javistler, özellikle web geliştirme söz konusu olduğunda, kodun asla saf Java'da olmadığını bilirler. Buna veritabanı dilleri, köprü metni vb. dahildir. Bu noktada IDEA, pek çoğunun henüz yapamadığı şeyi yapıyor: Yazılı programı analiz eden IDE, dilleri birbirinden ayırıyor ve ayrı ayrı analiz ediyor.

Program, elbette alışmanız gereken iyi uygulanmış kısayol tuşlarına sahiptir. Ancak tüm bunlar bir kez gerçekleştiğinde, verimlilik tabloların dışında kalır. Ayrıca, bitişik pencerede oluşan kodun hata ayıklamasına da neden olabilirler.

Geliştirme ortamı, desteklenen teknolojilerin sayısını sürekli olarak artırması açısından da dikkate değerdir. Ancak geliştiriciler bu güncellemelere pek bağımlı değiller. Uygun eklentiyi istedikleri zaman indirebilirler.

IDE Tutulması

Bu geliştirme ortamı sadece javistler arasında değil, aynı zamanda genel olarak web geliştiricileri arasında da popülerdir. Fiyat kesinlikle IDEA'ya göre önemli bir avantaj olacak - Eclipse, eklentilerin yanı sıra tamamen ücretsizdir. Bu arada, geliştirme ortamının yaratıcılarının planlarında IDEA ile rekabet yoktu: Visual Studio'nun elde ettiği başarıyı gölgede bırakmak istediler. Bir dereceye kadar başardılar: ortalama web programcıları neredeyse her zaman Eclipse'i tercih ediyor.

IDEA'dan bile daha iyi olan nedir? Java EE'ye ücretsiz erişim. Ek ödemeler ve eklenti kurulumu olmadan hemen kullanılabilir. Bu arada, ikincisi hakkında. Bunları Eclipse'e kurmak önemli bir iştir. Geliştiriciye rahatsızlık vererek kendi aralarında "kavga edebilirler". Ama olumlu olan şey onların sayısı. Resmi olanları seçmenizi tavsiye ederiz, çünkü bu şekilde geliştirme ortamıyla çatışmaya başlamaları daha az olasıdır.

Eclipse, kendiniz için kişiselleştirmeniz için tasarlanmıştır. Bu nedenle, IDE ile ilk deneyim sizi daha fazla kullanımdan uzaklaştırabilir. Bu, en iyi geliştirme ortamlarından birinin bir kılavuza ihtiyaç duyduğu nadir bir durumdur. Neyse ki, YouTube'da birçoğu var.

NetBeans

Java - Sun Microsystem'in yaratıcılarının kaleminden doğmuş bir geliştirme ortamıdır. Dilleri için en iyi çözümü yaratmak istediler, bu nedenle yalnızca Windows dostu olmayan bir IDE tasarladılar.

Listemizdeki en çapraz platformdur. NetBeans yalnızca üst eksenlerde değil, aynı zamanda JVM ile donatılmış diğer tüm cihazlarda da çalıştırılabilir. Sun'ın yaklaşımı hemen belli oluyor: dillerinin tüm cihazlarda (bilgisayarlardan çamaşır makinelerine kadar) çalışmasını istiyorlardı. Doğal olarak, "fasulye", o kadar harika olmasa da, resmi Java geliştirme ortamı olarak adlandırılmıştır. Bugün NetBeans, Sun'ı satın alan Oracle tarafından geliştirilmektedir.

NetBeans, IDEA kadar akıllıdır ve akıllı yeniden düzenleme yeteneğine sahiptir. Sistem bu görevle Eclipse'den çok daha iyi, ancak IDEA'dan daha kötü başa çıkıyor.

Söylenenlerin hacminden de anlaşılacağı gibi, en iyisi IDEA olarak adlandırılacaktır. İşte nedenlerin bir listesi:

programlama anlayışı. Hiç kimse IDEA kadar hızlı kod doldurmaz veya hataları düzeltmez;

yeniden düzenleme verimliliği;

fiyat. Evet, Eclipse tamamen ücretsizdir. Ama kötü yiyecekleri sırf daha ucuz diye satın almaz mısınız?

Bu bizim vizyonumuz! Bu arada, Oracle'ın cephaneliğinde Java için tamamen keskinleştirilmiş JDeveloper adlı başka bir IDE var. Siz de deneyin ve kendi sonuçlarınızı çıkarın. Ve her şeye sahibiz!

Web geliştirmede modern eğilimler ve yaklaşımlar

Site oluşturmada hızlı büyüme algoritmasını sıfırdan öğrenin

JavaWorld kaynağının programcısı ve editörü Martin Heller'in bir makalesinin bir uyarlamasını dikkatinize sunuyoruz. Java geliştirme için en iyi üç IDE'yi muhtemelen duymuşsunuzdur. Endüstriyel programcıların yaklaşık yüzde 90'ı Eclipse, NetBeans veya IntelliJ IDEA kullanır ve her IDE'nin kendi avantajları ve dezavantajları vardır. Bu yazıda, hangisinin sizin için doğru olduğunu anlamanız için bunları açıklamaya çalışacağız. Tabii ki, üçünü de işte denemek ve hangisinin sizin için en uygun olduğunu bulmak en iyisidir. Bu herhangi bir inceleme ile değiştirilemez. Bu IDE'lerle daha önce çalıştım, ancak bu araştırma için bir MacBook Pro dizüstü bilgisayara IntelliJ IDEA Ultimate 2016.2, Eclipse Neon Java EE ve NetBeans 8.1 Java EE yükledim. IDE'yi birkaç açık kaynaklı Java projesinde test ettim.

Bir IDE'den ne beklenir

Modern bir "sağlıklı Java geliştiricisi" IDE, Java 8, Scala, Groovy ve düzenli olarak kullandığı diğer Java sanal makine dillerini desteklemelidir. Spring MVC, JSF, Struts, GWT, Play, Wicket, Grails ve Vaadin dahil olmak üzere büyük uygulama sunucuları ve en popüler web çerçeveleri için destek gereksiz olmayacaktır. IDE, Git, SVN, CVS, Mercurial veya Bazaar ile birlikte Ant, Maven veya Gradle gibi sürüm kontrol sistemlerinin tüm yapıları ile uyumlu olmalıdır. Ek olarak, geliştirme ortamının veritabanları ve yığınınızın istemci katmanıyla çalışabilmesi, gömülü JavaScript, TypeScript, HTML, SQL, JavaServer Sayfaları, Hazırda Bekletme ve Java Kalıcılık API'sini desteklemesi önemlidir. Son olarak, IDE'nin gereksiz stres olmadan sistemleri düzenlemenize, oluşturmanıza, hata ayıklamanıza ve test etmenize izin vereceğini ummak mantıklıdır. Geliştirme ortamının yalnızca akıllı kod tamamlamayı değil, aynı zamanda akıllı yeniden düzenleme ve kod ölçümlerini de desteklemesi idealdir. Çoğu durumda, çerçeveleri ve taslakları test etmek için destek faydalı olacaktır. Ekibiniz bir bilet sistemi ve CI/CD kullanıyorsa, bunlara bağlanabilmek için IDE'ye ihtiyacınız var. Ayrıca, kapsayıcılarda ve bulutlarda dağıtıma ve hata ayıklamaya ihtiyacınız olup olmadığına karar verin. Biz sadece ana beklentileri listeledik (belki sizin ekleyeceğiniz bir şey vardır) ve şimdi rakiplerimize daha yakından bakalım.

IntelliJ FİKİR


IntelliJ IDEA, özellikler ve fiyat açısından iki farklı şekilde gelir: ücretsiz Topluluk sürümü ve genişletilmiş işlevselliğe sahip ücretli Ultimate sürümü. Topluluk sürümü, JVM ve Android geliştirme içindir. Ücretsiz sürüm Java, Kotlin, Groovy ve Scala'yı destekler; Android; Maven, Gradle ve SBT; Git, SVN, Mercurial ve CVS sürüm kontrol sistemleri ile çalışır. Ultimate sürümü, web ve kurumsal geliştirme için uyarlanmıştır. IDE'nin bu sürümü yalnızca Git, SVN, Mercurial ve CVS ile değil, aynı zamanda Performance, ClearCase ve TFS ile de çalışır; içine JavaScript ve TypeScript ile yazabilirsiniz; doğal olarak Java EE, Spring, GWT, Vaadin, Play, Grails ve bir dizi başka çerçeve için destek var. Ve tabii ki SQL ve veritabanı araçları olmadan olmaz. Bir fiyatlandırma politikası oluştururken bu IDE'nin geliştiricileri tarafından yönlendirilen fikir, ticari versiyonunun (Ultimate), üretkenliklerinin artması nedeniyle profesyonellerin bilgisayarlarında yerini almasıdır. Bir Java programcısı yılda 50 bin dolar (veya daha fazla) kazanırsa, ücretli IntelliJ IDEA IDE'ye (yıllık abonelik başına 500 dolar) harcanan yatırımın geri dönüşü, çalışmalarının hafif bir hızlanması nedeniyle çok hızlı bir şekilde gerçekleşecektir. Sonraki yıllarda, iş fiyatları düşer, yeni başlayanlar, serbest çalışanlar için önemli ölçüde daha düşüktür ve öğrenciler, öğretmenler, Java şampiyonları ve açık kaynak geliştiricileri için tamamen ücretsizdir. IntelliJ IDEA, derin kod anlayışı, akıllı ergonomisi, yerleşik geliştirme işlevleri ve birçok dil desteği ile etkileyicidir.
Şekil 1. IntelliJ IDEA, Java kodunun istatistiksel analizine dayanan uyarı ve varsayımların sayısını gösterir. Varsayımları resimde görüldüğü gibi üzerlerine tıklayarak daha detaylı inceleyebilirsiniz; çoğu durumda, düzeltmeler için seçenekler ve seçenekler içeren bir liste alırsınız.

Kodun derinlemesine anlaşılması

Sözdizimi vurgulama ve basit kod tamamlama, herhangi bir modern Java düzenleyicide yaygındır. IDEA, "akıllı tamamlama" sunarak bunu bir adım öteye taşımıştır. Bu terim, geliştirme ortamının belirli bir bağlamda geçerli olan en alakalı sembollerin bir listesini gösterdiği anlamına gelir. Sembollerin listesi yalnızca "genel olarak kabul edilen" bağlama değil, aynı zamanda geliştiricinin programlama stiline, belirli operatörleri ne sıklıkta kullandığına bağlıdır. "Bir zincirin sonu" aslında mevcut bağlamda yöntemler veya alıcılar aracılığıyla izin verilen uygulanabilir karakterlerin bir listesini gösterir. Ayrıca, statik üyeler veya sabitler söz konusu olduğunda, IDEA, gerekli ithalat ifadelerini otomatik olarak ekler. Tüm otomatik tamamlama durumlarında, IDEA çalışma zamanında bir sembolün türünü tahmin etmeye, seçimini hassaslaştırmaya ve hatta gerekirse bir döküm uygulamaya çalışır. Java kodu genellikle dize olarak diğer dillerden snippet'ler içerir. IDEA, SQL, XPath, HTML, CSS veya JavaScript kodunu Java dize değişmezlerine enjekte edebilir. Bu anlamda, IDE kodu birden çok dilde yeniden düzenleyebilir. Örneğin, JPA eşlemede bir sınıfı yeniden adlandırırsanız, IDEA ilgili JPA varlığını ve ifade sınıfını günceller. Bir kod parçasını yeniden düzenlerken, geliştiricinin (oldukça doğal) bir arzusu vardır: bu kodun tüm kopyalarının da yeniden düzenlenmesi. IDEA Ultimate, kopyaları ve benzer parçaları bulur ve onları da yeniden düzenler. IntelliJ IDEA, kodu yükte ve doğrudan girişte ayrıştırır. Şüpheli sorunları gösterir (yukarıdaki resmimizde olduğu gibi) ve isteğe bağlı olarak algılanan sorunlara olası hızlı düzeltmelerin bir listesini sunar.

ergonomi


IntelliJ IDEA, geliştiriciyi zaten içindeyse akış üretkenliği durumundan çıkarmayacak şekilde tasarlanmıştır. Soldaki ilk şekilde gösterilen Proje penceresi, programcının kod düzenleyici penceresine odaklanabilmesi için basit bir fare tıklamasıyla kaybolur. Kod yazarken ihtiyaç duyulan tüm eylemler için, açılır pencerelerdeki sembollerin tanımı da dahil olmak üzere kısayolları için klavye kısayolları vardır. İlk başta, tüm bu kombinasyonları hatırlamak zordur, ancak yavaş yavaş onlara alışırsınız ve sadece onları kullanırsınız. Bununla birlikte, programcı, uygulamanın gösterdiği gibi tuş kombinasyonlarını kullanmasa bile, IDEA'da hızlı ve kolay bir şekilde çalışmaya alışır. IDEA hata ayıklayıcısına özellikle dikkat etmek isterim: değişkenlerin değerleri doğrudan editör penceresinde, ilgili kaynak kodun yanında görüntülenir. Değişkenin durumu değiştiğinde vurgu rengi de değişir.

Yerleşik araçlar

IntelliJ IDEA, Git, SVN, Mercurial, CVS, Perforce ve TFS dahil olmak üzere çoğu sürüm kontrol sistemiyle etkileşim kurmak için tutarlı bir arayüz sağlar. Değişiklikleri doğrudan IDE'de yönetebilirsiniz, bu çok uygundur. IDEA'yı test ettiğimde, kaynak koddaki son değişikliğin bir açıklama olarak düzenleyici penceresinde gösterilmesini arzuladım (örneğin, Visual Studio'da olduğu gibi). Görünüşe göre IDEA'nın bunun için özel bir eklentisi var. IDEA ayrıca derleme araçlarına, test çalıştırma süresine, kapsama araçlarına ve yerleşik bir terminal penceresine sahiptir. IntelliJ'in kendi profil oluşturucusu yoktur, ancak üçüncü taraf eklentileri buna bağlanabilir. Örneğin, YourKit, eski bir JetBrains veya VisualVM baş geliştiricisi tarafından (bu, NetBeans Profiler'ın yeniden paketlenmiş bir sürümüdür). Java'da hata ayıklama, kaynağına sahip olmadığınız sınıflara garip şeyler olduğunda dayanılmaz olabilir. IDEA, bu gibi durumlar için bir decompiler ile birlikte gelir. Sunucu tarafı Java programlama, sık veritabanı etkileşimlerini içerir, bu nedenle IDEA Ultimate programcıları, SQL ve veritabanı araçlarının rahatlığını takdir edeceklerdir. Ancak yetenekleri birisi için yeterli değilse, yerleşik SQL IDE (DataGrip) ile IDEA Ultimate sürümünü satın alabilirsiniz. Doğru, normal bir IDEA Ultimate aboneliğinden biraz daha pahalı olacak. IntelliJ IDEA, tüm büyük JVM uygulama sunucularını destekler ve Java Enterprise programcılarının aşina olduğu bilinen zorlukları ortadan kaldırarak bu sunucularda konuşlandırmanıza ve hata ayıklamanıza olanak tanır. IDEA ayrıca Docker'ı da destekler (geliştirme ortamına özel bir Docker araçları penceresi ekleyen bir eklenti kullanarak. Bu arada, IDEA'nın bir eklenti denizi vardır).

gerçek çok dilli

IDEA, Spring, Java EE, Grails, Play, Android, GWT, Vaadin, Thymeleaf, Android, React, AngularJS ve diğer çerçeveler için genişletilmiş kod desteğine sahiptir. Muhtemelen hepsinin Java'ya özgü olmadığını fark etmişsinizdir. IDEA, doğrudan kutunun dışında diğer dilleri "anlıyor" - Groovy, Kotlin, Scala, JavaScript, TypeScript ve SQL. Bu listede istediğiniz dili bulamazsanız, şu anda özellikle R, Elm ve D'yi desteklemek için 19 IntelliJ dil eklentisi bulunmaktadır.


Eclipse, uzun yıllar boyunca Java IDE'leri arasında avuç içi popülerliğini güvenle korumuştur. Bu ortam tamamen ücretsiz, açık kaynaklıdır ve öncelikle Java ile yazılmıştır. Ancak modüler mimarisi Eclipse'in diğer dillerle de kullanılmasına olanak tanır. IBM tarafından başlatılan Eclipse projesi 2001 yılında ortaya çıktı. Smalltalk tabanlı IBM Visual Age geliştirme ortamları ailesini değiştirmek istediler. Eh, asıl amaç, adından bile anlaşılacağı gibi, Microsoft Visual Studio'yu gölgede bırakmaktı (Eclipse, İngilizce'de tutulma anlamına gelir). Java taşınabilirliği Eclipse'in platformlar arası olmasına yardımcı olur: Bu IDE Linux, Mac OS X, Solaris ve Windows üzerinde çalışır. İyi ya da kötü, Java Standard Widget Toolkit (SWT), Eclipse'in görünümünden ve verdiği histen en azından kısmen sorumludur. Eclipse, performansını (veya bazı iyi dilek sahiplerinin dediği gibi, eksikliğini) JVM'ye borçludur. Eclipse oldukça yavaştır çünkü kökleri oldukça eski donanımlara ve JVM'nin eski versiyonlarına dayanmaktadır. Bugün bile, özellikle ona bağlı birçok eklentiyle, halsiz görünüyor. Eclipse'in ek yükünün bir kısmı, bir dosya yüklendiğinde veya kod güncellendiğinde çalışan yerleşik artımlı derleyicisine atfedilebilir. Yararlı bir şey, metin girerken hataları yakalayan kişidir. Derlemeden bağımsız olarak, bir Eclipse projesi, Java öğelerinin tür hiyerarşisi, başvuruları ve bildirimleri hakkında bilgi içeren bir içerik modelini korur. Eclipse'in şu anki sürümü Neon (4.6.0) olarak adlandırılmıştır. Web Geliştiricileri için Eclipse Java EE IDE'yi yükledim (bu tek seçenek değil, başka bir şey seçebilirsiniz). Minimum Eclipse SDK içerir ve isteğe bağlı olarak eklentiler eklenir. Bu arada, bu IDE'deki eklentilerle çalışmak, kalbin zayıflığı için değil. Resmi özellikleri bu konuda hiçbir şey söylemese de, üçüncü taraf eklentileri genellikle birbirleriyle çatışır.
Şekil 2. Eclipse'de soldan sağa dört araç çubuğu vardır: Paket Gezgini, Java Düzenleyicisi, Java Sınıf Yapısı ve Görev Listesi. Bu şekilde Eclipse'e yüklenen proje JUnit test çerçevesidir. Paneller kolayca değiştirilebilir.

Eklenti desteği

Eclipse eklenti ekosistemi, bu IDE'nin hem güçlü noktası hem de ana sorunlarından biridir. Eklentilerin uyumsuzluğu nedeniyle bazen tüm derlemeler çöker ve programcılar baştan başlamak zorunda kalır. Şu anda Eclipse için yazılmış resmi ve gayri resmi 1.700'den fazla eklenti var ve bunlar çok iyi çalışıyor olabilir veya olmayabilir. Eclipse eklentileri 100'den fazla programlama dilini ve 200'e yakın uygulama geliştirme çerçevesini destekler. Çoğu Java sunucusu da desteklenir: Eclipse'den yeni bir sunucu bağlantısı belirlerseniz, yaklaşık 30 uygulama sunucusu bulacağınız satıcı klasör listesine yönlendirilirsiniz. Yalnızca Apache Tomcat'in dokuz çeşidi olacak. Ticari satıcılar, çözümlerini bir araya toplama eğilimindedir: örneğin, yalnızca bir Red Hat JBoss Ara Yazılımı vardır ve içeride WildFly ve EAP sunucu araçlarının yanı sıra JBoss AS'yi bulacaksınız.

Düzenleme, yeniden düzenleme ve hata ayıklama

Eclipse ile ilk deneyim kafa karıştırıcı ve hatta kafa karıştırıcı olabilir. Öncelikle Eclipse'i kurmanız ve çalışma alanları, görünümler ve görünümler için kavramsal mimarisine alışmanız gerekir. Bunların hepsi yüklediğiniz eklentiler tarafından belirlenir. Sunucu tarafı Java geliştirme için muhtemelen Java, Java EE ve Java tarama görünümlerini, Paket Gezgini görünümünü, hata ayıklama görünümünü, Web araçları komut senkronizasyonu görünümünü, veritabanı geliştirme görünümünü ve veritabanı hata ayıklama görünümünü kullanacaksınız. .. Pratikte, istediğiniz pencereleri açtığınızda her şey anlam kazanır. Eclipse hemen hemen her zaman belirli bir görevi gerçekleştirmek için birkaç yol sunar. Örneğin, Java tarama perspektifini kullanarak kodu görüntüleyebilirsiniz. Hangisini seçeceğiniz bir zevk ve seçim meselesidir. Java Özel Arama, Java paketlerinin, türlerinin, yöntemlerinin, alanlarının bildirimlerini, referanslarını ve oluşumlarını bulmanızı sağlar. Arama ve önizleme için hızlı erişimi de kullanabilirsiniz. Kod kalıplarından ortak kod kalıpları oluşturulabilir. Eclipse'de Java yeniden düzenlemesi, yaygın yeniden adlandırma işlemlerinden daha az belirgin dönüşümlere kadar (Martin Fowler'ın kitabında olduğu gibi) 23 işlemi destekler. Eclipse, uzaktan hata ayıklamayı destekleyen bir JVM kullanmanız koşuluyla hem yerel hem de uzaktan hata ayıklamayı destekler. Hata ayıklama oldukça standarttır: kesme noktaları tanımlarsınız ve ardından hata ayıklama sekmesindeki değişkenleri görüntülersiniz. Elbette, kodunuz üzerinden geçebilir ve ifadeleri değerlendirebilirsiniz. Eclipse, her yaştan, değerden ve kullanışlılıktan oluşan geniş bir belge veritabanına sahiptir. Ne yazık ki, kılavuzda, örneğin eski bir arayüz ve düğme düzeni ile mevcut sürüme karşılık gelmeyen bir resim bulmak, bu IDE için yaygın bir şeydir. Ne yazık ki, geç belge güncellemeleri sorunu, kaynak kodlu herhangi bir proje için çok yaygındır.


NetBeans, 1996 yılında Prag'da bir öğrenci üniversite projesi olarak başladı. 1997'de IDE ticari bir ürün haline geldi ve 1999'da Sun Microsystems (Java'nın ebeveynleri) tarafından satın alındı ​​ve ertesi yıl açık kaynaklı bir sürüm sundu. Geçerli sürüm 8.1, Windows, Mac OS X, Linux ve Solaris çalıştıran makinelerde çalışır. Pekala, taşınabilir paket, bir Java makinesinin bulunduğu herhangi bir sistemde çalıştırılabilir. Kendim için, olası altı indirme paketinden biri olan Java EE paketini indirdim. Bu paket JavaScript ve HTML, GlassFish ve Tomcat'i destekler, ancak PHP, C / C ++ / Fortran, Groovy ve Grails'i desteklemez: Bunları Her Şey Dahil (veya yalnızca Hepsi) paketinde alabilirsiniz. Yine de, istersem, uygun eklentiyi (ve diğerlerini) seçerek, yukarıdaki diller için herhangi bir zamanda desteği indirebilirim. NetBeans, Eclipse'den daha azına sahiptir, ancak genellikle birbirleriyle çelişmezler. Bu sonbaharda Oracle (Sun Microsystems'in devralınmasından sonra NetBeans'i devraldı) bu geliştirme ortamını tüm hakları, kaynak kodu, ticari markası, netbeans.org alanı ve bir dizi başka altyapıyla birlikte Apache Software Foundation'ın kanatları altına taşımaya karar verdi. elementler. Bu nedenle, daha önce sistemin belirli ayrıcalıklara sahip olmasına rağmen, projenin geleceği hala belirsizdir. Böylece, güncellenmiş platformun yayınlanmasından hemen sonra Java 8 için ilk desteği alan NetBeans oldu ve "Java 8 için resmi IDE" olarak adlandırıldı. Ancak, piyasaya sürüldükten bir ay sonra bu avantaj kayboldu: o zaman diğer IDE'ler de sekizinci Java için destek aldı. Ancak, NetBeans'in Java 8 desteğinin gerçekten iyi olduğunu ve bu IDE'nin sürüm 8 numaralarını "eski" koda dönüştürmek için harika olduğunu belirtmek isterim. Düzenleyicileri, kod çözümleyicileri ve dönüştürücüleri, programcının Java 8'e özgü yapıları - lambda ifadeleri, işlev operatörleri ve yöntem referanslarını kullanarak kodu yükseltmesine yardımcı olacaktır. NetBeans 8'deki JavaScript eklentileri, Node.js'yi ve Gulp ve Mocha gibi en yeni JavaScript araçlarını desteklemenin yanı sıra Nashorn JavaScript yorumlayıcısını destekleme konusunda mükemmel bir iş çıkarır.
Şekil 3. Burada NetBeans, Şekil 1'de açılan IntelliJ IDEA ile aynı Maven tabanlı projeyle çalışıyor. Bağlam menüsündeki genişletilmiş işlevselliğe ve yeniden düzenleme alt menülerine dikkat edin.

Düzenleme ve yeniden düzenleme

NetBeans Editor dilleri destekler, siz yazarken hataları algılar ve araç ipuçları ve akıllı kod tamamlama konusunda size yardımcı olur. Öznel olarak, IDE bu görevle Eclipse'den daha hızlı, ancak IntelliJ IDEA'dan biraz daha yavaş başa çıkıyor. Ayrıca NetBeans, programcının kodu bozmadan yeniden yapılandırmasını, kaynak analizi yapmasını sağlayan ve hızlı düzeltmeler veya kod uzantıları için çok çeşitli ipuçları sunan eksiksiz bir yeniden düzenleme araçları yelpazesine (Şekil 3'te gösterildiği gibi) sahiptir. NetBeans, daha önce "Project Matisse" olarak bilinen Swing GUI için bir tasarım aracı içerir. Geliştiriciler, NetBeans 7.1'de tanıtılan Inspect & Transform otomatik yeniden düzenleme aracını takdir ediyor. Proje kodunu analiz etmenizi ve önerilen iyileştirmeleri yapmanızı sağlar. Ancak kişisel olarak, önce kendi kodumu birim testleri ile test etmeyi ve ancak daha sonra radikal değişiklikler yapabilen araçları çalıştırmayı tercih ederim. Onarılamaz sonuçlara yol açan her türlü otomatik düzeltmeden defalarca muzdarip oldum.

Derleme, Hata Ayıklama ve Profil Oluşturma

NetBeans, Maven ve Ant için harika bir yerleşik desteğe ve Gradle için bir eklentiye sahiptir. Maven projelerinin sistem tarafından yerel olarak algılandığını keşfettiğimde çok mutlu oldum. Bu, basitçe açılabilecekleri ve içe aktarılamayacakları anlamına gelir. NetBeans ayrıca Maven bağımlılıkları için çekici (ve kullanışlı) bir grafik ekran içerir. NetBeans Java Hata Ayıklayıcı fena değil, ancak uyarıları var. Ayrı bir görsel hata ayıklayıcı, programcının GUI'nin ekran görüntülerini almasına ve JavaFX ve Swing ile yapılan uygulamaların arayüzlerini incelemesine olanak tanır. NetBeans Profiler, CPU ve belleğin nasıl kullanıldığını daha açık hale getirir ve bellek sızıntılarını bulmak için mükemmel araçlara sahiptir.

Üç devin karşılaştırılması

Yıllar boyunca üç IDE'yi, Eclipse, NetBeans ve IntelliJ IDEA'yı kronolojik sırayla kullandım. Ne zaman başka bir IDE'ye geçsem, üretkenliğimin arttığını hissettim. Ancak son seçimimin IDEA olduğuna kesin olarak ikna olduğumda bile, bazen kalan iki IDE'den birine geri dönmek zorunda kaldım. Örneğin, Eclipse'in Android için geliştirmeyi destekleyen tek araç olduğu bir zamanda durum buydu (bugün Android için mevcut resmi IDE olan Android Studio var, IntelliJ IDEA'ya dayanıyor). Tabii ki, üç IDE'nin de hayranları ve rakipleri var. IntelliJ IDEA'yı seven birçok Java geliştiricisinin yanı sıra Visual Studio C++ ve C#'ın sadık hayranlarını tanıyorum. Çoğu zaman, bu insanlar üretkenliklerinin artmasından ve yıllık abonelik maliyetinin, IDEA'nın ücretli sürümünü kullanmanın sadece birkaç haftasında iade edilmesinden memnundur. Bununla birlikte, NetBeans ve Eclipse kullanıcıları da genellikle araçlarına bağlıdır ve diğer programcıların IDEA için neden para ödediğini merak eder. Kalkınan Java geliştiricileri için Eclipse'den uzak durmanızı tavsiye ederim. Java için hala en popüler IDE olmasına rağmen, onunla yeni başlayanlar için zordur: Hem sistem kurulumu sırasında hem de günlük çalışma sırasında Eclipse'in vahşi doğasında kaybolmak kolaydır. Eclipse, tüm IDE'ler arasında en kapsamlı eklenti ekosistemine sahiptir ve aynı eklentilerin uyumsuz bir setinin yüklenmesi nedeniyle çökme olasılığı en yüksek olanıdır. Ne yazık ki, Eclipse'i kullanırken, bu IDE'nin başka bir bozuk montajını tekrar tekrar kaldırmak ve "temiz" bir paket kurmak zorunda kaldım. NetBeans çoğu geliştirici için iyidir, harika bir profil oluşturucuya sahiptir ve ara sıra kullanırım. Ancak, IntelliJ IDEA Ultimate için ödeme yapmayı tercih ederim. Ve NetBeans'in geleceği hala belirsiz. Henüz araç satın alacak araçlara sahip olmayan Java'ya yeni başlayanlar için, ihtiyaçlarına bağlı olarak NetBeans veya IntelliJ IDEA Community Edition'ı kullanmanızı öneririm. İlki Java sunucularını kodlayanlar için seçilmelidir, ancak yalnızca IntelliJ IDEA Ultimate'ı ücretsiz veya büyük bir indirimle alabilenler kategorisine girmiyorsanız (öğrenciler veya açık kaynaklı bir proje geliştiren programcılar) .

Hafif Java IDE'leri

Bugün çoğu Java geliştiricisi IDEA, NetBeans veya Eclipse kullanıyor, ancak bazen daha hafif IDE'lere ve hatta Java eklentilerini destekleyen Sublime Text, emacs veya vim gibi kod düzenleyicilere ihtiyaç duyuluyor. Daha kolay bir şey arayanlar için makul seçenekleri aşağıda sıraladım:
  • DrJava küçük bir ücretsiz geliştirme ortamıdır. Rice Üniversitesi'ndeki öğrenciler için oluşturuldu ve oldukça popüler hale geldi: DrJava şimdiden 2 milyondan fazla indirildi. DrJava, kendini test odaklı geliştirmeye adamıştır. Ortam, bir akıllı kod düzenleyicisi, uygulama kodunu değerlendirmek için bir etkileşim paneli, kaynak düzeyinde bir hata ayıklayıcı ve birim test araçları içerir.
  • BlueJ, University of Kent tarafından hevesli programcılar için oluşturulmuş ücretsiz bir Java geliştirme ortamıdır. Bu ortam Oracle tarafından desteklenmektedir. BlueJ, NetBeans veya Eclipse gibi profesyonel IDE'lerden çok daha özlü ve basit bir arayüze sahiptir ve hatta OOP'nin temelleri hakkında özel bir eğitim içerir.
  • JCreator, Windows için C++ ile yazılmış başka bir küçük Java IDE'dir (performans nedenleriyle). Ücretli Pro sürümünde hata ayıklayıcı, Ant desteği ve kod sihirbazları bulunur, ancak ücretsiz sürümde (LE) yoktur.
  • Eclipse Che, Java, C ++, JavaScript, Python, PHP, Ruby ve SQL'i destekleyen tarayıcı tabanlı bir bulut IDE'sidir.

Projeye bağlı olarak Java IDE seçimi

En önemli üç Java IDE'sinin her birinin önemli avantajlarını açıklamaya çalıştım ve kullanışlı küçük rakiplerini geçerken bahsettim. Doğru IDE'yi seçmek için artıları ve eksileri tartmanız ve bunları ihtiyaçlarınıza ve projelerinizin ihtiyaçlarına göre eşleştirmeniz gerekir. Bir ekibe katılıyorsanız, gerekli olmasa da diğer geliştiricilerle aynı IDE'yi kullanmak akıllıca olacaktır. Ekibiniz kaynağı GitHub'da barındırıyorsa, IDE'nizin GitHub'ı desteklemesi doğal olarak daha uygun olacaktır. Evet, GitHub istemcisini veya git komut satırını kullanarak kod aktarımlarını IDE olmadan gerçekleştirebilirsiniz. Ancak farklı sistemler arasındaki bu tür sıçramalar ne kadar etkili olacak? IDE'nin bir yapı sistemi sürdürmesi de önemlidir. Örneğin, Maven ise, muhtemelen yerel testler için sistemi Ant'ta yeniden oluşturmak istemeyeceksiniz. Neyse ki, üç büyük Java IDE'si de Ant, Maven ve Gradle'ı kutudan çıktığı gibi veya bir eklenti ile destekler. Ancak "küçük" IDE'ler için bu doğru olmayabilir. Geliştirme ortamının projede kullanılan JRE sürümünü desteklemesi doğal bir istektir. Sürümler eşleşmiyorsa, örneğin sizin için görünecek, diğer ekip üyeleri görünmeyecek olan birçok gereksiz hata almanız muhtemeldir. Böyle bir durumun karmanız üzerinde iyi bir etkisi olması pek olası değildir. Açıkça söylemek gerekirse, IDE henüz Java'nın yeni bir sürümüne güncelleme yapmadıkça, JRE tutarsızlıklarının IDE desteği olmamasına kıyasla yapılandırma hatalarıyla ortaya çıkması daha olasıdır. Bana güvenin: IDE'niz projede kullanılan çerçeveleri ve teknolojileri tam olarak destekliyorsa, işinizi hızlandırmanıza gerçekten yardımcı olur. Muhtemelen yine de yapabilirsiniz. Ancak IDE, JPA ifadelerinin JPA varlığı ve ifade sınıfları (IntelliJ gibi) ile nasıl ilişkili olduğunu anlarsa, JPA ile ilgili kod üzerinde tam bir yanlış anlama durumunda olduğundan çok daha az zaman harcarsınız. Eh, IDE proje için kullanılan test çerçevesini ve kod çalıştırıcıyı destekliyorsa, çalışma ortamını değiştirmeden testleri çalıştırabilirsiniz. Bu da geliştirme sürecini hızlandıracak. Son olarak, IDE, projenin hata izleme ve bilet sistemleriyle uyumluysa işler daha hızlı olur. Yine, JIRA gibi bağımsız veya web istemcisi kullanabilirsiniz, ancak pencereyi değiştirmeden ve doğrudan IDE'de kalmadan biletleri kontrol etmenin çok daha hızlı olduğu konusunda hemfikir olmak zor.

Ücretsiz mi Ücretli mi?

IntelliJ IDEA Ultimate'dan test ettikten sonra, doğru geliştirme ortamı hissine kapıldım. IDE dünyasının bir çeşit Cadillac'ı. Yine, ücretsiz olmasa da, onu kullanmaktan elde edilen performans kazanımlarının yıllık aboneliğe değer olduğunu düşünüyorum. IntelliJ IDEA Ultimate 1 yıllık aboneliğine gücü yetmeyen yeni başlayanlar için Eclipse üzerinden NetBeans kullanmanızı öneririm. Tabii ki, Eclipse eklenti ekosistemi bugün diğer tüm IDE'lerden çok daha gelişmiş, ancak çok fazla büyümüş ve dağınık: Acemi bir geliştirici, işe dalmak yerine IDE ormanında çıkmaza girme riskiyle karşı karşıya. İkisi özel olarak eğitim amaçlı tasarlanmış "hafif" alternatiflere de değindim. Peki, dillerle yeni başlıyorsanız ve minimalist bir ortamı tercih ediyorsanız neden olmasın?