Përshëndetje, Habr! Unë paraqes në vëmendjen tuaj një përkthim të postimit të Stephen Wolfram
Parakushtet për qëndrueshmërinë e gjuhës Wolfram
Sot jemi në pragun e arritjeve të mëdha së bashku me gjuhën e programimit
Depoja e Funksionit Wolfram është diçka e mundur nga natyra unike e gjuhës Wolfram jo vetëm si gjuhë programimi, por edhe si
Për shembull, depoja e funksionit Wolfram tashmë përmban
Po kështu më shumë se
Për të shkuar te faqja, kopjoni objektin e mësipërm (funksionin BLOB), ngjisni atë në vijën e hyrjes dhe më pas ekzekutoni funksionin - ai tashmë është i integruar në gjuhën Wolfram dhe mbështetet si parazgjedhje duke filluar me
Këtu duhet theksuar se gjatë përpunimit
Shpresoj që me mbështetjen
Funksionet nga depoja mund të përmbajnë pjesë të vogla ose të mëdha kodi të shkruara në gjuhën Wolfram. Për shembull, këto mund të jenë thirrje
Struktura e guaskës dhe programimit të Depove të Veçorive Wolfram është krijuar në mënyrë që të gjithë të mund të kontribuojnë në kauzën e përbashkët në mënyrën më të thjeshtë dhe më të përshtatshme për ta - në fakt, vetëm
Ka shumë kompromis dhe detaje në këtë qasje, por qëllimi ynë është të optimizojmë depon e veçorive Wolfram si për përvojën e përdoruesit, ashtu edhe për të siguruar që veçoritë e reja të përdoruesit të kontribuojnë në mënyrë domethënëse në zhvillimin e gjuhës. Ndërsa rritemi, nuk kam asnjë dyshim se do të na duhet të shpikim metoda të reja për përpunimin dhe vërtetimin e funksioneve të integruara në depo, jo më pak për organizimin e një numri të madh funksionesh dhe gjetjen e atyre që u nevojiten përdoruesve. Megjithatë, është inkurajuese që rruga që kemi zgjedhur është një fillim i mbarë. Unë personalisht
Rritja e efikasitetit duke ulur kostot
Edhe përpara internetit, kishte mënyra për të ndarë kodin Wolfram Language (projekti ynë i parë i madh i centralizuar ishte
Për më shumë se 30 vjet, kompania jonë ka punuar me zell për të ruajtur integritetin e strukturës së gjuhës Wolfram dhe kjo është thelbësore për të siguruar që gjuha Wolfram të bëhet jo vetëm një gjuhë programimi, por edhe një
Në strukturën e zbatimit të secilit funksion ndodhin procese të ndryshme llogaritëse. Duhet të theksohet këtu se është e nevojshme që funksioni të ketë një pamje të qartë dhe uniforme dhe lexueshmëri vizuale për përdoruesit. Në këtë kontekst, funksionet e integruara të gjuhës Wolfram janë paraqitur me më shumë se 6000 shembuj sekuencialë se si të programohen siç duhet funksionet (këto janë
Krijimi i një depoje që në fakt funksionon mirë është një detyrë interesante meta-programimi. Për shembull, një tepricë e kufizimeve në program nuk do të lejojë marrjen e unifikimit dhe universalitetit të kërkuar të algoritmit. Ashtu si me një numër të pamjaftueshëm kufizimesh funksionale, nuk do të jeni në gjendje të zbatoni një sekuencë mjaft të saktë të ekzekutimit të algoritmit. Disa shembuj të mëparshëm të zbatimit të një kompromisi të këtyre qasjeve, të zbatuara nga kompania jonë, funksionuan mjaft të qëndrueshme - këto janë:
Të gjithë shembujt e mësipërm kanë një veçori themelore - objektet dhe funksionet e mbledhura në projekt kanë një shkallë shumë të lartë të strukturimit dhe shpërndarjes së proceseve. Sigurisht, detajet e strukturës së asaj që është një demo, një rrjet nervor ose diçka tjetër mund të ndryshojnë shumë, por struktura themelore për çdo depo aktuale mbetet gjithmonë e njëjtë. Pra, cili është mendimi juaj, i dashur përdorues, për krijimin e një depoje të tillë që shton shtesa në gjuhën Wolfram? Gjuha Wolfram është krijuar për të qenë jashtëzakonisht fleksibël, kështu që mund të zgjerohet dhe modifikohet në çdo mënyrë. Kjo rrethanë është jashtëzakonisht e rëndësishme për aftësinë për të krijuar shpejt projekte të ndryshme softuerike në shkallë të gjerë në gjuhën Wolfram. Këtu duhet theksuar se me rritjen e fleksibilitetit të gjuhës, kostoja e projekteve të zbatuara në një gjuhë të tillë në mënyrë të pashmangshme do të rritet. Kjo për faktin se sa më shumë përdoruesi përdor një gjuhë të tillë, aq më shumë funksionalitet të dedikuar merr ai, por nuk duhet harruar se kjo qasje mund të ketë edhe anë negative përsa i përket pamundësisë për të siguruar konsistencë të qëndrueshme të moduleve të programit.
Ekziston një problem i zakonshëm me bibliotekat në gjuhët tradicionale të programimit - nëse përdorni një bibliotekë, për shembull, kodi do të funksionojë siç duhet, por nëse përpiqeni të përdorni biblioteka të shumta, nuk ka asnjë garanci që ato do të ndërveprojnë saktë me njëri-tjetrin. . Gjithashtu, në gjuhët tradicionale të programimit - ndryshe nga një gjuhë kompjuterike e plotë - nuk ka asnjë mënyrë për të garantuar praninë e paraqitjeve të qëndrueshme të integruara për çdo funksion ose lloj të dhënash, përveç strukturave të tyre bazë. Por, në fakt, problemi është edhe më i madh nga sa duket në shikim të parë: nëse dikush po ndërton një vertikale funksionaliteti në shkallë të gjerë, atëherë pa kostot e mëdha të programimit të centralizuar të projektit që kemi vënë në gjuhën Wolfram, është e pamundur të të arrijë konsistencë. Prandaj është e rëndësishme që të gjitha modulet e softuerit të punojnë gjithmonë së bashku në mënyrë korrekte.
Pra, ideja pas depove të veçorive Wolfram është të shmanget problemi i përshkruar më sipër duke shtuar thjesht shtesa në gjuhë në pjesë relativisht të vogla të kodit nëpërmjet veçorive individuale që janë më të lehta për t'u zhvilluar si module koherente. Thënë kjo, ka veçori programimi që nuk mund të bëhen të përshtatshme duke përdorur funksione individuale (dhe kompania jonë po planifikon të lëshojë një algoritëm të optimizuar programimi në të ardhmen e afërt për të ndihmuar në zbatimin e paketave softuerike në shkallë të gjerë). Megjithatë, bazuar në funksionet e ndërtuara tashmë në gjuhën Wolfram, ka shumë mundësi programimi që zbatohen në bazë të funksioneve individuale. Ideja këtu është që me një përpjekje relativisht të vogël programimi është e mundur të krijohen një sërë funksionesh të reja dhe shumë të dobishme që do të sigurojnë koherencë të mjaftueshme në dizajn, ato do të jenë të koordinuara mirë me njëri-tjetrin, dhe gjithashtu, përveç kësaj, ato do të mund të përdoret lehtësisht dhe gjerësisht në gjuhë në të ardhmen.
Kjo qasje është, natyrisht, një kompromis. Nëse do të zbatohej një paketë më e madhe, mund të imagjinohej një botë krejtësisht e re funksionaliteti që do të ishte jashtëzakonisht e fuqishme dhe e dobishme. Nëse ka nevojë për të marrë funksionalitet të ri që do të përshtatet me gjithçka tjetër, por nuk jeni të gatshëm të shpenzoni shumë përpjekje për zhvillimin e projektit, kjo, për fat të keq, mund të çojë në një reduktim të fushës së projektit tuaj. Ideja pas depove të veçorive Wolfram është të sigurojë funksionalitet për një pjesë përcaktuese të një projekti; kjo qasje do të shtojë funksionalitet të fuqishëm duke e bërë më të lehtë ruajtjen e qëndrueshmërisë së mirë në një projekt programimi.
Ndihmoni në shtimin e funksioneve të personalizuara në depon e funksioneve
Ekipi ynë ka punuar shumë për ta bërë të lehtë për përdoruesit që të kontribuojnë në veçoritë e depove Wolfram. Në desktop (tashmë në
Ka dy hapa kryesorë që do t'ju duhet të kryeni: së pari, shkruani kodin për funksionin tuaj dhe, së dyti, shkruani dokumentacionin që ilustron se si duhet të funksionojë funksioni juaj.
Klikoni butonin "Hap mostrën" në krye për të parë një shembull të asaj që duhet të bëni:
Në thelb, ju po përpiqeni të krijoni diçka të ngjashme me një funksion të integruar në gjuhën Wolfram. Përveç që mund të bëjë diçka shumë më specifike sesa një funksion i integruar. Në të njëjtën kohë, pritjet në lidhje me plotësinë dhe besueshmërinë e tij do të jenë shumë më të ulëta.
Ju duhet t'i jepni funksionit tuaj një emër që ndjek udhëzimet për emërtimin e funksioneve të gjuhës Wolfram. Përveç kësaj, do t'ju duhet të zhvilloni dokumentacion për funksionin tuaj, të ngjashëm me funksionet e integruara të gjuhës. Unë do të flas për këtë më në detaje më vonë. Tani për tani, vetëm vini re se në rreshtin e butonave në krye të skedarit të fletores së definicionit ka një buton
Kur të jeni të sigurt se gjithçka është plotësuar siç duhet dhe jeni gati, klikoni butonin "Kontrollo". Është krejtësisht normale që nuk i keni kuptuar ende të gjitha detajet. Kështu që funksioni "Kontrollo" do të funksionojë automatikisht dhe do të bëjë shumë kontrolle të stilit dhe konsistencës. Shpesh, menjëherë do t'ju kërkojë të konfirmoni dhe pranoni korrigjimet (Për shembull: "Kjo rresht duhet të përfundojë me dy pika" dhe do t'ju kërkojë të vendosni dy pika). Ndonjëherë ajo do t'ju kërkojë të shtoni ose ndryshoni diçka vetë. Ne do të shtojmë vazhdimisht veçori të reja në funksionalitetin automatik të butonit "Kontrollo", por në thelb qëllimi i tij është të sigurojë që gjithçka që dorëzoni në depon e veçorive të ndjekë nga afër sa më shumë udhëzime stili që të jetë e mundur
Pra, pasi të keni ekzekutuar "Kontrollo", mund të përdorni "Preview". "Preview" krijon një pamje paraprake të faqes së dokumentacionit që keni përcaktuar për funksionin tuaj. Ju gjithashtu mund të krijoni një pamje paraprake për një skedar të krijuar në kompjuterin tuaj ose për një skedar të vendosur në ruajtjen e resë kompjuterike. Nëse, për ndonjë arsye, nuk jeni të kënaqur me atë që shihni në pamjen paraprake, thjesht kthehuni dhe bëni korrigjimet e nevojshme dhe më pas klikoni përsëri butonin Preview.
Tani jeni gati të shtyni funksionin tuaj në depo. Butoni Deploy ju jep katër opsione:
Gjëja e rëndësishme në këtë hap është që ju mund ta paraqisni funksionin tuaj në depon e funksionit Wolfram në mënyrë që të jetë i disponueshëm për këdo. Në të njëjtën kohë, ju gjithashtu mund të vendosni funksionin tuaj për një numër të kufizuar përdoruesish. Për shembull, mund të krijoni një funksion që është i pritur lokalisht në kompjuterin tuaj në mënyrë që të jetë i disponueshëm kur përdorni atë kompjuter të veçantë. Ose mund ta postoni në faqen tuaj
Pra, le të themi se dëshironi të dorëzoni funksionin tuaj në bazën e njohurive të funksionit Wolfram. Për ta bërë këtë, klikoni butonin "Dërgo" në depo. Atëherë, çfarë po ndodh në këtë moment? Aplikimi juaj është menjëherë në radhë për shqyrtim dhe miratim nga ekipi ynë i përkushtuar i kuratorëve.
Ndërsa aplikacioni juaj përparon përmes procesit të miratimit (i cili zakonisht zgjat disa ditë), ju do të merrni komunikime në lidhje me statusin e tij dhe ndoshta sugjerime për përdorim në të ardhmen. Por sapo funksioni juaj të miratohet, ai do të publikohet menjëherë në Depon e Veçorive Wolfram dhe do të jetë i disponueshëm për këdo që ta përdorë. (Dhe kjo do të shfaqet në
Çfarë duhet të jetë në ruajtje?
Duhet të theksohet se kompania jonë ka standarde shumë të larta për plotësinë, besueshmërinë dhe cilësinë e përgjithshme, nga 6000+ funksionet që kemi ndërtuar tashmë në gjuhën Wolfram gjatë 30+ viteve të fundit të gjitha plotësojnë kërkesat e mësipërme. Qëllimi i Depove të Funksionit Wolfram është të përdorë të gjithë strukturën dhe funksionalitetin që ekziston në gjuhën Wolfram në mënyrë që të shtojë sa më shumë funksione më të lehta (d.m.th. funksione me performancë më të lartë).
Natyrisht, funksionet në depon e funksioneve Wolfram duhet të jenë në përputhje me parimet e projektimit të gjuhës Wolfram - në mënyrë që ato të mund të ndërveprojnë plotësisht me funksionet e tjera dhe pritshmëritë e përdoruesve se si funksioni duhet të funksionojë siç duhet. Megjithatë, funksionet nuk duhet të jenë të plotësisë ose besueshmërisë së njëjtë.
Në funksionet e integruara të gjuhës Wolfram, ne punojmë shumë për t'i bërë funksionet e programimit sa më të përgjithshme. Thënë kjo, kur je në depon e funksionit Wolfram, nuk ka asgjë të keqe të kesh një funksion në të që thjesht trajton një rast shumë specifik, por të dobishëm. Për shembull, funksioni
Një pikë tjetër në lidhje me funksionet e integruara është se kompania jonë bën çdo përpjekje për të trajtuar të gjitha rastet atipike, për të trajtuar saktë hyrjen e pasaktë, etj. Në një depo funksioni, është krejtësisht normale që të ketë një funksion të veçantë që trajton rastet kryesore të zgjidhjes së një problemi dhe injoron të gjitha të tjerat.
Pika e qartë është se është më mirë të kesh funksione që bëjnë më shumë dhe e bëjnë më mirë, por optimizimi për një depo funksioni - në krahasim me funksionet e integruara të gjuhës Wolfram - duhet të ketë më shumë funksione të bashkuara me më shumë funksione në vend që të hulumtojë në proceset e zbatimit të secilit funksion specifik.
Tani le të shohim një shembull të funksioneve të testimit në një depo. Pritjet e konsistencës për funksione të tilla janë natyrisht shumë më të ulëta se sa për funksionet e integruara gjuhësore. Kjo është veçanërisht e vërtetë në rastet kur funksionet varen nga burime të jashtme si API-të, është e rëndësishme të kryhen vazhdimisht teste të qëndrueshme, gjë që ndodh automatikisht brenda algoritmeve të verifikimit. Në skedarin nb, ju mund të specifikoni në mënyrë eksplicite përkufizime (në seksionin Informacion shtesë) dhe të specifikoni sa më shumë teste të përcaktuara nga vargjet hyrëse dhe dalëse ose objektet me karakter të plotë të tipit
Si rezultat, depoja e funksionit do të ketë një sërë kompleksitetesh zbatimi. Disa do të jenë vetëm një linjë e vetme kodi, të tjera mund të përfshijnë mijëra ose dhjetëra mijëra rreshta, me gjasë duke përdorur shumë funksione ndihmëse. Kur ia vlen të shtohet një funksion që kërkon shumë pak kod për të përcaktuar? Në thelb, nëse për një funksion ka
Qëllimi kryesor i një depoje funksioni (siç sugjeron emri i tij) është të prezantojë veçori të reja në gjuhë. Nëse dëshironi të shtoni të dhëna të reja ose
Në fakt ka dy mënyra. Ju mund të dëshironi të prezantoni një lloj të ri objekti që do të përdoret në funksione të reja në depon e funksioneve. Dhe në këtë rast, gjithmonë mund të shkruani paraqitjen e tij simbolike dhe ta përdorni kur futni ose nxirrni funksione në një depo funksioni.
Por, çka nëse dëshironi të përfaqësoni një objekt dhe më pas të përcaktoni, nëpërmjet funksioneve ekzistuese në gjuhën Wolfram, që dëshironi të punoni me të? Gjuha Wolfram ka pasur gjithmonë një mekanizëm të lehtë për këtë, të quajtur
Pra, çfarë mund të jetë në kodin e funksionit në një depo funksioni?
A duhet të shkruhet i gjithë kodi për depon e veçorive Wolfram në Wolfram? Sigurisht, kodi brenda API-së së jashtme nuk duhet të shkruhet në gjuhën Wolfram, e cila as nuk e bën kodin e gjuhës. Në fakt, nëse gjeni një funksion pothuajse në çdo gjuhë ose bibliotekë të jashtme, mund të krijoni një mbështjellës që ju lejon ta përdorni në depon e funksionit Wolfram. (Zakonisht duhet të përdorni funksionet e integruara për këtë
Pra, çfarë kuptimi ka ta bësh këtë? Në thelb, kjo ju lejon të përdorni të gjithë sistemin e integruar të Wolfram Language dhe të gjithë grupin e tij të unifikuar të aftësive softuerike. Nëse e merrni zbatimin bazë nga një bibliotekë ose gjuhë e jashtme, atëherë mund të përdorni strukturën e pasur simbolike të gjuhës Wolfram për të krijuar një funksion të përshtatshëm të nivelit të lartë që i lejon përdoruesit të përdorin lehtësisht çdo funksionalitet të implementuar tashmë. Së paku, kjo duhet të jetë e realizueshme në një botë ideale ku ekzistojnë të gjitha blloqet ndërtuese të ngarkimit të bibliotekave etj., në të cilin rast ato do të trajtoheshin automatikisht nga Gjuha Wolfram. (Duhet të theksohet se në praktikë mund të ketë probleme me
Meqë ra fjala, kur shikoni për herë të parë bibliotekat tipike të jashtme, ato shpesh duken shumë komplekse për t'u mbuluar në vetëm disa funksione, por në shumë raste, pjesa më e madhe e kompleksitetit vjen nga krijimi i infrastrukturës së nevojshme për bibliotekën dhe të gjitha funksionet për të. mbështesin atë. Sidoqoftë, kur përdorni gjuhën Wolfram, infrastruktura zakonisht është e integruar tashmë në paketa, dhe kështu nuk ka nevojë të ekspozohen të gjitha këto funksione mbështetëse në detaje, por vetëm të krijohen funksione për funksionet "më të larta" specifike të aplikacionit në bibliotekë. .
"Ekosistemi" i bazës së njohurive
Nëse keni shkruar funksione që i përdorni rregullisht, dorëzojini ato në Depon e Funksionit Wolfram! Nëse diçka më shumë nuk del nga kjo (zhvillimi i gjuhës), atëherë edhe atëherë do të jetë shumë më i përshtatshëm për ju të përdorni funksionet për përdorim personal. Sidoqoftë, është logjike të supozohet se nëse i përdorni funksionet rregullisht, ndoshta edhe përdoruesit e tjerë do t'i gjejnë ato të dobishme.
Natyrisht, mund të gjendeni në një situatë ku nuk jeni në gjendje - ose nuk dëshironi - të ndani funksionet tuaja ose në rast të fitimit të aksesit në burimet e informacionit privat. Edhe në raste të tilla, ju thjesht mund të vendosni funksionet në llogarinë tuaj cloud,
Funksionet që dorëzoni në depon e funksioneve Wolfram nuk duhet të jenë të përsosura; ato thjesht duhet të jenë të dobishme. Kjo është paksa e ngjashme me seksionin "Gabimet" në dokumentacionin klasik të Unix - në "Seksionin e përkufizimeve" ekziston një seksion "Shënimet e autorit" ku mund të përshkruani kufizimet, problemet, etj. që tashmë i dini për funksionin tuaj. Për më tepër, kur dorëzoni veçorinë tuaj në depo, mund të shtoni shënime dorëzimi që do të lexohen nga një ekip i përkushtuar kuratorësh.
Pasi një veçori publikohet, faqja e tij ka gjithmonë dy lidhje në fund: "
Ndonjëherë thjesht dëshironi të përdorni funksione nga depoja e funksioneve Wolfram, të tilla si funksionet e integruara, pa shikuar kodin e tyre. Megjithatë, nëse doni të hidhni një sy brenda, ka gjithmonë një buton Notepad në krye. Klikoni mbi të dhe do të merrni kopjen tuaj të fletores origjinale të definicionit që u dërgua në depon e veçorive. Ndonjëherë mund ta përdorni vetëm si shembull për nevojat tuaja. Në të njëjtën kohë, ju gjithashtu mund të zhvilloni modifikimin tuaj të këtij funksioni. Ju mund të dëshironi t'i postoni këto funksione që gjetët nga depoja në kompjuterin tuaj ose në llogarinë tuaj të ruajtjes së resë aphid, ndoshta dëshironi t'i paraqisni ato në bazën e njohurive të funksionit, ndoshta si një version i përmirësuar dhe i zgjeruar i funksionit origjinal.
Në të ardhmen, ne planifikojmë të mbështesim forcimin e stilit Git për depot e veçorive, por tani për tani po përpiqemi ta mbajmë të thjeshtë dhe gjithmonë kemi vetëm një version të pranuar të çdo veçorie të integruar në gjuhë. Më shpesh sesa jo (përveç nëse zhvilluesit heqin dorë nga ruajtja e veçorive që kanë zhvilluar dhe i përgjigjen parashtrimeve të përdoruesve), autori origjinal i veçorisë merr kontrollin e përditësimeve të tij dhe dorëzon versione të reja, të cilat më pas rishikohen dhe, nëse kalojnë procesin e rishikimit , botuar në gjuhën.
Le të shqyrtojmë pyetjen se si funksionon "versionimi" i funksioneve të zhvilluara. Tani për tani, kur përdorni një funksion nga depoja e funksioneve, përkufizimi i tij do të ruhet përgjithmonë në kompjuterin tuaj (ose në llogarinë tuaj cloud nëse jeni duke përdorur renë kompjuterike). Nëse disponohet një version i ri i një veçorie, herën tjetër që ta përdorni, do të merrni një mesazh që ju njofton për këtë. Dhe nëse dëshironi të përditësoni funksionin në një version të ri, mund ta bëni duke përdorur komandën
Një nga gjërat e bukura në lidhje me Depon e Funksionit Wolfram është se çdo program Wolfram Language, kudo mund të përdorë funksione prej tij. Nëse një program shfaqet në një bllok shënimesh, shpesh është i përshtatshëm për të formatuar funksionet e ruajtjes si funksione "funksionale binar" të lehtë për t'u lexuar (ndoshta me një grup versionesh të përshtatshme).
Mund të përdorni gjithmonë çdo funksion në depon e funksionit duke përdorur tekst
Si funksionon kjo gjë?
Brenda funksioneve në depon e Wolfram kjo është e mundur duke përdorur saktësisht të njëjtën gjë
Konsideroj
Brenda mund të shihni disa informacione duke përdorur funksionin
Si funksionon konfigurimi i një funksioni burimi? Më e thjeshta është një rast thjesht lokal. Këtu është një shembull që merr një funksion (në këtë rast vetëm një funksion të pastër) dhe e përcakton atë si një funksion burimi për një sesion të caktuar programi:
Pasi të keni bërë përkufizimin, mund të përdorni funksionin e burimit:
Vini re se ka një ikonë të zezë në këtë pikë funksioni . Kjo do të thotë që funksioni BLOB i referohet funksionit të burimit në memorie të përcaktuar për sesionin aktual. Një veçori burimi që ruhet përgjithmonë në kompjuterin tuaj ose në llogarinë cloud ka një ikonë gri . Dhe ka një ikonë portokalli për një veçori zyrtare të burimeve në Depon e Veçorive Wolfram .
Pra, çfarë ndodh kur përdorni menynë "Zgjero" në fletoren "Përkufizimi"? Së pari, merr të gjitha përkufizimet në bllokun e shënimeve dhe prej tyre krijon një simbolikë
Vendosja lokale e një funksioni nga një depo në kompjuterin tuaj kryhet duke përdorur komandën
Nëse klikoni butonin Submit për një depo funksioni, çfarë ndodh nën të
Si parazgjedhje, dorëzimet bëhen nën emrin e lidhur me ID-në tuaj Wolfram. Por nëse po paraqisni një aplikim në emër të një ekipi ose organizate zhvillimi, mundeni
Pasi të keni dorëzuar ndonjë nga funksionet tuaja në bazën e njohurive të funksionit, ai do të vihet në radhë për shqyrtim. Nëse merrni komente si përgjigje, ato zakonisht do të jenë në formën e një skedari teksti me shtimin e "qelizave të komenteve" shtesë. Ju gjithmonë mund të kontrolloni statusin e aplikacionit tuaj duke vizituar
Disa hollësi në punë
Në pamje të parë mund të duket sikur thjesht mund të marrësh një fletore përkufizimesh dhe ta vendosësh fjalë për fjalë në një depo funksioni, megjithatë, në fakt ka mjaft hollësi të përfshira - dhe trajtimi i tyre kërkon kryerjen e disa meta-programimeve mjaft komplekse, trajtimin e përpunimit simbolik si kodi që përcakton funksionin , dhe vetë Notepad është përcaktuar. Shumica e kësaj ndodh brenda, prapa skenave, por mund të ketë disa implikime që ia vlen të kuptohen nëse do të kontribuoni në bazën e njohurive të veçorive.
Hollësia e parë e menjëhershme: Kur plotësoni fletoren e përkufizimit, thjesht mund t'i referoheni funksionit tuaj kudo duke përdorur një emër si p.sh. MyFunction, i cili duket si një emër i rregullt për një funksion në gjuhën Wolfram, por për dokumentacionin e depove të funksionit ky është zëvendësuar
Delikatesa e dytë: kur krijoni një funksion burimi nga Fletorja e Përkufizimit, të gjitha varësitë e përfshira në përkufizimin e funksionit duhet të kapen dhe të përfshihen në mënyrë eksplicite. Sidoqoftë, për të siguruar që përkufizimet të mbeten modulare, duhet të vendosni gjithçka në një mënyrë unike
Zakonisht nuk do të shihni kurrë ndonjë gjurmë të kodit të përdorur për të konfiguruar këtë hapësirë emri. Por nëse për ndonjë arsye thërrisni një simbol të nënekzekutuar brenda funksionit tuaj, atëherë do të shihni se ky simbol është në kontekstin e brendshëm të funksionit. Megjithatë, kur përpunohet Notepad i definicionit, të paktën është simboli që korrespondon me vetë funksionin
Depoja e funksionit është për përcaktimin e funksioneve të reja. Dhe këto funksione mund të kenë opsione. Shpesh këto parametra (për shembull,
Shumica e funksioneve thjesht bëjnë atë që duhet të bëjnë sa herë që thirren, por disa funksione duhet të inicializohen përpara se të mund të ekzekutohen në një sesion të caktuar - dhe për të zgjidhur këtë problem, ekziston një seksion "Inicializimi" në seksionin Përkufizim.
Funksionet nga një depo mund të përdorin funksione të tjera që janë tashmë në depo; në mënyrë që të vendosni përkufizime për një depo funksioni që përfshin dy (ose më shumë) funksione që i referohen njëri-tjetrit, ju duhet t'i vendosni ato në sesionin e programit tuaj në mënyrë që të mund të referencë si në to
Perspektivat e zhvillimit. Çfarë duhet të ndodhë kur depoja bëhet vërtet e madhe?
Sot sapo po lançojmë Depon e Veçorive Wolfram, por me kalimin e kohës presim që madhësia dhe funksionaliteti i tij mund të rriten në mënyrë dramatike dhe ndërsa rritet në zhvillim, do të ketë probleme të ndryshme që tashmë parashikojmë se mund të shfaqen.
Problemi i parë ka të bëjë me emrat e funksioneve dhe veçantinë e tyre. Depoja e funksionit është projektuar në atë mënyrë që, si funksionet e integruara në gjuhën Wolfram, ju mund t'i referoheni çdo funksioni të caktuar thjesht duke specifikuar emrin e tij. Por kjo në mënyrë të pashmangshme do të thotë që emrat e funksioneve duhet të jenë unikë globalisht në të gjithë depo, kështu që, për shembull, mund të ketë vetëm një
Ky mund të duket si një problem i madh në fillim, por ia vlen të kuptoni se në thelb është i njëjti problem si për gjëra të tilla si domenet e internetit ose dorezat e mediave sociale. Dhe fakti është se sistemi thjesht duhet të ketë një regjistrues - dhe ky është një nga rolet që kompania jonë do të kryejë për bazën e njohurive të funksionit Wolfram. (Për versionet private të një depoje, regjistruesit e tyre mund të jenë administratorë.) Sigurisht, një domen në internet mund të regjistrohet pa pasur asgjë në të, por në një depo funksioni, një emër funksioni mund të regjistrohet vetëm nëse ekziston një përkufizim aktual i funksionin.
Një pjesë e rolit tonë në menaxhimin e bazës së njohurive të funksionit Wolfram është të sigurojmë që emri i zgjedhur për një funksion është i logjikshëm duke pasur parasysh përkufizimin e funksionit dhe se ai ndjek konventat e emërtimit të gjuhës Wolfram. Ne kemi mbi 30 vjet përvojë në emërtimin e funksioneve të integruara në gjuhën Wolfram dhe ekipi ynë i kuratorëve (kuratorëve?) do ta sjellë këtë përvojë edhe në depon e funksioneve. Sigurisht, ka gjithmonë përjashtime. Për shembull, mund të duket e preferueshme të kesh një emër të shkurtër për ndonjë funksion, por është më mirë të "mbrohesh" me një emër më të gjatë, më specifik, sepse ka më pak gjasa të hasësh dikë që dëshiron të bëjë një emër të ngjashëm funksioni në të ardhmen. .
(Këtu duhet të theksohet se thjesht shtimi i disa etiketave të anëtarëve për të zbërthyer funksionet nuk do të ketë efektin e synuar. Sepse nëse nuk insistoni të caktoni gjithmonë një etiketë, do t'ju duhet të përcaktoni një etiketë të paracaktuar për çdo funksion të caktuar dhe gjithashtu të caktoni etiketat e autorit , e cila përsëri do të kërkonte koordinim global.)
Ndërsa baza e njohurive për funksionet Wolfram rritet, një nga problemet që ka të ngjarë të lindë është zbulueshmëria e funksioneve, për të cilat sistemi ofron
Për funksionet e integruara në gjuhën Wolfram ekziston një e ashtuquajtur shtresa zbulimi e ofruar nga
Depoja e funksionit Wolfram është konfiguruar si një depo e funksioneve të vazhdueshme, ku çdo funksion në të do të funksionojë gjithmonë. Natyrisht, versionet e reja të veçorive mund të bëhen të disponueshme dhe ne presim që disa veçori sigurisht të vjetërohen me kalimin e kohës. Funksionet do të funksionojnë nëse përdoren në programe, por faqet e tyre të dokumentacionit do të lidhen me funksione të reja, më të avancuara.
Depoja e veçorive Wolfram është krijuar për t'ju ndihmuar të zbuloni shpejt veçori të reja dhe të mësoni mënyra të reja për të përdorur gjuhën Wolfram. Është me shumë optimizëm që disa nga ato që janë eksploruar në depon e veçorive përfundimisht do të kenë kuptim të bëhen pjesë të integruara të gjuhës bazë të Wolfram. Gjatë dekadës së fundit ne kemi pasur një grup të ngjashëm
Gjëja më e rëndësishme këtu është se një funksion në një depo funksioni është diçka që është e disponueshme për çdo përdorues për ta përdorur tani. Është e mundur që një veçori e gjuhës amtare mund të jetë shumë më e mirë dhe më e efektshme, por një depo e veçorive do t'i lejonte përdoruesit të kenë akses në të gjitha veçoritë e reja menjëherë. Dhe, më e rëndësishmja, ky koncept i lejon të gjithëve të shtojnë çdo veçori të re që dëshirojnë.
Më parë në historinë e gjuhës Wolfram, kjo ide nuk do të kishte funksionuar aq mirë sa ka funksionuar, por në këtë fazë është bërë kaq shumë përpjekje në gjuhë dhe një kuptim kaq i thellë i parimeve të dizajnit të gjuhës, sa që tani duket shumë e mundur që një komunitet i madh përdoruesish të shtojë veçori që do të ruajnë konsistencën e dizajnit për t'i bërë ato të dobishme për një gamë të gjerë përdoruesish.
Ekziston një shpirt i pabesueshëm talenti(?) në komunitetin e përdoruesve të Wolfram Language. (Sigurisht, ky komunitet përfshin shumë ekspertë kryesorë të kërkimit dhe zhvillimit në një sërë fushash.) Shpresoj që Depoja e Veçorive të Wolfram do të ofrojë një platformë efektive për zhbllokimin dhe përhapjen e kësaj shpirti talenti. Vetëm së bashku mund të krijojmë diçka që do të zgjerojë ndjeshëm zonën në të cilën mund të zbatohet paradigma kompjuterike e gjuhës Wolfram.
Në më shumë se 30 vjet, ne kemi bërë një rrugë të gjatë me gjuhën Wolfram. Tani së bashku, le të shkojmë edhe më tej. Unë inkurajoj fuqimisht të gjithë përdoruesit e respektuar të gjuhës Wolfram në mbarë botën që të përdorin depon funksionale si një platformë për këtë, si dhe projektin e ri të softuerit të tillë si Free Wolfram Engine for Developers.
Burimi: www.habr.com