คุณลักษณะการปิดของ .NET ได้รับความนิยมจากนักพัฒนาจำนวนมาก และดูเหมือนว่า Java จะถูกนำไปใช้ในเร็วๆ นี้ แน่นอนว่านี่เป็นคุณลักษณะด้านภาษา ไม่ใช่คุณลักษณะรันไทม์ ฉันคิดว่าหนึ่งในสองตัวเลือกสุดท้ายที่คุณเลือกนั้นขึ้นอยู่กับความชอบส่วนบุคคลและโอกาสในการทำงานในท้องถิ่น คุณลักษณะการปิดของ .NET ได้รับความนิยมจากนักพัฒนาจำนวนมาก และดูเหมือนว่า Java จะถูกนำไปใช้ในเร็วๆ นี้ แน่นอนว่านี่เป็นคุณลักษณะด้านภาษา ไม่ใช่คุณลักษณะรันไทม์ ฉันคิดว่าหนึ่งในสองตัวเลือกสุดท้ายที่คุณเลือกนั้นขึ้นอยู่กับความชอบส่วนบุคคลและโอกาสในการทำงานในท้องถิ่น
1.จะเกิดอะไรขึ้นเมื่อ Java SE 7 พบกับ .NET CLR?
ดังที่คุณเห็นจากรายการคุณสมบัติของ Java SE 7 พบว่ามีการปรับปรุงอย่างมากเมื่อเทียบกับเวอร์ชันก่อนหน้า แล้วมันเป็นตัวเปลี่ยนเกมหรือเปล่า ฉันไม่คิดอย่างนั้น ในช่วงไม่กี่ปีที่ผ่านมา มีการปรับปรุงมากมายทั้ง JVM และ .NET CLR หลายสิ่งหลายอย่างที่ในอดีตสามารถทำได้โดยโปรแกรมเมอร์ที่มีทักษะมากเท่านั้น ขณะนี้อยู่ในความสามารถของโปรแกรมเมอร์ทั่วไปด้วยการปรับปรุงใน JVM และ .NET CLR
แม้ว่า JVM และ .NET CLR จะไม่นำแนวคิดเดียวกันไปใช้ในเวลาเดียวกัน แต่หากมีแนวคิดที่ดีปรากฏที่ด้านหนึ่ง อีกด้านจะติดตามผลอย่างรวดเร็ว ซึ่งไม่เพียงสะท้อนถึงระดับรันไทม์เท่านั้น ตัวอย่างเช่น สำหรับ Java หลังจากที่โครงการ Hibernate ประสบความสำเร็จอย่างมาก .NET ก็ได้เปิดตัว NHibernate อย่างรวดเร็วเช่นกัน ฟังก์ชันการปิดของ .NET ได้รับความนิยมอย่างมากในหมู่นักพัฒนาจำนวนมาก และดูเหมือนว่า Java จะถูกนำไปใช้ในเร็วๆ นี้ แน่นอนว่านี่เป็นฟีเจอร์ภาษา ไม่ใช่ฟีเจอร์รันไทม์
การปิดตัวของ .NET กำลังได้รับความนิยม และ Java ก็จะตามมาในไม่ช้า
2. รันไทม์ตัวหนึ่งจะเอาชนะอีกตัวหนึ่งโดยสิ้นเชิงในอนาคตอันใกล้นี้หรือไม่?
แม้ว่า JVM และ .NET CLR จะคล้ายกันมากในระดับทางเทคนิค แต่ทั้งคู่ก็มีตลาดเป็นของตัวเอง และไม่มีความยืดหยุ่นมากนัก หากใครสร้างโครงสร้างพื้นฐานรอบๆ เซิร์ฟเวอร์ .NET และ IIS ก็ไม่มีทางที่พวกเขาจะตื่นขึ้นมาในวันถัดไปและย้ายข้อมูลทั้งหมดนั้นไปยัง Java และในทางกลับกัน แม้ว่าบริษัทจะตัดสินใจเปลี่ยนแพลตฟอร์มการพัฒนาของตน แต่ก็อาจจำเป็นต้องเปลี่ยนทีมพัฒนาทั้งหมดหรือฝึกอบรมพวกเขาตั้งแต่เริ่มต้น แม้ว่าการฝึกอบรมจะเสร็จสิ้นแล้ว แต่ก็ยังมีข้อบกพร่องร้ายแรงในด้านทักษะ ท้ายที่สุดแล้ว เป็นไปไม่ได้ที่นักพัฒนา .NET อาวุโสจะกลายเป็นนักพัฒนา Java อาวุโสทันทีหลังจากการฝึกอบรม 3 เดือน
นอกจากนี้ บริษัทจำเป็นต้องรักษาบุคลากรทางเทคนิคที่มีอยู่เพื่อรักษารหัสที่มีอยู่ คุณคิดว่าพนักงานเหล่านี้จะนั่งเฉยๆ และเฝ้าดูตำแหน่งของพวกเขาถูกไล่ออก หรือทักษะของพวกเขาไร้ประโยชน์หรือลดคุณค่าลง แน่นอนไม่ สำหรับบริษัท การเปลี่ยนจาก Java เป็น .NET โดยสมบูรณ์หรือการเปลี่ยนจาก .NET เป็น Java โดยสมบูรณ์ถือเป็นการฆ่าตัวตาย อย่างมาก พนักงานจะได้รับการศึกษาใหม่ผ่านโครงการหลายปี การย้ายจาก VB6 ไปเป็น .NET ใช้เวลา 8 ปีนับตั้งแต่เปิดตัว .NET
การเปลี่ยนแปลงโปรแกรมเมอร์และโครงการต้องใช้เวลา
3. ต้นทุนการพัฒนา Java ประหยัดกว่าการพัฒนา .NET หรือไม่ ถ้าใช่ คนจะหันมาใช้ Java เพื่อประหยัดเงินลงทุนหรือไม่?
หากคุณแค่ดูเครื่องมือต่างๆ คำตอบของฉันคือ "ทั้งถูกและผิด" แน่นอน คุณสามารถเรียกใช้ Java บนแพ็คเกจโอเพ่นซอร์สโดยสมบูรณ์ได้หากต้องการ คุณสามารถใช้ชุดค่าผสม Linux/Tomcat/MySQL/Java หรือใช้ชุดค่าผสม SpringSource บนฝั่งเซิร์ฟเวอร์และ Eclipse หรือ NetBeans บนคอมพิวเตอร์ของนักพัฒนา แต่สิ่งสำคัญคือต้องชี้ให้เห็นว่าคุณจะไม่เป็นแฟนตัวยงของทางเลือกโอเพ่นซอร์สไม่ว่าด้วยเหตุผลใดก็ตาม และฉันไม่ได้บอกว่าทางเลือกอื่นนั้นไม่ดี หากเป็นเช่นนั้น ราคาของเครื่องมือ Java จะถูกเปรียบเทียบกับ เครื่องมือ .NET ค่อนข้างแพงและในหลายกรณียังมีราคาแพงกว่าอีกด้วย และเมื่อพิจารณาถึงสิ่งที่บริษัทอย่าง Oracle และ IBM กำลังทำอยู่ ก็ชัดเจนว่าหลายบริษัทรู้สึกว่าจำเป็นต้องจ่ายค่าเครื่องมือ Java ที่เป็นกรรมสิทธิ์ ในแง่ของราคา Microsoft มักจะเป็นผู้จำหน่ายระดับองค์กรที่มีราคาต่ำที่สุดในกลุ่มตลาดใดก็ตาม
นอกจากนี้ คุณต้องพิจารณาว่าบริษัทจะประหยัดเงินได้มากเพียงใดหากไม่มีค่าใช้จ่ายในการเปลี่ยนระบบ ค่าใช้จ่ายของสำเนา Visual Studio นั้นน้อยกว่าเงินเดือนรายสัปดาห์และเบี้ยประกันของนักพัฒนาที่มีรายได้ปานกลางมาก ยิ่งไปกว่านั้น เวลาที่ใช้สำหรับนักพัฒนาคนเดียวกันในการเรียนรู้ Java และไปถึงระดับที่เขาเก่งใน .NET นั้นนานกว่าหนึ่งสัปดาห์มาก
เพื่อความเป็นธรรม การวิเคราะห์นี้ยังใช้กับการย้ายจาก Java ไปเป็น .NET อีกด้วย เมื่อเทียบกับความเจ็บปวดจากการสลับแพลตฟอร์ม ต้นทุนของเครื่องมือในการพัฒนานั้นน้อยมาก แน่นอนว่ามีข้อยกเว้นสองประการ สถานการณ์แรกคือการสร้างบริษัทใหม่ ดังนั้นจึงไม่มีปัญหาเรื่องค่าใช้จ่ายในการโยกย้าย ในกรณีนี้ Java ยังไม่มีความได้เปรียบด้านต้นทุน เนื่องจาก Microsoft ได้เปิดตัว Visual Studio เวอร์ชันฟรี (เวอร์ชัน Express) ด้วย และหากบริษัทของคุณเป็นบริษัทใหม่ คุณสามารถดาวน์โหลดได้ฟรีเป็นเวลาสามปีผ่าน BizSpark แผน MSDN และ Microsoft ที่ได้รับลิขสิทธิ์ก็ไม่เลว ข้อยกเว้นอีกประการหนึ่งคือบริษัทที่มีอัตราส่วนเซิร์ฟเวอร์ต่อนักพัฒนาที่สูงมาก เช่น Google หรือ Yahoo บริษัทดังกล่าวอาจมีนักพัฒนาจำนวนมากที่ทำงานเกี่ยวกับแอปพลิเคชันที่ทำงานบนเซิร์ฟเวอร์นับพันเครื่อง ในกรณีนี้ เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ไม่ใช่ปัจจัยหลักในการประหยัดต้นทุน แต่เป็นพื้นที่เซิร์ฟเวอร์ สำหรับบริษัทที่เผชิญกับสถานการณ์เช่นนี้ Java (และเทคโนโลยีโอเพ่นซอร์สอื่นๆ) สามารถมีความได้เปรียบด้านต้นทุนที่ชัดเจน
4. นักพัฒนา Java จำเป็นต้องรู้ภาษาสคริปต์มากน้อยเพียงใดเพื่อให้บรรลุประสิทธิภาพใน .NET
ขั้นแรก คุณทำงานด้านการพัฒนาเว็บอยู่หรือไม่ หากใช่ คุณอาจต้องการทราบ JavaScript และทำความคุ้นเคยกับเฟรมเวิร์กที่เกี่ยวข้อง สำหรับงานแบ็กเอนด์ การรู้ภาษาไดนามิกหรือภาษาสคริปต์นั้นไม่จำเป็นหรือจำเป็น อย่างไรก็ตาม มีตัวเลือกที่ดีมากมายสำหรับจุดประสงค์นี้ในพื้นที่ Java สำหรับผู้ที่ไม่ได้เป็น Java Developer ในปัจจุบัน ฉันไม่มีประสบการณ์จริงในด้านนี้ให้พูดถึง แต่ฉันได้ยินบทวิจารณ์ดีๆ มากมายเกี่ยวกับ Groovy และ Scala หากคุณต้องการเลือกเทคโนโลยีกระแสหลัก JRuby และ Jython เป็นตัวเลือกที่ดี
มีหลายวิธีในการปรับปรุงประสิทธิภาพของแอปพลิเคชัน Java
ในช่วงไม่กี่ปีที่ผ่านมา JVM ได้เริ่มรองรับภาษาที่ไม่ใช่ Java เป็นจำนวนมาก และตอนนี้นักพัฒนาก็มีทางเลือกมากมาย การเรียนรู้สิ่งเหล่านี้จะช่วยให้คุณเป็น Developer ที่ดีขึ้นได้อย่างแน่นอน (แม้ว่าคุณจะไม่ได้ใช้มันในโปรเจ็กต์การผลิตจริงก็ตาม) และสามารถให้แนวทางอื่นแก่คุณเมื่อโปรเจ็กต์ของคุณติดขัด
Java จะเข้ามาแทนที่ .NET หรือไม่ ยังเร็วเกินไปที่จะพูด ในเวลาเดียวกัน .NET จะไม่ฆ่า Java ทั้งสองมีข้อดีและข้อเสียของตัวเอง ฉันคิดว่าหนึ่งในสองตัวเลือกสุดท้ายที่คุณเลือกนั้นขึ้นอยู่กับความชอบส่วนบุคคลและโอกาสในการทำงานในท้องถิ่น