ข้อความปฏิเสธความรับผิดชอบ: ฉันลำเอียงเพราะฉันเขียนหนังสือเกี่ยวกับการเขียนโปรแกรม Polyglot บน JVM (Shameless Plug !! - ผู้พัฒนา Java ที่มีเหตุผลดี) :)
ประการแรกคุณควรแนะนำการเปลี่ยนแปลงที่รับประกันอย่างแท้จริงเท่านั้น!
จุดเริ่มต้นที่ดีคือการพิจารณาปิรามิดภาษาการเขียนโปรแกรมของ Ola Bini Ola พูดถึงภาษาที่มีความเสถียรไดนามิกและโดเมนที่เฉพาะเจาะจง
Java เป็นภาษาที่มีเสถียรภาพ (พิมพ์แบบสแตติกและจัดการ) และด้วยเหตุผลต่าง ๆ (ฉันสามารถเข้าไปได้ในภายหลังหากผู้คนสนใจ) ไม่ใช่ตัวเลือกที่เหมาะสำหรับโครงการเลเยอร์แบบไดนามิก (เช่นการพัฒนาเว็บอย่างรวดเร็ว) หรือโครงการเลเยอร์เฉพาะโดเมน โดเมนรูปแบบการรวมเข้าด้วยกันขององค์กร) หากคุณมีโครงการที่เข้ากับเลเยอร์หนึ่งแล้วนั่นอาจเป็นจุดเริ่มต้นที่ดี
คุณยังสามารถพิจารณาการแนะนำภาษาใหม่ที่เสถียรเลเยอร์เพื่อแทนที่ Java หากมีคุณสมบัติพื้นฐานที่ภาษาทางเลือกให้ ยกตัวอย่างเช่น Scala จัดการกับภาวะพร้อมกันได้อย่างปลอดภัยและเป็นธรรมชาติมากกว่า Java
ตามที่ขอเพิ่มเติมเกี่ยวกับเรื่องนี้ Java WRT:
- การคอมไพล์ใหม่นั้นลำบากมาก
- การพิมพ์แบบสแตติกสามารถยืดหยุ่นและนำไปสู่การปรับเวลาให้ยาวนาน
- การปรับใช้เป็นกระบวนการหนา
- ไวยากรณ์ของ Java ไม่เหมาะกับการผลิต DSL
ณ จุดนี้คุณอาจถามตัวเองว่า:“ ความท้าทายในการเขียนโปรแกรมแบบใดที่อยู่ในเลเยอร์เหล่านี้? ฉันควรเลือกภาษาใด? "จำได้ว่าไม่มี bullet เงิน แต่ฉันมีเกณฑ์บางอย่างที่คุณสามารถพิจารณาได้เมื่อประเมินทางเลือกของคุณ
เฉพาะโดเมน
- การสร้าง / การรวมอย่างต่อเนื่อง / การปรับใช้อย่างต่อเนื่อง
- Dev-Ops
- แบบจำลองรูปแบบการรวมองค์กร
- การสร้างแบบจำลองกฎธุรกิจ
พลวัต
- การพัฒนาเว็บอย่างรวดเร็ว
- การสร้างต้นแบบ
- คอนโซลการดูแลระบบ / ผู้ใช้แบบโต้ตอบ
- การเขียนสคริปต์
- การทดสอบพัฒนาขับเคลื่อน / พฤติกรรมขับเคลื่อนพัฒนา
มีเสถียรภาพ
- รหัสพร้อมกัน
- แอพลิเคชันภาชนะ
- ฟังก์ชั่นธุรกิจหลัก
เริ่มต้นด้วยโมดูลความเสี่ยงต่ำ (จำไว้ว่าภาษา JVM เหล่านี้มักจะโต้ตอบกับโค้ด Java ที่มีอยู่อย่างสวยงาม) หรือโครงการ ทำให้ชัดเจนว่านี่จะเป็นต้นแบบการโยนทิ้ง
ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบวงจรชีวิตการเขียนโปรแกรมและการใช้เครื่องมือสำหรับภาษานั้น คุณจะต้องแน่ใจว่าคุณสามารถใช้ TDD, รันเครื่องมือสร้างและบูรณาการอย่างต่อเนื่อง, มีการสนับสนุน IDE ที่มีประสิทธิภาพและปัจจัยอื่น ๆ ทั้งหมด สำหรับบางภาษาคุณต้องยอมรับว่าไม่มีการใช้เครื่องมือบางอย่างหรือพื้นฐานมาก จุดแข็งของนักพัฒนาและการสนับสนุนการใช้เครื่องมืออาจมีค่ามากกว่าความแข็งแกร่งของภาษา
ตรวจสอบให้แน่ใจว่ามีชุมชนที่มีชีวิตชีวาที่สามารถช่วยเหลือทีมของคุณเมื่อพวกเขาติดขัด กลุ่มผู้ใช้ภายในจะดียิ่งขึ้นสำหรับสิ่งนี้
ตรวจสอบให้แน่ใจว่าผู้พัฒนาได้รับการฝึกอบรมภาษาเบื้องต้นโดยเฉพาะอย่างยิ่งหากภาษานั้นไม่ใช่ภาษาสไตล์ OO (การย้ายไปที่ Clojure นั้นไม่ใช่เรื่องเล็กน้อย)
ฉันคิดว่าอย่างนั้นแหละ โดยส่วนตัวแล้วฉันใช้ Groovy, Scala และ Clojure ในการพัฒนาของฉันควบคู่ไปกับ Java สำหรับงานต่าง ๆ เช่นการประมวลผล XML การสร้างเว็บไซต์อย่างรวดเร็วและการทำ data crunching