Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Habari, Habr! Ninawasilisha kwa mawazo yako tafsiri ya chapisho la Stephen Wolfram "Hazina ya Kazi ya Wolfram: Kuzindua Jukwaa Wazi la Kupanua Lugha ya Wolfram".

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Masharti ya uthabiti wa lugha ya Wolfram

Leo tunasimama kwenye kizingiti cha mafanikio makubwa pamoja na lugha ya programu Lugha ya Wolfram. Wiki tatu tu zilizopita tulizindua injini ya bure ya Wolfram kwa watengenezajiili kuwasaidia watumiaji wetu kujumuisha Lugha ya Wolfram katika miradi yao mikubwa ya programu. Leo tunazindua Hazina ya kazi ya Wolfram, ili kutoa jukwaa lililoratibiwa la vitendaji vilivyoundwa ili kupanua lugha ya Wolfram, na pia tunafungua hifadhi ya vitendaji kwa ajili ya mtu yeyote anayeweza kuchangia katika uundaji wa bidhaa yetu ya programu.

Hazina ya Kazi ya Wolfram ni kitu kilichowezeshwa na hali ya kipekee ya Lugha ya Wolfram sio tu kama lugha ya programu, lakini pia kama lugha. lugha kamili ya kompyuta. Katika lugha za kitamaduni za upangaji, kuongeza utendakazi mpya muhimu kwa kawaida hujumuisha kuunda maktaba nzima ya ziada ambayo inaweza kufanya kazi au isifanye kazi inapotumiwa pamoja. Walakini, katika Lugha ya Wolfram mengi yamejengwa katika lugha yenyewe, kwamba inawezekana kupanua utendaji wake kwa kiasi kikubwa kwa kuongeza tu vitendaji vipya ambavyo vinaunganishwa mara moja katika muundo wa jumla wa lugha nzima.

Kwa mfano, hazina ya kazi ya Wolfram tayari inayo Vipengele vipya 532 imeundwa katika kategoria 26 za mada:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Vivyo hivyo zaidi ya Vitendaji 6000 vya kawaida, iliyojengwa katika lugha ya Wolfram, kila chaguo la kukokotoa kutoka kwenye hifadhi ina ukurasa wa hati wenye maelezo yao ya kina na mifano ya kazi:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Ili kufika kwenye ukurasa, nakili kitu hapo juu (kazi ya BLOB), kibandike kwenye safu ya ingizo na kisha utekeleze kitendakazi - tayari kimejengwa kwa lugha ya Wolfram na kuungwa mkono na chaguo-msingi kuanzia na. toleo la 12.0:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Ikumbukwe hapa kwamba wakati usindikaji LogoQRCcode Huhitaji, kwa mfano, kusanidi "maktaba ya usindikaji wa picha" - kwa kuwa tayari tumetekeleza njia thabiti na ya algorithmic kwa uangalifu katika Lugha ya Wolfram. usindikaji wa picha, ambayo inaweza kuchakatwa mara moja na kazi mbalimbali za lugha ya picha:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Natumaini kwamba kwa msaada jamii ya ajabu na yenye vipaji, ambayo imekuwa ikikua na kupanuka (kulingana na Lugha ya Wolfram) katika miongo kadhaa iliyopita. Hazina ya utendaji kazi wa Wolfram itaruhusu wakati ujao unaoonekana kupanua kwa kiasi kikubwa anuwai ya (ikiwezekana kuwa muhimu, iliyobobea katika nyanja mbalimbali za sayansi na teknolojia) zinazopatikana katika lugha. Kwa hivyo, inawezekana kutumia yaliyomo katika lugha (kazi zake zilizojengwa) na kanuni za maendeleo, ambayo hutekelezwa kwa kuzingatia lugha. (Ikumbukwe hapa kwamba Lugha ya Wolfram tayari ina zaidi ya Historia ya miaka 30 ya maendeleo na ukuaji thabiti).
Kazi kutoka kwenye hazina zinaweza kuwa na vipande vidogo au vikubwa vya msimbo vilivyoandikwa katika Lugha ya Wolfram. Kwa mfano, hizi zinaweza kuwa simu API za nje na huduma au maktaba za nje katika lugha zingine. Kipengele cha kipekee cha mbinu hii ni kwamba unapochimbua utendakazi wa kiwango cha mtumiaji, hakutakuwa na uwezekano wa kutolingana kwa sababu mbinu hiyo imejengwa juu ya muundo thabiti wa Lugha ya Wolfram - na kila kipengele kitafanya kazi kiotomatiki kwa usahihi - haswa kama iliyokusudiwa.
Muundo wa ganda na programu ya Hifadhi ya Kipengele cha Wolfram imeundwa ili kila mtu aweze kuchangia sababu ya kawaida kwa njia rahisi na rahisi kwao - kwa kweli, tu. kwa kujaza faili ya maandishi ya notepad (iliyo na kiendelezi cha nb) WL. Vitendaji vilivyojumuishwa kiotomatiki hukuruhusu kuangalia vitendaji vipya vilivyoongezwa kwenye hazina ili kuhakikisha kuunganishwa kwao katika lugha. Kampuni yetu inaweka kamari juu ya anuwai ya watumiaji ambao wanaweza kujumuisha utendakazi wao katika lugha, badala ya uchangamano mkubwa wa vitendaji vipya - na ingawa kuna mchakato wa ukaguzi, hatusisitiza chochote kama hicho. uchambuzi wa kina wa kubuni au viwango vikali vya ukamilifu na kutegemewa kwa vipengele vipya vya mtumiaji, kinyume na majaribio makali zaidi ya vipengele vilivyojumuishwa katika lugha kuu tunayotumia.

Kuna ubadilishanaji na maelezo mengi katika mbinu hii, lakini lengo letu ni kuboresha hazina ya vipengele vya Wolfram kwa matumizi ya mtumiaji na kuhakikisha kuwa vipengele vipya vya mtumiaji vinachangia ipasavyo katika ukuzaji wa lugha. Tunapokua, sina shaka kwamba tutalazimika kuvumbua mbinu mpya za kuchakata na kuhalalisha vitendaji vilivyojengwa ndani ya ghala, si haba kwa kupanga idadi kubwa ya vitendakazi na kutafuta zile ambazo watumiaji wanahitaji. Hata hivyo, inatia moyo kwamba njia tuliyochagua ni mwanzo mzuri. Mimi binafsi aliongeza vipengele kadhaa kwa hifadhidata asili. Nyingi zinatokana na msimbo ambao nimeunda kibinafsi kwa muda mrefu. Na ilinichukua dakika chache tu kuzisukuma kwenye hazina. Sasa kwa kuwa ziko kwenye hazina, hatimaye naweza - mara moja na wakati wowote - kutumia kazi hizi kama inahitajika, bila kuwa na wasiwasi juu ya kutafuta faili, kupakua vifurushi, nk.

Kuongeza ufanisi huku kupunguza gharama

Hata kabla ya Mtandao, kulikuwa na njia za kushiriki msimbo wa Lugha ya Wolfram (mradi wetu mkuu wa kwanza ulikuwa Chanzo cha Math, iliyoundwa kwa ajili ya Mathematica mwaka wa 1991 kulingana na CD-ROM, nk). Bila shaka, mbinu iliyopendekezwa kwa utekelezaji kulingana na hazina ya kazi ya Wolfram ni zana yenye nguvu zaidi na ya kutegemewa ya kutekeleza kazi zilizo hapo juu.

Kwa zaidi ya miaka 30, kampuni yetu imefanya kazi kwa bidii ili kudumisha uadilifu wa muundo wa lugha ya Wolfram, na hii ni muhimu ili kuhakikisha kwamba lugha ya Wolfram inakuwa si lugha ya programu tu, bali pia lugha. lugha kamili ya kompyuta. Na kwa hivyo, kiini cha mkabala wa kutekeleza hazina ya kazi ya Wolfram ni kutumia mkabala wa umoja wa utayarishaji na uundaji wa vitendaji vipya ambavyo huongezwa kwa mpangilio na kufaa katika mfumo wa lugha ili iweze kukuza na kubadilika pamoja.

Michakato mbalimbali ya hesabu hutokea katika muundo wa utekelezaji wa kila kazi. Ikumbukwe hapa kwamba ni muhimu kwamba kazi ina mwonekano wazi na sare na usomaji wa kuona kwa mtumiaji. Katika muktadha huu, utendakazi uliojengewa ndani wa Lugha ya Wolfram umewasilishwa na zaidi ya mifano 6000 mfululizo ya jinsi ya kupanga vitendaji vizuri (hizi ni zetu. video za programu za moja kwa mojaambayo ni pamoja na mamia ya masaa ya mchakato wa kuunda programu za kawaida) Kile ambacho mkabala huu hatimaye hufanya hazina ya kipengele cha Wolfram kuweza kufanya vyema ni asili ya kimuundo ya Lugha ya Wolfram, yenye idadi kubwa ya maktaba za ziada na anuwai ambazo tayari zimejengwa katika lugha. Kwa mfano, ikiwa una kazi ambayo inashughulikia picha, au safu chacheAu miundo ya molekuliNa data ya kijiografia au wengine wengine - uwakilishi wao thabiti wa kiishara tayari upo katika lugha, na shukrani kwa hili, kazi yako mara moja inaendana na kazi zingine katika lugha.

Kuunda hazina ambayo inafanya kazi vizuri ni kazi ya kupendeza ya kupanga meta. Kwa mfano, ziada ya vikwazo katika programu haitaruhusu kupata umoja unaohitajika na ulimwengu wote wa algorithm. Kama vile idadi isiyotosha ya vizuizi vya utendakazi, hutaweza kutekeleza mlolongo sahihi wa kutosha wa utekelezaji wa algorithm. Mifano kadhaa za awali za kutekeleza maelewano ya mbinu hizi, zilizotekelezwa na kampuni yetu, zilifanya kazi kwa utulivu - hizi ni: Maonyesho ya Mradi wa Tungsten, ilizinduliwa mwaka wa 2007 na sasa inaendeshwa mtandaoni ikiwa na zaidi ya maonyesho 12000 yanayoingiliana na watumiaji. KATIKA Hifadhidata ya Wolfram kuna hifadhidata zaidi ya 600 zilizotengenezwa tayari ambazo zinaweza kutumika katika Lugha ya Wolfram, na Hifadhi ya mtandao wa neva wa Wolfram inajazwa tena na mitandao mipya ya neva karibu kila wiki (tayari kuna 118 kati yao sasa) na imeunganishwa mara moja kupitia kazi. NetModel katika Lugha ya Wolfram.

Mifano zote hapo juu zina kipengele cha msingi - vitu na kazi zilizokusanywa katika mradi zina kiwango cha juu sana cha muundo na usambazaji wa taratibu. Bila shaka, maelezo ya muundo wa kile ambacho ni demo au mtandao wa neva au kitu kingine kinaweza kutofautiana sana, lakini muundo wa msingi wa hazina yoyote ya sasa daima hubakia sawa. Kwa hivyo ni nini maoni yako, mtumiaji mpendwa, kuhusu kuunda hazina kama hiyo inayoongeza viendelezi kwa lugha ya Wolfram? Lugha ya Wolfram imeundwa kunyumbulika sana, kwa hivyo inaweza kupanuliwa na kurekebishwa kwa njia yoyote ile. Hali hii ni muhimu sana kwa uwezo wa kuunda miradi mikubwa ya programu kwa haraka katika Lugha ya Wolfram. Ikumbukwe hapa kwamba jinsi unyumbufu wa lugha unavyoongezeka, gharama ya miradi inayotekelezwa kwa lugha hiyo itaongezeka bila shaka. Hii ni kutokana na ukweli kwamba zaidi mtumiaji anatumia lugha hiyo, utendaji wa kujitolea zaidi anapokea, lakini hatupaswi kusahau kwamba mbinu hii inaweza pia kuwa na pande hasi katika suala la kutokuwa na uwezo wa kuhakikisha uthabiti thabiti wa moduli za programu.

Kuna shida ya kawaida na maktaba katika lugha za jadi za programu - ikiwa unatumia maktaba moja, kwa mfano, nambari itafanya kazi kwa usahihi, lakini ikiwa utajaribu kutumia maktaba nyingi, hakuna hakikisho kwamba wataingiliana kwa usahihi. . Pia, katika lugha za kitamaduni za programu - tofauti na lugha kamili ya kompyuta - hakuna njia ya kuhakikisha uwepo wa uwasilishaji thabiti uliojumuishwa kwa kazi zozote au aina za data isipokuwa miundo yao ya kimsingi. Lakini, kwa kweli, shida ni kubwa zaidi kuliko inavyoonekana kwa mtazamo wa kwanza: ikiwa mtu anaunda wima wa kiwango kikubwa cha utendaji, basi bila gharama kubwa za programu kuu ya mradi ambayo tunaweka katika lugha ya Wolfram, haiwezekani. kufikia uthabiti. Kwa hiyo ni muhimu kwamba moduli zote za programu daima zifanye kazi kwa usahihi.

Kwa hivyo wazo la hazina ya kipengele cha Wolfram ni kuzuia tatizo lililoainishwa hapo juu kwa kuongeza tu viendelezi kwa lugha katika vipande vidogo vya msimbo kupitia vipengele vya mtu binafsi ambavyo ni rahisi kukuza kama moduli madhubuti. Hiyo inasemwa, kuna vipengele vya programu ambavyo haviwezi kurahisishwa kwa kutumia vipengele vya mtu binafsi (na kampuni yetu inapanga kutoa algoriti ya programu iliyoboreshwa katika siku za usoni ili kusaidia kutekeleza vifurushi vya programu kwa kiwango kikubwa). Hata hivyo, kulingana na kazi ambazo tayari zimejengwa katika Lugha ya Wolfram, kuna uwezekano mwingi wa upangaji ambao unatekelezwa kulingana na kazi za kibinafsi. Wazo hapa ni kwamba kwa bidii kidogo ya programu inawezekana kuunda idadi ya kazi mpya na muhimu sana ambazo zitatoa mshikamano wa kutosha kwa muundo, zitaratibiwa vizuri na kila mmoja, na pia, kwa kuongeza hii, wao. itaweza kutumika kwa urahisi na kwa wingi katika lugha siku zijazo.

Njia hii, bila shaka, ni maelewano. Ikiwa kifurushi kikubwa kingetekelezwa, ulimwengu mpya mzima wa utendaji unaweza kufikiria ambao ungekuwa na nguvu sana na muhimu. Ikiwa kuna haja ya kupata utendaji mpya ambao utaendana na kila kitu kingine, lakini huna nia ya kutumia jitihada nyingi katika kuendeleza mradi huo, hii, kwa bahati mbaya, inaweza kusababisha kupunguzwa kwa upeo wa mradi wako. Wazo la hazina ya kipengele cha Wolfram ni kutoa utendakazi kwa sehemu inayobainisha ya mradi; mbinu hii itaongeza utendakazi wenye nguvu huku ikifanya iwe rahisi kudumisha uthabiti mzuri katika mradi wa programu.

Saidia kuongeza utendakazi maalum kwenye hazina ya chaguo la kukokotoa

Timu yetu imejitahidi sana kurahisisha watumiaji kuchangia vipengele vya hazina vya Wolfram. Kwenye eneo-kazi (tayari ndani toleo la 12.0), Unaweza kupitia tabo kuu za menyu kwa mfuatano: Faili > Mpya > RepositoryItem > Kitu cha Hifadhi ya Kazi na utapata "Ufafanuzi Daftari" (kwa utaratibu ndani ya benchi ya kazi. Unaweza pia kutumia kazi ya analog - Unda Daftari["FunctionResource"]):

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Kuna hatua mbili kuu ambazo utahitaji kutekeleza: kwanza, kwa kweli andika msimbo wa chaguo lako la kukokotoa na, pili, andika hati zinazoonyesha jinsi utendaji wako unapaswa kufanya kazi.
Bofya kitufe cha "Fungua Sampuli" hapo juu ili kuona mfano wa unachohitaji kufanya:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Kimsingi, unajaribu kuunda kitu sawa na kitendakazi kilichojengewa ndani katika Lugha ya Wolfram. Isipokuwa kwamba inaweza kufanya kitu maalum zaidi kuliko kazi iliyojengwa ndani. Wakati huo huo, matarajio kuhusu ukamilifu na uaminifu wake yatakuwa chini sana.
Unahitaji kuipa chaguo lako la kukokotoa jina linalofuata miongozo ya kutaja kazi ya Lugha ya Wolfram. Kwa kuongeza, utahitaji kuendeleza nyaraka za kazi yako, sawa na kazi za ndani za lugha. Nitazungumza juu ya hili kwa undani zaidi baadaye. Kwa sasa, angalia tu kwamba katika safu ya vifungo juu ya faili ya daftari ya ufafanuzi kuna kifungo "Miongozo ya Sinema", ambayo inaelezea nini cha kufanya, na kitufe cha Zana, ambacho hutoa zana za kuumbiza hati za chaguo lako.
Unapohakikisha kuwa kila kitu kimejazwa vizuri na uko tayari, bofya kitufe cha "Angalia". Ni kawaida kabisa kwamba bado haujapata maelezo yote. Kwa hivyo kazi ya "Angalia" itaendesha kiotomatiki na kufanya ukaguzi mwingi wa mtindo na uthabiti. Mara nyingi, itakuhimiza mara moja kuthibitisha na kukubali masahihisho (Kwa mfano: "Mstari huu lazima umalizike na koloni," na itakuhimiza kuingia kwenye koloni). Wakati mwingine atakuuliza uongeze au ubadilishe kitu wewe mwenyewe. Tutakuwa tukiongeza vipengele vipya kila mara kwa utendakazi wa kiotomatiki wa kitufe cha Angalia, lakini kimsingi madhumuni yake ni kuhakikisha kuwa kila kitu unachowasilisha kwenye hazina ya vipengele tayari kinafuata kwa karibu miongozo mingi ya mitindo iwezekanavyo.

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Kwa hiyo, baada ya kuendesha "Angalia", unaweza kutumia "Preview". "Onyesho la kuchungulia" huunda onyesho la kukagua ukurasa wa hati uliofafanua kwa chaguo lako la kukokotoa. Unaweza pia kuunda hakikisho la faili iliyoundwa kwenye kompyuta yako au faili iliyo kwenye hifadhi ya wingu. Ikiwa, kwa sababu fulani, haujaridhika na kile unachokiona katika hakikisho, rudi tu nyuma na ufanye masahihisho muhimu, na kisha ubofye kitufe cha Hakiki tena.
Sasa uko tayari kusukuma kazi yako kwenye hifadhi. Kitufe cha Kupeleka hukupa chaguzi nne:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Jambo muhimu katika hatua hii ni kwamba unaweza kuwasilisha kazi yako kwa hazina ya kazi ya Wolfram ili ipatikane kwa mtu yeyote. Wakati huo huo, unaweza pia kuweka utendaji wako kwa idadi ndogo ya watumiaji. Kwa mfano, unaweza kuunda chaguo la kukokotoa ambalo linapangishwa ndani ya nchi kwenye kompyuta yako ili ipatikane unapotumia kompyuta hiyo mahususi. Au unaweza kuichapisha kwenye yako akaunti ya wingu, ili ipatikane kwako wakati umeunganishwa kwenye wingu. Unaweza pia kupangisha hadharani (kupeleka) kipengele kupitia akaunti yako ya wingu. Haitakuwa katika hazina kuu ya kipengele cha Wolfram, lakini utaweza kumpa mtu URL ambayo itamruhusu kupata kipengele chako kutoka kwa akaunti yako. (Katika siku zijazo, tutasaidia pia hazina kuu katika kampuni yetu yote.)

Kwa hivyo tuseme unataka kuwasilisha kitendakazi chako kwa msingi wa maarifa wa utendaji wa Wolfram. Ili kufanya hivyo, bofya kitufe cha "Wasilisha" kwenye hifadhi. Kwa hivyo ni nini kinachotokea wakati huu? Maombi yako yamewekwa kwenye foleni mara moja ili kukaguliwa na kuidhinishwa na timu yetu iliyojitolea ya wasimamizi.

Kadiri ombi lako linavyoendelea kupitia mchakato wa uidhinishaji (ambao kwa kawaida huchukua siku kadhaa), utapokea mawasiliano kuhusu hali yake na pengine mapendekezo ya matumizi ya baadaye. Lakini pindi kipengele chako kitakapoidhinishwa, kitachapishwa mara moja kwenye Hifadhi ya Kipengele cha Wolfram na kitapatikana kwa mtu yeyote kutumia. (Na hii itaonekana katika muhtasari wa habari wa vipengele vipya na kadhalika.)

Ni nini kinachopaswa kuwa kwenye hifadhi?

Ikumbukwe kwamba kampuni yetu ina viwango vya juu sana vya ukamilifu, kutegemewa na ubora wa jumla, na kati ya vitendaji 6000+ ambavyo tayari tumejenga katika lugha ya Wolfram katika kipindi cha miaka 30+ iliyopita, zote zinakidhi mahitaji yaliyo hapo juu. Lengo la Hazina ya Kazi ya Wolfram ni kutumia muundo na utendakazi wote ambao tayari upo katika Lugha ya Wolfram ili kuongeza vitendaji vyepesi zaidi (yaani, utendaji wa juu zaidi) iwezekanavyo.

Bila shaka, utendakazi katika hazina ya kazi ya Wolfram lazima ziambatane na kanuni za muundo wa Lugha ya Wolfram - ili ziweze kuingiliana kikamilifu na vitendaji vingine na matarajio ya watumiaji kuhusu jinsi kipengele hiki kinafaa kufanya kazi ipasavyo. Hata hivyo, si lazima utendakazi ziwe za ukamilifu sawa au kutegemewa.

Katika vipengele vilivyojumuishwa vya lugha ya Wolfram, tunafanya kazi kwa bidii kufanya utendakazi wa programu kuwa wa jumla iwezekanavyo. Hiyo inasemwa, unapokuwa kwenye hazina ya kazi ya Wolfram, hakuna chochote kibaya kwa kuwa na kazi ndani yake ambayo inashughulikia kesi fulani maalum lakini muhimu. Kwa mfano, kazi SendMailFromNotebook inaweza kupokea faili katika muundo mmoja maalum na kuunda barua kwa njia moja maalum. Mchoro wa Polygonal huunda chati zilizo na rangi fulani tu na lebo, nk.

Jambo lingine linalohusiana na kazi zilizojengwa ni kwamba kampuni yetu inafanya kila juhudi kushughulikia kesi zote za atypical, kushughulikia kwa usahihi pembejeo zisizo sahihi, na kadhalika. Katika hifadhi ya kazi, ni kawaida kabisa kuwa na kazi maalum ambayo inashughulikia kesi kuu za kutatua tatizo na kupuuza wengine wote.

Jambo lililo wazi ni kwamba ni bora kuwa na vitendaji vinavyofanya zaidi na kuifanya vizuri zaidi, lakini uboreshaji wa hazina ya kazi - kinyume na kazi zilizojengwa ndani ya lugha ya Wolfram - inapaswa kuwa na kazi nyingi zilizounganishwa na kazi zaidi badala ya kuzama ndani. michakato ya utekelezaji wa kila kazi maalum.

Sasa hebu tuangalie mfano wa kazi za kupima kwenye hifadhi. Matarajio ya uthabiti kwa vitendaji kama hivyo kwa kawaida ni ya chini sana kuliko vitendaji vya lugha vilivyojumuishwa. Hii ni kweli hasa katika hali ambapo utendakazi hutegemea rasilimali za nje kama vile API, ni muhimu kufanya majaribio mara kwa mara, ambayo hutokea kiotomatiki ndani ya kanuni za uthibitishaji. Katika faili ya nb, unaweza kubainisha ufafanuzi (katika sehemu ya Maelezo ya Ziada) na ubainishe majaribio mengi kama inavyofafanuliwa na mifuatano ya ingizo na pato au vibambo kamili vya aina. Jaribio la Uthibitishaji, kadiri unavyoona inafaa. Kwa kuongeza, mfumo unajaribu mara kwa mara kugeuza mifano ya nyaraka unayotoa katika mchakato wa uthibitishaji (na wakati mwingine hii inaweza kuwa ya rasilimali nyingi, kwa mfano, kwa kazi ambayo matokeo yake inategemea nambari za nasibu au wakati wa siku).

Kama matokeo, hazina ya kazi itakuwa na idadi ya ugumu wa utekelezaji. Baadhi zitakuwa safu moja tu ya msimbo, zingine zinaweza kuhusisha maelfu au makumi ya maelfu ya mistari, ikiwezekana kutumia vitendaji vingi vya msaidizi. Ni lini inafaa kuongeza kazi ambayo inahitaji nambari ndogo sana kufafanua? Kimsingi, ikiwa kwa kazi kuna jina zuri la mnemonic, ambayo watumiaji wangeelewa kwa urahisi ikiwa wangeiona kwenye kipande cha msimbo, basi inaweza tayari kuongezwa. Vinginevyo, pengine ni bora tu kuambatisha tena msimbo kwenye programu yako kila wakati unapohitaji kuitumia.

Kusudi kuu la hazina ya kazi (kama jina lake linavyopendekeza) ni kuanzisha vipengele vipya katika lugha. Ikiwa unataka kuongeza data mpya au vyombo vipya, tumia Hifadhi ya Data ya Wolfram. Lakini vipi ikiwa unataka kuanzisha aina mpya za vitu kwa mahesabu yako?

Kwa kweli kuna njia mbili. Unaweza kutaka kutambulisha aina mpya ya kitu ambacho kitatumika katika vitendaji vipya kwenye hazina ya kazi. Na katika kesi hii, unaweza kuandika uwakilishi wake wa kiishara kila wakati na uitumie wakati wa kuingiza au kutoa kazi katika hazina ya kazi.

Lakini vipi ikiwa unataka kuwakilisha kitu na kisha kufafanua, kupitia vitendaji vilivyopo katika Lugha ya Wolfram, kwamba unataka kufanya kazi nacho? Lugha ya Wolfram daima imekuwa na utaratibu mwepesi wa hii, unaoitwa Maadili ya Juu. Na vizuizi kadhaa (haswa kwa kazi ambazo hawawezi kutathmini hoja zao), hazina ya kazi hukuruhusu kuwakilisha tu chaguo la kukokotoa na kufafanua maadili yake. (Kuongeza matarajio ya uthabiti wakati wa kuunda muundo mpya mkubwa ambao umeunganishwa kikamilifu katika Lugha ya Wolfram kwa ujumla ni utaratibu muhimu sana ambao hauwezi kufikiwa kwa kuongeza tu gharama ya mradi na ni jambo ambalo kampuni yetu hufanya kama sehemu ya miradi. kwa maendeleo ya muda mrefu ya lugha, kazi hii sio lengo ambalo limewekwa kama sehemu ya ukuzaji wa hazina).

Kwa hivyo, ni nini kinachoweza kuwa katika nambari ya kazi katika hazina ya kazi? Kila kitu kilichojengwa katika Lugha ya Wolfram, kwa kweli (angalau ikiwa haiwakilishi vitisho kwa Usalama na utendakazi wa programu yenyewe, kama mazingira ya kompyuta) pamoja na utendakazi wowote kutoka kwa hazina ya kazi. Walakini, kuna utendakazi mwingine: chaguo la kukokotoa katika hazina ya kazi inaweza kuita API, au in Wingu la WolframAu kutoka kwa chanzo kingine. Bila shaka, kuna baadhi ya hatari zinazohusiana na hili. Kutokana na ukweli kwamba hakuna dhamana kwamba API haitabadilika, na kazi katika duka la kazi itaacha kufanya kazi. Ili kusaidia kutambua masuala kama haya, kuna dokezo kwenye ukurasa wa hati (katika sehemu ya Mahitaji) kwa chaguo la kukokotoa ambalo linategemea zaidi ya utendaji wa Lugha ya Wolfram uliojengewa ndani. (Kwa kweli, linapokuja suala la data halisi, kunaweza kuwa na shida hata na utendakazi huu - kwa sababu data ya ulimwengu halisi inabadilika kila wakati, na wakati mwingine hata ufafanuzi wake na muundo hubadilika.)

Je! msimbo wote wa hazina ya kipengele cha Wolfram unapaswa kuandikwa katika Wolfram? Kwa hakika, msimbo ulio ndani ya API ya nje haufai kuandikwa katika lugha ya Wolfram, ambayo hata haifanyi msimbo wa lugha. Kwa kweli, ukipata chaguo la kukokotoa katika karibu lugha yoyote ya nje au maktaba, unaweza kuunda kanga ambayo hukuruhusu kuitumia kwenye hazina ya kazi ya Wolfram. (Kawaida unapaswa kutumia kazi zilizojengwa kwa hili Tathmini ya Nje au Kazi ya Nje katika msimbo wa lugha ya Wolfram.)

Kwa hivyo kuna umuhimu gani wa kufanya hivi? Kimsingi, hii hukuruhusu kutumia mfumo mzima wa Lugha ya Wolfram uliojumuishwa na seti yake nzima ya uwezo wa programu. Ukipata utekelezaji wa msingi kutoka kwa maktaba au lugha ya nje, basi unaweza kutumia muundo tajiri wa ishara wa Lugha ya Wolfram kuunda utendaji wa hali ya juu unaoruhusu watumiaji kutumia kwa urahisi utendakazi wowote ambao tayari umetekelezwa. Angalau, hii inapaswa kuwezekana katika ulimwengu bora ambapo vizuizi vyote vya upakiaji wa maktaba n.k. vipo, ambapo vitashughulikiwa kiotomatiki na Lugha ya Wolfram. (Inapaswa kuzingatiwa kuwa katika mazoezi kunaweza kuwa na shida na kuanzisha lugha za nje mfumo maalum wa kompyuta, na uhifadhi wa wingu unaweza kusababisha masuala ya ziada ya usalama).

Kwa njia, unapotazama maktaba za kawaida za nje, mara nyingi zinaonekana kuwa ngumu sana kufunikwa katika kazi chache tu, lakini katika hali nyingi, ugumu mwingi unatokana na kuunda miundombinu inayohitajika kwa maktaba na kazi zote. kuunga mkono. Walakini, wakati wa kutumia Lugha ya Wolfram, miundombinu kwa kawaida tayari imejengwa ndani ya vifurushi, na kwa hivyo hakuna haja ya kufichua kazi hizi zote za usaidizi kwa undani, lakini kuunda tu vitendaji kwa kazi maalum za "juu" kwenye maktaba. .

"Mfumo wa ikolojia" wa msingi wa maarifa

Iwapo umeandika vipengele unavyotumia mara kwa mara, viwasilishe kwa Hazina ya Kazi ya Wolfram! Ikiwa kitu zaidi hakitoki kutoka kwa hii (maendeleo ya lugha), basi hata hivyo itakuwa rahisi zaidi kwako kutumia kazi kwa matumizi ya kibinafsi. Walakini, ni busara kudhani kwamba ikiwa unatumia kazi mara kwa mara, labda watumiaji wengine pia watapata kuwa muhimu.

Kwa kawaida, unaweza kujikuta katika hali ambapo huwezi - au hutaki - kushiriki kazi zako au katika tukio la kupata upatikanaji wa rasilimali za habari za kibinafsi. Hata katika hali kama hizi, unaweza tu kupeleka kazi katika akaunti yako ya wingu, kubainisha haki upatikanaji wao. (Ikiwa shirika lako lina Wingu la kibinafsi la Wolfram Enterprise, basi hivi karibuni itaweza kupangisha hazina yake ya vipengele vya faragha, ambayo inaweza kusimamiwa kutoka ndani ya shirika lako na kuweka ikiwa italazimisha au kutolazimisha kutazamwa na watumiaji wengine.)

Kazi unazowasilisha kwa hazina ya kazi ya Wolfram si lazima ziwe kamilifu; ni lazima ziwe na manufaa tu. Hii ni kidogo kama sehemu ya "Makosa" katika uandikaji wa kawaida wa Unix - katika "Sehemu ya Ufafanuzi" kuna sehemu ya "Vidokezo vya Mwandishi" ambapo unaweza kuelezea mapungufu, matatizo, n.k. ambayo tayari unajua kuhusu utendakazi wako. Zaidi ya hayo, unapowasilisha kipengele chako kwenye hazina, unaweza kuongeza madokezo ya uwasilishaji ambayo yatasomwa na timu iliyojitolea ya wasimamizi.

Mara kipengele kinapochapishwa, ukurasa wake huwa na viungo viwili chini: "Tuma ujumbe kuhusu kipengele hiki"Na"Jadili katika jumuiya ya Wolfram" Ikiwa unaambatisha dokezo (kwa mfano, niambie kuhusu hitilafu), unaweza kuteua kisanduku kinachosema unataka ujumbe wako na maelezo ya mawasiliano kushirikiwa na mwandishi wa kipengele.

Wakati mwingine unataka tu kutumia vitendaji kutoka kwenye hazina ya kazi ya Wolfram, kama vile vitendaji vilivyojengewa ndani, bila kuangalia misimbo yao. Walakini, ikiwa unataka kuangalia ndani, kila wakati kuna kitufe cha Notepad hapo juu. Bofya juu yake na utapata nakala yako mwenyewe ya daftari asili ya ufafanuzi ambayo iliwasilishwa kwenye hazina ya kipengele. Wakati mwingine unaweza kuitumia tu kama mfano kwa mahitaji yako. Wakati huo huo, unaweza pia kuendeleza marekebisho yako mwenyewe ya kazi hii. Unaweza kutaka kuchapisha vitendaji hivi ulivyopata kutoka kwenye hazina kwenye kompyuta yako au katika akaunti yako ya hifadhi ya wingu ya aphid, labda ungependa kuziwasilisha kwa msingi wa maarifa ya utendakazi, labda kama toleo lililoboreshwa, lililopanuliwa la chaguo la kukokotoa asili.

Katika siku zijazo, tunapanga kuunga mkono uundaji wa mtindo wa Git kwa hazina za vipengele, lakini kwa sasa tunajaribu kuifanya iwe rahisi, na kila mara tunayo toleo moja linalokubalika la kila kipengele kilichojumuishwa katika lugha. Mara nyingi zaidi (isipokuwa watengenezaji huacha kudumisha vipengee walivyotengeneza na kujibu mawasilisho ya watumiaji), mwandishi asilia wa kipengele huchukua udhibiti wa masasisho yake na kuwasilisha matoleo mapya, ambayo hukaguliwa na, ikiwa watapitisha mchakato wa ukaguzi. , iliyochapishwa katika lugha.

Hebu fikiria swali la jinsi "versioning" ya kazi zilizotengenezwa hufanya kazi. Hivi sasa, unapotumia kitendakazi kutoka kwa hifadhi ya kazi, ufafanuzi wake utahifadhiwa kwenye kompyuta yako (au kwenye akaunti yako ya wingu ikiwa unatumia wingu). Ikiwa toleo jipya la kipengele linapatikana, utakapokitumia tena utapokea ujumbe wa kukuarifu kuhusu hili. Na ikiwa unataka kusasisha kazi kwa toleo jipya, unaweza kuifanya kwa kutumia amri ResourceUpdate. ("Blabu ya kazi" huhifadhi maelezo zaidi ya matoleo, na tunapanga kufanya hili lifikiwe zaidi na watumiaji wetu katika siku zijazo.)

Mojawapo ya mambo mazuri kuhusu Hazina ya Kazi ya Wolfram ni kwamba programu yoyote ya Lugha ya Wolfram, popote inaweza kutumia vitendaji kutoka kwayo. Programu ikionekana kwenye daftari, mara nyingi ni rahisi kufomati faili za hazina kama vitendaji rahisi kusoma vya "kitu cha binary kinachofanya kazi" (labda kwa seti ya toleo linalofaa).

Unaweza kufikia kitendakazi chochote kwenye hifadhi ya chaguo-kazi kwa kutumia maandishi RasilimaliFunction[...]. Na hii ni rahisi sana ikiwa utaandika nambari au maandishi moja kwa moja kwa Injini ya Wolfram, kwa mfano, na kwa kutumia IDE au kihariri cha msimbo wa maandishi (Inapaswa kuzingatiwa haswa kuwa hazina ya kazi inaendana kikamilifu na Injini ya Bure ya Wolfram kwa Wasanidi Programu).

Jinsi gani kazi?

Ndani ya kazi kwenye hazina ya Wolfram hii inawezekana kwa kutumia sawa kabisa mifumo ya rasilimali misingi, kama katika hazina zetu nyingine zote zilizopo (duka la data, Hifadhi ya Neural Net, ukusanyaji wa miradi ya demo nk), kama rasilimali zingine zote za mfumo wa Wolfram, RasilimaliFunction hatimaye kulingana na utendakazi RasilimaliObject.

Fikiria RasilimaliFunction:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Ndani unaweza kuona habari fulani kwa kutumia kitendakazi Taarifa:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Je, kuanzisha kazi ya rasilimali kunafanyaje kazi? Rahisi zaidi ni kesi ya kawaida. Hapa kuna mfano ambao unachukua kazi (katika kesi hii kazi safi tu) na kuifafanua kama kazi ya rasilimali kwa kipindi fulani cha programu:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Mara tu umefanya ufafanuzi, unaweza kutumia kazi ya rasilimali:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Kumbuka kuwa kuna aikoni nyeusi kwenye kitone hiki cha chaguo za kukokotoa Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram. Hii ina maana kwamba chaguo za kukokotoa za BLOB hurejelea kipengele cha kukokotoa cha nyenzo ya kumbukumbu kilichobainishwa kwa kipindi cha sasa. Kipengele cha rasilimali ambacho kimehifadhiwa kwenye kompyuta yako au akaunti ya wingu kina ikoni ya kijivu Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram. Na kuna ikoni ya chungwa kwa kipengele rasmi cha rasilimali katika Hifadhi ya Kipengele cha Wolfram Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram.

Kwa hivyo ni nini hufanyika unapotumia menyu ya Panua kwenye Daftari ya Ufafanuzi? Kwanza, inachukua ufafanuzi wote katika notepad na kutoka kwao huunda mfano RasilimaliObject) (Na ikiwa unatumia IDE ya maandishi au programu, basi unaweza pia kuunda wazi RasilimaliObject)

Usambazaji wa ndani wa kazi kutoka kwa hifadhi kwenye kompyuta yako unafanywa kwa kutumia amri LocalCache kwa kitu cha rasilimali kuihifadhi kama LocalObject kwenye mfumo wako wa faili. Upelekaji kwa akaunti ya wingu hufanywa kwa kutumia amri CloudDeploy kwa kitu cha rasilimali, na uwekaji wa wingu wa umma ni CloudPublish. Katika hali zote Rejesta ya Rasilimali pia hutumika kusajili jina la kazi ya rasilimali, kwa hivyo RasilimaliFunction["jina"] itafanya kazi.

Ukibofya kitufe cha Wasilisha kwa Hifadhi ya Kazi, nini kinatokea chini yake ResourceSubmit wito kwa kitu cha rasilimali. (Na ikiwa unatumia kiolesura cha kuingiza maandishi, unaweza pia kupiga simu ResourceSubmit moja kwa moja.)

Kwa chaguo-msingi, mawasilisho hufanywa chini ya jina linalohusishwa na Kitambulisho chako cha Wolfram. Lakini ikiwa unatuma maombi kwa niaba ya timu ya maendeleo au shirika, unaweza weka kitambulisho tofauti cha mchapishaji na badala yake itumie kama jina kuingiliana na maoni yako.

Baada ya kuwasilisha chaguo zako zozote za kukokotoa kwa msingi wa maarifa ya utendakazi, itawekwa kwenye foleni kwa ukaguzi. Ukipokea maoni kama jibu, kwa kawaida yatakuwa katika mfumo wa faili ya maandishi na "kisanduku cha maoni" cha ziada kimeongezwa. Unaweza kuangalia hali ya programu yako kila wakati kwa kutembelea lango la mwanachama wa mfumo wa rasilimali. Lakini mara kipengele chako kitakapoidhinishwa, utaarifiwa (kupitia barua pepe) na kipengele chako kitachapishwa kwenye hazina ya kipengele cha Wolfram.

Baadhi ya hila kazini

Kwa mtazamo wa kwanza inaweza kuonekana kama unaweza kuchukua daftari la ufafanuzi na kuiweka neno moja kwenye hazina ya kazi, hata hivyo, kwa kweli kuna hila nyingi zinazohusika - na kuzishughulikia kunahitaji kufanya programu ngumu ya meta, kushughulikia usindikaji wa ishara. kama msimbo unaofafanua kazi , na Notepad yenyewe imefafanuliwa. Mengi ya haya hutokea ndani, nyuma ya pazia, lakini inaweza kuwa na athari fulani ambazo zinafaa kueleweka ikiwa utachangia katika msingi wa maarifa ya kipengele.

Ujanja wa kwanza mara moja: Unapojaza Daftari ya Ufafanuzi, unaweza kurejelea kazi yako kila mahali kwa kutumia jina kama Kazi Yangu, ambayo inaonekana kama jina la kawaida la kazi katika Lugha ya Wolfram, lakini kwa hati za kumbukumbu za kazi hii inabadilishwa. RasilimaliFunction["Kazi Yangu"] ndio watumiaji watatumia wakati wa kufanya kazi na chaguo la kukokotoa.

Ujanja wa pili: unapounda kitendakazi cha rasilimali kutoka kwa Daftari ya Ufafanuzi, vitegemezi vyote vinavyohusika katika ufafanuzi wa chaguo za kukokotoa lazima vinatwe na kujumuishwa kwa uwazi. Walakini, ili kuhakikisha kuwa ufafanuzi unabaki wa kawaida, unahitaji kuweka kila kitu kwa kipekee nafasi ya majina. (Bila shaka, kazi zinazofanya yote, ziko kwenye hazina ya kazi.)

Kwa kawaida hutaona ufuatiliaji wowote wa msimbo unaotumika kusanidi nafasi hii ya majina. Lakini ikiwa kwa sababu fulani unaita ishara isiyotekelezwa ndani ya kazi yako, basi utaona kuwa ishara hii iko katika muktadha wa ndani wa kazi. Walakini, wakati wa kusindika Notepad ya Ufafanuzi, angalau ishara inayolingana na kazi yenyewe ni inayoweza kurekebishwa kwa onyesho bora zaidi kama BLOB inayofanya kazi badala ya herufi mbichi katika muktadha wa ndani.

Hifadhi ya chaguo za kukokotoa ni ya kufafanua vitendaji vipya. Na kazi hizi zinaweza kuwa na chaguzi. Mara nyingi vigezo hivi (kwa mfano, Method au Ukubwa wa Picha) itaweza kutumika kwa kazi zilizojengwa ndani, na vile vile kwa zile ambazo alama zilizojengwa tayari zipo. Lakini wakati mwingine kipengele kipya kinaweza kuhitaji chaguo mpya. Ili kudumisha ustahimilivu, vigezo hivi vinahitaji kuwa alama zilizofafanuliwa katika muktadha wa kipekee wa ndani (au kitu kama utendakazi mzima wa rasilimali, yaani zenyewe). Kwa unyenyekevu, hazina ya kazi hukuruhusu kufafanua chaguo mpya katika ufafanuzi wa kamba. Na kwa urahisi wa mtumiaji, ufafanuzi huu (ikizingatiwa walitumia Thamani ya Chaguo ΠΈ ChaguoMchoro) pia huchakatwa ili wakati wa kutumia kazi, vigezo vinaweza kutajwa sio tu kama kamba, lakini pia kama alama za kimataifa zilizo na majina sawa.

Vitendaji vingi hufanya tu kile wanachopaswa kufanya kila wakati vinapoitwa, lakini vitendaji vingine vinahitaji kuanzishwa kabla ya kuendesha kipindi fulani - na kutatua tatizo hili, kuna sehemu ya "Kuanzisha" katika sehemu ya Ufafanuzi.

Kazi kutoka kwa hazina zinaweza kutumia vitendaji vingine ambavyo tayari viko kwenye hazina; ili kuweka ufafanuzi wa hazina ya kazi ambayo inajumuisha kazi mbili (au zaidi) zinazorejeleana, lazima uzipeleke kwenye kipindi chako cha programu ili uweze. kumbukumbu kama juu yao RasilimaliFunction["jina"], basi unaweza kuunda michanganyiko ya kazi hizi unayohitaji, mifano (sikuelewa) na kuongeza kazi mpya kwenye hifadhi kulingana na wale ambao tayari wametumwa mapema. (au tayari au hapo awali - maneno yote mawili ni magumu)

Matarajio ya maendeleo. Nini kifanyike wakati hazina inakuwa kubwa sana?

Leo tunazindua tu Hifadhi ya Kipengele cha Wolfram, lakini baada ya muda tunatarajia kwamba ukubwa na utendaji wake unaweza kuongezeka kwa kasi, na jinsi inavyokua katika maendeleo kutakuwa na matatizo mbalimbali ambayo tayari tunatarajia yanaweza kutokea.

Tatizo la kwanza linahusu majina ya kazi na upekee wao. Hifadhi ya kazi imeundwa kwa njia ambayo, kama vitendaji vilivyojengewa ndani katika Lugha ya Wolfram, unaweza kurejelea kitendakazi chochote ulichopewa kwa kubainisha tu jina lake. Lakini hii inamaanisha kuwa majina ya kazi lazima yawe ya kipekee ulimwenguni kote kwenye hazina, ili, kwa mfano, kuwe na moja tu. RasilimaliFunction["Kazi Yangu Ninayoipenda"].

Hili linaweza kuonekana kama tatizo kubwa mwanzoni, lakini inafaa kutambua kwamba kimsingi ni tatizo sawa na la mambo kama vile vikoa vya mtandao au vishikizo vya mitandao ya kijamii. Na ukweli ni kwamba mfumo unahitaji tu kuwa na msajili - na hili ni mojawapo ya majukumu ambayo kampuni yetu itatekeleza kwa msingi wa maarifa ya kazi ya Wolfram. (Kwa matoleo ya kibinafsi ya hazina, wasajili wao wanaweza kuwa wasimamizi.) Bila shaka, kikoa cha Intaneti kinaweza kusajiliwa bila kuwa na chochote juu yake, lakini katika hifadhi ya kazi, jina la kazi linaweza kusajiliwa tu ikiwa kuna ufafanuzi halisi wa. kazi.

Sehemu ya jukumu letu katika kudhibiti msingi wa maarifa ya utendaji wa Wolfram ni kuhakikisha kuwa jina lililochaguliwa kwa chaguo za kukokotoa lina mantiki kutokana na ufafanuzi wa chaguo hili na kwamba linafuata kanuni za kutaja za Lugha ya Wolfram. Tuna zaidi ya miaka 30 ya uzoefu wa kutaja vipengele vilivyojumuishwa ndani katika Lugha ya Wolfram, na timu yetu ya wasimamizi italeta uzoefu huo kwenye hazina ya kazi pia. Bila shaka, daima kuna tofauti. Kwa mfano, inaweza kuonekana kuwa bora kuwa na jina fupi kwa kazi fulani, lakini ni bora "kutetea" kwa jina refu, maalum zaidi kwa sababu kuna uwezekano mdogo wa kukutana na mtu anayetaka kutengeneza jina la utendaji sawa katika siku zijazo. .

(Ikumbukwe hapa kwamba kuongeza tu lebo fulani ya mwanachama ili kutofautisha utendakazi hakutakuwa na athari inayokusudiwa. Kwa sababu isipokuwa unasisitiza kugawa lebo kila wakati, utahitaji kufafanua lebo chaguo-msingi kwa utendakazi wowote, na pia kutenga lebo za mwandishi. , ambayo ingehitaji tena uratibu wa kimataifa.)

Kadiri msingi wa maarifa wa kazi za Wolfram unavyokua, mojawapo ya matatizo ambayo yanaweza kutokea ni ugunduzi wa vitendaji, ambavyo mfumo hutoa. kipengele cha utafutaji (na faili za ufafanuzi zinaweza kujumuisha maneno muhimu, nk). Kwa vitendaji vilivyojengewa ndani katika Lugha ya Wolfram, kuna kila aina ya marejeleo mtambuka katika hati ili kusaidia "kutangaza" utendakazi. Kazi katika hazina ya chaguo za kukokotoa zinaweza kurejelea vitendaji vilivyojumuishwa. Lakini vipi kuhusu njia nyingine kote? Ili kufanya hivyo, tutafanya majaribio na miundo tofauti ili kufichua utendakazi wa hazina katika kurasa za nyaraka kwa vitendakazi vilivyojengewa ndani.

Kwa kazi zilizojengwa ndani ya Lugha ya Wolfram kuna kinachojulikana kama safu ya ugunduzi iliyotolewa na mtandao wa "kurasa za usaidizi", ambayo hutoa orodha zilizopangwa za vipengele vinavyohusiana na maeneo maalum. Daima ni vigumu kusawazisha kurasa za mwanadamu, na jinsi lugha ya Wolfram inavyokua, kurasa za mwanadamu mara nyingi zinahitaji kupangwa upya kabisa. Ni rahisi sana kuweka vitendaji kutoka hazina katika kategoria pana, na hata kuvunja kategoria hizo mara kwa mara, lakini ni muhimu zaidi kuwa na kurasa za marejeleo zilizopangwa vizuri. Bado haijabainika jinsi bora ya kuziunda kwa msingi mzima wa maarifa ya utendakazi. Kwa mfano, CreateResourceObjectGallery katika hazina ya kipengele, mtu yeyote anaweza kuchapisha ukurasa wa wavuti ulio na "chaguo" zao kutoka kwa hazina:

Hazina ya Kazi ya Wolfram: Fungua jukwaa la ufikiaji kwa viendelezi vya lugha ya Wolfram

Hifadhi ya utendaji kazi wa Wolfram imesanidiwa kama hazina ya utendakazi endelevu, ambapo kitendakazi chochote ndani yake kitafanya kazi kila mara. Bila shaka, matoleo mapya ya vipengele yanaweza kupatikana, na tunatarajia kwamba baadhi ya vipengele bila shaka vitaacha kutumika baada ya muda. Kazi zitafanya kazi ikiwa zinatumiwa katika programu, lakini kurasa zao za nyaraka zitaunganishwa na kazi mpya, za juu zaidi.

Hifadhi ya Kipengele cha Wolfram imeundwa ili kukusaidia kugundua vipengele vipya kwa haraka na kujifunza njia mpya za kutumia lugha ya Wolfram. Tuna matumaini makubwa kwamba baadhi ya yale ambayo yamegunduliwa katika hazina ya vipengele hatimaye yataleta maana ya kuwa sehemu zilizojengewa ndani za Lugha ya Wolfram. Katika muongo uliopita tumekuwa na seti kama hiyo vipengele ambavyo vilianzishwa awali katika Wolfram | Alfa. Na mojawapo ya mafunzo tuliyojifunza kutokana na uzoefu huu ni kwamba kufikia viwango vya ubora na uthabiti ambavyo tunazingatia katika kila kitu kilichojengwa katika lugha ya Wolfram kunahitaji kazi kubwa, ambayo mara nyingi ni ngumu zaidi kuliko jitihada za awali za utekelezaji wa wazo hilo. Hata hivyo, kipengele cha utendaji katika msingi wa maarifa ya utendaji kinaweza kutumika kama uthibitisho muhimu sana wa dhana kwa ajili ya utendaji wa siku zijazo ambao hatimaye unaweza kujengwa katika lugha ya Wolfram.

Jambo muhimu zaidi hapa ni kwamba chaguo la kukokotoa katika hifadhi ya kazi ni kitu ambacho kinapatikana kwa kila mtumiaji kutumia hivi sasa. Inawezekana kwamba kipengele cha lugha asili kinaweza kuwa bora zaidi na chenye utendaji zaidi, lakini hazina ya kipengele inaweza kuruhusu watumiaji kupata vipengele vyote vipya mara moja. Na, muhimu zaidi, dhana hii inaruhusu kila mtu kuongeza vipengele vyovyote vipya anavyotaka.

Hapo awali katika historia ya lugha ya Wolfram, wazo hili lisingefanya kazi vizuri kama lilivyofanya, lakini katika hatua hii kuna juhudi nyingi zinazowekwa katika lugha, na uelewa wa kina wa kanuni za muundo wa lugha, hivi kwamba sasa inaonekana sana. inawezekana kwa jumuiya kubwa ya watumiaji kuongeza vipengele ambavyo vitadumisha uthabiti wa muundo ili kuwafanya kuwa wa manufaa kwa anuwai ya watumiaji.

Kuna roho ya ajabu ya talanta(?) katika jumuiya ya watumiaji wa Lugha ya Wolfram. (Bila shaka, jumuiya hii inajumuisha watu wengi wanaoongoza wa R&D katika nyanja mbalimbali.) Ninatumai kwamba Hifadhi ya Kipengele cha Wolfram itatoa jukwaa mwafaka la kufungua na kusambaza ari hii ya talanta. Kwa pamoja tu tunaweza kuunda kitu ambacho kitapanua kwa kiasi kikubwa eneo ambalo dhana ya kompyuta ya lugha ya Wolfram inaweza kutumika.

Katika zaidi ya miaka 30, tumetoka mbali na lugha ya Wolfram. Sasa pamoja, twende mbali zaidi. Ninawahimiza sana watumiaji wote wanaoheshimiwa wa lugha ya Wolfram duniani kote kutumia hazina ya utendaji kama jukwaa la hili, pamoja na mradi mpya wa programu kama vile Injini ya Bure ya Wolfram kwa Wasanidi Programu.

Chanzo: mapenzi.com

Kuongeza maoni