พูดตรงๆ ถ้าซิซิฟัสชาวกรีกโบราณเป็นนักพัฒนาที่เขียนโค้ดโอเพนซอร์สในปี 2016 เขาจะรู้สึกเหมือนอยู่บ้าน การลงโทษซิซิฟัสที่มีชื่อเสียง เป็นตำนานที่สืบทอดมา เขาถูกบังคับให้ผลักหินยักษ์ขึ้นเขา เมื่อถึงยอดเขา ก็ต้องจ้องมองมันกลิ้งลงไป วนซ้ำไปเรื่อยๆ อย่างเงียบๆ นักพัฒนาทั่วโลกในช่วงไม่กี่ปีที่ผ่านมา ก็กำลังรับการลงโทษคล้ายกัน และหินยักษ์ก็ยังคงโตขึ้นเรื่อยๆ
ห้องสมุดรัฐสภาอเมริกันมีหนังสือประมาณ 24 ล้านเล่มของทุกประเภท มันเป็นคลังความรู้ที่เขียนด้วยลายลักษณ์อักษรที่ใหญ่ที่สุดที่มนุษย์เคยสร้างมา
ในปี 2009 GitHub ก่อตั้งขึ้น ตอนนี้มีมากกว่า 35 ล้าน repository ซอฟต์แวร์หรือคลังข้อมูล มีหลายสิบล้านล้านบรรทัดโค้ด การวิจัยแสดงว่าจำนวนนี้เติบโตแบบเอกซ์โพเนนเชียล เพิ่มเป็นสองเท่าทุกๆ ประมาณ 14 เดือน โอเพนซอร์สเป็นแนวหน้าของเทคโนโลยีการเขียนโปรแกรมอย่างไม่ต้องสงสัย เป็นคลังความรู้ที่ใหญ่ที่สุด ทรงพลังที่สุด และก้าวหน้าที่สุดของมนุษยชาติ
แล้วทำไม 90%-98% ของโค้ดโอเพนซอร์ส ถึงถูกทิ้งหลังจาก 12 เดือน?

รายละเอียดในโค้ด
ให้เราดูตัวเลขที่น่าตกใจ: โค้ดที่เขียนวันนี้ ปีหน้าวันนี้ 90% ขึ้นไปจะไม่ถูกใช้อีกเลย
พวกมันกลายเป็นโมฆะ ล้าสมัย ถูกลืมในทรายของเวลา ในการสำรวจปี 2015 Stack Overflow พบว่า นักพัฒนาแต่ละคนใช้เวลาเฉลี่ยประมาณ 7 ชั่วโมงต่อสัปดาห์ในการเขียนโปรแกรมนอกเวลางาน GitHub รายงานว่ามีผู้ใช้มากกว่า 12 ล้านคนทำงานบนโครงการโอเพนซอร์ส คนฉลาดหลายล้านคนใช้เวลาทำงานหลายล้านชั่วโมง แล้วก็ถูกคนเพิกเฉย
ส่วนที่บ้าที่สุดคือดูเหมือนไม่มีใครถามว่า “ทำไม?” ทำไมโค้ดโอเพนซอร์สส่วนใหญ่ถูกฝัง ถูกลืม? ทำไมเราเขียนโค้ดเดียวกันซ้ำแล้วซ้ำเล่าทุกวัน ในขณะที่โค้ดนั้นแทบจะแน่นอนว่าอยู่ที่ไหนสักแห่งบนแพลตฟอร์มโอเพนซอร์ส รอให้เราใช้?
เหตุการณ์นี้เกิดขึ้นส่วนใหญ่เพราะคนใช้ repository เป็นเพียงที่เก็บข้อมูล นักพัฒนารู้จัก AngularJS หรือ JQuery หรือ React แต่มีไม่กี่คนที่รู้จักแพ็กเกจโอเพนซอร์สมากกว่า 10 แพ็กเกจ นี่คือส่วนที่บ้า เพราะคนไม่รู้หรือไม่ใช้แพ็กเกจโอเพนซอร์สทั้งหมด ดังนั้นจึงไม่มีใครใช้โค้ดในนั้น แพ็กเกจที่เขียนในปี 2015 อาจไม่มีประโยชน์ทั้งหมดสำหรับคนหนึ่ง แต่บางทีมันอาจมีฟังก์ชันที่ต้องการอยู่ ส่วนที่มีประโยชน์ที่สุดไม่ใช่แพ็กเกจทั้งหมดเสมอไป บางครั้งเป็นเพียงส่วนหนึ่งของโค้ด
สมมติว่ามีคนกำลังหาฟังก์ชัน JavaScript เพื่อสลับองค์ประกอบในอาร์เรย์ หรือฟังก์ชันอื่นเพื่อสร้างสตริงแบบสุ่ม ชิ้นส่วนโค้ดเล็กๆ เหล่านี้มีหลายร้อยชิ้นเหมือนกันบนแพลตฟอร์มโอเพนซอร์ส แต่ไม่มีใครรู้ว่าพวกมันมีอยู่ แม้พวกเขาจะรู้ ก็ไม่มีใครรู้วิธีหาพวกมัน ดังนั้นความรู้ที่มีค่าเหล่านี้จึงถูกทิ้งหรือลืม เพียงเพราะหายาก มันไร้สาระมาก ไม่ดีต่อใครเลย
จัดระเบียบโค้ดทั้งหมด และทำให้หาง่าย
แล้วเราจะแก้ปัญหานี้อย่างไร? ตอบคำถามนี้ง่าย แต่ทำยาก คุณต้องทำสามสิ่ง:
- จัดระเบียบโค้ดโอเพนซอร์สทั้งหมดจากด้านฟังก์ชัน แบ่งประเภทอย่างละเอียด
- สร้างโมเดลเพื่อแสดงฟังก์ชันจริงของโค้ดต่างๆ เหล่านี้
- สร้างวิธีที่ง่ายและสะดวกในการค้นหาและหาชิ้นส่วนโค้ดเหล่านี้
นี่คือเหตุผลที่เราสร้าง Cocycles Cocycles ตอบสนองเงื่อนไขข้างต้นทั้งหมด ในขณะที่ยังคงปรับปรุงอย่างต่อเนื่อง อัลกอริทึมของมันสามารถประมวลผลโค้ดโอเพนซอร์สจำนวนมาก อ่านและเข้าใจฟังก์ชันของโค้ดแต่ละชิ้น จากนั้น มันให้ผู้คนใช้ภาษาอังกฤษง่ายๆ ในการค้นหาโค้ด
ตัวอย่างเช่น ผู้ใช้เพียงพิมพ์ “shuffle array” หรือ “create random string” แล้วพวกมันจะแสดงด้วยการดำเนินการโอเพนซอร์สต่างๆ เอกสาร ตัวอย่างการใช้งาน และอื่นๆ มันยังจะให้ชิ้นส่วนที่มีประโยชน์ที่สร้างขึ้นซึ่งมี dependencies และฟังก์ชันย่อยทั้งหมด
ในอีกไม่กี่ปีข้างหน้า ซอฟต์แวร์ปัญญาประดิษฐ์อาจสามารถใช้มันเพื่อค้นหาและเรียนรู้โค้ดใหม่ ปรับปรุงและเปลี่ยนแปลงโค้ดอย่างต่อเนื่อง
โปรดระบุแหล่งที่มา: ความสัมพันธ์นักพัฒนา »