Hello, Habr! Nippreżenta għall-attenzjoni tagħkom traduzzjoni tal-post ta' Stephen Wolfram
Prerekwiżiti għall-konsistenza tal-lingwa Wolfram
Illum ninsabu fuq l-għatba ta' kisbiet kbar flimkien mal-lingwa tal-ipprogrammar
Ir-Repożitorju tal-Funzjonijiet Wolfram huwa xi ħaġa magħmula possibbli min-natura unika tal-Lingwa Wolfram mhux biss bħala lingwa ta’ programmar, iżda wkoll bħala
Pereżempju, ir-repożitorju tal-funzjoni Wolfram diġà fih
Bl-istess mod aktar minn
Biex tasal għall-paġna, ikkopja l-oġġett ta’ hawn fuq (funzjoni BLOB), waħħalha fil-linja tal-input u mbagħad ħaddem il-funzjoni - hija diġà mibnija fil-lingwa Wolfram u appoġġjata awtomatikament billi tibda b’
Għandu jiġi nnutat hawnhekk li meta tipproċessa
Nittama li bl-appoġġ
Funzjonijiet mir-repożitorju jista' jkun fihom biċċiet żgħar jew kbar ta' kodiċi miktuba fil-Lingwa Wolfram. Pereżempju, dawn jistgħu jkunu sejħiet
Il-qoxra u l-istruttura tal-ipprogrammar tar-Repożitorju tal-Features Wolfram hija mfassla sabiex kulħadd ikun jista’ jikkontribwixxi għall-kawża komuni bl-aktar mod sempliċi u konvenjenti għalihom - fil-fatt, biss
Hemm ħafna kompromessi u dettalji f'dan l-approċċ, iżda l-għan tagħna huwa li nottimizzaw ir-repożitorju tal-karatteristiċi Wolfram kemm għall-esperjenza tal-utent kif ukoll biex niżguraw li karatteristiċi ġodda tal-utent jikkontribwixxu b'mod sinifikanti għall-iżvilupp tal-lingwa. Hekk kif nikbru, m'għandi l-ebda dubju li ser ikollna nivvintaw metodi ġodda għall-ipproċessar u l-validazzjoni ta' funzjonijiet mibnija fir-repożitorju, mhux l-inqas biex norganizzaw għadd kbir ta' funzjonijiet u nsibu dawk li l-utenti jeħtieġu. Madankollu, huwa inkoraġġanti li t-triq li għażilna hija bidu tajjeb. Jien personalment
Tiżdied l-effiċjenza filwaqt li tnaqqas l-ispejjeż
Anke qabel l-Internet, kien hemm modi kif taqsam il-kodiċi tal-Lingwa Wolfram (l-ewwel proġett ċentralizzat ewlieni tagħna kien
Għal aktar minn 30 sena, il-kumpanija tagħna ħadmet b’mod diliġenti biex iżżomm l-integrità tal-istruttura tal-lingwa Wolfram, u dan huwa kritiku biex jiġi żgurat li l-lingwa Wolfram issir mhux biss lingwa ta’ programmar, iżda wkoll
Diversi proċessi komputazzjonali jseħħu fl-istruttura ta 'implimentazzjoni ta' kull funzjoni. Għandu jiġi nnutat hawnhekk li huwa meħtieġ li l-funzjoni jkollha dehra ċara u uniformi u leġibbiltà viżwali għall-utent. F'dan il-kuntest, il-funzjonijiet integrati tal-Lingwa Wolfram huma ppreżentati b'aktar minn 6000 eżempju sekwenzjali ta' kif jiġu pprogrammati sew il-funzjonijiet (dawn huma tagħna
Il-ħolqien ta 'repożitorju li fil-fatt jaħdem tajjeb huwa kompitu ta' meta-programmazzjoni interessanti. Pereżempju, eċċess ta 'restrizzjonijiet fil-programm mhux se jippermetti li tinkiseb l-unifikazzjoni u l-universalità meħtieġa tal-algoritmu. Hekk kif b'numru insuffiċjenti ta 'restrizzjonijiet funzjonali, ma tkunx tista' timplimenta sekwenza korretta biżżejjed ta 'eżekuzzjoni ta' algoritmi. Diversi eżempji preċedenti ta 'implimentazzjoni ta' kompromess ta 'dawn l-approċċi, implimentati mill-kumpanija tagħna, ħadmu b'mod pjuttost stabbli - dawn huma:
L-eżempji kollha ta 'hawn fuq għandhom karatteristika fundamentali - l-oġġetti u l-funzjonijiet miġbura fil-proġett għandhom grad għoli ħafna ta' strutturar u distribuzzjoni ta 'proċessi. Naturalment, id-dettall tal-istruttura ta 'dak li huwa demo jew netwerk newrali jew xi ħaġa oħra jista' jvarja ħafna, iżda l-istruttura fundamentali għal kwalunkwe repożitorju attwali dejjem tibqa 'l-istess. Allura x'inhi l-opinjoni tiegħek, għażiż utent, dwar il-ħolqien ta 'repożitorju bħal dan li jżid estensjonijiet mal-lingwa Wolfram? Il-Lingwa Wolfram hija mfassla biex tkun estremament flessibbli, u għalhekk tista' tiġi estiża u mmodifikata bi kwalunkwe mod. Din iċ-ċirkustanza hija estremament importanti għall-abbiltà li jinħolqu malajr diversi proġetti ta 'softwer fuq skala kbira fil-Lingwa Wolfram. Hawn ta’ min jinnota li hekk kif tiżdied il-flessibbiltà tal-lingwa, l-ispiża tal-proġetti implimentati f’lingwa bħal din inevitabbilment se tiżdied. Dan huwa dovut għall-fatt li l-aktar l-utent juża lingwa bħal din, il-funzjonalità aktar dedikata li jirċievi, iżda m'għandniex ninsew li dan l-approċċ jista 'jkollu wkoll naħat negattivi f'termini ta' inkapaċità li tiġi żgurata konsistenza konsistenti tal-moduli tal-programm.
Hemm problema komuni bil-libreriji f'lingwi ta 'programmar tradizzjonali - jekk tuża librerija waħda, pereżempju, il-kodiċi se jaħdem b'mod korrett, imma jekk tipprova tuża libreriji multipli, m'hemm l-ebda garanzija li jinteraġixxu b'mod korrett ma' xulxin . Barra minn hekk, f'lingwi ta 'programmar tradizzjonali - kuntrarjament għal lingwa tal-kompjuters sħiħ - m'hemm l-ebda mod biex tiġi ggarantita l-preżenza ta' rappreżentazzjonijiet inkorporati konsistenti għal kwalunkwe funzjoni jew tip ta 'dejta minbarra l-istrutturi bażiċi tagħhom. Iżda, fil-fatt, il-problema hija saħansitra akbar milli tidher mal-ewwel daqqa t'għajn: jekk wieħed qed jibni vertikali ta' funzjonalità fuq skala kbira, allura mingħajr l-ispejjeż enormi tal-ipprogrammar ċentralizzat tal-proġett li npoġġu fil-lingwa Wolfram, huwa impossibbli li tikseb konsistenza. Għalhekk huwa importanti li l-moduli kollha tas-softwer dejjem jaħdmu flimkien b'mod korrett.
Allura l-idea wara r-repożitorju tal-karatteristiċi Wolfram hija li tiġi evitata l-problema deskritta hawn fuq billi sempliċement iżżid estensjonijiet mal-lingwa f'biċċiet ta 'kodiċi relattivament żgħar permezz ta' karatteristiċi individwali li huma aktar faċli biex jiġu żviluppati bħala moduli koerenti. Għalhekk, hemm karatteristiċi ta 'programmazzjoni li ma jistgħux isiru konvenjenti bl-użu ta' funzjonijiet individwali (u l-kumpanija tagħna qed tippjana li tirrilaxxa algoritmu ta 'programmazzjoni ottimizzat fil-futur qarib biex tgħin fl-implimentazzjoni ta' pakketti ta 'softwer fuq skala kbira). Madankollu, ibbażati fuq il-funzjonijiet diġà mibnija fil-Lingwa Wolfram, hemm ħafna possibbiltajiet ta 'programmazzjoni li huma implimentati bbażati fuq funzjonijiet individwali. L-idea hawnhekk hija li bi sforz ta' programmazzjoni relattivament żgħir huwa possibbli li jinħolqu għadd ta' funzjonijiet ġodda u utli ħafna li jipprovdu koerenza suffiċjenti għad-disinn, ikunu kkoordinati tajjeb ma' xulxin, u wkoll, minbarra dan, huma se jkunu jistgħu jintużaw faċilment u ħafna fil-lingwa fil-futur.
Dan l-approċċ huwa, ovvjament, kompromess. Jekk jiġi implimentat pakkett akbar, tista 'tiġi immaġinata dinja ġdida ta' funzjonalità li tkun estremament qawwija u utli. Jekk ikun hemm bżonn li tikseb funzjonalità ġdida li tidħol f'kull ħaġa oħra, iżda m'intix lest li tonfoq ħafna sforz fuq l-iżvilupp tal-proġett, dan, sfortunatament, jista 'jwassal għal tnaqqis fl-ambitu tal-proġett tiegħek. L-idea wara r-repożitorju tal-karatteristiċi Wolfram hija li tipprovdi funzjonalità għal parti li tiddefinixxi ta 'proġett; dan l-approċċ se jżid funzjonalità qawwija filwaqt li jagħmilha aktar faċli biex tinżamm konsistenza tajba fi proġett ta' programmar.
Għajnuna biex iżżid funzjonijiet tad-dwana fir-repożitorju tal-funzjonijiet
It-tim tagħna ħadem ħafna biex jagħmilha faċli għall-utenti biex jikkontribwixxu għall-karatteristiċi tar-repożitorju Wolfram. Fuq id-desktop (diġà fi
Hemm żewġ passi ewlenin li ser ikollok bżonn twettaq: l-ewwel, fil-fatt ikteb il-kodiċi għall-funzjoni tiegħek u, it-tieni, ikteb dokumentazzjoni li turi kif għandha taħdem il-funzjoni tiegħek.
Ikklikkja l-buttuna "Open Sample" fin-naħa ta' fuq biex tara eżempju ta' dak li għandek bżonn tagħmel:
Essenzjalment, qed tipprova toħloq xi ħaġa simili għal funzjoni integrata fil-Lingwa Wolfram. Ħlief li tista 'tagħmel xi ħaġa ħafna aktar speċifika minn funzjoni integrata. Fl-istess ħin, l-aspettattivi dwar il-kompletezza u l-affidabbiltà tiegħu se jkunu ħafna aktar baxxi.
Trid tagħti lill-funzjoni tiegħek isem li jsegwi l-linji gwida dwar l-ismijiet tal-funzjoni tal-Wolfram Language. Barra minn hekk, ser ikollok bżonn tiżviluppa dokumentazzjoni għall-funzjoni tiegħek, simili għall-funzjonijiet mibnija fil-lingwa. Nitkellem dwar dan f'aktar dettall aktar tard. Għalissa, innota biss li fir-ringiela ta 'buttuni fin-naħa ta' fuq tal-fajl notebook tad-definizzjoni hemm buttuna
Meta tkun ċert li kollox jimtela sew u tkun lest, ikklikkja l-buttuna "Iċċekkja". Huwa kompletament normali li għadek ma dehretx id-dettalji kollha. Allura l-funzjoni "Iċċekkja" awtomatikament taħdem u tagħmel ħafna kontrolli ta 'stil u konsistenza. Ħafna drabi, immedjatament iqanqlek tikkonferma u taċċetta l-korrezzjonijiet (Per eżempju: "Din il-linja trid tispiċċa b'kolon," u se jqanqlek biex iddaħħal kolon). Xi drabi hi se titlobek biex iżżid jew tibdel xi ħaġa lilek innifsek. Inkunu qed inżidu kontinwament karatteristiċi ġodda mal-funzjonalità awtomatika tal-buttuna Iċċekkja, iżda bażikament l-iskop tagħha huwa li tiżgura li dak kollu li tissottometti lir-repożitorju tal-karatteristiċi diġà jsegwi mill-qrib kemm jista’ jkun linji gwida tal-istil
Allura, wara li taħdem "Iċċekkja", tista 'tuża "Preview". "Preview" toħloq preview tal-paġna tad-dokumentazzjoni li ddefinijt għall-funzjoni tiegħek. Tista' wkoll toħloq preview għal fajl maħluq fuq il-kompjuter tiegħek jew għal fajl li jinsab fil-ħażna tas-sħab. Jekk, għal xi raġuni, m'intix sodisfatt b'dak li tara fil-preview, sempliċement mur lura u agħmel il-korrezzjonijiet meħtieġa, u mbagħad ikklikkja l-buttuna Preview mill-ġdid.
Issa inti lest biex timbotta l-funzjoni tiegħek fir-repożitorju. Il-buttuna Użu tagħtik erba' għażliet:
L-importanti f'dan il-pass hija li tista' tissottometti l-funzjoni tiegħek lir-repożitorju tal-funzjonijiet Wolfram sabiex tkun disponibbli għal kulħadd. Fl-istess ħin, tista 'wkoll tpoġġi l-funzjoni tiegħek għal numru limitat ta' utenti. Pereżempju, tista 'toħloq funzjoni li tkun ospitata lokalment fuq il-kompjuter tiegħek sabiex tkun disponibbli meta tuża dak il-kompjuter partikolari. Jew tista 'tpoġġiha fil tiegħek
Mela ejja ngħidu li trid fil-fatt tissottometti l-funzjoni tiegħek lill-bażi ta 'għarfien tal-funzjoni Wolfram. Biex tagħmel dan, tikklikkja l-buttuna "Ibgħat" lir-repożitorju. Allura x'qed jiġri bħalissa? L-applikazzjoni tiegħek tiġi immedjatament fil-kju għal reviżjoni u approvazzjoni mit-tim dedikat tagħna ta 'kuraturi.
Hekk kif l-applikazzjoni tiegħek timxi 'l quddiem permezz tal-proċess ta' approvazzjoni (li tipikament jieħu diversi jiem), int ser tirċievi komunikazzjonijiet dwar l-istatus tagħha u possibbilment suġġerimenti għal użu fil-futur. Iżda ladarba l-karatteristika tiegħek tiġi approvata, tiġi ppubblikata immedjatament fil-Wolfram Feature Repository u tkun disponibbli għal kulħadd biex tużah. (U dan se jidher fi
X'għandu jkun fil-ħażna?
Għandu jiġi nnutat li l-kumpanija tagħna għandha standards għoljin ħafna għall-kompletezza, l-affidabbiltà u l-kwalità ġenerali, u mill-6000 + funzjoni li diġà bnejna fil-lingwa Wolfram matul l-aħħar 30 + sena, kollha jissodisfaw ir-rekwiżiti ta 'hawn fuq. L-għan tar-Repożitorju tal-Funzjonijiet Wolfram huwa li tuża l-istruttura u l-funzjonalità kollha li diġà jeżistu fil-Lingwa Wolfram sabiex iżżid kemm jista’ jkun funzjonijiet eħfef (jiġifieri, funzjonijiet ta’ prestazzjoni ogħla).
Naturalment, il-funzjonijiet fir-repożitorju tal-funzjonijiet Wolfram għandhom jikkonformaw mal-prinċipji tad-disinn tal-Lingwa Wolfram - sabiex ikunu jistgħu jinteraġixxu bis-sħiħ ma 'funzjonijiet oħra u l-aspettattivi tal-utenti ta' kif il-funzjoni għandha taħdem sew. Madankollu, il-funzjonijiet m'għandhomx għalfejn ikunu ta' kompletezza jew affidabilità ugwali.
Fil-funzjonijiet inkorporati tal-lingwa Wolfram, naħdmu iebes biex il-funzjonijiet ta 'programmar ikunu ġenerali kemm jista' jkun. That being said, meta fir-repożitorju tal-funzjonijiet Wolfram m'hemm xejn ħażin li jkollok funzjoni fiha li sempliċement tieħu ħsieb xi każ speċifiku ħafna iżda utli. Per eżempju, il-funzjoni
Punt ieħor relatat mal-funzjonijiet integrati huwa li l-kumpanija tagħna tagħmel kull sforz biex timmaniġġja l-każijiet atipiċi kollha, biex timmaniġġja b'mod korrett input żbaljat, eċċ. F'repożitorju tal-funzjonijiet, huwa kompletament normali li jkun hemm funzjoni speċjali li tieħu ħsieb il-każijiet ewlenin ta 'soluzzjoni ta' problema u tinjora l-oħrajn kollha.
Il-punt ovvju huwa li huwa aħjar li jkollok funzjonijiet li jagħmlu aktar u jagħmluha aħjar, iżda l-ottimizzazzjoni għal repożitorju ta' funzjonijiet - għall-kuntrarju tal-funzjonijiet integrati tal-lingwa Wolfram - għandu jkollha aktar funzjonijiet miġbura b'aktar funzjonijiet aktar milli tidhol f'dan. il-proċessi ta' implimentazzjoni ta' kull funzjoni speċifika.
Issa ejja nħarsu lejn eżempju ta 'funzjonijiet ta' ttestjar f'repożitorju. L-aspettattivi tal-konsistenza għal funzjonijiet bħal dawn huma naturalment ħafna aktar baxxi milli għall-funzjonijiet tal-lingwa integrati. Dan huwa veru speċjalment f'każijiet fejn il-funzjonijiet jiddependu fuq riżorsi esterni bħal APIs, huwa importanti li kontinwament isiru testijiet konsistenti, li awtomatikament jiġri fi ħdan l-algoritmi ta 'verifika. Fil-fajl nb, tista' tispeċifika b'mod espliċitu definizzjonijiet (fit-taqsima Informazzjoni Addizzjonali) u tispeċifika kemm-il testijiet kif definiti minn kordi ta' input u output jew oġġetti ta' karattru sħiħ tat-tip
Bħala riżultat, ir-repożitorju tal-funzjonijiet se jkollu numru ta 'kumplessitajiet ta' implimentazzjoni. Xi wħud se jkunu biss linja waħda ta 'kodiċi, oħrajn jistgħu jinvolvu eluf jew għexieren ta' eluf ta 'linji, li x'aktarx jużaw ħafna funzjonijiet helper. Meta ta 'min iżżid funzjoni li teħtieġ ftit li xejn kodiċi biex tiddefinixxi? Bażikament, jekk għal funzjoni hemm
L-għan ewlieni ta' repożitorju tal-funzjonijiet (kif jissuġġerixxi ismu) huwa li jintroduċi karatteristiċi ġodda fil-lingwa. Jekk trid iżżid data ġdida jew
Fil-fatt hemm żewġ modi. Tista' tkun trid tintroduċi tip ta' oġġett ġdid li se jintuża f'funzjonijiet ġodda fir-repożitorju tal-funzjonijiet. U f'dan il-każ, tista 'dejjem tikteb ir-rappreżentazzjoni simbolika tagħha u tużaha meta ddaħħal jew toħroġ funzjonijiet f'repożitorju tal-funzjonijiet.
Imma x'jiġri jekk trid tirrappreżenta oġġett u mbagħad tiddefinixxi, permezz ta' funzjonijiet eżistenti fil-Lingwa Wolfram, li trid taħdem miegħu? Il-Lingwa Wolfram dejjem kellha mekkaniżmu ħafif għal dan, imsejjaħ
Allura, x'jista 'jkun fil-kodiċi tal-funzjoni f'repożitorju tal-funzjoni?
Il-kodiċi kollu għar-repożitorju tal-karatteristiċi Wolfram għandu jinkiteb f'Wolfram? Ċertament, il-kodiċi ġewwa l-API esterna m'għandux jinkiteb bil-lingwa Wolfram, li lanqas biss tagħmel il-kodiċi tal-lingwa. Fil-fatt, jekk issib funzjoni fi kważi kull lingwa esterna jew librerija, tista 'toħloq tgeżwir li jippermettilek tużaha fir-repożitorju tal-funzjoni Wolfram. (Generalment għandek tuża l-funzjonijiet integrati għal dan
Allura x'inhu l-punt li tagħmel dan? Essenzjalment, dan jippermettilek tuża s-sistema Wolfram Language integrata kollha u s-sett kollu unifikat ta' kapaċitajiet tas-softwer tagħha. Jekk tikseb l-implimentazzjoni bażi minn librerija jew lingwa esterna, tista 'mbagħad tuża l-istruttura simbolika rikka tal-Lingwa Wolfram biex toħloq funzjoni tal-ogħla livell konvenjenti li tippermetti lill-utenti jużaw faċilment kwalunkwe funzjonalità diġà implimentata. Mill-inqas, dan għandu jkun fattibbli f'dinja ideali fejn jeżistu l-blokki kollha ta' tagħbija ta' libreriji eċċ., f'liema każ ikunu ttrattati awtomatikament mill-Lingwa Wolfram. (Ta 'min jinnota li fil-prattika jista' jkun hemm problemi bi
Mill-mod, meta tħares l-ewwel lejn libreriji esterni tipiċi, ħafna drabi jidhru kumplessi wisq biex ikunu koperti fi ftit funzjonijiet biss, iżda f'ħafna każijiet, ħafna mill-kumplessità tiġi mill-ħolqien tal-infrastruttura meħtieġa għal-librerija u l-funzjonijiet kollha biex appoġġha. Madankollu, meta tuża l-Lingwa Wolfram, l-infrastruttura hija tipikament diġà mibnija fil-pakketti, u għalhekk m'hemmx bżonn li dawn il-funzjonijiet ta 'appoġġ kollha jiġu esposti fid-dettall, iżda jinħolqu biss funzjonijiet għall-funzjonijiet speċifiċi għall-applikazzjoni "l-ogħla" fil-librerija. .
"Ekosistema" tal-bażi tal-għarfien
Jekk ktibt funzjonijiet li tuża regolarment, ibgħathom lir-Repożitorju tal-Funzjonijiet Wolfram! Jekk xi ħaġa aktar ma toħroġx minn dan (żvilupp tal-lingwa), allura anke allura jkun ħafna aktar konvenjenti għalik li tuża l-funzjonijiet għall-użu personali. Madankollu, huwa loġiku li wieħed jassumi li jekk tuża l-funzjonijiet regolarment, forsi utenti oħra jsibuhom utli wkoll.
Naturalment, tista' ssib ruħek f'sitwazzjoni fejn ma tkunx tista' - jew ma tridx - taqsam il-funzjonijiet tiegħek jew fil-każ li tikseb aċċess għal riżorsi privati ta' informazzjoni. Anke f'każijiet bħal dawn, tista 'sempliċement tuża l-funzjonijiet fil-kont tal-cloud tiegħek stess,
Il-funzjonijiet li tissottometti lir-repożitorju tal-funzjonijiet Wolfram m'għandhomx għalfejn ikunu perfetti; għandhom biss ikunu utli. Din hija daqsxejn bħas-sezzjoni "Żbalji" fid-dokumentazzjoni Unix klassika - fit-"Taqsima tad-Definizzjonijiet" hemm taqsima "Noti tal-Awtur" fejn tista' tiddeskrivi limitazzjonijiet, problemi, eċċ li diġà taf dwar il-funzjoni tiegħek. Barra minn hekk, meta tissottometti l-karatteristika tiegħek lir-repożitorju, tista’ żżid noti ta’ sottomissjoni li jinqraw minn tim dedikat ta’ kuraturi.
Ladarba karatteristika tiġi ppubblikata, il-paġna tagħha dejjem għandha żewġ links fil-qiegħ: "
Xi drabi trid tuża biss funzjonijiet mir-repożitorju tal-funzjonijiet Wolfram, bħal funzjonijiet integrati, mingħajr ma tħares lejn il-kodiċi tagħhom. Madankollu, jekk trid tagħti ħarsa ġewwa, dejjem hemm buttuna Notepad fil-quċċata. Ikklikkja fuqha u ikollok il-kopja tiegħek tan-notebook tad-definizzjoni oriġinali li ġie sottomess lir-repożitorju tal-karatteristiċi. Kultant tista 'sempliċement tużaha bħala eżempju għall-bżonnijiet tiegħek. Fl-istess ħin, tista 'wkoll tiżviluppa l-modifika tiegħek ta' din il-funzjoni. Tista 'tkun trid tpoġġi dawn il-funzjonijiet li sibt mir-repożitorju fuq il-kompjuter tiegħek jew fil-kont tal-ħażna tas-sħab tal-afidi tiegħek, forsi trid tissottomettihom lill-bażi tal-għarfien tal-funzjoni, forsi bħala verżjoni mtejba u estiża tal-funzjoni oriġinali.
Fil-futur, qed nippjanaw li nappoġġjaw il-forking ta' stil Git għar-repożitorji tal-karatteristiċi, iżda għalissa qed nippruvaw inżommuha sempliċi, u dejjem għandna verżjoni aċċettata waħda biss ta' kull karatteristika mibnija fil-lingwa. Iktar iva milli le (sakemm l-iżviluppaturi ma jieqfux iżommu l-karatteristiċi li żviluppaw u jirrispondu għas-sottomissjonijiet tal-utenti), l-awtur oriġinali tal-karatteristika jieħu l-kontroll tal-aġġornamenti għaliha u jissottometti verżjonijiet ġodda, li mbagħad jiġu riveduti u, jekk jgħaddu mill-proċess ta’ reviżjoni. , ippubblikata fil-lingwa.
Ejja nikkunsidraw il-kwistjoni ta 'kif taħdem il-"versioning" tal-funzjonijiet żviluppati. Bħalissa, meta tuża funzjoni mir-repożitorju tal-funzjonijiet, id-definizzjoni tagħha tkun maħżuna b'mod permanenti fuq il-kompjuter tiegħek (jew fil-kont tal-cloud tiegħek jekk qed tuża l-cloud). Jekk verżjoni ġdida ta' karatteristika tkun disponibbli, id-darba li jmiss li tużaha tirċievi messaġġ li jinnotifikak b'dan. U jekk trid taġġorna l-funzjoni għal verżjoni ġdida, tista 'tagħmel dan billi tuża l-kmand
Waħda mill-affarijiet sbieħ dwar il-Wolfram Function Repository hija li kwalunkwe programm Wolfram Language, kullimkien jista 'juża funzjonijiet minnu. Jekk programm jidher f'notepad, ħafna drabi jkun konvenjenti li tifformattja l-funzjonijiet tar-repożitorju bħala funzjonijiet ta '"funzjoni binarja oġġett" faċli biex jinqraw (forsi b'sett ta' verżjoni xieraq).
Dejjem tista' taċċessa kwalunkwe funzjoni fir-repożitorju tal-funzjonijiet billi tuża t-test
Kif taħdem?
Ġewwa l-funzjonijiet fir-repożitorju Wolfram dan huwa possibbli bl-użu eżattament l-istess
Ikkunsidra
Ġewwa tista 'tara xi informazzjoni billi tuża l-funzjoni
Kif taħdem it-twaqqif ta' funzjoni tar-riżorsi? L-aktar wieħed sempliċi huwa każ purament lokali. Hawn eżempju li jieħu funzjoni (f'dan il-każ biss funzjoni pura) u jiddefinixxiha bħala funzjoni tar-riżorsi għal sessjoni ta' programm partikolari:
Ladarba tkun għamilt id-definizzjoni, tista' tuża l-funzjoni tar-riżorsi:
Innota li hemm ikona sewda f'din il-blob tal-funzjoni . Dan ifisser li l-funzjoni BLOB tirreferi għall-funzjoni tar-riżorsi fil-memorja definita għas-sessjoni attwali. Karatteristika tar-riżorsi li hija maħżuna b'mod permanenti fuq il-kompjuter jew il-kont tas-sħab tiegħek għandha ikona griża . U hemm ikona oranġjo għal karatteristika tar-riżorsi uffiċjali fil-Wolfram Feature Repository .
Allura x'jiġri meta tuża l-menu Expand fil-Definition Notebook? L-ewwel, tieħu d-definizzjonijiet kollha fin-notepad u minnhom toħloq simboliku
L-iskjerament lokali ta' funzjoni minn repożitorju fuq il-kompjuter tiegħek isir bl-użu tal-kmand
Jekk tikklikkja l-buttuna Ibgħat għal Repożitorju tal-Funzjonijiet, x'jiġri taħtha
B'mod awtomatiku, is-sottomissjonijiet isiru taħt l-isem assoċjat mal-Wolfram ID tiegħek. Imma jekk qed tissottometti applikazzjoni f'isem tim ta' żvilupp jew organizzazzjoni, tista'
Wara li tkun issottomettit xi waħda mill-funzjonijiet tiegħek lill-bażi tal-għarfien tal-funzjoni, din tkun fil-kju għal reviżjoni. Jekk tirċievi kummenti bi tweġiba, dawn normalment ikunu fil-forma ta 'fajl ta' test b'"ċelluli ta' kummenti" addizzjonali miżjuda. Tista' dejjem tiċċekkja l-istatus tal-applikazzjoni tiegħek billi żżur
Xi irqaq fuq ix-xogħol
L-ewwel daqqa t'għajn jista' jidher li tista' tieħu notebook ta' definizzjoni u poġġih verbatim f'repożitorju tal-funzjonijiet, madankollu, fil-fatt hemm ħafna irqaq involuti - u t-tqandil tagħhom jeħtieġ li tagħmel xi meta-programmazzjoni pjuttost kumplessa, timmaniġġja l-ipproċessar simboliku bħala l-kodiċi li jiddefinixxi l-funzjoni, u n-Notepad innifsu huwa definit. Il-biċċa l-kbira ta 'dan jiġri internament, wara l-kwinti, iżda jista' jkollu xi implikazzjonijiet li ta 'min jifhem jekk int ser tikkontribwixxi għall-bażi ta' għarfien tal-karatteristika.
L-ewwel sottili immedjati: Meta timla n-Notebook tad-Definizzjoni, tista' sempliċement tirreferi għall-funzjoni tiegħek kullimkien billi tuża isem bħal MyFunction, li jidher qisu isem regolari għal funzjoni fil-Lingwa Wolfram, iżda għad-dokumentazzjoni tar-repożitorju tal-funzjonijiet din hija sostitwita
It-tieni sottili: meta toħloq funzjoni tar-riżorsi min-Notebook tad-Definizzjoni, id-dipendenzi kollha involuti fid-definizzjoni tal-funzjoni għandhom jinqabdu u jiġu inklużi b'mod espliċitu. Madankollu, biex tiżgura li d-definizzjonijiet jibqgħu modulari, għandek bżonn tpoġġi kollox f'uniku
Tipikament qatt mhu se tara xi traċċa tal-kodiċi użat biex jiġi kkonfigurat dan l-ispazju tal-isem. Imma jekk għal xi raġuni ssejjaħ simbolu mhux esegwit taħt il-funzjoni tiegħek, allura tara li dan is-simbolu jinsab fil-kuntest intern tal-funzjoni. Madankollu, meta tiġi pproċessata d-Definition Notepad, mill-inqas is-simbolu li jikkorrispondi għall-funzjoni nnifisha huwa
Ir-repożitorju tal-funzjonijiet huwa għad-definizzjoni ta' funzjonijiet ġodda. U dawn il-funzjonijiet jista 'jkollhom għażliet. Ħafna drabi dawn il-parametri (per eżempju,
Il-biċċa l-kbira tal-funzjonijiet sempliċement jagħmlu dak li suppost jagħmlu kull darba li jissejħu, iżda xi funzjonijiet jeħtieġ li jiġu inizjalizzati qabel ma jkunu jistgħu jaħdmu f'sessjoni partikolari - u biex issolvi din il-problema, hemm taqsima "Inizjalizzazzjoni" fit-taqsima Definizzjoni.
Funzjonijiet minn repożitorju jistgħu jużaw funzjonijiet oħra li huma diġà fir-repożitorju; sabiex jiġu stabbiliti definizzjonijiet għal repożitorju ta’ funzjonijiet li jinkludu żewġ (jew aktar) funzjonijiet li jirreferu għal xulxin, trid tużahom fis-sessjoni tal-programm tiegħek sabiex tkun tista’ referenza bħal fuqhom
Prospetti ta' żvilupp. X'għandu jiġri meta r-repożitorju jsir verament kbir?
Illum għadna qed inniedu l-Wolfram Feature Repository, iżda maż-żmien nistennew li d-daqs u l-funzjonalità tiegħu jistgħu jiżdiedu b’mod drammatiku, u hekk kif jikber fl-iżvilupp se jkun hemm diversi problemi li diġà nantiċipaw li jistgħu jinqalgħu.
L-ewwel problema tikkonċerna l-ismijiet tal-funzjonijiet u l-uniċità tagħhom. Ir-repożitorju tal-funzjonijiet huwa ddisinjat b'tali mod li, bħall-funzjonijiet integrati fil-Lingwa Wolfram, tista' tirreferi għal kwalunkwe funzjoni partikolari sempliċement billi tispeċifika isimha. Iżda dan inevitabilment ifisser li l-ismijiet tal-funzjonijiet għandhom ikunu globalment uniċi madwar ir-repożitorju, sabiex, pereżempju, jista’ jkun hemm wieħed biss
Din tista 'tidher problema kbira għall-ewwel, iżda ta' min jirrealizza li hija bażikament l-istess problema bħal għal affarijiet bħal dominji tal-internet jew mankijiet tal-midja soċjali. U l-fatt hu li s-sistema sempliċiment jeħtieġ li jkollha reġistratur - u dan huwa wieħed mir-rwoli li l-kumpanija tagħna se twettaq għall-bażi tal-għarfien tal-funzjoni Wolfram. (Għal verżjonijiet privati ta’ repożitorju, ir-reġistraturi tagħhom jistgħu jkunu amministraturi.) Naturalment, dominju tal-Internet jista’ jiġi reġistrat mingħajr ma jkollu xejn fuqu, iżda f’repożitorju ta’ funzjoni, isem ta’ funzjoni jista’ jiġi rreġistrat biss jekk ikun hemm definizzjoni attwali ta’ il-funzjoni.
Parti mir-rwol tagħna fil-ġestjoni tal-bażi tal-għarfien tal-funzjoni Wolfram hija li niżguraw li l-isem magħżul għal funzjoni huwa loġiku minħabba d-definizzjoni tal-funzjoni u li jsegwi l-konvenzjonijiet tal-ismijiet tal-Lingwa Wolfram. Għandna aktar minn 30 sena esperjenza li nsemmu funzjonijiet integrati fil-Lingwa Wolfram, u t-tim tagħna ta' kuraturi se jġib dik l-esperjenza fir-repożitorju tal-funzjonijiet ukoll. Naturalment, dejjem hemm eċċezzjonijiet. Pereżempju, jista 'jidher preferibbli li jkollok isem qasir għal xi funzjoni, iżda huwa aħjar li "tiddefendi" b'isem itwal u aktar speċifiku għax anqas probabbli li tiltaqa' ma' xi ħadd li jrid jagħmel isem ta' funzjoni simili fil-futur. .
(Għandu jiġi nnutat hawnhekk li sempliċiment li żżid xi tikketta tal-membru biex tiddisambigua l-funzjonijiet mhux se jkollha l-effett maħsub. Minħabba li sakemm ma tinsisti li dejjem tassenja tikketta, ser ikollok bżonn tiddefinixxi tag default għal kwalunkwe funzjoni partikolari, u talloka wkoll tags tal-awtur. , li għal darb'oħra tkun teħtieġ koordinazzjoni globali.)
Hekk kif il-bażi ta’ għarfien tal-funzjonijiet Wolfram tikber, waħda mill-problemi li x’aktarx jinqalgħu hija l-iskoperta tal-funzjonijiet, li għalihom is-sistema tipprovdi
Għal funzjonijiet inkorporati fil-Lingwa Wolfram hemm hekk imsejjaħ saff ta 'skoperta pprovdut minn
Ir-repożitorju tal-funzjonijiet Wolfram huwa kkonfigurat bħala repożitorju tal-funzjonijiet persistenti, fejn kwalunkwe funzjoni fiha dejjem taħdem. Naturalment, verżjonijiet ġodda ta' karatteristiċi jistgħu jsiru disponibbli, u nistennew li xi karatteristiċi ovvjament isiru obsoleti maż-żmien. Il-funzjonijiet se jaħdmu jekk jintużaw fi programmi, iżda l-paġni tad-dokumentazzjoni tagħhom se jorbtu ma' funzjonijiet ġodda u aktar avvanzati.
Il-Wolfram Feature Repository huwa ddisinjat biex jgħinek tiskopri malajr karatteristiċi ġodda u titgħallem modi ġodda kif tuża l-lingwa Wolfram. Aħna ottimisti ħafna li xi wħud minn dak li ġie esplorat fir-repożitorju tal-karatteristiċi eventwalment se jagħmel sens biex isiru partijiet mibnija fil-qalba tal-Lingwa Wolfram. Matul l-aħħar għaxar snin kellna sett simili
L-iktar ħaġa importanti hawnhekk hija li funzjoni f'repożitorju tal-funzjonijiet hija xi ħaġa li hija disponibbli għal kull utent biex jużaha issa. Huwa possibbli li karatteristika tal-lingwa nattiva tkun ħafna aħjar u aktar performanti, iżda repożitorju tal-karatteristiċi jippermetti lill-utenti jkollhom aċċess għall-karatteristiċi ġodda kollha minnufih. U, l-aktar importanti, dan il-kunċett jippermetti lil kulħadd biex iżid kwalunkwe karatteristika ġdida li jrid.
Aktar kmieni fl-istorja tal-lingwa Wolfram, din l-idea ma kinitx taħdem daqshekk tajjeb, iżda f'dan l-istadju hemm tant sforz magħmul fil-lingwa, u fehim tant profond tal-prinċipji tad-disinn tal-lingwa, li issa jidher ħafna. possibbli għal komunità kbira ta 'utenti li żżid karatteristiċi li jżommu l-konsistenza tad-disinn biex jagħmluhom utli għal firxa wiesgħa ta' utenti.
Hemm spirtu inkredibbli ta' talent(?) fil-komunità ta' utenti Wolfram Language. (Naturalment, din il-komunità tinkludi ħafna nies ewlenin ta 'R&D f'varjetà ta' oqsma.) Nittama li l-Wolfram Feature Repository se jipprovdi pjattaforma effettiva għall-ftuħ u t-tixrid ta 'dan l-ispirtu ta' talent. Flimkien biss nistgħu noħolqu xi ħaġa li tespandi b'mod sinifikanti l-qasam li għalih tista' tiġi applikata l-paradigma tal-kompjuters tal-lingwa Wolfram.
F'aktar minn 30 sena, imxejna triq twila bil-lingwa Wolfram. Issa flimkien, ejja mmorru saħansitra aktar. Inħeġġeġ bil-qawwa lill-utenti kollha rispettati tal-lingwa Wolfram madwar id-dinja biex jużaw ir-repożitorju funzjonali bħala pjattaforma għal dan, kif ukoll il-proġett tas-softwer il-ġdid bħall-Magna Wolfram Ħieles għall-Iżviluppaturi.
Sors: www.habr.com