สถานการณ์โอเพ่นซอร์สในโลกของไมโครซอฟท์
Ayende เปิดประเด็นเรื่อง ปัญหาของโอเพ่นซอร์สในระบบของไมโครซอฟท์ (ซึ่งก็คือ .NET) ว่าถึงจะมีขนาดใหญ่ แต่ก็กระจัดกระจายมาก โดยเฉพาะเมื่อเทียบกับของทางจาวา
จริงๆเราจะมีโปรเจคโอเพ่นซอร์สบน .NET เป็นจำนวนมาก มีโปรเจคเยี่ยมๆ อย่าง NUnit, MBUnit, NCover, Spring, Castle ฯลฯ ดูเหมือนว่าประชาคมชาวโอเพ่นซอร์สบน .NET กำลังเติบโตเป็นอย่างดี?
จากบล็อกข้างบน ลองเปรียบเทียบ JUnit กับ Ant ของจาวา โปรเจคทั้งคู่สร้างโดยเหล่านักพัฒนาจาวา ปัจจุบันเป็นทูลที่ยอดเยี่ยม ได้รับการยอมรับมาก และ IDE แทบทุกตัว ทำงานกับโปรแกรมทั้งสองตัวนี้ได้เป็นอย่างดี
แล้วกรณีของ .NET? เรามี NUnit กับ NAnt ที่มีจุดกำเนิดแบบเดียวกัน คือมาจาก best practice ที่เหล่านักพัฒนาสร้างขึ้นมาเพื่อแก้ปัญหา เรื่องที่ไม่มี Unit Testing และระบบ build สุดห่วยของ .NET เวอร์ชันก่อน 2.0 ซึ่งได้รับการตอบรับจากเหล่านักพัฒนาเป็นอย่างดี แต่.. ในเวอร์ชัน 2005 ของ VS เรามีเค้าก็ให้ MSBuild ซึ่งเดินทับรอยเท้าของ NAnt และมี Unit Testing มาให้ด้วย (ใน Team Edition) ถึงตอนนี้นักพัฒนาต้องเลือกระหว่าง NAnt กับ MSBuild และ NUnit กับ MS Test ไม่ต้องบอกก็รู้ครับว่าส่วนมากจะเทไปทางไหน (ถึงมันจะมีความสามารถต่ำกว่าก็ตาม)
แล้วปัญหาเกิดจากอะไร? License? เรื่องนี้ผมเห็นด้วยแค่บางส่วนเท่านั้น เพราะไมโครซอฟท์ไม่ได้เป็นผู้เล่นที่ดีในโลกโอเพ่นซอร์ส Ayende บอกว่าถ้าพวกเขาหันมาสนับสนุน NHibernate เราคงจะได้คู่มือที่ดีกว่านี้ รวมถึงเครื่องมือดีๆ ที่ใช้งานได้ง่ายๆ (คิดถึง ObjectSpaces ขึ้นมาโดยไม่มีเหตุผล) แต่จะมีวันนั้นหรือ?
จริงๆน่าจะเป็นเพราะ ลักษณะบางอย่างของคนที่โตมากับเครื่องมือพัฒนาของไมโครซอฟท์มากกว่า ซึ่งมักจะมีแนวคิด(ที่ผมคิดว่า) แปลกๆ ในการหาความรู้เพิ่มเติม บอกไม่ถูก แต่คนที่ทำงานสายนี้คงทราบดีครับ
ขอปิดท้ายด้วยคำพูดนี้ก็แล้วกัน
เอาออกดีกว่า
เพิ่มเติม: