พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

สวัสดีฮับ! ฉันขอนำเสนอคำแปลของโพสต์ของ Stephen Wolfram แก่คุณ "พื้นที่เก็บข้อมูลฟังก์ชั่น Wolfram: เปิดตัวแพลตฟอร์มเปิดเพื่อขยายภาษา Wolfram".

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

ข้อกำหนดเบื้องต้นสำหรับความสอดคล้องของภาษา Wolfram

วันนี้เรายืนอยู่บนเกณฑ์แห่งความสำเร็จอันยิ่งใหญ่พร้อมกับภาษาการเขียนโปรแกรม ภาษา Wolfram. เพียงสามสัปดาห์ที่ผ่านมาเราเปิดตัว เอ็นจิ้น Wolfram ฟรีสำหรับนักพัฒนาเพื่อช่วยให้ผู้ใช้ของเราบูรณาการภาษา Wolfram เข้ากับโครงการซอฟต์แวร์ขนาดใหญ่ของพวกเขา วันนี้เรากำลังจะเปิดตัว พื้นที่เก็บข้อมูลฟังก์ชัน Wolframเพื่อจัดเตรียมแพลตฟอร์มที่ประสานงานสำหรับฟังก์ชันที่สร้างขึ้นเพื่อขยายภาษา Wolfram และเรายังเปิดพื้นที่เก็บข้อมูลฟังก์ชันสำหรับใครก็ตามที่สามารถมีส่วนร่วมในการพัฒนาผลิตภัณฑ์ซอฟต์แวร์ของเรา

Wolfram Function Repository เป็นสิ่งที่เกิดขึ้นได้โดยธรรมชาติอันเป็นเอกลักษณ์ของภาษา Wolfram ไม่เพียงแต่เป็นภาษาโปรแกรมเท่านั้น แต่ยังเป็น ภาษาคอมพิวเตอร์เต็มรูปแบบ. ในภาษาการเขียนโปรแกรมแบบดั้งเดิม การเพิ่มฟังก์ชันใหม่ที่สำคัญมักจะเกี่ยวข้องกับการสร้างไลบรารีเพิ่มเติมทั้งหมดที่อาจทำงานหรือไม่ก็ได้เมื่อใช้ร่วมกัน อย่างไรก็ตามในภาษาวุลแฟรม มีการสร้างภาษาไว้มากมายแล้วเป็นไปได้ที่จะขยายฟังก์ชันการทำงานได้อย่างมากโดยเพียงแค่เพิ่มฟังก์ชันใหม่ๆ ที่รวมเข้ากับโครงสร้างแบบองค์รวมของทั้งภาษาในทันที

ตัวอย่างเช่น ที่เก็บฟังก์ชัน Wolfram มีอยู่แล้ว 532 คุณสมบัติใหม่ โครงสร้างเป็น 26 หมวดหมู่ใจความ:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

มากกว่าเช่นกัน ฟังก์ชันมาตรฐาน 6000 รายการสร้างขึ้นในภาษา Wolfram แต่ละฟังก์ชันจากพื้นที่เก็บข้อมูลมีหน้าเอกสารประกอบพร้อมคำอธิบายโดยละเอียดและตัวอย่างงาน:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

หากต้องการไปที่เพจ ให้คัดลอกออบเจ็กต์ด้านบน (ฟังก์ชัน BLOB) วางลงในบรรทัดอินพุต จากนั้นเรียกใช้ฟังก์ชัน - มีอยู่แล้วในภาษา Wolfram และได้รับการสนับสนุนตามค่าเริ่มต้นโดยเริ่มจาก เวอร์ชัน 12.0:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

ควรสังเกตที่นี่ว่าเมื่อประมวลผล โลโก้QRCode ตัวอย่างเช่น คุณไม่จำเป็นต้องตั้งค่า "ไลบรารีการประมวลผลรูปภาพ" - เนื่องจากเราได้ใช้วิธีอัลกอริธึมที่สอดคล้องกันและระมัดระวังในภาษา Wolfram แล้ว การประมวลผลภาพซึ่งสามารถประมวลผลได้ทันทีด้วยฟังก์ชันภาษากราฟิกต่างๆ:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

ฉันหวังว่าด้วยการสนับสนุน ชุมชนที่ยอดเยี่ยมและมีความสามารถซึ่งมีการเติบโตและขยายตัว (ตามภาษาวุลแฟรม) ในช่วงหลายทศวรรษที่ผ่านมา พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram จะช่วยให้ในอนาคตอันใกล้สามารถขยายช่วงของฟังก์ชัน (อาจมีความสำคัญและมีความเชี่ยวชาญในสาขาวิทยาศาสตร์และเทคโนโลยีต่างๆ) ที่มีอยู่ในภาษาได้อย่างมีนัยสำคัญ ดังนั้นจึงเป็นไปได้ที่จะใช้ทั้งเนื้อหาของภาษา (ฟังก์ชันในตัว) และ หลักการพัฒนาซึ่งดำเนินการตามภาษา (ควรสังเกตว่าภาษา Wolfram มีมากกว่านั้นแล้ว ประวัติศาสตร์ 30 ปีของการพัฒนาและการเติบโตอย่างมั่นคง).
ฟังก์ชั่นจากพื้นที่เก็บข้อมูลอาจมีโค้ดขนาดเล็กหรือใหญ่ที่เขียนด้วยภาษา Wolfram ตัวอย่างเช่น สิ่งเหล่านี้อาจเป็นการโทร API และบริการภายนอกหรือไลบรารีภายนอกในภาษาอื่น. คุณลักษณะเฉพาะของแนวทางนี้คือ เมื่อคุณเจาะลึกลงไปถึงฟังก์ชันการทำงานระดับผู้ใช้ จะไม่มีความไม่สอดคล้องกันที่อาจเกิดขึ้นได้ เนื่องจากแนวทางนี้สร้างขึ้นจากโครงสร้างที่สอดคล้องกันของภาษา Wolfram - และทุกฟังก์ชันจะทำงานอย่างถูกต้องโดยอัตโนมัติ - ตรงตาม ตั้งใจ เธอควรจะ
โครงสร้างเชลล์และการเขียนโปรแกรมของ Wolfram Feature Repository ได้รับการออกแบบเพื่อให้ทุกคนสามารถมีส่วนร่วมในสาเหตุทั่วไปในวิธีที่ง่ายและสะดวกที่สุดสำหรับพวกเขา - อันที่จริงเพียงแค่ โดยกรอกไฟล์ข้อความ Notepad (ที่มีนามสกุล nb) WL. ฟังก์ชันอัตโนมัติในตัวช่วยให้คุณตรวจสอบฟังก์ชันใหม่ที่เพิ่มในพื้นที่เก็บข้อมูลเพื่อให้แน่ใจว่ารวมเข้ากับภาษาได้ บริษัทของเรากำลังเดิมพันกับผู้ใช้ที่หลากหลายซึ่งสามารถรวมฟังก์ชันของตนเข้ากับภาษาได้ แทนที่จะเดิมพันกับความซับซ้อนอย่างมากของฟังก์ชันใหม่ - และแม้ว่าจะมีกระบวนการตรวจสอบ แต่เราก็ไม่ยืนกรานในสิ่งที่คล้ายกัน การวิเคราะห์การออกแบบที่อุตสาหะ หรือมาตรฐานที่เข้มงวดเพื่อความสมบูรณ์และความน่าเชื่อถือของคุณสมบัติใหม่ของผู้ใช้ ซึ่งตรงข้ามกับการทดสอบคุณสมบัติที่สร้างในภาษาหลักที่เราใช้งานที่เข้มงวดมากขึ้น

มีข้อดีข้อเสียและรายละเอียดมากมายในแนวทางนี้ แต่เป้าหมายของเราคือการเพิ่มประสิทธิภาพพื้นที่เก็บข้อมูลฟีเจอร์ Wolfram ทั้งเพื่อประสบการณ์ผู้ใช้ และเพื่อให้แน่ใจว่าฟีเจอร์ผู้ใช้ใหม่มีส่วนช่วยอย่างมีความหมายต่อการพัฒนาภาษา เมื่อเราเติบโตขึ้น ฉันไม่สงสัยเลยว่าเราจะต้องคิดค้นวิธีการใหม่ๆ ในการประมวลผลและตรวจสอบความถูกต้องของฟังก์ชันที่สร้างไว้ใน Repository อย่างน้อยก็สำหรับการจัดระเบียบฟังก์ชันจำนวนมากและค้นหาฟังก์ชันที่ผู้ใช้ต้องการ อย่างไรก็ตาม เป็นกำลังใจให้กับเส้นทางที่เราเลือกไว้เป็นจุดเริ่มต้นที่ดี โดยส่วนตัวแล้วฉัน เพิ่มคุณสมบัติหลายประการ สู่ฐานข้อมูลเดิม หลายๆ รายการใช้โค้ดที่ฉันพัฒนาเป็นการส่วนตัวมาระยะหนึ่งแล้ว และฉันใช้เวลาเพียงไม่กี่นาทีในการผลักมันไปที่พื้นที่เก็บข้อมูล ตอนนี้เมื่อพวกมันอยู่ในพื้นที่เก็บข้อมูลแล้ว ในที่สุดฉันก็สามารถใช้ฟังก์ชันเหล่านี้ได้ทันทีและทุกเวลาตามต้องการ โดยไม่ต้องกังวลกับการค้นหาไฟล์ การดาวน์โหลดไฟล์แพ็คเกจ ฯลฯ

เพิ่มประสิทธิภาพพร้อมลดต้นทุน

แม้กระทั่งก่อนอินเทอร์เน็ต มีหลายวิธีในการแบ่งปันรหัสภาษา Wolfram (โครงการรวมศูนย์หลักโครงการแรกของเราคือ แหล่งที่มาทางคณิตศาสตร์สร้างขึ้นสำหรับ Mathematica ในปี 1991 โดยใช้ซีดีรอม ฯลฯ ) แน่นอนว่าแนวทางที่เสนอสำหรับการนำไปปฏิบัติโดยอิงจากที่เก็บฟังก์ชัน Wolfram เป็นเครื่องมือที่ทรงพลังและเชื่อถือได้มากขึ้นสำหรับการดำเนินงานข้างต้น

เป็นเวลากว่า 30 ปีที่บริษัทของเราทำงานอย่างขยันขันแข็งเพื่อรักษาความสมบูรณ์ของโครงสร้างภาษา Wolfram และนี่เป็นสิ่งสำคัญในการรับรองว่าภาษา Wolfram ไม่ใช่แค่ภาษาการเขียนโปรแกรมเท่านั้น แต่ยังเป็น ภาษาคอมพิวเตอร์ที่เต็มเปี่ยม. ดังนั้น สาระสำคัญของแนวทางในการใช้พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram คือการใช้วิธีการแบบครบวงจรในการเขียนโปรแกรมและพัฒนาฟังก์ชันใหม่ที่ได้รับการเพิ่มตามลำดับและเหมาะสมกับกรอบงานของภาษา เพื่อให้สามารถพัฒนาและพัฒนาร่วมกันได้

กระบวนการคำนวณต่างๆ เกิดขึ้นในโครงสร้างการใช้งานของแต่ละฟังก์ชัน ควรสังเกตไว้ที่นี่ว่าจำเป็นที่ฟังก์ชันจะต้องมีลักษณะที่ชัดเจนและสม่ำเสมอและผู้ใช้สามารถอ่านด้วยภาพได้ ในบริบทนี้ ฟังก์ชันในตัวของ Wolfram Language จะถูกนำเสนอพร้อมตัวอย่างมากกว่า 6000 ตัวอย่างตามลำดับของวิธีการตั้งโปรแกรมฟังก์ชันต่างๆ อย่างเหมาะสม (นี่คือของเรา วิดีโอการเขียนโปรแกรมสดซึ่งรวมถึง กระบวนการสร้างโปรแกรมมาตรฐานใช้เวลาหลายร้อยชั่วโมง). สิ่งที่แนวทางนี้ทำให้พื้นที่เก็บข้อมูลคุณลักษณะ Wolfram สามารถทำงานได้ดีในที่สุดคือลักษณะโครงสร้างของภาษา Wolfram โดยมีไลบรารีเพิ่มเติมและหลากหลายจำนวนมากที่สร้างขึ้นในภาษานั้นแล้ว ตัวอย่างเช่น หากคุณมีฟังก์ชันที่ประมวลผลรูปภาพ หรือ อาร์เรย์กระจัดกระจายหรือ โครงสร้างโมเลกุลและ ข้อมูลทางภูมิศาสตร์ หรืออื่นๆ - การแสดงสัญลักษณ์ที่สอดคล้องกันมีอยู่แล้วในภาษา และด้วยเหตุนี้ ฟังก์ชันของคุณจึงเข้ากันได้กับฟังก์ชันอื่นๆ ในภาษานั้นทันที

การสร้างพื้นที่เก็บข้อมูลที่ใช้งานได้จริงเป็นงานเขียนโปรแกรมเมตาที่น่าสนใจ ตัวอย่างเช่น ข้อ จำกัด ที่มากเกินไปในโปรแกรมจะไม่อนุญาตให้ได้รับการรวมและความเป็นสากลของอัลกอริทึมที่จำเป็น เช่นเดียวกับข้อจำกัดด้านการทำงานที่ไม่เพียงพอ คุณจะไม่สามารถใช้ลำดับการดำเนินการอัลกอริทึมที่ถูกต้องเพียงพอได้ ตัวอย่างก่อนหน้านี้หลายประการของการดำเนินการประนีประนอมแนวทางเหล่านี้ซึ่งดำเนินการโดยบริษัทของเรานั้นทำงานได้ค่อนข้างเสถียร - เหล่านี้คือ: โครงการสาธิตทังสเตนเปิดตัวในปี 2007 และปัจจุบันออนไลน์ทางออนไลน์พร้อมการสาธิตแบบโต้ตอบกับผู้ใช้มากกว่า 12000 รายการ ใน ฐานข้อมูลวุลแฟรม มีฐานข้อมูลสำเร็จรูปมากกว่า 600 ฐานข้อมูลที่สามารถใช้ในภาษา Wolfram และ ที่เก็บข้อมูลเครือข่ายประสาทวุลแฟรม ถูกเติมเต็มด้วยโครงข่ายประสาทเทียมใหม่เกือบทุกสัปดาห์ (ตอนนี้มีแล้ว 118 โครงข่าย) และเชื่อมต่อกันทันทีผ่านฟังก์ชัน เน็ตโมเดล ในภาษาวุลแฟรม

ตัวอย่างข้างต้นทั้งหมดมีคุณสมบัติพื้นฐาน - วัตถุและฟังก์ชั่นที่รวบรวมในโครงการมีการจัดโครงสร้างและการกระจายกระบวนการในระดับที่สูงมาก แน่นอนว่ารายละเอียดของโครงสร้างของสิ่งที่เป็นการสาธิตหรือโครงข่ายประสาทเทียมหรืออย่างอื่นอาจแตกต่างกันอย่างมาก แต่โครงสร้างพื้นฐานสำหรับพื้นที่เก็บข้อมูลปัจจุบันจะยังคงเหมือนเดิมเสมอ ผู้ใช้ที่รักมีความคิดเห็นอย่างไรเกี่ยวกับการสร้างพื้นที่เก็บข้อมูลที่เพิ่มส่วนขยายให้กับภาษา Wolfram? ภาษา Wolfram ได้รับการออกแบบให้มีความยืดหยุ่นสูง จึงสามารถขยายและแก้ไขได้ไม่ว่าด้วยวิธีใดก็ตาม สถานการณ์นี้มีความสำคัญอย่างยิ่งต่อความสามารถในการสร้างโครงการซอฟต์แวร์ขนาดใหญ่ต่างๆ ในภาษา Wolfram ได้อย่างรวดเร็ว ควรสังเกตว่าเมื่อความยืดหยุ่นของภาษาเพิ่มขึ้น ต้นทุนของโครงการที่ดำเนินการในภาษาดังกล่าวก็จะเพิ่มขึ้นอย่างหลีกเลี่ยงไม่ได้ นี่เป็นเพราะความจริงที่ว่ายิ่งผู้ใช้ใช้ภาษาดังกล่าวมากเท่าใดก็ยิ่งได้รับฟังก์ชันการทำงานเฉพาะมากขึ้นเท่านั้น แต่เราไม่ควรลืมว่าแนวทางนี้อาจมีด้านลบในแง่ของการไร้ความสามารถเพื่อให้แน่ใจว่าโมดูลโปรแกรมมีความสอดคล้องสม่ำเสมอ

มีปัญหาทั่วไปกับไลบรารี่ในภาษาการเขียนโปรแกรมแบบเดิม เช่น หากคุณใช้ไลบรารีเดียว โค้ดจะทำงานได้อย่างถูกต้อง แต่ถ้าคุณพยายามใช้หลายไลบรารี ก็ไม่รับประกันว่าไลบรารีทั้งสองจะโต้ตอบกันอย่างถูกต้อง . นอกจากนี้ในภาษาการเขียนโปรแกรมแบบดั้งเดิมซึ่งต่างจากภาษาคอมพิวเตอร์ที่เต็มเปี่ยม - ไม่มีวิธีใดที่จะรับประกันได้ว่าจะมีการนำเสนอในตัวที่สอดคล้องกันสำหรับฟังก์ชันหรือประเภทข้อมูลใด ๆ นอกเหนือจากโครงสร้างพื้นฐาน แต่ในความเป็นจริง ปัญหานั้นใหญ่กว่าที่คิดเมื่อมองแวบแรก: หากใครก็ตามสร้างฟังก์ชันการทำงานแนวดิ่งขนาดใหญ่ โดยไม่ต้องเสียค่าใช้จ่ายมหาศาลในการเขียนโปรแกรมโปรเจ็กต์แบบรวมศูนย์ที่เราใส่ไว้ในภาษา Wolfram มันเป็นไปไม่ได้ที่จะ บรรลุความสม่ำเสมอ ดังนั้นจึงเป็นเรื่องสำคัญที่โมดูลซอฟต์แวร์ทั้งหมดจะทำงานร่วมกันได้อย่างถูกต้องเสมอ

ดังนั้นแนวคิดเบื้องหลังพื้นที่เก็บข้อมูลฟีเจอร์ Wolfram คือการหลีกเลี่ยงปัญหาที่อธิบายไว้ข้างต้นโดยเพียงแค่เพิ่มส่วนขยายให้กับภาษาด้วยโค้ดขนาดค่อนข้างเล็กผ่านฟีเจอร์แต่ละรายการที่ง่ายต่อการพัฒนาเป็นโมดูลที่สอดคล้องกัน ดังที่กล่าวไปแล้ว มีคุณสมบัติการเขียนโปรแกรมที่ไม่สามารถอำนวยความสะดวกได้โดยใช้แต่ละฟังก์ชัน (และบริษัทของเรากำลังวางแผนที่จะเปิดตัวอัลกอริธึมการเขียนโปรแกรมที่ได้รับการปรับปรุงให้เหมาะสมในอนาคตอันใกล้นี้ เพื่อช่วยปรับใช้แพ็คเกจซอฟต์แวร์ขนาดใหญ่) อย่างไรก็ตาม ขึ้นอยู่กับฟังก์ชันที่สร้างไว้แล้วในภาษา Wolfram มีความเป็นไปได้ในการเขียนโปรแกรมมากมายที่นำไปใช้ตามฟังก์ชันแต่ละอย่าง แนวคิดก็คือ ด้วยความพยายามในการเขียนโปรแกรมเพียงเล็กน้อย จึงเป็นไปได้ที่จะสร้างฟังก์ชันใหม่ๆ ที่มีประโยชน์มากจำนวนหนึ่ง ซึ่งจะให้ความสอดคล้องที่เพียงพอกับการออกแบบ ฟังก์ชันเหล่านี้จะได้รับการประสานงานกันอย่างดี และนอกเหนือจากนี้ จะสามารถนำไปใช้ในภาษาได้ง่ายและแพร่หลายในอนาคต

แน่นอนว่าแนวทางนี้เป็นการประนีประนอม หากมีการนำแพ็คเกจที่ใหญ่กว่ามาใช้ โลกแห่งฟังก์ชันการทำงานแบบใหม่สามารถจินตนาการได้ว่าจะทรงพลังและมีประโยชน์อย่างมาก หากมีความจำเป็นต้องได้รับฟังก์ชันใหม่ๆ ที่จะเข้ากับทุกสิ่งทุกอย่างได้ แต่คุณไม่เต็มใจที่จะใช้เวลามากมายในการพัฒนาโปรเจ็กต์ โชคไม่ดีที่สิ่งนี้สามารถนำไปสู่การลดขอบเขตของโปรเจ็กต์ของคุณได้ แนวคิดเบื้องหลังพื้นที่เก็บข้อมูลคุณลักษณะ Wolfram คือการจัดหาฟังก์ชันการทำงานให้กับส่วนที่กำหนดของโครงการ แนวทางนี้จะเพิ่มฟังก์ชันการทำงานที่มีประสิทธิภาพในขณะที่ทำให้ง่ายต่อการรักษาความสอดคล้องที่ดีในโครงการการเขียนโปรแกรม

ช่วยเพิ่มฟังก์ชันที่กำหนดเองไปยังที่เก็บฟังก์ชัน

ทีมงานของเราทำงานอย่างหนักเพื่อให้ผู้ใช้สามารถมีส่วนร่วมในฟีเจอร์พื้นที่เก็บข้อมูล Wolfram ได้อย่างง่ายดาย บนเดสก์ท็อป (อยู่ในแล้ว เวอร์ชัน 12.0) คุณสามารถไปที่แท็บเมนูหลักตามลำดับ: File > New > RepositoryItem > Function Repository Item แล้วคุณจะได้รับ "นิยาม โน๊ตบุ๊ค" (โดยทางโปรแกรมภายในโต๊ะทำงาน คุณยังสามารถใช้ฟังก์ชันอะนาล็อกได้ - สร้างสมุดบันทึก["ทรัพยากรฟังก์ชัน"]):

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

มีสองขั้นตอนหลักที่คุณต้องดำเนินการ ขั้นแรก เขียนโค้ดสำหรับฟังก์ชันของคุณจริงๆ และขั้นที่สอง จดเอกสารที่แสดงให้เห็นว่าฟังก์ชันของคุณควรทำงานอย่างไร
คลิกปุ่ม "เปิดตัวอย่าง" ที่ด้านบนเพื่อดูตัวอย่างสิ่งที่คุณต้องทำ:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

โดยพื้นฐานแล้ว คุณกำลังพยายามสร้างสิ่งที่คล้ายกับฟังก์ชันในตัวในภาษา Wolfram ยกเว้นว่ามันสามารถทำสิ่งที่เฉพาะเจาะจงมากกว่าฟังก์ชันในตัวได้ ในขณะเดียวกัน ความคาดหวังเกี่ยวกับความสมบูรณ์และความน่าเชื่อถือจะลดลงมาก
คุณต้องตั้งชื่อฟังก์ชันของคุณให้เป็นไปตามแนวทางการตั้งชื่อฟังก์ชันของ Wolfram Language นอกจากนี้ คุณจะต้องพัฒนาเอกสารสำหรับฟังก์ชันของคุณ ซึ่งคล้ายกับฟังก์ชันในตัวของภาษา ฉันจะพูดถึงเรื่องนี้โดยละเอียดในภายหลัง ในตอนนี้ โปรดสังเกตว่าในแถวของปุ่มที่ด้านบนของไฟล์สมุดบันทึกคำจำกัดความจะมีปุ่มหนึ่งปุ่ม “แนวทางสไตล์”ซึ่งอธิบายสิ่งที่ต้องทำ และปุ่มเครื่องมือซึ่งมีเครื่องมือสำหรับการจัดรูปแบบเอกสารประกอบของฟังก์ชันของคุณ
เมื่อคุณแน่ใจว่าทุกอย่างถูกต้องและคุณพร้อมแล้ว ให้คลิกปุ่ม “ตรวจสอบ” เป็นเรื่องปกติที่คุณจะไม่ทราบรายละเอียดทั้งหมด ดังนั้นฟังก์ชัน "ตรวจสอบ" จะทำงานโดยอัตโนมัติและทำการตรวจสอบสไตล์และความสอดคล้องจำนวนมาก บ่อยครั้งระบบจะแจ้งให้คุณยืนยันและยอมรับการแก้ไขทันที (เช่น “บรรทัดนี้ต้องลงท้ายด้วยเครื่องหมายทวิภาค” และจะแจ้งให้คุณป้อนเครื่องหมายทวิภาค) บางครั้งเธอจะขอให้คุณเพิ่มหรือเปลี่ยนแปลงบางสิ่งบางอย่างด้วยตัวคุณเอง เราจะเพิ่มคุณสมบัติใหม่ๆ ให้กับฟังก์ชันอัตโนมัติของปุ่มตรวจสอบอย่างต่อเนื่อง แต่โดยพื้นฐานแล้วจุดประสงค์คือเพื่อให้แน่ใจว่าทุกสิ่งที่คุณส่งไปยังที่เก็บคุณลักษณะนั้นเป็นไปตามหลักเกณฑ์ด้านรูปแบบมากที่สุดเท่าที่จะเป็นไปได้

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

ดังนั้นหลังจากเรียกใช้ "ตรวจสอบ" คุณสามารถใช้ "ดูตัวอย่าง" ได้ "แสดงตัวอย่าง" สร้างการแสดงตัวอย่างหน้าเอกสารที่คุณกำหนดไว้สำหรับฟังก์ชันของคุณ คุณยังสามารถสร้างการแสดงตัวอย่างสำหรับไฟล์ที่สร้างบนคอมพิวเตอร์ของคุณหรือสำหรับไฟล์ที่อยู่ในที่เก็บข้อมูลบนคลาวด์ หากด้วยเหตุผลบางประการ คุณไม่พอใจกับสิ่งที่คุณเห็นในภาพตัวอย่าง เพียงย้อนกลับไปและทำการแก้ไขที่จำเป็น จากนั้นคลิกปุ่มแสดงตัวอย่างอีกครั้ง
ตอนนี้คุณพร้อมที่จะผลักดันฟังก์ชันของคุณไปยังพื้นที่เก็บข้อมูลแล้ว ปุ่มปรับใช้มีสี่ตัวเลือกให้คุณ:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

สิ่งสำคัญในขั้นตอนนี้คือคุณสามารถส่งฟังก์ชันของคุณไปยังที่เก็บฟังก์ชัน Wolfram เพื่อให้ทุกคนสามารถใช้ได้ ในเวลาเดียวกัน คุณยังสามารถวางฟังก์ชันของคุณสำหรับผู้ใช้ในจำนวนที่จำกัดได้ ตัวอย่างเช่น คุณสามารถสร้างฟังก์ชันที่โฮสต์ไว้ภายในคอมพิวเตอร์ของคุณ เพื่อให้สามารถใช้งานได้เมื่อคุณใช้คอมพิวเตอร์เครื่องนั้น หรือจะโพสต์ไว้ในของคุณก็ได้ บัญชีคลาวด์เพื่อให้คุณสามารถใช้งานได้เมื่อคุณเชื่อมต่อกับระบบคลาวด์ คุณยังสามารถโฮสต์ (ปรับใช้) คุณลักษณะนี้ต่อสาธารณะผ่านบัญชีคลาวด์ของคุณได้อีกด้วย มันจะไม่ได้อยู่ในที่เก็บฟีเจอร์ Wolfram ส่วนกลาง แต่คุณจะสามารถให้ URL แก่ใครบางคนที่จะอนุญาตให้พวกเขารับฟีเจอร์ของคุณจากบัญชีของคุณ (ในอนาคต เราจะสนับสนุนพื้นที่เก็บข้อมูลส่วนกลางทั่วทั้งบริษัทของเราด้วย)

สมมติว่าคุณต้องการส่งฟังก์ชันของคุณไปยังฐานความรู้ฟังก์ชัน Wolfram ในการดำเนินการนี้ ให้คลิกปุ่ม "ส่ง" ไปยังพื้นที่เก็บข้อมูล แล้วจะเกิดอะไรขึ้นในตอนนี้? ใบสมัครของคุณจะถูกเข้าคิวเพื่อตรวจสอบและอนุมัติทันทีโดยทีมภัณฑารักษ์ของเราโดยเฉพาะ

เมื่อใบสมัครของคุณดำเนินไปตามขั้นตอนการอนุมัติ (ซึ่งโดยทั่วไปจะใช้เวลาหลายวัน) คุณจะได้รับการสื่อสารเกี่ยวกับสถานะของใบสมัครและคำแนะนำสำหรับการใช้งานในอนาคต แต่เมื่อคุณสมบัติของคุณได้รับการอนุมัติ มันจะถูกเผยแพร่ไปยัง Wolfram Feature Repository ทันที และจะพร้อมให้ทุกคนใช้งานได้ (และสิ่งนี้จะปรากฏอยู่ใน. สรุปข่าวเกี่ยวกับคุณสมบัติใหม่ และอื่น ๆ )

สิ่งที่ควรมีในการจัดเก็บ?

ควรสังเกตว่าบริษัทของเรามีมาตรฐานที่สูงมากในด้านความสมบูรณ์ ความน่าเชื่อถือ และคุณภาพโดยรวม และฟังก์ชันมากกว่า 6000 รายการที่เราได้สร้างไว้ในภาษา Wolfram ตลอดระยะเวลากว่า 30 ปีที่ผ่านมา ทั้งหมดตรงตามข้อกำหนดข้างต้น เป้าหมายของ Wolfram Function Repository คือการใช้โครงสร้างและฟังก์ชันทั้งหมดที่มีอยู่แล้วในภาษา Wolfram เพื่อเพิ่มฟังก์ชันที่เบากว่าให้มากที่สุดเท่าที่จะเป็นไปได้ (นั่นคือ ฟังก์ชันที่มีประสิทธิภาพสูงกว่า)

แน่นอนว่า ฟังก์ชันต่างๆ ในพื้นที่เก็บข้อมูลฟังก์ชัน Wolfram จะต้องเป็นไปตามหลักการออกแบบของภาษา Wolfram เพื่อให้สามารถโต้ตอบกับฟังก์ชันอื่นๆ ได้อย่างเต็มที่ และความคาดหวังของผู้ใช้ว่าฟังก์ชันควรทำงานอย่างถูกต้องอย่างไร อย่างไรก็ตาม ฟังก์ชันต่างๆ ไม่จำเป็นต้องมีความสมบูรณ์หรือความน่าเชื่อถือเท่ากัน

ในฟังก์ชันในตัวของภาษา Wolfram เราทำงานอย่างหนักเพื่อทำให้ฟังก์ชันการเขียนโปรแกรมเป็นแบบทั่วไปที่สุดเท่าที่จะเป็นไปได้ ดังที่กล่าวไว้ เมื่ออยู่ในที่เก็บฟังก์ชัน Wolfram ไม่มีอะไรผิดที่จะมีฟังก์ชันในนั้นที่จัดการเฉพาะบางกรณีที่เฉพาะเจาะจงแต่มีประโยชน์ ตัวอย่างเช่นฟังก์ชัน SendMailFromNotebook สามารถรับไฟล์ในรูปแบบเฉพาะและสร้างเมลด้วยวิธีเฉพาะได้ โพลิกอนไดอะแกรม สร้างแผนภูมิที่มีสีและป้ายกำกับที่กำหนดเท่านั้น ฯลฯ

อีกจุดที่เกี่ยวข้องกับฟังก์ชันในตัวคือบริษัทของเราพยายามทุกวิถีทางเพื่อจัดการกับกรณีที่ผิดปกติทั้งหมด เพื่อจัดการกับอินพุตที่ไม่ถูกต้องอย่างถูกต้อง และอื่นๆ ในที่เก็บฟังก์ชัน เป็นเรื่องปกติที่จะมีฟังก์ชันพิเศษที่จัดการกรณีหลักของการแก้ปัญหาและละเว้นฟังก์ชันอื่นๆ ทั้งหมด

จุดที่ชัดเจนก็คือ ดีกว่าที่จะมีฟังก์ชันที่ทำได้มากกว่าและทำได้ดีกว่า แต่การปรับให้เหมาะสมสำหรับที่เก็บฟังก์ชัน ซึ่งต่างจากฟังก์ชันในตัวของภาษา Wolfram ควรมีฟังก์ชันเพิ่มเติมที่มาพร้อมกับฟังก์ชันมากกว่า แทนที่จะเจาะลึกลงไป กระบวนการดำเนินการของแต่ละฟังก์ชันเฉพาะ

ตอนนี้เรามาดูตัวอย่างการทดสอบฟังก์ชันในพื้นที่เก็บข้อมูลกัน ความคาดหวังด้านความสอดคล้องสำหรับฟังก์ชันดังกล่าวจะต่ำกว่าฟังก์ชันภาษาในตัวอย่างมาก โดยเฉพาะอย่างยิ่งในกรณีที่ฟังก์ชันต้องอาศัยทรัพยากรภายนอก เช่น API สิ่งสำคัญคือต้องทำการทดสอบอย่างต่อเนื่อง ซึ่งจะเกิดขึ้นโดยอัตโนมัติภายในอัลกอริธึมการตรวจสอบ ในไฟล์ nb คุณสามารถระบุคำจำกัดความได้อย่างชัดเจน (ในส่วนข้อมูลเพิ่มเติม) และระบุการทดสอบได้มากตามที่กำหนดโดยสตริงอินพุตและเอาต์พุตหรืออ็อบเจ็กต์อักขระเต็มประเภท การทดสอบการยืนยันเท่าที่เห็นว่าเหมาะสม นอกจากนี้ ระบบยังพยายามเปลี่ยนตัวอย่างเอกสารที่คุณให้มาเป็นกระบวนการตรวจสอบอย่างต่อเนื่อง (และบางครั้งอาจต้องใช้ทรัพยากรมาก เช่น สำหรับฟังก์ชันที่ผลลัพธ์ขึ้นอยู่กับตัวเลขสุ่มหรือช่วงเวลาของวัน)

เป็นผลให้ที่เก็บฟังก์ชันจะมีความซับซ้อนในการใช้งานจำนวนหนึ่ง บางส่วนอาจเป็นเพียงโค้ดบรรทัดเดียว บางส่วนอาจเกี่ยวข้องกับบรรทัดหลายพันหรือหลายหมื่นบรรทัด ซึ่งมีแนวโน้มว่าจะใช้ฟังก์ชันตัวช่วยมากมาย เมื่อใดจึงควรเพิ่มฟังก์ชันที่ต้องใช้โค้ดเพียงเล็กน้อยในการกำหนด โดยพื้นฐานแล้วถ้ามีฟังก์ชันอยู่ ชื่อช่วยในการจำที่ดีซึ่งผู้ใช้จะเข้าใจได้ง่ายหากเห็นเป็นโค้ดก็สามารถเพิ่มเข้าไปได้เลย มิฉะนั้น อาจเป็นการดีกว่าถ้าคุณเติมโค้ดใหม่ให้กับโปรแกรมของคุณทุกครั้งที่คุณต้องการใช้งาน

วัตถุประสงค์หลักของพื้นที่เก็บข้อมูลฟังก์ชัน (ตามชื่อของมัน) คือการแนะนำคุณสมบัติใหม่ในภาษา หากต้องการเพิ่มข้อมูลใหม่หรือ เอนทิตีใหม่, ใช้ พื้นที่เก็บข้อมูล Wolfram. แต่ถ้าคุณต้องการแนะนำออบเจ็กต์ประเภทใหม่สำหรับการคำนวณของคุณล่ะ

จริงๆ แล้วมีสองวิธี คุณอาจต้องการแนะนำประเภทอ็อบเจ็กต์ใหม่ที่จะใช้ในฟังก์ชันใหม่ในพื้นที่เก็บข้อมูลฟังก์ชัน และในกรณีนี้ คุณสามารถเขียนการแสดงสัญลักษณ์ของมันได้ตลอดเวลา และใช้มันเมื่ออินพุตหรือเอาท์พุตฟังก์ชันในที่เก็บฟังก์ชัน

แต่ถ้าคุณต้องการแสดงวัตถุแล้วกำหนดว่าคุณต้องการทำงานกับวัตถุนั้นผ่านฟังก์ชันที่มีอยู่ใน Wolfram Language ล่ะ? ภาษาวุลแฟรมมีกลไกที่เบาสำหรับสิ่งนี้มาโดยตลอด เรียกว่า ขึ้นค่า. โดยมีข้อจำกัดบางประการ (โดยเฉพาะฟังก์ชันที่ ไม่สามารถประเมินข้อโต้แย้งของพวกเขาได้) ที่เก็บฟังก์ชันช่วยให้คุณสามารถแสดงฟังก์ชันและกำหนดค่าให้กับมันได้ (เพื่อเพิ่มความคาดหวังของความสม่ำเสมอเมื่อสร้างการออกแบบหลักใหม่ที่บูรณาการอย่างสมบูรณ์ทั่วทั้งภาษา Wolfram โดยทั่วไปเป็นขั้นตอนที่สำคัญมากที่ไม่สามารถทำได้โดยการเพิ่มต้นทุนของโครงการและเป็นสิ่งที่บริษัทของเราทำเป็นส่วนหนึ่งของโครงการ เพื่อการพัฒนาภาษาในระยะยาว งานนี้ไม่ใช่เป้าหมายที่ตั้งไว้เป็นส่วนหนึ่งของการพัฒนา Repository)

แล้วโค้ดฟังก์ชันในที่เก็บฟังก์ชันอาจมีอะไรบ้าง? ทุกสิ่งที่สร้างขึ้นในภาษาวุลแฟรมแน่นอน (อย่างน้อยถ้ามันไม่ได้เป็นตัวแทน ภัยคุกคาม สำหรับ ความปลอดภัย และประสิทธิภาพของโปรแกรมเองในฐานะสภาพแวดล้อมการประมวลผล) รวมถึงฟังก์ชันใดๆ จากที่เก็บฟังก์ชัน อย่างไรก็ตาม ยังมีฟังก์ชันอื่นๆ อีก เช่น ฟังก์ชันในที่เก็บฟังก์ชันสามารถเรียกใช้ API หรือเรียกเข้ามาก็ได้ เมฆวุลแฟรมหรือ จากแหล่งอื่น. แน่นอนว่ามีความเสี่ยงบางประการที่เกี่ยวข้องกับเรื่องนี้ เนื่องจากไม่มีการรับประกันว่า API จะไม่เปลี่ยนแปลงและฟังก์ชันในร้านฟังก์ชันจะหยุดทำงาน เพื่อช่วยระบุปัญหาเช่นนี้ มีหมายเหตุในหน้าเอกสารประกอบ (ในส่วนข้อกำหนด) สำหรับคุณลักษณะใดๆ ที่ต้องใช้มากกว่าฟังก์ชัน Wolfram Language ในตัว (แน่นอนว่า เมื่อพูดถึงข้อมูลจริง อาจเกิดปัญหาได้แม้จะมีฟังก์ชันการทำงานนี้ เนื่องจากข้อมูลในโลกแห่งความเป็นจริงมีการเปลี่ยนแปลงอยู่ตลอดเวลา และบางครั้งคำจำกัดความและโครงสร้างของข้อมูลก็เปลี่ยนแปลงไปด้วย)

โค้ดทั้งหมดสำหรับที่เก็บฟีเจอร์ Wolfram ควรเขียนด้วย Wolfram หรือไม่ แน่นอนว่าโค้ดภายใน API ภายนอกไม่ควรเขียนด้วยภาษา Wolfram ซึ่งไม่ได้สร้างโค้ดภาษาด้วยซ้ำ ในความเป็นจริง หากคุณพบฟังก์ชันในเกือบทุกภาษาหรือไลบรารีภายนอก คุณสามารถสร้าง wrapper ที่อนุญาตให้คุณใช้ฟังก์ชันนั้นในพื้นที่เก็บข้อมูลฟังก์ชัน Wolfram (โดยปกติคุณควรใช้ฟังก์ชันในตัวสำหรับสิ่งนี้ ประเมินภายนอก หรือ ฟังก์ชันภายนอก ในรหัสภาษา Wolfram)

แล้วจะทำแบบนี้ไปเพื่ออะไร? โดยพื้นฐานแล้ว สิ่งนี้ทำให้คุณสามารถใช้ระบบ Wolfram Language ที่บูรณาการทั้งหมดและชุดความสามารถของซอฟต์แวร์ที่รวมเป็นหนึ่งเดียวทั้งหมด หากคุณได้รับการนำไปใช้พื้นฐานจากไลบรารีหรือภาษาภายนอก คุณสามารถใช้โครงสร้างสัญลักษณ์ที่หลากหลายของภาษา Wolfram เพื่อสร้างฟังก์ชันระดับบนสุดที่สะดวกสบาย ซึ่งช่วยให้ผู้ใช้สามารถใช้ฟังก์ชันการทำงานใดๆ ที่ใช้งานอยู่แล้วได้อย่างง่ายดาย อย่างน้อยที่สุด สิ่งนี้ควรจะเป็นไปได้ในโลกอุดมคติที่มีส่วนประกอบทั้งหมดของการโหลดไลบรารี่ ฯลฯ อยู่ ซึ่งในกรณีนี้พวกมันจะถูกจัดการโดยอัตโนมัติโดยภาษา Wolfram (ควรสังเกตว่าในทางปฏิบัติอาจจะมีปัญหากับ การตั้งค่าภาษาภายนอก ระบบคอมพิวเตอร์เฉพาะและพื้นที่เก็บข้อมูลบนคลาวด์อาจก่อให้เกิดปัญหาด้านความปลอดภัยเพิ่มเติม)

อย่างไรก็ตาม เมื่อคุณดูไลบรารีภายนอกทั่วไปเป็นครั้งแรก ไลบรารีเหล่านั้นมักจะดูซับซ้อนเกินกว่าจะครอบคลุมได้ในฟังก์ชันเพียงไม่กี่ฟังก์ชัน แต่ในหลายกรณี ความซับซ้อนส่วนใหญ่มาจากการสร้างโครงสร้างพื้นฐานที่จำเป็นสำหรับไลบรารีและฟังก์ชันทั้งหมดเพื่อ สนับสนุนมัน อย่างไรก็ตาม เมื่อใช้ภาษา Wolfram โดยทั่วไปโครงสร้างพื้นฐานจะถูกสร้างขึ้นในแพ็คเกจแล้ว ดังนั้นจึงไม่จำเป็นต้องเปิดเผยฟังก์ชันการสนับสนุนเหล่านี้ทั้งหมดอย่างละเอียด แต่สร้างเฉพาะฟังก์ชันสำหรับฟังก์ชันเฉพาะแอปพลิเคชัน "บนสุด" ในไลบรารีเท่านั้น .

“ระบบนิเวศ” ของฐานความรู้

หากคุณเคยเขียนฟังก์ชันที่คุณใช้เป็นประจำ ให้ส่งไปที่ Wolfram Function Repository! หากไม่มีอะไรเกิดขึ้นมากกว่านี้ (การพัฒนาภาษา) การใช้ฟังก์ชั่นเพื่อการใช้งานส่วนตัวก็จะสะดวกกว่ามากสำหรับคุณ อย่างไรก็ตาม เป็นเหตุผลที่จะถือว่าหากคุณใช้ฟังก์ชันเหล่านี้เป็นประจำ ผู้ใช้รายอื่นอาจพบว่าฟังก์ชันเหล่านี้มีประโยชน์เช่นกัน

โดยปกติแล้ว คุณอาจพบว่าตัวเองอยู่ในสถานการณ์ที่ไม่สามารถ - หรือไม่ต้องการ - แบ่งปันหน้าที่ของคุณหรือในกรณีที่เข้าถึงทรัพยากรข้อมูลส่วนตัว แม้แต่ในกรณีเช่นนี้ คุณก็สามารถปรับใช้ฟังก์ชันต่างๆ ในบัญชีคลาวด์ของคุณเองได้ การระบุสิทธิ เข้าถึงพวกเขา (หากองค์กรของคุณมี คลาวด์ส่วนตัวของ Wolfram Enterpriseจากนั้นจะสามารถโฮสต์พื้นที่เก็บข้อมูลคุณลักษณะส่วนตัวของตนเองได้ในเร็วๆ นี้ ซึ่งสามารถจัดการได้จากภายในองค์กรของคุณและตั้งค่าว่าจะบังคับให้ผู้ใช้บุคคลที่สามดูมุมมองหรือไม่)

ฟังก์ชันที่คุณส่งไปยังที่เก็บฟังก์ชัน Wolfram ไม่จำเป็นต้องสมบูรณ์แบบ พวกเขาแค่ต้องมีประโยชน์ นี่จะเหมือนกับส่วน "ข้อผิดพลาด" ในเอกสาร Unix แบบคลาสสิก - ใน "ส่วนคำจำกัดความ" จะมีส่วน "หมายเหตุของผู้เขียน" ที่คุณสามารถอธิบายข้อจำกัด ปัญหา ฯลฯ ที่คุณรู้อยู่แล้วเกี่ยวกับฟังก์ชันของคุณ นอกจากนี้ เมื่อคุณส่งฟีเจอร์ของคุณไปยังพื้นที่เก็บข้อมูล คุณสามารถเพิ่มบันทึกการส่งที่ทีมภัณฑารักษ์เฉพาะจะอ่านได้

เมื่อเผยแพร่คุณลักษณะแล้ว หน้าของคุณลักษณะนั้นจะมีลิงก์สองลิงก์ที่ด้านล่างเสมอ: "ส่งข้อความเกี่ยวกับคุณสมบัตินี้"และ"พูดคุยในชุมชน Wolfram" หากคุณกำลังแนบบันทึก (เช่น บอกฉันเกี่ยวกับจุดบกพร่อง) คุณสามารถเลือกช่องที่ระบุว่าคุณต้องการแชร์ข้อความและข้อมูลการติดต่อของคุณกับผู้เขียนฟีเจอร์

บางครั้งคุณเพียงต้องการใช้ฟังก์ชันจากที่เก็บฟังก์ชัน Wolfram เช่น ฟังก์ชันในตัว โดยไม่ต้องดูโค้ด อย่างไรก็ตาม หากคุณต้องการดูด้านใน ก็จะมีปุ่ม Notepad อยู่ที่ด้านบนเสมอ คลิกที่มันแล้วคุณจะได้รับสำเนาสมุดบันทึกคำจำกัดความดั้งเดิมของคุณเองที่ถูกส่งไปยังที่เก็บฟีเจอร์ บางครั้งคุณสามารถใช้เป็นตัวอย่างสำหรับความต้องการของคุณได้ ในเวลาเดียวกัน คุณยังสามารถพัฒนาการปรับเปลี่ยนฟังก์ชันนี้ของคุณเองได้ คุณอาจต้องการโพสต์ฟังก์ชันเหล่านี้ที่คุณพบจากพื้นที่เก็บข้อมูลบนคอมพิวเตอร์ของคุณหรือในบัญชีที่เก็บข้อมูลบนคลาวด์ของเพลี้ยอ่อน บางทีคุณอาจต้องการส่งฟังก์ชันเหล่านี้ไปยังฐานความรู้ของฟังก์ชัน อาจเป็นเวอร์ชันปรับปรุงและขยายของฟังก์ชันดั้งเดิม

ในอนาคต เราวางแผนที่จะสนับสนุนการฟอร์กกิ้งแบบ Git สำหรับที่เก็บฟีเจอร์ แต่สำหรับตอนนี้ เรากำลังพยายามทำให้มันเรียบง่าย และเรามักจะมีฟีเจอร์แต่ละเวอร์ชันที่ได้รับการยอมรับในตัวภาษานั้นเพียงเวอร์ชันเดียวเท่านั้น บ่อยกว่านั้น (เว้นแต่นักพัฒนาจะละทิ้งการดูแลรักษาคุณสมบัติที่พวกเขาพัฒนาและตอบสนองต่อการส่งของผู้ใช้) ผู้เขียนดั้งเดิมของคุณสมบัติจะควบคุมการอัปเดตและส่งเวอร์ชันใหม่ ซึ่งจะได้รับการตรวจสอบและหากผ่านกระบวนการตรวจสอบ เผยแพร่ในภาษา

ลองพิจารณาคำถามว่า "การกำหนดเวอร์ชัน" ของฟังก์ชันที่พัฒนาแล้วทำงานอย่างไร ขณะนี้ เมื่อคุณใช้ฟังก์ชันจากที่เก็บฟังก์ชัน คำจำกัดความของฟังก์ชันจะถูกเก็บไว้อย่างถาวรบนคอมพิวเตอร์ของคุณ (หรือในบัญชีคลาวด์ของคุณ หากคุณใช้คลาวด์) หากฟีเจอร์เวอร์ชันใหม่พร้อมใช้งาน ครั้งถัดไปที่คุณใช้ฟีเจอร์ดังกล่าว คุณจะได้รับข้อความแจ้งให้คุณทราบ และหากต้องการอัพเดตฟังก์ชันให้เป็นเวอร์ชันใหม่ก็สามารถทำได้โดยใช้คำสั่ง การอัปเดตทรัพยากร. (จริงๆ แล้ว "ฟังก์ชันบล็อบ" จะจัดเก็บข้อมูลเวอร์ชันมากขึ้น และเราวางแผนที่จะทำให้ผู้ใช้ของเราเข้าถึงข้อมูลนี้ได้มากขึ้นในอนาคต)

สิ่งที่สวยงามประการหนึ่งเกี่ยวกับ Wolfram Function Repository ก็คือโปรแกรม Wolfram Language ทุกที่สามารถใช้ฟังก์ชันจากมันได้ หากโปรแกรมปรากฏในแผ่นจดบันทึก มักจะสะดวกในการจัดรูปแบบฟังก์ชันพื้นที่เก็บข้อมูลเป็นฟังก์ชัน "function binary object" ที่อ่านง่าย (อาจมีชุดเวอร์ชันที่เหมาะสม)

คุณสามารถเข้าถึงฟังก์ชันต่างๆ ในพื้นที่เก็บข้อมูลฟังก์ชันได้ตลอดเวลาโดยใช้ข้อความ ฟังก์ชันทรัพยากร[...]. และนี่จะสะดวกมากหากคุณเขียนโค้ดหรือสคริปต์โดยตรงสำหรับ Wolfram Engine ด้วย ใช้ IDE หรือโปรแกรมแก้ไขโค้ดข้อความ (ควรสังเกตเป็นพิเศษว่าที่เก็บฟังก์ชันเข้ากันได้อย่างสมบูรณ์กับ ฟรี Wolfram Engine สำหรับนักพัฒนา).

มันทำงานอย่างไร

ภายในฟังก์ชันต่างๆ ในพื้นที่เก็บข้อมูล Wolfram สามารถทำได้โดยใช้สิ่งเดียวกันทุกประการ ระบบทรัพยากร ฐานเช่นเดียวกับใน ที่เก็บข้อมูลอื่น ๆ ที่มีอยู่ทั้งหมดของเรา (ที่เก็บข้อมูล พื้นที่เก็บข้อมูลประสาทสุทธิ, การรวบรวมโครงการสาธิต ฯลฯ) เช่นเดียวกับทรัพยากรระบบ Wolfram อื่นๆ ทั้งหมด ฟังก์ชันทรัพยากร สุดท้ายก็ขึ้นอยู่กับฟังก์ชัน ResourceObject.

พิจารณา ฟังก์ชันทรัพยากร:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

ภายในคุณสามารถดูข้อมูลบางอย่างได้โดยใช้ฟังก์ชัน ข้อมูล:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

การตั้งค่าฟังก์ชันทรัพยากรทำงานอย่างไร กรณีที่ง่ายที่สุดคือกรณีท้องถิ่นล้วนๆ ต่อไปนี้คือตัวอย่างที่รับฟังก์ชัน (ในกรณีนี้เป็นเพียงฟังก์ชันล้วนๆ) และกำหนดให้เป็นฟังก์ชันทรัพยากรสำหรับเซสชันของโปรแกรมที่กำหนด:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

เมื่อคุณสร้างคำจำกัดความแล้ว คุณสามารถใช้ฟังก์ชันทรัพยากรได้:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

โปรดทราบว่ามีไอคอนสีดำในหยดฟังก์ชันนี้ พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram. ซึ่งหมายความว่าฟังก์ชัน BLOB อ้างอิงถึงฟังก์ชันทรัพยากรในหน่วยความจำที่กำหนดไว้สำหรับเซสชันปัจจุบัน คุณลักษณะทรัพยากรที่เก็บไว้อย่างถาวรบนคอมพิวเตอร์หรือบัญชีคลาวด์ของคุณจะมีไอคอนสีเทา พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram. และมีไอคอนสีส้มสำหรับคุณลักษณะทรัพยากรอย่างเป็นทางการใน Wolfram Feature Repository พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram.

แล้วจะเกิดอะไรขึ้นเมื่อคุณใช้เมนูขยายในสมุดบันทึกคำจำกัดความ ขั้นแรก จะใช้คำจำกัดความทั้งหมดในแผ่นจดบันทึกและสร้างสัญลักษณ์ขึ้นมา ResourceObject). (และหากคุณใช้ IDE หรือโปรแกรมแบบข้อความ คุณสามารถสร้างได้อย่างชัดเจนเช่นกัน ResourceObject)

การปรับใช้ฟังก์ชันในเครื่องจากที่เก็บบนคอมพิวเตอร์ของคุณจะดำเนินการโดยใช้คำสั่ง แคชท้องถิ่น เพื่อให้วัตถุทรัพยากรบันทึกเป็น LocalObject บนระบบไฟล์ของคุณ การปรับใช้กับบัญชีคลาวด์ทำได้โดยใช้คำสั่ง CloudDeploy สำหรับวัตถุทรัพยากรและการปรับใช้ระบบคลาวด์สาธารณะคือ คลาวด์เผยแพร่. ในทุกกรณี ทรัพยากรลงทะเบียน ยังใช้ในการลงทะเบียนชื่อฟังก์ชันทรัพยากรดังนั้น ฟังก์ชันทรัพยากร["ชื่อ"] จะทำงาน.

หากคุณคลิกปุ่มส่งสำหรับ Function Repository จะเกิดอะไรขึ้นข้างใต้นั้น ทรัพยากรส่ง เรียกบนวัตถุทรัพยากร (และหากคุณใช้อินเทอร์เฟซป้อนข้อความ ก็สามารถโทรออกได้เช่นกัน ทรัพยากรส่ง โดยตรง.)

ตามค่าเริ่มต้น การส่งจะทำภายใต้ชื่อที่เชื่อมโยงกับ Wolfram ID ของคุณ แต่ถ้าคุณส่งใบสมัครในนามของทีมพัฒนาหรือองค์กร คุณก็สามารถทำได้ ตั้งค่า ID ผู้เผยแพร่แยกต่างหาก และใช้เป็นชื่อในการโต้ตอบกับมุมมองของคุณแทน

หลังจากที่คุณได้ส่งฟังก์ชันใดๆ ของคุณไปยังฐานความรู้เกี่ยวกับฟังก์ชันแล้ว ฟังก์ชันนั้นจะถูกเข้าคิวเพื่อตรวจสอบ หากคุณได้รับความคิดเห็นตอบกลับ โดยปกติแล้วความคิดเห็นเหล่านั้นจะอยู่ในรูปแบบของไฟล์ข้อความโดยมีการเพิ่ม "เซลล์ความคิดเห็น" เพิ่มเติม คุณสามารถตรวจสอบสถานะการสมัครของคุณได้ตลอดเวลาโดยไปที่ พอร์ทัลสมาชิกระบบทรัพยากร. แต่เมื่อคุณสมบัติของคุณได้รับการอนุมัติ คุณจะได้รับแจ้ง (ทางอีเมล) และคุณสมบัติของคุณจะถูกโพสต์ไปยังที่เก็บคุณสมบัติ Wolfram

รายละเอียดปลีกย่อยบางอย่างในที่ทำงาน

เมื่อมองแวบแรกอาจดูเหมือนว่าคุณสามารถใช้โน้ตบุ๊กที่มีคำจำกัดความและใส่คำต่อคำลงในที่เก็บฟังก์ชันได้ อย่างไรก็ตาม จริงๆ แล้วยังมีรายละเอียดปลีกย่อยอีกมากมายที่เกี่ยวข้อง - และการจัดการสิ่งเหล่านี้จำเป็นต้องทำการเขียนโปรแกรมเมตาที่ค่อนข้างซับซ้อน การจัดการการประมวลผลสัญลักษณ์ เป็นรหัสที่กำหนดฟังก์ชัน และกำหนด Notepad เอง สิ่งนี้ส่วนใหญ่เกิดขึ้นเป็นการภายใน เบื้องหลัง แต่อาจมีนัยยะบางอย่างที่ควรค่าแก่การทำความเข้าใจหากคุณจะมีส่วนร่วมในฐานความรู้ของฟีเจอร์

ความละเอียดอ่อนขั้นแรก: เมื่อคุณกรอกสมุดบันทึกคำจำกัดความ คุณสามารถอ้างถึงฟังก์ชันของคุณได้ทุกที่โดยใช้ชื่อเช่น ฟังก์ชั่นของฉันซึ่งดูเหมือนชื่อปกติสำหรับฟังก์ชันในภาษา Wolfram แต่สำหรับเอกสารที่เก็บฟังก์ชัน สิ่งนี้จะถูกแทนที่ ฟังก์ชันทรัพยากร["ฟังก์ชั่นของฉัน"] คือสิ่งที่ผู้ใช้จะใช้จริงเมื่อทำงานกับฟังก์ชัน

รายละเอียดปลีกย่อยที่สอง: เมื่อคุณสร้างฟังก์ชันทรัพยากรจากสมุดบันทึกข้อกำหนด การอ้างอิงทั้งหมดที่เกี่ยวข้องกับข้อกำหนดฟังก์ชันจะต้องถูกบันทึกและรวมไว้อย่างชัดเจน อย่างไรก็ตาม เพื่อให้แน่ใจว่าคำจำกัดความยังคงเป็นแบบโมดูลาร์ คุณจะต้องทำให้ทุกอย่างไม่ซ้ำกัน เนมสเปซ. (แน่นอน, ฟังก์ชั่นที่ทำทุกอย่างอยู่ในที่เก็บฟังก์ชัน)

โดยทั่วไป คุณจะไม่เห็นร่องรอยของโค้ดที่ใช้ในการกำหนดค่าเนมสเปซนี้ แต่หากคุณเรียกสัญลักษณ์ที่ยังไม่ได้ดำเนินการในฟังก์ชันของคุณด้วยเหตุผลบางประการ คุณจะเห็นว่าสัญลักษณ์นี้อยู่ในบริบทภายในของฟังก์ชัน อย่างไรก็ตาม เมื่อประมวลผล Definition Notepad อย่างน้อยสัญลักษณ์ที่สอดคล้องกับฟังก์ชันนั้นก็คือ ปรับได้เพื่อการแสดงผลที่ดีที่สุด เป็น BLOB ที่ใช้งานได้แทนที่จะเป็นตัวละครดิบในบริบทภายใน

ที่เก็บฟังก์ชันมีไว้สำหรับกำหนดฟังก์ชันใหม่ และฟังก์ชั่นเหล่านี้ก็อาจมีออปชั่นให้เลือก บ่อยครั้งพารามิเตอร์เหล่านี้ (เช่น วิธี หรือ ขนาดรูปภาพ) จะสามารถใช้สำหรับฟังก์ชันในตัวได้ เช่นเดียวกับฟังก์ชันที่มีสัญลักษณ์ในตัวอยู่แล้ว แต่บางครั้งคุณสมบัติใหม่อาจต้องใช้ตัวเลือกใหม่ เพื่อรักษาความเป็นโมดูล พารามิเตอร์เหล่านี้จำเป็นต้องเป็นสัญลักษณ์ที่กำหนดในบริบทภายในที่ไม่ซ้ำกัน (หรือบางอย่างเช่น ฟังก์ชันทรัพยากรทั้งหมด นั่นคือ ตัวมันเอง) เพื่อความง่าย ที่เก็บฟังก์ชันจะอนุญาตให้คุณกำหนดตัวเลือกใหม่ในคำจำกัดความสตริง และเพื่อความสะดวกของผู้ใช้ คำจำกัดความเหล่านี้ (สมมุติว่าใช้ ตัวเลือกค่า и ตัวเลือกรูปแบบ) จะถูกประมวลผลเช่นกัน เมื่อใช้ฟังก์ชัน พารามิเตอร์สามารถระบุได้ไม่เฉพาะเป็นสตริงเท่านั้น แต่ยังเป็นสัญลักษณ์ส่วนกลางที่มีชื่อเดียวกันด้วย

ฟังก์ชันส่วนใหญ่เพียงทำในสิ่งที่พวกเขาควรจะทำทุกครั้งที่ถูกเรียกใช้ แต่ฟังก์ชันบางอย่างจำเป็นต้องเริ่มต้นก่อนจึงจะสามารถรันในเซสชันใดเซสชันหนึ่งได้ และเพื่อแก้ไขปัญหานี้ จึงมีส่วน "การเริ่มต้น" ในส่วนคำจำกัดความ

ฟังก์ชันจาก repository สามารถใช้ฟังก์ชันอื่นที่มีอยู่แล้วใน repository ได้ เพื่อตั้งค่าคำจำกัดความสำหรับที่เก็บฟังก์ชันที่มีสองฟังก์ชัน (หรือมากกว่า) ที่อ้างอิงถึงกัน คุณต้องปรับใช้ฟังก์ชันเหล่านั้นในเซสชันโปรแกรมของคุณ เพื่อให้คุณสามารถ อ้างอิงเช่นเดียวกับพวกเขา ฟังก์ชันทรัพยากร["ชื่อ"]จากนั้นคุณสามารถสร้างการรวมฟังก์ชันเหล่านี้ที่คุณต้องการ ตัวอย่าง (ฉันไม่เข้าใจ) และเพิ่มฟังก์ชันใหม่ลงในพื้นที่เก็บข้อมูลตามฟังก์ชันที่โพสต์ไว้ก่อนหน้านี้ (หรืออยู่แล้วหรือก่อนหน้านี้ – ทั้งสองคำเงอะงะ)

แนวโน้มการพัฒนา จะเกิดอะไรขึ้นเมื่อพื้นที่เก็บข้อมูลมีขนาดใหญ่มาก?

วันนี้เราเพิ่งเปิดตัว Wolfram Feature Repository แต่เมื่อเวลาผ่านไป เราคาดว่าขนาดและฟังก์ชันการทำงานของมันอาจเพิ่มขึ้นอย่างมาก และในขณะที่การพัฒนาเติบโตขึ้น ก็อาจเกิดปัญหาต่างๆ ที่เราคาดการณ์ไว้แล้วเกิดขึ้น

ปัญหาแรกเกี่ยวข้องกับชื่อฟังก์ชันและความเป็นเอกลักษณ์ ที่เก็บฟังก์ชันได้รับการออกแบบในลักษณะที่เหมือนกับฟังก์ชันในตัวในภาษา Wolfram คุณสามารถอ้างอิงฟังก์ชันใดๆ ที่กำหนดได้ง่ายๆ โดยการระบุชื่อฟังก์ชัน แต่นี่หมายความว่าชื่อฟังก์ชันจะต้องไม่ซ้ำกันทั่วโลกทั่วทั้งที่เก็บ ดังนั้น ตัวอย่างเช่น จะมีได้เพียงชื่อเดียวเท่านั้น ฟังก์ชันทรัพยากร["ฟังก์ชันโปรดของฉัน"].

นี่อาจดูเหมือนเป็นปัญหาใหญ่ในตอนแรก แต่ก็คุ้มค่าที่จะตระหนักว่า โดยพื้นฐานแล้วมันเป็นปัญหาเดียวกันกับโดเมนอินเทอร์เน็ตหรือการจัดการโซเชียลมีเดีย และความจริงก็คือระบบจำเป็นต้องมีนายทะเบียน - และนี่คือหนึ่งในบทบาทที่บริษัทของเราจะดำเนินการสำหรับฐานความรู้เกี่ยวกับฟังก์ชัน Wolfram (สำหรับพื้นที่เก็บข้อมูลเวอร์ชันส่วนตัว ผู้รับจดทะเบียนอาจเป็นผู้ดูแลระบบ) แน่นอนว่า โดเมนอินเทอร์เน็ตสามารถลงทะเบียนได้โดยไม่ต้องมีอะไรอยู่ แต่ในพื้นที่เก็บข้อมูลฟังก์ชัน ชื่อฟังก์ชันสามารถลงทะเบียนได้ก็ต่อเมื่อมีคำจำกัดความจริงของ ฟังก์ชั่น.

บทบาทส่วนหนึ่งของเราในการจัดการฐานความรู้ฟังก์ชัน Wolfram คือเพื่อให้แน่ใจว่าชื่อที่เลือกสำหรับฟังก์ชันนั้นมีเหตุผลตามคำจำกัดความของฟังก์ชัน และเป็นไปตามแบบแผนการตั้งชื่อของภาษา Wolfram เรามีประสบการณ์มากกว่า 30 ปีในการตั้งชื่อฟังก์ชันในตัวในภาษา Wolfram และทีมภัณฑารักษ์ของเราจะนำประสบการณ์นั้นมาสู่คลังฟังก์ชันด้วยเช่นกัน แน่นอนว่าย่อมมีข้อยกเว้นอยู่เสมอ ตัวอย่างเช่น อาจดูเหมือนดีกว่าที่จะมีชื่อย่อสำหรับบางฟังก์ชัน แต่เป็นการดีกว่าที่จะ "ปกป้อง" ด้วยชื่อที่ยาวและเฉพาะเจาะจงมากกว่า เพราะคุณมีโอกาสน้อยที่จะเจอคนที่ต้องการสร้างชื่อฟังก์ชันที่คล้ายกันในอนาคต .

(ควรสังเกตไว้ที่นี่ว่าการเพิ่มแท็กสมาชิกบางส่วนเพื่ออธิบายฟังก์ชันที่ไม่กำกวมจะไม่เกิดผลตามที่ตั้งใจไว้ เพราะเว้นแต่คุณจะยืนยันที่จะกำหนดแท็กเสมอ คุณจะต้องกำหนดแท็กเริ่มต้นสำหรับฟังก์ชันที่กำหนด และจัดสรรแท็กผู้เขียนด้วย ซึ่งจะต้องอาศัยการประสานงานระดับโลกอีกครั้ง)

เมื่อฐานความรู้ของฟังก์ชัน Wolfram เติบโตขึ้น ปัญหาอย่างหนึ่งที่อาจเกิดขึ้นคือการค้นพบฟังก์ชันต่างๆ ซึ่งระบบจัดเตรียมไว้ให้ ฟังก์ชั่นการค้นหา (และไฟล์คำจำกัดความอาจมีคำสำคัญ ฯลฯ ) สำหรับฟังก์ชันที่มาพร้อมในภาษา Wolfram มีตัวอ้างอิงโยงทุกประเภทในเอกสารเพื่อช่วย "โฆษณา" ฟังก์ชันต่างๆ ฟังก์ชันในที่เก็บฟังก์ชันสามารถอ้างอิงฟังก์ชันในตัวได้ แต่ในทางกลับกันล่ะ? เมื่อต้องการทำเช่นนี้ เราจะทดลองกับการออกแบบที่แตกต่างกันเพื่อแสดงฟังก์ชันพื้นที่เก็บข้อมูลในหน้าเอกสารประกอบสำหรับฟังก์ชันในตัว

สำหรับฟังก์ชันในตัวในภาษา Wolfram มีสิ่งที่เรียกว่าเลเยอร์การตรวจจับที่จัดทำโดย เครือข่าย "หน้าช่วยเหลือ"ซึ่งจัดเตรียมรายการคุณลักษณะที่จัดระเบียบไว้ที่เกี่ยวข้องกับพื้นที่เฉพาะ เป็นเรื่องยากเสมอที่จะปรับสมดุลหน้า man page และเมื่อภาษา Wolfram เติบโตขึ้น หน้า man page มักจะจำเป็นต้องได้รับการจัดระเบียบใหม่ทั้งหมด เป็นเรื่องง่ายมากที่จะจัดฟังก์ชันจากพื้นที่เก็บข้อมูลออกเป็นหมวดหมู่กว้างๆ และแม้แต่การแบ่งหมวดหมู่เหล่านั้นออกอย่างสม่ำเสมอ แต่การมีหน้าอ้างอิงภาษาที่จัดระเบียบอย่างเหมาะสมจะมีประโยชน์มากกว่ามาก ยังไม่ชัดเจนว่าจะสร้างฐานข้อมูลเหล่านี้สำหรับฐานความรู้ฟังก์ชันทั้งหมดได้ดีที่สุดอย่างไร ตัวอย่างเช่น, CreateResourceObjectGallery ในที่เก็บฟีเจอร์ ทุกคนสามารถโพสต์หน้าเว็บที่มี "สิ่งที่เลือก" จากที่เก็บได้:

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram: แพลตฟอร์มการเข้าถึงแบบเปิดสำหรับส่วนขยายภาษา Wolfram

พื้นที่เก็บข้อมูลฟังก์ชัน Wolfram ได้รับการกำหนดค่าให้เป็นพื้นที่เก็บข้อมูลฟังก์ชันถาวร โดยที่ฟังก์ชันใดๆ ในนั้นจะทำงานได้เสมอ แน่นอนว่าคุณลักษณะเวอร์ชันใหม่อาจมีให้ใช้งาน และเราคาดว่าคุณลักษณะบางอย่างจะล้าสมัยเมื่อเวลาผ่านไป ฟังก์ชันต่างๆ จะทำงานหากใช้ในโปรแกรม แต่หน้าเอกสารจะเชื่อมโยงไปยังฟังก์ชันใหม่ขั้นสูงยิ่งขึ้น

พื้นที่เก็บข้อมูลคุณลักษณะ Wolfram ได้รับการออกแบบมาเพื่อช่วยให้คุณค้นพบคุณลักษณะใหม่ ๆ ได้อย่างรวดเร็วและเรียนรู้วิธีใหม่ ๆ ในการใช้ภาษา Wolfram เรามองโลกในแง่ดีว่าบางสิ่งที่ได้รับการสำรวจในพื้นที่เก็บข้อมูลฟีเจอร์จะสมเหตุสมผลในที่สุดที่จะกลายเป็นส่วนสำคัญของภาษา Wolfram หลัก ในช่วงทศวรรษที่ผ่านมา เรามีฉากที่คล้ายกัน คุณสมบัติที่ถูกนำมาใช้ครั้งแรกใน Wolfram | อัลฟ่า. และหนึ่งในบทเรียนที่เรียนรู้จากประสบการณ์นี้ก็คือการบรรลุมาตรฐานคุณภาพและความสม่ำเสมอที่เรามุ่งเน้นในทุกสิ่งที่สร้างในภาษา Wolfram นั้นต้องใช้การทำงานจำนวนมาก ซึ่งมักจะยากกว่าความพยายามเริ่มแรกในการนำแนวคิดนี้ไปใช้ ถึงกระนั้น ฟังก์ชันในฐานความรู้ของฟังก์ชันก็สามารถใช้เป็นข้อพิสูจน์แนวคิดที่มีประโยชน์มากสำหรับฟังก์ชันในอนาคตที่อาจจะถูกสร้างเป็นภาษา Wolfram ในที่สุด

สิ่งที่สำคัญที่สุดที่นี่คือฟังก์ชันในที่เก็บฟังก์ชันคือสิ่งที่ผู้ใช้ทุกคนสามารถใช้ได้ในขณะนี้ อาจเป็นไปได้ว่าคุณลักษณะภาษาพื้นเมืองอาจดีกว่าและมีประสิทธิภาพมากกว่ามาก แต่พื้นที่เก็บข้อมูลคุณลักษณะจะช่วยให้ผู้ใช้สามารถเข้าถึงคุณลักษณะใหม่ทั้งหมดได้ทันที และที่สำคัญที่สุด แนวคิดนี้ทำให้ทุกคนสามารถเพิ่มคุณสมบัติใหม่ๆ ที่พวกเขาต้องการได้

ก่อนหน้านี้ในประวัติศาสตร์ของภาษา Wolfram แนวคิดนี้คงไม่ได้ผลดีเท่าที่ควร แต่ในขั้นตอนนี้มีการใช้ความพยายามอย่างมากกับภาษา และความเข้าใจอย่างลึกซึ้งเกี่ยวกับหลักการออกแบบภาษา ซึ่งขณะนี้ดูเหมือนว่าจะเป็นอย่างมาก เป็นไปได้สำหรับชุมชนผู้ใช้ขนาดใหญ่ในการเพิ่มคุณสมบัติที่จะรักษาความสอดคล้องของการออกแบบเพื่อให้มีประโยชน์ต่อผู้ใช้ในวงกว้าง

มีจิตวิญญาณแห่งความสามารถอันน่าทึ่ง(?) ในชุมชนผู้ใช้ภาษา Wolfram (แน่นอนว่าชุมชนนี้ประกอบด้วยบุคลากรด้านการวิจัยและพัฒนาชั้นนำจำนวนมากในหลากหลายสาขา) ฉันหวังว่า Wolfram Feature Repository จะเป็นแพลตฟอร์มที่มีประสิทธิภาพสำหรับการปลดล็อกและเผยแพร่จิตวิญญาณแห่งความสามารถนี้ มีเพียงความร่วมมือเท่านั้นที่เราสามารถสร้างบางสิ่งที่จะขยายขอบเขตของกระบวนทัศน์การคำนวณภาษา Wolfram ได้อย่างมาก

กว่า 30 ปีที่ผ่านมา เราได้พัฒนาภาษาวุลแฟรมไปไกลมาก ตอนนี้ไปกันต่อดีกว่า ฉันขอแนะนำให้ผู้ใช้ภาษา Wolfram ที่เคารพนับถือทั่วโลกใช้พื้นที่เก็บข้อมูลที่ใช้งานได้เป็นแพลตฟอร์มสำหรับสิ่งนี้ เช่นเดียวกับโครงการซอฟต์แวร์ใหม่ เช่น Free Wolfram Engine สำหรับนักพัฒนา

ที่มา: will.com

เพิ่มความคิดเห็น