ไม่มีสิ่งใดในโลกนี้ที่เข้าถึงหัวใจของโปรแกรมเมอร์ได้มากไปกว่าเครื่องมือในการเขียนโปรแกรม VC, DELPHI, JAVA...ชื่ออันน่าทึ่งเหล่านี้ไม่เพียงครองชีวิตของโปรแกรมเมอร์เท่านั้น แต่ยังดูเหมือนจะกลายมาเป็นความเชื่อบางอย่างด้วย อย่างไรก็ตาม เมื่อเข้าสู่ศตวรรษใหม่ ความเชื่อเหล่านี้ต้องเผชิญกับความท้าทายที่สำคัญอีกครั้ง Microsoft สิงโตผู้เหนื่อยล้าและหงุดหงิดจากผู้พิพากษาและแฮกเกอร์ สาบานว่าจะรักษามงกุฎเอาไว้ พยายามอย่างเต็มที่ และสร้างทักษะพิเศษขึ้นมา - กลยุทธ์ .NET เนื่องจากภาษาการพัฒนาหลักของ .NET ทำให้ C# เกิดขึ้นอย่างเป็นธรรมชาติ โปรแกรมเมอร์ต้องเลือกอย่างเจ็บปวด ใครจะตาม? หากต้องการทราบคำตอบ เราต้องทำการเปรียบเทียบและคาดการณ์บางประการ
หากคุณละทิ้งปัจจัยที่ไม่ใช่ด้านเทคนิคทั้งหมด C# เป็นภาษาโปรแกรมที่ดีที่สุดที่เคยสร้างมาบนโลกนี้อย่างไม่ต้องสงสัย โดยประกอบด้วยผลลัพธ์ล่าสุดเกือบทั้งหมดในการพัฒนาซอฟต์แวร์และการวิจัยทางวิศวกรรมซอฟต์แวร์ เชิงวัตถุ ประเภท เทคโนโลยีส่วนประกอบ การจัดการหน่วยความจำอัตโนมัติ การจัดการข้อยกเว้นข้ามแพลตฟอร์ม การควบคุมเวอร์ชัน การจัดการความปลอดภัยของโค้ด... คุณไม่พบฟีเจอร์เหล่านี้ทั้งหมดในภาษาอื่น แม้ว่าหลายๆ คนจะสังเกตเห็นว่าเมื่อฉันแสดงรายการคุณสมบัติข้างต้น ผู้คนมักจะนึกถึง JAVA แต่ C# จะไปไกลกว่านั้น แต่ความจริงก็คือปัจจัยที่ไม่ใช่ด้านเทคนิคมักจะกำหนดอนาคตของผลิตภัณฑ์ โดยเฉพาะอย่างยิ่งในประวัติศาสตร์ของซอฟต์แวร์คอมพิวเตอร์ ผลิตภัณฑ์ที่โดดเด่นทางเทคนิค เช่น OS/2, Mac OS, UNIX ฯลฯ ล้วนพ่ายแพ้ต่อความสวยงาม ของหน้าต่างใต้แก้ม แต่ครั้งนี้บทบาทของ Microsoft ดูเหมือนจะเปลี่ยนจากนักปฏิวัติมือเปล่ากลายเป็นเจ้าของบ้านเก่าที่ชอบรังแก ถ้าสิ่งต่างๆ เปลี่ยนไปจริงๆ เด็ก C# คนนี้จะไม่เกิดมาผิดคนหรือ? บางทีสถานการณ์อาจไม่เลวร้ายนัก ท้ายที่สุดแล้ว อูฐตัวผอมก็ใหญ่กว่าม้า และ C# ก็ถูกส่งไปยังองค์กรมาตรฐานแล้ว จะย้ายไปยังแพลตฟอร์มอื่น ในกรณีนี้ JAVA จะมีปัญหา เนื่องจากผู้ใช้ JAVA ส่วนใหญ่เป็นผู้พัฒนาบริการเครือข่ายและผู้พัฒนาซอฟต์แวร์อุปกรณ์ฝังตัว ซอฟต์แวร์อุปกรณ์ฝังตัวจึงไม่ใช่จุดที่ C# เข้ามามีบทบาท ในแง่ของบริการเครือข่าย การคอมไพล์แบบทันเวลาของ C# และโซลูชันแคชโค้ดในเครื่อง มีประสิทธิภาพมากกว่าเครื่องเสมือน Java มีข้อได้เปรียบด้านประสิทธิภาพอย่างแท้จริง ยิ่งไปกว่านั้น เมื่อ C# กลายเป็นมาตรฐานสาธารณะเช่น C++ นักพัฒนาซอฟต์แวร์สามารถประหยัดค่าธรรมเนียมใบอนุญาต JAVA และไม่ต้องกังวลกับการตกเป็นทาสของ Microsoft ผู้ที่ต่อต้าน Microsoft และผู้ที่สนับสนุนความเป็นอิสระของผู้ผลิตอาจไม่มี ปัญหาเดียวกัน ความคิดเห็นอะไร นี่อาจเป็นสิ่งที่ Microsoft กำลังมองหา
หากเปรียบเทียบการแข่งขันระหว่าง C# และ JAVA ในด้านบริการเครือข่ายกับการแข่งขันเพื่ออำนาจสูงสุดทางอากาศในอนาคต การแข่งขันระหว่าง C# และเครื่องมือการพัฒนาอย่างรวดเร็วสำหรับวัตถุประสงค์ทั่วไปแบบดั้งเดิม - VB, DELPHI ฯลฯ จะเป็นการแข่งขันนอก และการต่อสู้แบบประชิดตัว บางทีโปรแกรมเมอร์ที่น่าสังเวชที่สุดคือโปรแกรมเมอร์ VB ที่ Microsoft นั้น VB ก็เหมือนกับคลินตันที่ออกจากตำแหน่งไป ลองคิดดู โปรเจ็กต์ที่เขียนด้วย VB6 จะต้องถูกแปลงเป็นโค้ดที่ใช้ .NET โดยใช้เครื่องมือแปลงไฟล์ก่อนจึงจะสามารถถ่ายโอนไปยัง VB7 ได้ ซึ่งแทบจะจำไม่ได้ เนื่องจาก VB7 เป็นไปตามข้อกำหนดภาษาทั่วไป (CLS) ที่จัดตั้งขึ้นเพื่อรองรับ .NET จึงมีการเพิ่มฟีเจอร์เกือบทั้งหมดที่เดิมมีเฉพาะใน C++, JAVA และภาษาอื่น ๆ เข้ามา แต่ไวยากรณ์เข้ากันได้กับต้นฉบับ หากนี่เป็นครั้งแรกที่คุณเห็นโค้ดที่แปลงแล้วของโปรเจ็กต์ VB6 เก่าของคุณใน VB7 โปรดใช้ความระมัดระวังด้วยใจ! ไปเลยและอย่าบอกนะว่าคุณจะเกษียณ สถานการณ์ของ DELPHI ไม่ได้ดีขึ้นมากนัก ทักษะพิเศษดั้งเดิมคือการสร้างแอปพลิเคชันอย่างรวดเร็วและดี แต่ตอนนี้ดู VS.NET Beta 1 ล่าสุด คุณจะรู้สึกคุ้นเคยมากด้วยรายการคุณสมบัติ ส่วนประกอบต่างๆ มากมาย... ใครเป็นคนสร้าง คุณยากจนเหรอ แม้แต่หัวหน้านักออกแบบก็ไม่สามารถช่วยเหลือคุณได้
ในความเป็นจริง โอเวอร์ลอร์ดที่แท้จริงในบรรดาภาษาการเขียนโปรแกรมคือ C++ มาหลายปีแล้ว ระบบปฏิบัติการทั้งหมดและซอฟต์แวร์เชิงพาณิชย์ส่วนใหญ่ใช้ C++ เป็นภาษาพัฒนาหลัก โปรแกรมเมอร์ JAVA ส่วนใหญ่ก็ชื่นชอบ C++ เช่นกัน และความสำเร็จของ PHP ก็เนื่องมาจากไวยากรณ์ที่คล้ายกับ C++ ในด้านระบบปฏิบัติการ ไดรเวอร์อุปกรณ์ วิดีโอเกม ฯลฯ C++ จะยังคงครองตำแหน่งที่โดดเด่นมาเป็นเวลานาน และในการพัฒนาซอฟต์แวร์แอพพลิเคชั่นจำนวนมากที่สุด C# มีแนวโน้มที่จะเข้ามาแทนที่ C++ ประการแรก C# เช่น JAVA เพียงคัดลอกส่วนหนึ่งของไวยากรณ์ของ C++ ดังนั้นจึงเป็นเรื่องง่ายสำหรับโปรแกรมเมอร์ C++ จำนวนมากในการเรียนรู้และเริ่มต้น นอกจากนี้ ยังง่ายกว่า C++ สำหรับมือใหม่ ประการที่สอง ปัจจุบัน Windows เป็นแพลตฟอร์มผูกขาด และเมื่อพัฒนาแอปพลิเคชัน Windows แน่นอนว่าเสียงของ Microsoft ก็ไม่สามารถเพิกเฉยได้ สิ่งที่สำคัญที่สุดคือเมื่อเปรียบเทียบกับ C++ การใช้ C# ในการพัฒนาแอพพลิเคชั่นซอฟต์แวร์สามารถลดระยะเวลาการพัฒนาได้อย่างมาก และในขณะเดียวกัน คุณสามารถใช้โค้ด C++ ดั้งเดิมได้ ยกเว้นโค้ดส่วนต่อประสานกับผู้ใช้
อย่างไรก็ตาม C# ก็มีจุดอ่อนเช่นกัน ประการแรก โปรแกรม C# ยังไม่สามารถทำงานบนแพลตฟอร์ม Windows ที่มีอยู่จำนวนมากได้ เนื่องจากโปรแกรม C# ต้องการไลบรารีรันไทม์ .NET เป็นพื้นฐาน และไลบรารีรันไทม์ .NET จะถูกปล่อยออกมาโดยเป็นส่วนหนึ่งของ Windows เจเนอเรชันใหม่ (วิสต์เลอร์) ) หรือเมื่อมีการส่งมอบ Service Pack ให้กับผู้ใช้ Windows Me และ Windows 2000 ดังนั้นในอนาคตอันใกล้นี้ C# จะถูกใช้งานบนเซิร์ฟเวอร์เป็นหลัก ประการที่สอง มีส่วนประกอบหรือไลบรารีเพียงไม่กี่รายการที่ C# สามารถใช้ได้ เช่น ไลบรารีรันไทม์ .NET และไม่มีไลบรารีซอฟต์แวร์ของบริษัทอื่นที่ครบครัน ซึ่งจำเป็นต้องมีกระบวนการ และการสนับสนุนจากนักพัฒนาซอฟต์แวร์หลายราย ก็สำคัญมากเช่นกัน ประการที่สาม ปัจจัยความสำเร็จบางประการของ JAVA ได้รับการโน้มน้าวโดยค่ายต่อต้าน Microsoft แม้ว่า "เขียนครั้งเดียวทำงานได้ทุกที่" จะเป็นเพียงสโลแกน แต่ก็เป็นเทคโนโลยีที่เติบโตเต็มที่แล้ว ในปัจจุบัน ผู้สนับสนุน C# เพียงคนเดียวคือ Microsoft ซึ่งมีชื่อเสียงไม่ดี และสามารถทำงานได้บน Windows เท่านั้น ในความเป็นจริงทั้งสองภาษานี้ไม่สามารถถูกแทนที่ได้สำหรับนักพัฒนาซอฟต์แวร์สิ่งที่พวกเขาคุ้นเคยมากที่สุดคือเครื่องมือที่ดีที่สุด โดยเฉพาะอย่างยิ่งสำหรับผู้ใช้ C++ C# ไม่ได้นำเสนอสิ่งใหม่ใดๆ เนื่องจากไลบรารีรันไทม์ .NET สามารถใช้ใน C++ ได้เช่นกัน และไม่มีเหตุผลที่แน่นอนที่จะต้องเปลี่ยนแปลง
โดยสรุป โดยส่วนตัวแล้วฉันเชื่อว่าในช่วงไม่กี่ปีที่ผ่านมา C# จะเพิ่มขึ้นอย่างหลีกเลี่ยงไม่ได้และกลายเป็นตัวเอกบนแพลตฟอร์ม Windows ในขณะที่ JAVA จะกลายเป็นผู้เล่นที่โดดเด่นบน UNIX, Linux และแพลตฟอร์มอื่น ๆ และ C++ จะยังคงเกร็งกล้ามเนื้อใน สาขาซอฟต์แวร์ระบบ สิ่งที่น่าสนใจมากคือไวยากรณ์ของภาษาเหล่านี้ใกล้เคียงกันมาก เพราะทั้ง JAVA และ C# ได้รับการพัฒนาจาก C++ แน่นอนว่าเครื่องมือในการพัฒนาอื่นๆ จะยังคงเดินทางต่อไปอีกนาน แต่จะได้รับผลกระทบในแง่ของส่วนแบ่งการตลาดอย่างหลีกเลี่ยงไม่ได้