ฉันมีประสบการณ์ 10 ปีกับ Java (ตั้งแต่รุ่น 1.1 จริง ๆ !) และประสบการณ์ 7 ปีกับ. NET (C # ส่วนใหญ่)
คุณมีการตัดสินใจที่จะทำ แต่ส่วนใหญ่คุณควรพยายามแบ่งออกเป็นสองสถานการณ์:
แอปพลิเคชันเดสก์ท็อป
หากคุณกำลังพัฒนาแอพพลิเคชั่นเดสก์ท็อปคุณจะต้องไปกับแพลตฟอร์มหลักที่คุณจะใช้งาน หากเป็นแพลตฟอร์ม Microsoft ใช้. NET ไม่มีวิธีแก้ปัญหาที่ดีไปกว่าแพลตฟอร์มที่พัฒนาโดยแม่จัดส่งเอง หากเป็นสถานการณ์ Linux หรือ Multi-platform ให้พิจารณา Java หรือย้ายไปใช้โซลูชันบนเว็บ
แอพพลิเคชั่นบนเว็บ
นี่เป็นการตัดสินใจที่ยากมากเพราะแต่ละคนมีจุดแข็งและจุดอ่อนของตัวเอง นี่คือบางส่วน:
C #
จุดแข็ง:ปัจจุบันมีโมเมนตัมมากขึ้นในการสร้างคุณสมบัติใหม่ ๆ ในภาษาและแพลตฟอร์ม / กรอบงาน ทุกอย่างมาจากผู้ขายรายเดียวและนี่เป็นข้อได้เปรียบอย่างแน่นอน นอกจากนี้คุณยังสามารถใช้ส่วนประกอบที่ทรงพลังบางอย่างเช่น DevExpress (Java ไม่ใกล้เคียงกับสิ่งที่ทีม DX ได้รวบรวมไว้ในช่วงหลายปีที่ผ่านมา
จุดอ่อน:สำหรับแอปพลิเคชันองค์กร. NET ไม่ได้พัฒนาเต็มที่เท่ากับ Java คุณไม่มีผู้ค้าจำนวนมากที่สร้างซอฟต์แวร์องค์กรใน. NET เช่นเดียวกับที่คุณมีสำหรับ Java
ชวา
จุดแข็ง: เป็นผู้ใหญ่มากขึ้น (ได้อธิบายไปแล้ว) และมีชุมชนขนาดใหญ่ที่มีโครงการโอเพนซอร์สที่ยอดเยี่ยมหลายโครงการที่สามารถช่วยเหลือได้ . NET หลายโครงการที่เรียกว่าโอเพ่นซอร์สนั้นเป็นเพียงสำเนาของโครงการจาก Java
จุดอ่อน: Oracle เป็นเจ้าของ Java (ฉันรู้ไม่ใช่ JCP) และนั่นเป็นความเสี่ยงที่ต้องพิจารณา ความตั้งใจของพวกเขายังไม่ชัดเจนและโดยส่วนตัวแล้วฉันไม่ชอบภาษาที่กำลังดำเนินอยู่ในขณะนี้ (ฉันรู้ว่านักพัฒนา Java จำนวนมากมีความกังวลคล้ายกัน)
แอปพลิเคชันฝั่งเซิร์ฟเวอร์
โดยพื้นฐานแล้วมันมีข้อโต้แย้งแบบเดียวกับ Web Based Applications แต่เนื่องจากคุณไม่ต้องกังวลเกี่ยวกับ UI Java มากขึ้นในกรณีนี้ แต่อีกครั้งหากแพลตฟอร์มส่วนใหญ่เป็น Windows .NET อาจเป็นตัวเลือกที่ดีกว่า
ข้อควรพิจารณาโดยรวม
โดยรวมแล้วในความคิดของฉัน. NET มีข้อได้เปรียบส่วนใหญ่เป็นเพราะการรวมกันอย่างแน่นหนาของ Visual Studio 2010 (ส่งลง IDE ที่ดีที่สุดออกมา) MS SQL, Entity Framework, IIS และอื่น ๆ ทั้งหมดนี้แสดงให้เห็นถึงการเพิ่มผลิตภาพจำนวนมากและฉันมีประสบการณ์มากมายที่พิสูจน์ได้ นอกจากนี้ฉันทำงานกับนักพัฒนา Java ส่วนใหญ่ที่หันมาใช้. NET และพวกเขาแบ่งปันความคิดเห็นแบบเดียวกัน
ฉันคิดว่ามันเป็นจุดที่ดีที่ Microsoft แข็งแกร่งกว่าที่เคยหมายถึง. NET จะอยู่ที่นั่นซักพัก ดังนั้นเมื่อดู 10-15 ปีข้างหน้าฉันรู้สึกปลอดภัยกับ. NET มากกว่า Java