Yasal Uyarı: JVM (Shameless Plug !! - İyi Topraklanmış Java Geliştirici) Polyglot programlama hakkında bir kitap yazarken önyargılıyım :)
İlk olarak, değişikliği yalnızca gerçekten garanti edildiği yere getirmelisiniz!
Başlamak için iyi bir yer Ola Bini'nin programlama dili piramidini düşünmektir. Ola, kararlı, dinamik ve alana özgü diller hakkında konuşuyor.
Java kararlı bir dildir (statik olarak yazılır ve yönetilir) ve çeşitli nedenlerle (insanlar ilgileniyorsa bunlara daha sonra girebilirim) dinamik katman projeleri (örneğin Hızlı Web Geliştirme) veya alana özgü katman projeleri (örn. Modelleme) için ideal bir seçim değildir. Enterprise Integration Pattern alanı). Bu katmanlardan birine uyan bir projeniz varsa, başlamak için iyi bir yer olabilir.
Alternatif dilin sunduğu temel bir özellik varsa, Java'nın yerini almak için kararlı katmana yeni bir dil eklemeyi de düşünebilirsiniz. Örneğin, Scala eşzamanlılığı Java'dan daha güvenli ve daha doğal bir şekilde ele alır.
İstendiği gibi, bu konuda biraz daha. WRT Java:
- Yeniden derleme zahmetlidir
- Statik yazma esnek olmayabilir ve uzun yeniden düzenleme sürelerine yol açabilir
- Dağıtım ağır bir süreçtir
- Java'nın sözdizimi DSL üretmek için doğal bir uyum değildir
Bu noktada kendinize şu soruyu soruyor olabilirsiniz: “Bu katmanların içinde ne tür programlama zorlukları var? Hangi dilleri seçmeliyim? ”, Gümüş mermi olmadığını unutmayın, ancak seçimlerinizi değerlendirirken dikkate alabileceğiniz bazı kriterlerim var.
Alana özgü
- Derleme / Sürekli Entegrasyon / Sürekli Dağıtım
- Dev-op
- Kurumsal Entegrasyon Kalıp Modellemesi
- İş Kuralları Modellemesi
Dinamik
- Hızlı Web geliştirme
- Prototip
- Etkileşimli yönetim / kullanıcı konsolları
- Komut
- Test Odaklı Geliştirme / Davranış Odaklı Geliştirme
Kararlı
- Eşzamanlı kod
- Uygulama kapları
- Temel iş işlevselliği
Küçük bir düşük risk modülü ile başlayın (bu JVM dilleri genellikle mevcut Java koduyla güzelce etkileşime girer) veya projeyle başlayın. Bunun bir atma prototipi olacağını açıkça belirtin.
Bu dil için programlama yaşam döngüsü ve takımlama yönlerini araştırdığınızdan emin olun. TDD yapabileceğinizden, oluşturma araçları ve Sürekli Entegrasyon çalıştırabildiğinizden, güçlü IDE desteğine ve diğer tüm faktörlere sahip olabileceğinizden emin olmak istersiniz. Bazı diller için, bazı takımların orada olmadığını veya çok temel olduğunu kabul etmeniz gerekir. Geliştiricinin gücü ve takım desteği bir dilin gücüne ağır basabilir.
Takıldıklarında ekibinize yardımcı olabilecek canlı bir topluluk olduğundan emin olun. Yerel kullanıcı grupları bunun için daha iyidir.
Özellikle dil OO tarzı bir dil değilse (Clojure'a geçmek önemsiz değildir) geliştiricilerin ilk dil eğitimini aldıklarından emin olun.
Sanırım bu kadar. Kişisel olarak Groovy, Scala ve Clojure'u Java ile birlikte XML işleme, hızlı web siteleri oluşturma ve bazı veri krizi yapma gibi görevler için başarıyla kullandım.