وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

ہیلو، حبر! میں آپ کی توجہ اسٹیفن وولفرام کی پوسٹ کا ترجمہ پیش کرتا ہوں۔ وولفرم فنکشن ریپوزٹری: وولفرم زبان کو بڑھانے کے لیے ایک کھلا پلیٹ فارم لانچ کرنا.

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

وولفرم زبان کی مستقل مزاجی کے لیے شرائط

آج ہم پروگرامنگ زبان کے ساتھ مل کر عظیم کامیابیوں کی دہلیز پر کھڑے ہیں۔ وولفرم زبان. صرف تین ہفتے پہلے ہم نے لانچ کیا۔ ڈویلپرز کے لیے مفت Wolfram انجناپنے صارفین کو Wolfram Language کو ان کے بڑے پیمانے پر سافٹ ویئر پروجیکٹس میں ضم کرنے میں مدد کرنے کے لیے۔ آج ہم لانچ کر رہے ہیں۔ وولفرم فنکشن ریپوزٹری, Wolfram زبان کو بڑھانے کے لیے بنائے گئے فنکشنز کے لیے ایک مربوط پلیٹ فارم فراہم کرنے کے لیے، اور ہم ہر اس شخص کے لیے فنکشنز کا ایک ذخیرہ بھی کھولتے ہیں جو ہمارے سافٹ ویئر پروڈکٹ کی ترقی میں اپنا حصہ ڈال سکتا ہے۔

وولفرم فنکشن ریپوزٹری ایک ایسی چیز ہے جسے وولفرم لینگویج کی منفرد نوعیت نے نہ صرف ایک پروگرامنگ زبان کے طور پر بلکہ مکمل پیمانے پر کمپیوٹنگ زبان. روایتی پروگرامنگ زبانوں میں، اہم نئی فعالیت شامل کرنے میں عام طور پر پوری اضافی لائبریریاں بنانا شامل ہوتا ہے جو ایک ساتھ استعمال ہونے پر کام کر سکتی ہیں یا نہیں کر سکتیں۔ تاہم، وولفرم زبان میں بہت کچھ پہلے ہی زبان میں بن چکا ہے۔، کہ یہ ممکن ہے کہ اس کی فعالیت کو صرف نئے فنکشنز کو شامل کر کے نمایاں طور پر بڑھایا جا سکے جو فوری طور پر پوری زبان کے مجموعی ڈھانچے میں ضم ہو جائیں۔

مثال کے طور پر، Wolfram فنکشن ریپوزٹری پہلے سے موجود ہے۔ 532 نئی خصوصیات 26 موضوعاتی زمروں میں تشکیل دیا گیا:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

اسی طرح سے زیادہ 6000 معیاری افعال, Wolfram زبان میں بنایا گیا ہے، مخزن کے ہر فنکشن میں ان کی تفصیلی وضاحت اور کام کی مثالوں کے ساتھ ایک دستاویزی صفحہ ہوتا ہے:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

صفحہ پر جانے کے لیے، مندرجہ بالا آبجیکٹ (فنکشن BLOB) کو کاپی کریں، اسے ان پٹ لائن میں چسپاں کریں اور پھر فنکشن کو چلائیں - یہ پہلے سے ہی Wolfram زبان میں بنی ہوئی ہے اور اس سے شروع ہونے والے ڈیفالٹ کی مدد سے ورژن 12.0:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

یہاں یہ یاد رکھنا چاہیے کہ جب پروسیسنگ لوگو کیو آر کوڈ مثال کے طور پر، آپ کو "امیج پروسیسنگ لائبریری" قائم کرنے کی ضرورت نہیں ہے - چونکہ ہم نے پہلے سے ہی Wolfram Language میں ایک مستقل اور احتیاط سے الگورتھمک طریقہ نافذ کیا ہے۔ تصویر پروسیسنگ، جس پر مختلف گرافیکل زبان کے افعال کے ذریعہ فوری طور پر کارروائی کی جاسکتی ہے:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

مجھے امید ہے کہ حمایت کے ساتھ شاندار اور باصلاحیت کمیونٹی، جو پچھلی کئی دہائیوں سے بڑھ رہی ہے اور پھیل رہی ہے (ولفرم زبان پر مبنی)۔ وولفرم فنکشن ریپوزٹری مستقبل قریب میں زبان میں دستیاب فنکشنز کی رینج (ممکنہ طور پر اہم، سائنس اور ٹیکنالوجی کے مختلف شعبوں میں مہارت حاصل کرنے والے) کو نمایاں طور پر بڑھانے کی اجازت دے گی۔ اس طرح، زبان کے مواد (اس کے بلٹ ان فنکشنز) اور دونوں کو استعمال کرنا ممکن ہو جاتا ہے۔ ترقی کے اصول، جو زبان کی بنیاد پر لاگو ہوتے ہیں۔ (یہاں واضح رہے کہ وولفرم زبان میں پہلے ہی سے زیادہ ہے۔ ترقی اور مستحکم ترقی کی 30 سالہ تاریخ).
ریپوزٹری کے افعال میں Wolfram Language میں لکھے گئے کوڈ کے چھوٹے یا بڑے ٹکڑے شامل ہو سکتے ہیں۔ مثال کے طور پر، یہ کالیں ہو سکتی ہیں۔ بیرونی APIs اور خدمات یا دوسری زبانوں میں بیرونی لائبریریاں. اس اپروچ کی انوکھی خصوصیت یہ ہے کہ جب آپ صارف کی سطح کی فعالیت پر ڈرل ڈاؤن کرتے ہیں تو کوئی ممکنہ تضاد نہیں ہوگا کیونکہ یہ نقطہ نظر وولفرم لینگویج کے مستقل ڈھانچے کے اوپر بنایا گیا ہے - اور ہر فنکشن خود بخود درست طریقے سے کام کرے گا - بالکل اسی طرح ارادہ. اسے چاہیے.
وولفرام فیچر ریپوزٹری کا شیل اور پروگرامنگ ڈھانچہ اس طرح ڈیزائن کیا گیا ہے کہ ہر کوئی اپنے لیے سب سے آسان اور آسان طریقے سے مشترکہ مقصد میں اپنا حصہ ڈال سکتا ہے - حقیقت میں، صرف نوٹ پیڈ ٹیکسٹ فائل کو پُر کرکے (nb ایکسٹینشن کے ساتھ) WL. بلٹ ان خودکار فنکشنز آپ کو ریپوزٹری میں شامل کیے گئے نئے فنکشنز کو زبان میں انضمام کو یقینی بنانے کے لیے چیک کرنے کی اجازت دیتے ہیں۔ ہماری کمپنی صارفین کی وسیع رینج پر شرط لگا رہی ہے جو نئے فنکشنز کی بڑی پیچیدگی کے بجائے اپنے فنکشنز کو زبان میں ضم کر سکتے ہیں - اور اگرچہ جائزہ لینے کا عمل موجود ہے، ہم اس طرح کی کسی بھی چیز پر اصرار نہیں کرتے ہیں۔ محنتی ڈیزائن کا تجزیہ یا صارف کی نئی خصوصیات کی مکملیت اور بھروسے کے لیے سخت معیارات، جیسا کہ ہم استعمال کی جانے والی بنیادی زبان میں بنائی گئی خصوصیات کی زیادہ سخت جانچ کے برخلاف۔

اس نقطہ نظر میں بہت سارے تجارتی معاملات اور تفصیلات ہیں، لیکن ہمارا مقصد صارفین کے فائدے کے لیے Wolfram فیچر ریپوزٹری کو بہتر بنانا ہے اور اس بات کو یقینی بنانا ہے کہ صارف کی نئی خصوصیات زبان کی ترقی میں معنی خیز کردار ادا کریں۔ جیسے جیسے ہم بڑھتے ہیں، مجھے اس میں کوئی شک نہیں ہے کہ ہمیں ریپوزٹری میں بنائے گئے فنکشنز کو سنبھالنے اور ان کی توثیق کرنے کے لیے نئے طریقے ایجاد کرنے ہوں گے، کم از کم فنکشنز کی ایک بڑی تعداد کو منظم کرنے اور ان کو تلاش کرنے کے لیے جن کی صارفین کو ضرورت ہے۔ تاہم، یہ حوصلہ افزا ہے کہ ہم نے جو راستہ چنا ہے وہ ایک اچھی شروعات ہے۔ میں ذاتی طور پر کئی خصوصیات کو شامل کیا اصل ڈیٹا بیس میں۔ ان میں سے بہت سے کوڈ پر مبنی ہیں جو میں نے ذاتی طور پر کافی عرصے سے تیار کیا ہے۔ اور انہیں ذخیرہ کرنے میں مجھے صرف چند منٹ لگے۔ اب جب کہ وہ مخزن میں ہیں، میں آخر کار - فوری طور پر اور کسی بھی وقت - فائلوں کی تلاش، پیکجز ڈاؤن لوڈ کرنے وغیرہ کی فکر کیے بغیر، ضرورت کے مطابق ان فنکشنز کو استعمال کر سکتا ہوں۔

اخراجات کو کم کرتے ہوئے کارکردگی میں اضافہ

انٹرنیٹ سے پہلے بھی، وولفرم لینگویج کوڈ کا اشتراک کرنے کے طریقے موجود تھے (ہمارا پہلا بڑا مرکزی منصوبہ تھا۔ MathSource, CD-ROM کی بنیاد پر 1991 میں Mathematica کے لیے بنایا گیا)۔ بلاشبہ، Wolfram فنکشن ریپوزٹری کی بنیاد پر عمل درآمد کے لیے تجویز کردہ نقطہ نظر مندرجہ بالا کاموں کو نافذ کرنے کے لیے زیادہ طاقتور اور قابل اعتماد ٹول ہے۔

30 سال سے زیادہ عرصے سے، ہماری کمپنی نے Wolfram زبان کے ڈھانچے کی سالمیت کو برقرار رکھنے کے لیے تندہی سے کام کیا ہے، اور یہ اس بات کو یقینی بنانے کے لیے اہم ہے کہ Wolfram زبان نہ صرف ایک پروگرامنگ زبان بن جائے، بلکہ مکمل کمپیوٹنگ زبان. اور اس طرح، وولفرم فنکشن ریپوزٹری کو لاگو کرنے کے نقطہ نظر کا نچوڑ یہ ہے کہ پروگرامنگ اور نئے فنکشنز کو تیار کرنے کے لیے ایک متحد نقطہ نظر کا استعمال کیا جائے جو کہ ترتیب وار شامل کیے جاتے ہیں اور زبان کے فریم ورک میں فٹ ہوتے ہیں تاکہ یہ ترقی اور ہم آہنگ ہو سکے۔

ہر فنکشن کے نفاذ کے ڈھانچے میں مختلف کمپیوٹیشنل عمل پائے جاتے ہیں۔ یہاں یہ بات ذہن نشین رہے کہ یہ ضروری ہے کہ فنکشن ایک واضح اور یکساں ظاہری شکل اور صارف کے لیے بصری پڑھنے کی اہلیت رکھتا ہو۔ اس تناظر میں، وولفرم لینگویج کے بلٹ ان فنکشنز کو 6000 سے زیادہ ترتیب وار مثالوں کے ساتھ پیش کیا گیا ہے کہ فنکشنز کو صحیح طریقے سے کیسے پروگرام کیا جائے (یہ ہمارے لائیو پروگرامنگ ویڈیوزجس میں شامل ہیں معیاری پروگرام بنانے میں سینکڑوں گھنٹے کا عمل)۔ یہ نقطہ نظر آخر کار Wolfram فیچر ریپوزٹری کو اچھی کارکردگی کا مظاہرہ کرنے کے قابل بناتا ہے وہ ہے Wolfram Language کی ساختی نوعیت، اس کی بڑی تعداد میں اضافی اور متنوع لائبریریاں ہیں جو پہلے ہی زبان میں بنی ہوئی ہیں۔ مثال کے طور پر، اگر آپ کے پاس کوئی ایسا فنکشن ہے جو تصاویر پر کارروائی کرتا ہے، یا ویرل صفیںیا سالماتی ڈھانچےاور جغرافیائی ڈیٹا یا کچھ اور - ان کی مستقل علامتی نمائندگی زبان میں پہلے سے موجود ہے، اور اس کی بدولت، آپ کا فنکشن زبان کے دوسرے فنکشنز کے ساتھ فوری طور پر ہم آہنگ ہو جاتا ہے۔

ایک ذخیرہ بنانا جو حقیقت میں اچھی طرح سے کام کرتا ہے ایک دلچسپ میٹا پروگرامنگ کام ہے۔ مثال کے طور پر، پروگرام میں حد سے زیادہ پابندیاں الگورتھم کی مطلوبہ یکجہتی اور عالمگیریت حاصل کرنے کی اجازت نہیں دے گی۔ بالکل اسی طرح جیسے ناکافی تعداد میں فنکشنل پابندیوں کے ساتھ، آپ الگورتھم پر عمل درآمد کی کافی حد تک درست ترتیب کو لاگو کرنے کے قابل نہیں ہوں گے۔ ان طریقوں کے سمجھوتہ پر عمل درآمد کی کئی پچھلی مثالیں، جو ہماری کمپنی کے ذریعے لاگو کی گئی ہیں، کافی مستحکم طریقے سے کام کرتی ہیں - یہ ہیں: پروجیکٹ ٹنگسٹن مظاہرے2007 میں شروع کیا گیا اور اب 12000 سے زیادہ یوزر انٹرایکٹو ڈیمو کے ساتھ آن لائن آن لائن چلتا ہے۔ میں وولفرم ڈیٹا بیس 600 سے زیادہ ریڈی میڈ ڈیٹا بیس ہیں جو Wolfram Language میں استعمال کیے جا سکتے ہیں، اور وولفرم نیورل نیٹ ورک اسٹوریج تقریباً ہر ہفتے نئے نیورل نیٹ ورکس کے ساتھ دوبارہ بھرے جاتے ہیں (اب ان میں سے 118 پہلے ہی موجود ہیں) اور وہ فوری طور پر فنکشن کے ذریعے جڑ جاتے ہیں۔ نیٹ ماڈل وولفرم زبان میں۔

مندرجہ بالا تمام مثالوں میں ایک بنیادی خصوصیت ہے - پروجیکٹ میں جمع کردہ اشیاء اور فنکشنز میں بہت اعلی درجے کی ساخت اور عمل کی تقسیم ہے۔ بلاشبہ، ڈیمو یا نیورل نیٹ ورک یا کوئی اور چیز کی ساخت کی تفصیل بہت مختلف ہو سکتی ہے، لیکن کسی بھی موجودہ ذخیرہ کے لیے بنیادی ڈھانچہ ہمیشہ ایک ہی رہتا ہے۔ تو آپ کی کیا رائے ہے، پیارے صارف، ایسا ذخیرہ بنانے کے بارے میں جو Wolfram زبان میں توسیع کا اضافہ کرے؟ Wolfram Language کو انتہائی لچکدار بنانے کے لیے ڈیزائن کیا گیا ہے، اس لیے اس میں کسی بھی طرح سے توسیع اور ترمیم کی جا سکتی ہے۔ یہ صورت حال Wolfram Language میں مختلف بڑے پیمانے پر سافٹ ویئر پروجیکٹس کو تیزی سے بنانے کی صلاحیت کے لیے انتہائی اہم ہے۔ یہاں یہ بات ذہن نشین رہے کہ جیسے جیسے زبان کی لچک بڑھے گی، ایسی زبان میں لاگو ہونے والے منصوبوں کی لاگت لامحالہ بڑھ جائے گی۔ یہ اس حقیقت کی وجہ سے ہے کہ صارف جتنی زیادہ اس طرح کی زبان استعمال کرتا ہے، اتنی ہی زیادہ سرشار فعالیت اسے حاصل ہوتی ہے، لیکن ہمیں یہ نہیں بھولنا چاہیے کہ پروگرام کے ماڈیولز کی مستقل مزاجی کو یقینی بنانے میں ناکامی کے لحاظ سے اس نقطہ نظر کے منفی پہلو بھی ہو سکتے ہیں۔

روایتی پروگرامنگ زبانوں میں لائبریریوں کے ساتھ ایک عام مسئلہ ہے - اگر آپ ایک لائبریری استعمال کرتے ہیں، مثال کے طور پر، کوڈ صحیح طریقے سے کام کرے گا، لیکن اگر آپ متعدد لائبریریوں کو استعمال کرنے کی کوشش کریں گے، تو اس بات کی کوئی گارنٹی نہیں ہے کہ وہ ایک دوسرے کے ساتھ صحیح طریقے سے تعامل کریں گی۔ . اس کے علاوہ، روایتی پروگرامنگ زبانوں میں - ایک مکمل کمپیوٹنگ زبان کے برعکس - ان کے بنیادی ڈھانچے کے علاوہ کسی بھی فنکشن یا ڈیٹا کی اقسام کے لیے مستقل بلٹ ان نمائندگیوں کی موجودگی کی ضمانت دینے کا کوئی طریقہ نہیں ہے۔ لیکن، درحقیقت، مسئلہ اس سے بھی بڑا ہے جتنا کہ پہلی نظر میں لگتا ہے: اگر کوئی ایک بڑے پیمانے پر عمودی فعالیت بنا رہا ہے، تو مرکزی پروجیکٹ پروگرامنگ کے بھاری اخراجات کے بغیر جسے ہم وولفرام زبان میں ڈالتے ہیں، یہ ناممکن ہے۔ مستقل مزاجی حاصل کریں. اس لیے یہ ضروری ہے کہ تمام سافٹ ویئر ماڈیول ہمیشہ ایک ساتھ صحیح طریقے سے کام کریں۔

لہذا وولفرم فیچر ریپوزٹری کے پیچھے خیال یہ ہے کہ انفرادی خصوصیات کے ذریعے کوڈ کے نسبتاً چھوٹے ٹکڑوں میں زبان میں توسیعات شامل کرکے اوپر بیان کردہ مسئلے سے بچنا ہے جو مربوط ماڈیولز کے طور پر تیار کرنا آسان ہے۔ یہ کہا جا رہا ہے، پروگرامنگ کی ایسی خصوصیات ہیں جنہیں انفرادی فنکشنز کا استعمال کرتے ہوئے آسان نہیں بنایا جا سکتا ہے (اور ہماری کمپنی مستقبل قریب میں ایک بہتر پروگرامنگ الگورتھم جاری کرنے کا منصوبہ بنا رہی ہے تاکہ بڑے پیمانے پر سافٹ ویئر پیکجوں کو لاگو کرنے میں مدد ملے)۔ تاہم، Wolfram Language میں پہلے سے بنائے گئے فنکشنز کی بنیاد پر، پروگرامنگ کے بہت سے امکانات ہیں جو انفرادی افعال کی بنیاد پر لاگو ہوتے ہیں۔ یہاں خیال یہ ہے کہ پروگرامنگ کی نسبتاً کم کوشش کے ساتھ بہت سے نئے اور بہت مفید فنکشنز بنانا ممکن ہے جو ڈیزائن میں کافی ہم آہنگی فراہم کریں گے، وہ ایک دوسرے کے ساتھ اچھی طرح سے مربوط ہوں گے، اور اس کے علاوہ، وہ مستقبل میں زبان میں آسانی سے اور وسیع پیمانے پر استعمال کرنے کے قابل ہو جائے گا۔

یہ نقطہ نظر، یقینا، ایک سمجھوتہ ہے. اگر ایک بڑے پیکج کو لاگو کیا گیا تو، فعالیت کی ایک پوری نئی دنیا کا تصور کیا جا سکتا ہے جو انتہائی طاقتور اور مفید ہو گا۔ اگر نئی فعالیت حاصل کرنے کی ضرورت ہے جو ہر چیز کے ساتھ فٹ ہو جائے، لیکن آپ پروجیکٹ کو تیار کرنے کے لیے بہت زیادہ محنت خرچ کرنے کو تیار نہیں ہیں، تو بدقسمتی سے، یہ آپ کے پروجیکٹ کے دائرہ کار میں کمی کا باعث بن سکتا ہے۔ Wolfram فیچر ریپوزٹری کے پیچھے آئیڈیا کسی پروجیکٹ کے متعین حصے کو فعالیت فراہم کرنا ہے؛ یہ نقطہ نظر طاقتور فعالیت کا اضافہ کرے گا جبکہ پروگرامنگ پروجیکٹ میں اچھی مستقل مزاجی کو برقرار رکھنا آسان بنائے گا۔

فنکشن ریپوزٹری میں حسب ضرورت فنکشنز شامل کرنے میں مدد کریں۔

ہماری ٹیم نے صارفین کے لیے Wolfram repository کی خصوصیات میں اپنا حصہ ڈالنا آسان بنانے کے لیے سخت محنت کی ہے۔ ڈیسک ٹاپ پر (پہلے ہی میں ورژن 12.0)، آپ آسانی سے مین مینو ٹیبز کے ذریعے ترتیب وار جا سکتے ہیں: فائل> نیا> ریپوزٹری آئٹم> فنکشن ریپوزٹری آئٹم اور آپ کو "ڈیفینیشن نوٹ بک" (پروگراماتی طور پر ورک بینچ کے اندر۔ آپ اینالاگ فنکشن بھی استعمال کر سکتے ہیں - نوٹ بک بنائیں["فنکشن ریسورس"]):

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

آپ کو دو اہم اقدامات کرنے کی ضرورت ہوگی: پہلا، اصل میں اپنے فنکشن کے لیے کوڈ لکھیں اور، دوسرا، دستاویز لکھیں کہ آپ کے فنکشن کو کیسے کام کرنا چاہیے۔
آپ کو کیا کرنے کی ضرورت ہے اس کی مثال دیکھنے کے لیے سب سے اوپر "اوپن نمونہ" بٹن پر کلک کریں:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

بنیادی طور پر، آپ Wolfram Language میں بلٹ ان فنکشن کی طرح کچھ بنانے کی کوشش کر رہے ہیں۔ سوائے اس کے کہ یہ بلٹ ان فنکشن سے کہیں زیادہ مخصوص کام کرسکتا ہے۔ ایک ہی وقت میں، اس کی مکملیت اور وشوسنییتا کے بارے میں توقعات بہت کم ہوں گی۔
آپ کو اپنے فنکشن کو ایک نام دینے کی ضرورت ہے جو Wolfram Language کے فنکشن کے نام کے رہنما خطوط پر عمل کرتا ہے۔ اس کے علاوہ، آپ کو اپنے فنکشن کے لیے دستاویزات تیار کرنے کی ضرورت ہوگی، جو زبان کے بلٹ ان فنکشنز کی طرح ہے۔ میں اس کے بارے میں بعد میں مزید تفصیل سے بات کروں گا۔ ابھی کے لیے، صرف یہ دیکھیں کہ ڈیفینیشن نوٹ بک فائل کے اوپری حصے میں بٹنوں کی قطار میں ایک بٹن موجود ہے۔ "انداز کے رہنما خطوط"، جو بتاتا ہے کہ کیا کرنا ہے، اور ایک ٹولز بٹن، جو آپ کے فنکشن کی دستاویزات کو فارمیٹ کرنے کے لیے ٹولز فراہم کرتا ہے۔
جب آپ کو یقین ہو کہ سب کچھ صحیح طریقے سے بھرا ہوا ہے اور آپ تیار ہیں تو "چیک" بٹن پر کلک کریں۔ یہ مکمل طور پر عام ہے کہ آپ نے ابھی تک تمام تفصیلات کا پتہ نہیں لگایا ہے۔ لہذا "چیک" فنکشن خود بخود چلے گا اور بہت سارے انداز اور مستقل مزاجی کی جانچ کرے گا۔ اکثر، یہ آپ کو فوری طور پر درستگی کی تصدیق اور قبول کرنے کا اشارہ کرے گا (مثال کے طور پر: "یہ لائن بڑی آنت کے ساتھ ختم ہونی چاہیے،" اور یہ آپ کو بڑی آنت میں داخل ہونے کا اشارہ کرے گا)۔ کبھی کبھی وہ آپ سے خود کچھ شامل کرنے یا تبدیل کرنے کو کہے گی۔ ہم چیک بٹن کی خودکار فعالیت میں مسلسل نئی خصوصیات شامل کرتے رہیں گے، لیکن بنیادی طور پر اس کا مقصد اس بات کو یقینی بنانا ہے کہ آپ جو بھی فیچر ریپوزٹری میں جمع کراتے ہیں وہ پہلے سے ہی زیادہ سے زیادہ طرز کے رہنما خطوط کی قریب سے پیروی کرتا ہے۔

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

لہذا، "چیک" چلانے کے بعد، آپ "پیش نظارہ" استعمال کرسکتے ہیں. "پیش نظارہ" دستاویزی صفحہ کا ایک پیش نظارہ بناتا ہے جسے آپ نے اپنے فنکشن کے لیے بیان کیا ہے۔ آپ اپنے کمپیوٹر پر بنائی گئی فائل یا کلاؤڈ اسٹوریج میں موجود فائل کے لیے بھی پیش نظارہ بنا سکتے ہیں۔ اگر، کسی وجہ سے، آپ اس سے مطمئن نہیں ہیں جو آپ پیش نظارہ میں دیکھتے ہیں، بس واپس جائیں اور ضروری اصلاحات کریں، اور پھر پیش نظارہ بٹن پر دوبارہ کلک کریں۔
اب آپ اپنے فنکشن کو ریپوزٹری میں دھکیلنے کے لیے تیار ہیں۔ تعیناتی بٹن آپ کو چار اختیارات دیتا ہے:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

اس مرحلے پر اہم بات یہ ہے کہ آپ اپنے فنکشن کو Wolfram فنکشن ریپوزٹری میں جمع کر سکتے ہیں تاکہ یہ کسی کے لیے دستیاب ہو۔ ایک ہی وقت میں، آپ اپنے فنکشن کو محدود تعداد میں صارفین کے لیے بھی رکھ سکتے ہیں۔ مثال کے طور پر، آپ ایک ایسا فنکشن بنا سکتے ہیں جو آپ کے کمپیوٹر پر مقامی طور پر ہوسٹ کیا جاتا ہے تاکہ جب آپ اس مخصوص کمپیوٹر کو استعمال کریں تو یہ دستیاب ہو۔ یا آپ اسے اپنے میں پوسٹ کر سکتے ہیں۔ کلاؤڈ اکاؤنٹ، تاکہ جب آپ کلاؤڈ سے جڑے ہوں تو یہ آپ کے لیے دستیاب ہو۔ آپ اپنے کلاؤڈ اکاؤنٹ کے ذریعے اس خصوصیت کی عوامی طور پر میزبانی (تعینات) بھی کر سکتے ہیں۔ یہ مرکزی Wolfram فیچر ریپوزٹری میں نہیں ہوگا، لیکن آپ کسی کو ایسا یو آر ایل دے سکیں گے جو انہیں آپ کے اکاؤنٹ سے آپ کی خصوصیت حاصل کرنے کی اجازت دے گا۔ (مستقبل میں، ہم اپنی پوری کمپنی میں مرکزی ذخیروں کو بھی سپورٹ کریں گے۔)

تو ہم کہتے ہیں کہ آپ دراصل اپنے فنکشن کو Wolfram فنکشن نالج بیس میں جمع کروانا چاہتے ہیں۔ ایسا کرنے کے لیے، آپ ریپوزٹری میں "جمع کروائیں" بٹن پر کلک کریں۔ تو پھر اس وقت کیا ہو رہا ہے؟ ہماری سرشار ٹیم کیوریٹرز کے ذریعہ آپ کی درخواست کو فوری طور پر نظرثانی اور منظوری کے لیے قطار میں کھڑا کر دیا گیا ہے۔

جیسا کہ آپ کی درخواست منظوری کے عمل سے گزرتی ہے (جس میں عام طور پر کئی دن لگتے ہیں)، آپ کو اس کی حیثیت سے متعلق مواصلات اور ممکنہ طور پر مستقبل کے استعمال کے لیے تجاویز موصول ہوں گی۔ لیکن ایک بار جب آپ کی خصوصیت منظور ہو جاتی ہے، تو اسے فوری طور پر Wolfram Feature Repository میں شائع کر دیا جائے گا اور ہر کسی کے استعمال کے لیے دستیاب ہوگا۔ (اور یہ اس میں ظاہر ہوگا۔ نئی خصوصیات کی خبریں ڈائجسٹ کرتی ہیں۔ وغیرہ)

اسٹوریج میں کیا ہونا چاہئے؟

واضح رہے کہ ہماری کمپنی کی تکمیل، بھروسے اور مجموعی معیار کے لیے بہت اعلیٰ معیارات ہیں، اور 6000+ فنکشنز میں سے جو ہم نے پچھلے 30+ سالوں میں وولفرم زبان میں پہلے سے ہی بنائے ہیں، سبھی مندرجہ بالا تقاضوں کو پورا کرتے ہیں۔ Wolfram Function Repository کا ہدف یہ ہے کہ Wolfram Language میں پہلے سے موجود تمام ساخت اور فعالیت کو استعمال کیا جائے تاکہ زیادہ سے زیادہ ہلکے فنکشنز (یعنی اعلیٰ کارکردگی کے افعال) کو شامل کیا جا سکے۔

بلاشبہ، وولفرم فنکشن ریپوزٹری میں فنکشنز کو وولفرم لینگویج کے ڈیزائن کے اصولوں کے مطابق ہونا چاہیے - تاکہ وہ دوسرے فنکشنز اور صارفین کی توقعات کے ساتھ مکمل طور پر تعامل کر سکیں کہ فنکشن کو صحیح طریقے سے کیسے کام کرنا چاہیے۔ تاہم، افعال کا مساوی مکمل یا قابل اعتماد ہونا ضروری نہیں ہے۔

Wolfram زبان کے بلٹ ان فنکشنز میں، ہم پروگرامنگ کے فنکشنز کو ممکن حد تک عام بنانے کے لیے سخت محنت کرتے ہیں۔ یہ کہا جا رہا ہے، جب Wolfram فنکشن ریپوزٹری میں اس میں فنکشن رکھنے میں کوئی حرج نہیں ہے جو صرف کچھ خاص لیکن مفید کیس کو ہینڈل کرتا ہے۔ مثال کے طور پر، فنکشن نوٹ بک سے میل بھیجیں۔ ایک مخصوص فارمیٹ میں فائلیں وصول کر سکتے ہیں اور ایک مخصوص طریقے سے میل بنا سکتے ہیں۔ پولی گونل ڈایاگرام صرف مخصوص رنگوں اور لیبلنگ وغیرہ کے ساتھ چارٹ بناتا ہے۔

بلٹ ان فنکشنز سے متعلق ایک اور نکتہ یہ ہے کہ ہماری کمپنی تمام غیر معمولی معاملات کو ہینڈل کرنے، غلط ان پٹ کو صحیح طریقے سے ہینڈل کرنے کے لیے ہر ممکن کوشش کرتی ہے، وغیرہ۔ فنکشن ریپوزٹری میں، یہ مکمل طور پر معمول کی بات ہے کہ وہاں ایک خاص فنکشن ہو جو کسی مسئلے کو حل کرنے کے اہم معاملات کو سنبھالتا ہے اور باقی تمام چیزوں کو نظر انداز کرتا ہے۔

واضح نکتہ یہ ہے کہ ایسے فنکشنز کا ہونا بہتر ہے جو زیادہ کام کریں اور بہتر طریقے سے کریں، لیکن فنکشن ریپوزٹری کے لیے اصلاح - جیسا کہ وولفرم لینگویج کے بلٹ ان فنکشنز کے برخلاف - زیادہ فنکشنز کے ساتھ بنڈل ہونا چاہیے ہر مخصوص فنکشن کے نفاذ کے عمل۔

اب آئیے ایک ذخیرہ میں افعال کی جانچ کی ایک مثال دیکھیں۔ اس طرح کے فنکشنز کے لیے مستقل مزاجی کی توقعات قدرتی طور پر بلٹ ان لینگویج فنکشنز کے مقابلے میں بہت کم ہیں۔ یہ خاص طور پر ان صورتوں میں درست ہے جہاں افعال کا انحصار بیرونی وسائل جیسے APIs پر ہوتا ہے، یہ ضروری ہے کہ مسلسل مسلسل ٹیسٹ کروائے جائیں، جو خود بخود تصدیقی الگورتھم کے اندر ہوتے ہیں۔ nb فائل میں، آپ واضح طور پر تعریفیں (اضافی معلومات کے سیکشن میں) بیان کر سکتے ہیں اور ان پٹ اور آؤٹ پٹ سٹرنگز یا قسم کی مکمل کریکٹر آبجیکٹ کے ذریعے بیان کردہ زیادہ سے زیادہ ٹیسٹ بتا سکتے ہیں۔ تصدیقی ٹیسٹ، جتنا آپ فٹ دیکھتے ہیں۔ اس کے علاوہ، سسٹم آپ کی فراہم کردہ دستاویزات کی مثالوں کو توثیقی عمل میں تبدیل کرنے کی مسلسل کوشش کر رہا ہے (اور بعض اوقات یہ کافی وسائل سے بھرپور ہو سکتا ہے، مثال کے طور پر، ایسے فنکشن کے لیے جس کا نتیجہ بے ترتیب نمبروں یا دن کے وقت پر منحصر ہوتا ہے)۔

نتیجے کے طور پر، فنکشن ریپوزٹری میں عمل درآمد کی متعدد پیچیدگیاں ہوں گی۔ کچھ کوڈ کی صرف ایک لائن ہوگی، دوسروں میں ہزاروں یا دسیوں ہزار لائنیں شامل ہوسکتی ہیں، ممکنہ طور پر بہت سے مددگار افعال کا استعمال کرتے ہوئے. ایسا فنکشن شامل کرنا کب قابل ہے جس کی وضاحت کے لیے بہت کم کوڈ کی ضرورت ہو؟ بنیادی طور پر، اگر کسی فنکشن کے لیے موجود ہے۔ اچھا یادداشت کا نام، جسے صارفین آسانی سے سمجھ جائیں گے اگر انہوں نے اسے کوڈ کے ٹکڑے میں دیکھا، تو اسے پہلے ہی شامل کیا جا سکتا ہے۔ بصورت دیگر، یہ بہتر ہے کہ جب بھی آپ کو اسے استعمال کرنے کی ضرورت ہو اپنے پروگرام میں کوڈ کو دوبارہ شامل کریں۔

فنکشن ریپوزٹری کا بنیادی مقصد (جیسا کہ اس کے نام سے پتہ چلتا ہے) زبان میں نئی ​​خصوصیات متعارف کرانا ہے۔ اگر آپ نیا ڈیٹا شامل کرنا چاہتے ہیں یا نئے اداروں، استعمال کریں۔ وولفرم ڈیٹا ریپوزٹری. لیکن اگر آپ اپنے حساب کے لیے نئی قسم کی اشیاء متعارف کروانا چاہتے ہیں تو کیا ہوگا؟

اصل میں دو طریقے ہیں۔ آپ ایک نئی آبجیکٹ کی قسم متعارف کروانا چاہتے ہیں جو فنکشن ریپوزٹری میں نئے فنکشنز میں استعمال ہوگی۔ اور اس صورت میں، آپ ہمیشہ صرف اس کی علامتی نمائندگی کو لکھ سکتے ہیں اور فنکشن ریپوزٹری میں فنکشنز کو ان پٹ یا آؤٹ پٹ کرتے وقت استعمال کرسکتے ہیں۔

لیکن کیا ہوگا اگر آپ کسی چیز کی نمائندگی کرنا چاہتے ہیں اور پھر Wolfram Language میں موجود فنکشنز کے ذریعے اس کی وضاحت کرنا چاہتے ہیں کہ آپ اس کے ساتھ کام کرنا چاہتے ہیں؟ Wolfram Language میں ہمیشہ اس کے لیے ہلکا پھلکا طریقہ کار ہوتا ہے، جسے کہا جاتا ہے۔ اپ ویلیوز. کچھ پابندیوں کے ساتھ (خاص طور پر ان افعال کے لیے جو ان کے دلائل کا اندازہ نہیں کر سکتے)، ایک فنکشن ریپوزٹری آپ کو صرف ایک فنکشن کی نمائندگی کرنے اور اس کے لیے اقدار کی وضاحت کرنے کی اجازت دیتا ہے۔ (ایک نیا بڑا ڈیزائن بناتے وقت مستقل مزاجی کی توقع کو بڑھانا جو کہ وولفرم لینگویج میں مکمل طور پر مربوط ہو عام طور پر ایک بہت اہم طریقہ کار ہے جسے صرف پروجیکٹ کی لاگت میں اضافہ کرکے حاصل نہیں کیا جاسکتا اور یہ وہ چیز ہے جو ہماری کمپنی پروجیکٹس کے حصے کے طور پر کرتی ہے۔ زبان کی طویل مدتی ترقی کے لیے، یہ کام کوئی ایسا ہدف نہیں ہے جو مخزن کی ترقی کے حصے کے طور پر مقرر کیا گیا ہو)۔

تو، فنکشن ریپوزٹری میں فنکشن کوڈ میں کیا ہو سکتا ہے؟ Wolfram Language میں شامل ہر چیز، یقینا (کم از کم اگر یہ نمائندگی نہیں کرتا ہے۔ دھمکیاں لیے سیکورٹی اور خود پروگرام کی کارکردگی، بطور کمپیوٹنگ ماحول) کے ساتھ ساتھ فنکشن ریپوزٹری سے کوئی بھی فنکشن۔ تاہم، دیگر افعال بھی ہیں: فنکشن ریپوزٹری میں ایک فنکشن API کو کال کر سکتا ہے، یا میں وولفرم کلاؤڈیا ایک اور ذریعہ سے. یقیناً اس سے کچھ خطرات وابستہ ہیں۔ اس حقیقت کی وجہ سے کہ اس بات کی کوئی گارنٹی نہیں ہے کہ API تبدیل نہیں ہوگا، اور فنکشن اسٹور میں موجود فنکشن کام کرنا بند کردے گا۔ اس طرح کے مسائل کی نشاندہی کرنے میں مدد کے لیے، کسی بھی خصوصیت کے لیے دستاویزی صفحہ (ضروریات کے سیکشن میں) پر ایک نوٹ موجود ہے جو صرف بلٹ ان Wolfram Language فعالیت پر انحصار کرتا ہے۔ (یقیناً، جب حقیقی اعداد و شمار کی بات آتی ہے، تو اس فعالیت کے ساتھ بھی مسائل ہوسکتے ہیں - کیونکہ حقیقی دنیا کا ڈیٹا مسلسل تبدیل ہوتا رہتا ہے، اور بعض اوقات اس کی تعریفیں اور ساخت بھی بدل جاتی ہے۔)

کیا Wolfram فیچر ریپوزٹری کے تمام کوڈ کو Wolfram میں لکھا جانا چاہیے؟ یقینی طور پر، بیرونی API کے اندر موجود کوڈ کو Wolfram زبان میں نہیں لکھا جانا چاہیے، جس سے زبان کا کوڈ بھی نہیں بنتا۔ درحقیقت، اگر آپ کو تقریباً کسی بھی بیرونی زبان یا لائبریری میں کوئی فنکشن ملتا ہے، تو آپ ایک ریپر بنا سکتے ہیں جو آپ کو Wolfram فنکشن ریپوزٹری میں استعمال کرنے کی اجازت دیتا ہے۔ (عام طور پر آپ کو اس کے لیے بلٹ ان فنکشنز کا استعمال کرنا چاہیے۔ بیرونی تشخیص یا ایکسٹرنل فنکشن Wolfram زبان کے کوڈ میں۔)

تو ایسا کرنے کا کیا فائدہ؟ بنیادی طور پر، یہ آپ کو پورے مربوط Wolfram Language سسٹم اور اس کے سافٹ ویئر کی صلاحیتوں کے پورے متحد سیٹ کو استعمال کرنے کی اجازت دیتا ہے۔ اگر آپ کسی بیرونی لائبریری یا زبان سے بنیادی نفاذ حاصل کرتے ہیں، تو آپ Wolfram Language کے بھرپور علامتی ڈھانچے کو استعمال کر کے ایک آسان اعلیٰ سطحی فنکشن تشکیل دے سکتے ہیں جو صارفین کو پہلے سے نافذ کردہ کسی بھی فعالیت کو آسانی سے استعمال کرنے کی اجازت دیتا ہے۔ کم از کم، یہ ایک مثالی دنیا میں ممکن ہونا چاہیے جہاں لائبریریوں وغیرہ کی لوڈنگ کے تمام بلڈنگ بلاکس موجود ہوں، ایسی صورت میں وہ خود بخود Wolfram Language کے ذریعے سنبھال لیں گے۔ (واضح رہے کہ عملی طور پر اس کے ساتھ مسائل ہوسکتے ہیں۔ بیرونی زبانیں ترتیب دینا مخصوص کمپیوٹر سسٹم، اور کلاؤڈ اسٹوریج اضافی سیکورٹی کے مسائل پیدا کر سکتے ہیں)۔

ویسے، جب آپ پہلی بار عام بیرونی لائبریریوں پر نظر ڈالتے ہیں، تو وہ اکثر بہت پیچیدہ لگتی ہیں کہ صرف چند فنکشنز کا احاطہ کیا جا سکتا ہے، لیکن بہت سے معاملات میں، زیادہ تر پیچیدگی لائبریری کے لیے درکار انفراسٹرکچر اور تمام فنکشنز کو بنانے سے ہوتی ہے۔ اس کی حمایت کریں تاہم، Wolfram Language کا استعمال کرتے وقت، بنیادی ڈھانچہ عام طور پر پہلے سے ہی پیکجوں میں بنایا جاتا ہے، اور اس لیے ان تمام سپورٹ فنکشنز کو تفصیل سے ظاہر کرنے کی ضرورت نہیں ہے، لیکن لائبریری میں صرف "سب سے اوپر" ایپلیکیشن کے مخصوص فنکشنز کے لیے فنکشنز بنائیں۔ .

علم کی بنیاد کا "ایکو سسٹم"

اگر آپ نے ایسے فنکشن لکھے ہیں جو آپ باقاعدگی سے استعمال کرتے ہیں، تو انہیں Wolfram Function Repository میں جمع کروائیں! اگر اس سے کچھ زیادہ نہیں نکلتا (زبان کی ترقی)، تب بھی آپ کے لیے فنکشنز کو ذاتی استعمال کے لیے استعمال کرنا زیادہ آسان ہوگا۔ تاہم، یہ سمجھنا منطقی ہے کہ اگر آپ فنکشنز کو باقاعدگی سے استعمال کرتے ہیں، تو شاید دوسرے صارفین بھی انہیں مفید پائیں گے۔

قدرتی طور پر، آپ اپنے آپ کو ایسی صورت حال میں پا سکتے ہیں جہاں آپ اپنے فنکشنز کو شیئر کرنے یا نجی معلومات کے وسائل تک رسائی حاصل کرنے کی صورت میں - یا نہیں چاہتے۔ یہاں تک کہ ایسے معاملات میں، آپ آسانی سے اپنے کلاؤڈ اکاؤنٹ میں فنکشنز کو تعینات کر سکتے ہیں، حقوق کی وضاحت ان تک رسائی (اگر آپ کی تنظیم کے پاس ہے۔ وولفرم انٹرپرائز پرائیویٹ کلاؤڈ، پھر یہ جلد ہی اپنی ذاتی خصوصیت کے ذخیرے کی میزبانی کرنے کے قابل ہو جائے گا، جس کا انتظام آپ کی تنظیم کے اندر سے کیا جا سکتا ہے اور یہ طے کیا جا سکتا ہے کہ آیا تیسرے فریق کے صارفین کے ذریعے ویوز کو زبردستی دیکھا جائے یا نہیں۔)

Wolfram فنکشن ریپوزٹری میں آپ جو فنکشن جمع کراتے ہیں وہ کامل ہونا ضروری نہیں ہے۔ وہ صرف مفید ہونا ضروری ہے. یہ کلاسک یونکس دستاویزات میں "خرابی" سیکشن کی طرح ہے - "تعریفات سیکشن" میں ایک "مصنف کے نوٹس" سیکشن ہے جہاں آپ ان حدود، مسائل وغیرہ کو بیان کر سکتے ہیں جو آپ اپنے فنکشن کے بارے میں پہلے سے جانتے ہیں۔ مزید برآں، جب آپ اپنی خصوصیت کو ریپوزٹری میں جمع کراتے ہیں، تو آپ جمع کرانے والے نوٹ شامل کر سکتے ہیں جو کہ کیورٹرز کی ایک سرشار ٹیم پڑھے گی۔

ایک بار فیچر شائع ہونے کے بعد، اس کے صفحے کے نیچے ہمیشہ دو لنکس ہوتے ہیں:اس خصوصیت کے بارے میں ایک پیغام بھیجیں۔"اور"وولفرم کمیونٹی میں بحث کریں۔" اگر آپ کوئی نوٹ منسلک کر رہے ہیں (مثال کے طور پر، مجھے کیڑے کے بارے میں بتائیں)، تو آپ اس باکس کو چیک کر سکتے ہیں جو کہتا ہے کہ آپ چاہتے ہیں کہ آپ کا پیغام اور رابطے کی معلومات فیچر مصنف کے ساتھ شیئر کی جائیں۔

بعض اوقات آپ صرف وولفرم فنکشن ریپوزٹری سے فنکشنز استعمال کرنا چاہتے ہیں، جیسے بلٹ ان فنکشنز، ان کے کوڈ کو دیکھے بغیر۔ تاہم، اگر آپ اندر ایک نظر ڈالنا چاہتے ہیں، تو ہمیشہ سب سے اوپر ایک نوٹ پیڈ بٹن ہوتا ہے۔ اس پر کلک کریں اور آپ کو اصل ڈیفینیشن نوٹ بک کی اپنی کاپی مل جائے گی جو فیچر ریپوزٹری میں جمع کرائی گئی تھی۔ کبھی کبھی آپ اسے اپنی ضروریات کے لیے بطور مثال استعمال کر سکتے ہیں۔ ایک ہی وقت میں، آپ اس فنکشن کی اپنی ترمیم بھی تیار کر سکتے ہیں۔ ہو سکتا ہے کہ آپ ان فنکشنز کو پوسٹ کرنا چاہیں جو آپ نے اپنے کمپیوٹر پر یا اپنے aphid کلاؤڈ اسٹوریج اکاؤنٹ میں ریپوزٹری سے پائے ہیں، شاید آپ انہیں فنکشن نالج بیس میں جمع کرنا چاہتے ہیں، شاید اصل فنکشن کے ایک بہتر، توسیع شدہ ورژن کے طور پر۔

مستقبل میں، ہم فیچر ریپوزٹریز کے لیے گٹ اسٹائل فورکنگ کو سپورٹ کرنے کا ارادہ رکھتے ہیں، لیکن فی الحال ہم اسے آسان رکھنے کی کوشش کر رہے ہیں، اور ہمارے پاس ہمیشہ زبان میں ہر فیچر کا صرف ایک ہی قبول شدہ ورژن ہوتا ہے۔ زیادہ کثرت سے نہیں (جب تک کہ ڈویلپر اپنی تیار کردہ خصوصیات کو برقرار رکھنا چھوڑ دیتے ہیں اور صارف کی گذارشات کا جواب نہیں دیتے ہیں)، خصوصیت کا اصل مصنف اس میں اپ ڈیٹس کا کنٹرول سنبھالتا ہے اور نئے ورژن جمع کرتا ہے، جن کا پھر جائزہ لیا جاتا ہے اور، اگر وہ جائزہ لینے کے عمل کو پاس کرتے ہیں۔ ، زبان میں شائع ہوا۔

آئیے اس سوال پر غور کریں کہ ترقی یافتہ افعال کی "ورژننگ" کیسے کام کرتی ہے۔ ابھی، جب آپ فنکشن ریپوزٹری سے کوئی فنکشن استعمال کرتے ہیں، تو اس کی تعریف آپ کے کمپیوٹر پر مستقل طور پر محفوظ ہو جائے گی (یا آپ کے کلاؤڈ اکاؤنٹ میں اگر آپ کلاؤڈ استعمال کر رہے ہیں)۔ اگر کسی خصوصیت کا نیا ورژن دستیاب ہے، تو اگلی بار جب آپ اسے استعمال کریں گے تو آپ کو اس کی اطلاع دینے والا پیغام موصول ہوگا۔ اور اگر آپ فنکشن کو نئے ورژن میں اپ ڈیٹ کرنا چاہتے ہیں، تو آپ اسے کمانڈ کا استعمال کر کے کر سکتے ہیں۔ ریسورس اپ ڈیٹ. ("فنکشن بلاب" اصل میں ورژننگ کی مزید معلومات کو اسٹور کرتا ہے، اور ہم مستقبل میں اسے اپنے صارفین کے لیے مزید قابل رسائی بنانے کا ارادہ رکھتے ہیں۔)

Wolfram Function Repository کے بارے میں ایک خوبصورت چیز یہ ہے کہ کوئی بھی Wolfram Language پروگرام، کہیں بھی اس سے فنکشن استعمال کر سکتا ہے۔ اگر کوئی پروگرام نوٹ پیڈ میں ظاہر ہوتا ہے، تو یہ اکثر آسان ہوتا ہے کہ ذخیرہ کے افعال کو پڑھنے میں آسان "فنکشن بائنری آبجیکٹ" فنکشنز (شاید مناسب ورژن سیٹ کے ساتھ) کے طور پر فارمیٹ کریں۔

آپ ہمیشہ متن کا استعمال کرتے ہوئے فنکشن ریپوزٹری میں کسی بھی فنکشن تک رسائی حاصل کرسکتے ہیں۔ ریسورس فنکشن[...]. اور یہ بہت آسان ہے اگر آپ وولفرم انجن کے لیے براہ راست کوڈ یا اسکرپٹ لکھتے ہیں، مثال کے طور پر، اس کے ساتھ IDE یا ٹیکسٹ کوڈ ایڈیٹر کا استعمال کرتے ہوئے (یہ خاص طور پر نوٹ کرنا چاہئے کہ فنکشن ریپوزٹری مکمل طور پر مطابقت رکھتا ہے۔ ڈویلپرز کے لیے مفت Wolfram Engine).

یہ کس طرح کام کرتا ہے؟

وولفرم ریپوزٹری میں فنکشنز کے اندر یہ بالکل اسی طرح کا استعمال کرتے ہوئے ممکن ہے۔ وسائل کے نظام اڈوں، جیسا کہ میں ہمارے تمام دیگر موجودہ ذخیرے (ڈیٹا اسٹور، نیورل نیٹ ریپوزٹری, ڈیمو منصوبوں کا مجموعہ وغیرہ)، دوسرے تمام وولفرم سسٹم کے وسائل کی طرح، ریسورس فنکشن بالآخر فنکشن پر مبنی ہے۔ ریسورس آبجیکٹ.

غور کریں ریسورس فنکشن:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

اندر آپ فنکشن کا استعمال کرتے ہوئے کچھ معلومات دیکھ سکتے ہیں۔ معلومات:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

ریسورس فنکشن کا سیٹ اپ کیسے کام کرتا ہے؟ سب سے آسان ایک خالصتا مقامی کیس ہے۔ یہاں ایک مثال ہے جو ایک فنکشن لیتی ہے (اس معاملے میں صرف ایک خالص فنکشن) اور اسے دیئے گئے پروگرام سیشن کے لئے وسائل کے فنکشن کے طور پر بیان کرتی ہے۔

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

ایک بار جب آپ تعریف کر لیتے ہیں، تو آپ ریسورس فنکشن استعمال کر سکتے ہیں:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

نوٹ کریں کہ اس فنکشن بلاب میں ایک سیاہ آئیکن ہے۔ وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم. اس کا مطلب ہے کہ BLOB فنکشن سے مراد ان میموری ریسورس فنکشن ہے جو موجودہ سیشن کے لیے بیان کیا گیا ہے۔ ایک وسائل کی خصوصیت جو آپ کے کمپیوٹر یا کلاؤڈ اکاؤنٹ پر مستقل طور پر محفوظ ہوتی ہے اس میں سرمئی آئیکن ہوتا ہے۔ وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم. اور وولفرم فیچر ریپوزٹری میں ایک آفیشل ریسورس فیچر کے لیے نارنجی رنگ کا آئیکن ہے۔ وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم.

تو کیا ہوتا ہے جب آپ ڈیفینیشن نوٹ بک میں Expand مینو استعمال کرتے ہیں؟ سب سے پہلے، یہ نوٹ پیڈ میں تمام تعریفیں لیتا ہے اور ان سے ایک علامتی تخلیق کرتا ہے۔ ریسورس آبجیکٹ)۔ (اور اگر آپ ٹیکسٹ پر مبنی IDE یا پروگرام استعمال کر رہے ہیں، تو آپ واضح طور پر بھی بنا سکتے ہیں۔ ریسورس آبجیکٹ)

آپ کے کمپیوٹر پر ریپوزٹری سے کسی فنکشن کی مقامی تعیناتی کمانڈ کا استعمال کرتے ہوئے کی جاتی ہے۔ لوکل کیچ کسی وسائل آبجیکٹ کو بطور محفوظ کرنے کے لیے لوکل آبجیکٹ آپ کے فائل سسٹم پر۔ کلاؤڈ اکاؤنٹ میں تعیناتی کمانڈ کا استعمال کرتے ہوئے کی جاتی ہے۔ CloudDeploy ایک وسائل آبجیکٹ کے لئے، اور ایک عوامی کلاؤڈ تعیناتی ہے CloudPublish. تمام صورتوں میں ریسورس رجسٹر ریسورس فنکشن کا نام رجسٹر کرنے کے لیے بھی استعمال ہوتا ہے، اس لیے ریسورس فنکشن["نام"] کام کرے گا.

اگر آپ فنکشن ریپوزٹری کے لیے جمع کرائیں بٹن پر کلک کرتے ہیں تو اس کے نیچے کیا ہوتا ہے۔ وسائل جمع کروائیں۔ ایک وسائل آبجیکٹ پر بلایا۔ (اور اگر آپ ٹیکسٹ ان پٹ انٹرفیس استعمال کر رہے ہیں، تو آپ کال بھی کر سکتے ہیں۔ وسائل جمع کروائیں۔ براہ راست۔)

پہلے سے طے شدہ طور پر، گذارشات آپ کے Wolfram ID سے وابستہ نام کے تحت کی جاتی ہیں۔ لیکن اگر آپ کسی ترقیاتی ٹیم یا تنظیم کی جانب سے درخواست جمع کروا رہے ہیں، تو آپ کر سکتے ہیں۔ علیحدہ پبلشر ID سیٹ کریں۔ اور اس کے بجائے اسے اپنے خیالات کے ساتھ تعامل کرنے کے لیے بطور نام استعمال کریں۔

فنکشن نالج بیس میں آپ کے کسی بھی فنکشن کو جمع کرانے کے بعد، اسے نظرثانی کے لیے قطار میں کھڑا کردیا جائے گا۔ اگر آپ کو جواب میں تبصرے موصول ہوتے ہیں، تو وہ عام طور پر ایک ٹیکسٹ فائل کی شکل میں ہوں گے جس میں اضافی "تبصرہ سیلز" شامل کیے جائیں گے۔ آپ ہمیشہ جا کر اپنی درخواست کا اسٹیٹس چیک کر سکتے ہیں۔ ریسورس سسٹم ممبر پورٹل. لیکن ایک بار جب آپ کی خصوصیت منظور ہو جائے گی، آپ کو مطلع کیا جائے گا (بذریعہ ای میل) اور آپ کی خصوصیت Wolfram فیچر ریپوزٹری میں پوسٹ کر دی جائے گی۔

کام میں کچھ باریکیاں

پہلی نظر میں ایسا لگتا ہے کہ آپ صرف ایک تعریفی نوٹ بک لے سکتے ہیں اور اسے لفظی طور پر فنکشن ریپوزٹری میں ڈال سکتے ہیں، تاہم، حقیقت میں اس میں بہت ساری باریکیاں شامل ہیں - اور ان کو سنبھالنے کے لیے کچھ خوبصورت پیچیدہ میٹا پروگرامنگ کرنے کی ضرورت ہوتی ہے، علامتی پروسیسنگ کو سنبھالنا۔ کوڈ کے طور پر جو فنکشن کی وضاحت کرتا ہے، اور نوٹ پیڈ خود بیان کیا گیا ہے۔ اس میں سے زیادہ تر اندرونی طور پر، پردے کے پیچھے ہوتا ہے، لیکن اس کے کچھ مضمرات ہوسکتے ہیں جو سمجھنے کے قابل ہیں اگر آپ فیچر نالج بیس میں حصہ ڈالنے جا رہے ہیں۔

پہلی فوری لطیفیت: جب آپ ڈیفینیشن نوٹ بک کو پُر کرتے ہیں، تو آپ آسانی سے ہر جگہ اپنے فنکشن کا حوالہ دے سکتے ہیں۔ مائی فنکشن، جو Wolfram Language میں کسی فنکشن کے لیے باقاعدہ نام کی طرح لگتا ہے، لیکن فنکشن ریپوزٹری دستاویزات کے لیے اسے تبدیل کر دیا گیا ہے۔ ریسورس فنکشن["MyFunction"] فنکشن کے ساتھ کام کرتے وقت صارفین اصل میں استعمال کریں گے۔

دوسری باریک بینی: جب آپ ڈیفینیشن نوٹ بک سے ریسورس فنکشن بناتے ہیں تو فنکشن ڈیفینیشن میں شامل تمام انحصار کو پکڑنا اور واضح طور پر شامل کرنا ضروری ہے۔ تاہم، اس بات کو یقینی بنانے کے لیے کہ تعریفیں ماڈیولر رہیں، آپ کو ہر چیز کو منفرد میں ڈالنے کی ضرورت ہے۔ نام کی جگہ. (بلکل، افعال جو یہ سب کرتے ہیں۔، فنکشن ریپوزٹری میں ہیں۔)

عام طور پر آپ کو اس نام کی جگہ کو ترتیب دینے کے لیے استعمال ہونے والے کوڈ کا کوئی سراغ نہیں ملے گا۔ لیکن اگر کسی وجہ سے آپ اپنے فنکشن کے اندر ایک انڈر ایگزیکیٹڈ سمبل کو کہتے ہیں تو آپ دیکھیں گے کہ یہ علامت فنکشن کے اندرونی تناظر میں ہے۔ تاہم، ڈیفینیشن نوٹ پیڈ پر کارروائی کرتے وقت، کم از کم علامت خود فنکشن سے مطابقت رکھتی ہے۔ بہترین ڈسپلے کے لیے سایڈست اندرونی سیاق و سباق میں خام کردار کے بجائے ایک فعال BLOB کے طور پر۔

فنکشن ریپوزٹری نئے فنکشنز کی وضاحت کے لیے ہے۔ اور ان افعال میں آپشنز ہو سکتے ہیں۔ اکثر یہ پیرامیٹرز (مثال کے طور پر، طریقہ یا تصویر کا سائز) بلٹ ان فنکشنز کے ساتھ ساتھ ان کے لیے بھی استعمال کیا جا سکے گا جن کے لیے پہلے سے موجود علامتیں موجود ہیں۔ لیکن بعض اوقات ایک نئی خصوصیت کے لیے نئے اختیارات کی ضرورت پڑ سکتی ہے۔ ماڈیولریٹی کو برقرار رکھنے کے لیے، ان پیرامیٹرز کو ایک منفرد داخلی سیاق و سباق میں بیان کردہ علامتوں کی ضرورت ہے (یا کچھ اور جیسا کہ وسائل کے پورے افعال، یعنی خود)۔ سادگی کے لیے، فنکشن ریپوزٹری آپ کو سٹرنگ کی تعریفوں میں نئے اختیارات کی وضاحت کرنے کی اجازت دیتی ہے۔ اور صارف کی سہولت کے لیے، یہ تعریفیں (یہ فرض کرتے ہوئے کہ انہوں نے استعمال کیا ہے۔ آپشن ویلیو и اختیارات پیٹرن) پر بھی کارروائی کی جاتی ہے تاکہ فنکشنز کا استعمال کرتے وقت پیرامیٹرز کو نہ صرف سٹرنگز کے طور پر بلکہ انہی ناموں کے ساتھ عالمی علامتوں کے طور پر بھی بیان کیا جا سکے۔

زیادہ تر فنکشنز صرف وہی کرتے ہیں جو انہیں ہر بار بلایا جاتا ہے، لیکن کچھ فنکشنز کو کسی خاص سیشن میں چلانے سے پہلے شروع کرنے کی ضرورت ہوتی ہے - اور اس مسئلے کو حل کرنے کے لیے، ڈیفینیشن سیکشن میں ایک "ابتدائی" سیکشن ہوتا ہے۔

ریپوزٹری کے فنکشنز دوسرے فنکشنز کو استعمال کرسکتے ہیں جو پہلے سے ریپوزٹری میں موجود ہیں؛ فنکشن ریپوزٹری کے لیے تعریفیں ترتیب دینے کے لیے جس میں دو (یا زیادہ) فنکشنز شامل ہوں جو ایک دوسرے کا حوالہ دیتے ہیں، آپ کو انہیں اپنے پروگرام سیشن میں تعینات کرنا ہوگا تاکہ آپ ان کی طرح حوالہ ریسورس فنکشن["نام"]، پھر آپ ان فنکشنز کے مجموعے بنا سکتے ہیں جن کی آپ کو ضرورت ہے، مثالیں (میں سمجھ نہیں پایا) اور پہلے سے پوسٹ کردہ ان کی بنیاد پر ریپوزٹری میں ایک نیا فنکشن شامل کر سکتے ہیں۔ (یا پہلے سے یا پہلے - دونوں الفاظ اناڑی ہیں)

ترقی کے امکانات۔ جب ذخیرہ واقعی بڑا ہو جائے تو کیا ہونا چاہیے؟

آج ہم صرف Wolfram Feature Repository کو لانچ کر رہے ہیں، لیکن وقت گزرنے کے ساتھ ساتھ ہم توقع کرتے ہیں کہ اس کے سائز اور فعالیت میں ڈرامائی طور پر اضافہ ہو سکتا ہے، اور جیسے جیسے یہ ترقی میں بڑھتا جائے گا وہاں مختلف مسائل پیدا ہوں گے جن کا ہم پہلے ہی اندازہ لگا رہے ہیں۔

پہلا مسئلہ فنکشن کے ناموں اور ان کی انفرادیت سے متعلق ہے۔ فنکشن ریپوزٹری کو اس طرح سے ڈیزائن کیا گیا ہے کہ وولفرم لینگویج میں بلٹ ان فنکشنز کی طرح، آپ کسی بھی فنکشن کو صرف اس کا نام بتا کر حوالہ دے سکتے ہیں۔ لیکن اس کا لامحالہ مطلب یہ ہے کہ فنکشن کے نام تمام ذخیرے میں عالمی سطح پر منفرد ہونے چاہئیں، تاکہ مثال کے طور پر صرف ایک ہی ہو ریسورس فنکشن["MyFavoriteFunction"].

یہ شروع میں ایک بڑا مسئلہ لگتا ہے، لیکن یہ سمجھنے کے قابل ہے کہ یہ بنیادی طور پر وہی مسئلہ ہے جیسا کہ انٹرنیٹ ڈومینز یا سوشل میڈیا ہینڈلز کا۔ اور حقیقت یہ ہے کہ سسٹم کو صرف ایک رجسٹرار کی ضرورت ہے - اور یہ ان کرداروں میں سے ایک ہے جو ہماری کمپنی وولفرم فنکشن نالج بیس کے لیے انجام دے گی۔ (کسی ریپوزٹری کے پرائیویٹ ورژنز کے لیے، ان کے رجسٹرار ایڈمنسٹریٹر ہو سکتے ہیں۔) بلاشبہ، انٹرنیٹ ڈومین کو بغیر کسی چیز کے رجسٹر کیا جا سکتا ہے، لیکن فنکشن ریپوزٹری میں، فنکشن کا نام صرف اس صورت میں رجسٹر کیا جا سکتا ہے جب اس کی اصل تعریف موجود ہو۔ فنکشن

Wolfram فنکشن نالج بیس کو منظم کرنے میں ہمارے کردار کا ایک حصہ یہ یقینی بنانا ہے کہ فنکشن کے لیے منتخب کردہ نام فنکشن کی تعریف کے مطابق منطقی ہے اور یہ Wolfram Language کے نام دینے کے کنونشن کی پیروی کرتا ہے۔ ہمارے پاس Wolfram Language میں بلٹ ان فنکشنز کو نام دینے کا 30 سال سے زیادہ کا تجربہ ہے، اور ہماری کیوریٹرز کی ٹیم اس تجربے کو فنکشن ریپوزٹری میں بھی لائے گی۔ یقینا، ہمیشہ مستثنیات ہیں. مثال کے طور پر، کسی فنکشن کے لیے مختصر نام رکھنا افضل معلوم ہو سکتا ہے، لیکن لمبے، زیادہ مخصوص نام کے ساتھ "دفاع" کرنا بہتر ہے کیونکہ آپ کا مستقبل میں اس سے ملتا جلتا نام رکھنے کے خواہشمند کسی سے ملنے کا امکان کم ہے۔ .

(یہاں یہ بات ذہن نشین رہے کہ فنکشنز کو غیر واضح کرنے کے لیے محض کچھ ممبر ٹیگ شامل کرنے سے مطلوبہ اثر نہیں ہوگا۔ کیونکہ جب تک آپ ہمیشہ ٹیگ تفویض کرنے پر اصرار نہیں کرتے، آپ کو کسی بھی فنکشن کے لیے ڈیفالٹ ٹیگ کی وضاحت کرنے کی ضرورت ہوگی، اور مصنف کے ٹیگ بھی مختص کرنا ہوں گے۔ جس کے لیے دوبارہ عالمی ہم آہنگی کی ضرورت ہوگی۔)

جیسے جیسے وولفرم فنکشنز کا علمی بنیاد بڑھتا ہے، ان میں سے ایک مسئلہ جو ممکنہ طور پر پیدا ہو گا وہ ہے فنکشنز کی دریافت، جس کے لیے نظام فراہم کرتا ہے۔ تلاش کی تقریب (اور تعریفی فائلوں میں مطلوبہ الفاظ وغیرہ شامل ہو سکتے ہیں)۔ وولفرم لینگویج میں بلٹ ان فنکشنز کے لیے، فنکشنز کی "تشہیر" کرنے میں مدد کے لیے دستاویزات میں ہر طرح کے کراس ریفرینس موجود ہیں۔ فنکشن ریپوزٹری میں فنکشنز بلٹ ان فنکشنز کا حوالہ دے سکتے ہیں۔ لیکن دوسرے راستے کے بارے میں کیا خیال ہے؟ ایسا کرنے کے لیے، ہم بلٹ ان فنکشنز کے لیے دستاویزات کے صفحات میں مخزن کے افعال کو ظاہر کرنے کے لیے مختلف ڈیزائنوں کے ساتھ تجربہ کرنے جا رہے ہیں۔

Wolfram Language میں بلٹ ان فنکشنز کے لیے ایک نام نہاد پتہ لگانے کی پرت ہے جو فراہم کرتی ہے۔ "مدد کے صفحات" کا نیٹ ورک، جو مخصوص علاقوں سے متعلق خصوصیات کی منظم فہرست فراہم کرتا ہے۔ مین پیجز کو صحیح طریقے سے متوازن کرنا ہمیشہ مشکل ہوتا ہے، اور جیسے جیسے وولفرم زبان بڑھتی ہے، مین پیجز کو اکثر مکمل طور پر دوبارہ ترتیب دینے کی ضرورت ہوتی ہے۔ مخزن سے فنکشنز کو وسیع زمروں میں ڈالنا، اور یہاں تک کہ ان زمروں کو مستقل طور پر توڑنا بہت آسان ہے، لیکن زبان کے حوالہ جات کے صفحات کو مناسب طریقے سے منظم کرنا بہت زیادہ قیمتی ہے۔ یہ ابھی تک واضح نہیں ہے کہ پورے فنکشن نالج بیس کے لیے انہیں کس طرح بہتر بنایا جائے۔ مثال کے طور پر، ریسورس آبجیکٹ گیلری بنائیں فیچر ریپوزٹری میں، کوئی بھی ایک ویب صفحہ پوسٹ کر سکتا ہے جس میں ریپوزٹری سے ان کی "چنیں" ہوں:

وولفرم فنکشن ریپوزٹری: وولفرم لینگویج ایکسٹینشنز کے لیے کھلا رسائی پلیٹ فارم

Wolfram فنکشن ریپوزٹری کو ایک مستقل فنکشن ریپوزٹری کے طور پر کنفیگر کیا گیا ہے، جہاں اس میں کوئی بھی فنکشن ہمیشہ کام کرے گا۔ بلاشبہ، خصوصیات کے نئے ورژن دستیاب ہو سکتے ہیں، اور ہم توقع کرتے ہیں کہ یقیناً کچھ خصوصیات وقت کے ساتھ ساتھ متروک ہو جائیں گی۔ فنکشنز کام کریں گے اگر وہ پروگراموں میں استعمال ہوں، لیکن ان کے دستاویزات کے صفحات نئے، زیادہ جدید فنکشنز سے منسلک ہوں گے۔

Wolfram Feature Repository کو آپ کو نئی خصوصیات کو تیزی سے دریافت کرنے اور Wolfram زبان کو استعمال کرنے کے نئے طریقے سیکھنے میں مدد کرنے کے لیے ڈیزائن کیا گیا ہے۔ ہم بہت پر امید ہیں کہ فیچر ریپوزٹری میں جو کچھ دریافت کیا گیا ہے وہ آخر کار وولفرم لینگویج کے بنیادی حصے بننا سمجھ میں آجائے گا۔ پچھلی دہائی میں ہمارے پاس ایسا ہی سیٹ ہے۔ وہ خصوصیات جو اصل میں Wolfram | میں متعارف کرائی گئی تھیں۔ الفا. اور اس تجربے سے سیکھے گئے سبق میں سے ایک یہ ہے کہ معیار اور مستقل مزاجی کے معیارات کو حاصل کرنے کے لیے جس پر ہم وولفرام زبان میں بنائی گئی ہر چیز پر توجہ مرکوز کرتے ہیں، بہت زیادہ محنت کی ضرورت ہوتی ہے، جو کہ خیال کے نفاذ کی ابتدائی کوششوں سے زیادہ مشکل ہوتا ہے۔ اس کے باوجود، فنکشن نالج بیس میں ایک فنکشن مستقبل کے فنکشن کے لیے تصور کے بہت کارآمد ثبوت کے طور پر کام کر سکتا ہے جو بالآخر وولفرم زبان میں بنایا جا سکتا ہے۔

یہاں سب سے اہم بات یہ ہے کہ فنکشن ریپوزٹری میں ایک فنکشن ایسی چیز ہے جو ہر صارف کے لیے اس وقت استعمال کرنے کے لیے دستیاب ہے۔ یہ ممکن ہے کہ مادری زبان کی خصوصیت بہت بہتر اور زیادہ پرفارمنس ہو، لیکن فیچر ریپوزٹری صارفین کو تمام نئی خصوصیات تک فوری رسائی کی اجازت دے گی۔ اور، سب سے اہم بات، یہ تصور ہر کسی کو اپنی مرضی کے مطابق نئی خصوصیات شامل کرنے کی اجازت دیتا ہے۔

وولفرم زبان کی تاریخ میں اس سے پہلے یہ خیال اس طرح کام نہیں کرتا تھا جیسا کہ اس نے کیا ہے، لیکن اس مرحلے پر زبان میں اتنی محنت کی گئی ہے، اور زبان کے ڈیزائن کے اصولوں کی اتنی گہری سمجھ ہے کہ اب ایسا لگتا ہے۔ صارفین کی ایک بڑی کمیونٹی کے لیے ایسی خصوصیات شامل کرنا ممکن ہے جو ڈیزائن کی مستقل مزاجی کو برقرار رکھیں گی تاکہ وہ صارفین کی وسیع رینج کے لیے مفید ہوں۔

Wolfram Language صارف کمیونٹی میں ٹیلنٹ (؟) کا ایک ناقابل یقین جذبہ ہے۔ (یقیناً، اس کمیونٹی میں مختلف شعبوں میں بہت سے سرکردہ آر اینڈ ڈی لوگ شامل ہیں۔) مجھے امید ہے کہ وولفرم فیچر ریپوزٹری ٹیلنٹ کے اس جذبے کو کھولنے اور پھیلانے کے لیے ایک موثر پلیٹ فارم فراہم کرے گی۔ صرف مل کر ہی ہم کوئی ایسی چیز بنا سکتے ہیں جو اس علاقے کو نمایاں طور پر وسعت دے گا جس پر وولفرم لینگویج کمپیوٹنگ پیراڈائم کو لاگو کیا جا سکتا ہے۔

30 سال سے زیادہ عرصے میں، ہم نے Wolfram زبان کے ساتھ ایک طویل سفر طے کیا ہے۔ اب ایک ساتھ مل کر، اور بھی آگے بڑھیں۔ میں دنیا بھر میں وولفرم زبان کے تمام معزز صارفین کی پرزور ترغیب دیتا ہوں کہ وہ اس کے لیے ایک پلیٹ فارم کے طور پر فنکشنل ریپوزٹری کو استعمال کریں، ساتھ ہی نئے سافٹ ویئر پروجیکٹ جیسے فری وولفرام انجن فار ڈیولپرز۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں