ข้อผิดพลาดอื่น ๆ ที่ฉันไม่ได้พิจารณา?
ในทางปฏิบัติข้อผิดพลาดหลักที่ฉันเห็นคนทำคือพยายามบังคับให้ใช้ F # สำหรับปัญหาที่เป็นเครื่องมือที่ผิดสำหรับงาน
หรือใครสนใจที่จะโต้แย้งข้อผิดพลาดที่ฉันได้กล่าวถึง?
เห็นได้ชัดว่าพวกเขาเป็นข้อกังวลที่ถูกต้องในระดับหนึ่ง แต่ฉันจะถามถึงระดับใด
ตัวอย่างเช่นคุณบอกว่าทุกคนจะต้องเรียนรู้ F # เพื่อทำงานกับรหัส F # แม้ว่าจะเป็นจริง แต่นี่ไม่ใช่เรื่องใหญ่ในทางปฏิบัติ การเรียนรู้ F # ไม่สำคัญไปกว่าการเรียนรู้ WPF, Silverlight หรือ TPL ฉันกำลังสอนนักพัฒนาประมาณ 30 คนวิธีใช้ F # สำหรับลูกค้าในลอนดอนในขณะนี้และประมาณโหลกำลังทำงานเต็มเวลาในรหัส F # หลังจากเพียงไม่กี่สัปดาห์และพวกเขาเพิ่งส่งผลิตภัณฑ์แรกของพวกเขา (ตรงเวลาและในงบประมาณ! ) เขียนเกือบทั้งหมดใน F # หลังจากนั้นเพียงไม่กี่เดือน ในความเป็นจริงพวกเขามีปัญหาทางเทคนิคกับ Silverlight มากกว่า F # และพวกเขาพบว่าการสนับสนุนด้านเทคนิคสำหรับ Silverlight นั้นแย่กว่า F # มาก
คุณอ้างถึงกลุ่มที่ค่อนข้างเล็กของโปรแกรมเมอร์ F # ที่มีอยู่ แต่อีกครั้งเนื่องจากวิธีที่ง่ายในการรับ F # ฉันไม่คิดว่านี่เป็นเรื่องสำคัญ ฉันสงสัยว่าคุณจะต้องจ้างคนจำนวนมากถ้ามี ลูกค้าของฉันมี F # สองคนสำหรับโปรแกรมเมอร์กว่า 100 คนและหน้าที่ของเราคือการหว่านและดูแลการใช้ F #
ข้อกังวลประการที่สามและครั้งสุดท้ายของคุณเกี่ยวกับการสนับสนุนจากชุมชนน้อยลง Googling สำหรับโซลูชัน C # เทียบกับการสนับสนุนเครื่องมือของ F และบุคคลที่สาม อีกครั้งฉันไม่พบสิ่งเหล่านี้เป็นปัญหาในทางปฏิบัติ ฉันส่งอีเมล fsbugs พร้อมความคิดเห็นเกี่ยวกับหน่วยวัดใน F # และได้รับการตอบกลับภายใน 24 ชั่วโมงจากนักวิจัยผู้คิดค้นขึ้นมาพร้อมคำอธิบายโดยละเอียดว่าทำไมการตีความของฉันจึงผิดและมันทำงานอย่างไร ฉันไม่เคยได้รับจาก Anders Hejlsberg ;-) ฉันหาวิธีแก้ปัญหา Google อยู่ตลอดเวลาและพบพวกมันที่เขียนด้วยภาษา C #, VB หรือแม้แต่ IronPython แต่ใน 3 ปีที่ใช้ F # อุตสาหกรรมสามารถเรียกคืนได้เพียงตัวอย่างเดียวเท่านั้นที่การแปลโซลูชันเป็น F # นั้นไม่สำคัญ ในความเป็นจริงฉันเพิ่งแปลง dataizerizer ตัวอย่าง C # จาก MSDN เป็น F # และสั้นลง 5 เท่า สุดท้ายคุณพูดถึงการสนับสนุน F # ในเครื่องมือเช่น NUnit เมื่อเรา ' เคยใช้ NUnit จาก F # โดยไม่มีปัญหามาระยะหนึ่งแล้ว นี่คือเครื่องมือ. NET ไม่ใช่เครื่องมือ C #
กรณีศึกษา : ลูกค้าปัจจุบันของฉันไม่เพียง แต่ใช้ NUnit สำหรับการทดสอบหน่วย แต่พวกเขาสร้างTickSpecใน F # ด้านบนของ NUnit เพื่อเป็นทางเลือกที่เหนือกว่าทางเทคนิคของ SpecFlow สำหรับ BDD ผู้เขียนได้ชี้ให้ฉันเห็นว่า TickSpec เป็นขนาดเล็ก ๆ ของ SpecFlow และมีคุณสมบัติเพิ่มเติม นอกจากนี้นักพัฒนาหลายคนที่ทำงานที่ไม่มีประสบการณ์ F # มาก่อน (และฉันเชื่อว่าไม่มีประสบการณ์การเขียนโปรแกรมฟังก์ชั่นก่อนหน้า) ได้หยิบมันขึ้นมาและเริ่มใช้ในโครงการที่ไม่เกี่ยวข้องโดยไม่มีปัญหาอย่างแน่นอนเพราะ F # + TickSpec ปัญหาที่เกิดขึ้น
FWIW ฉันให้การสมัครสมาชิกเว็บไซต์ฟรีแก่F # .NET Journalของเราซึ่งลงเอยได้ดีกับ devs ที่เรียนรู้จำนวนมาก F #
HTH!