Ciao, Habr! Prestu à a vostra attenzione una traduzzione di u post di Stephen Wolfram
Prerequisiti per a cunsistenza di a lingua Wolfram
Oghje simu nantu à a soglia di grandi rializazioni inseme cù a lingua di prugrammazione
U Wolfram Function Repository hè qualcosa resu pussibule da a natura unica di u Wolfram Language micca solu cum'è una lingua di prugrammazione, ma ancu cum'è un
Per esempiu, u repositoriu di funzioni Wolfram cuntene digià
Cume più di
Per ghjunghje à a pagina, copià l'ughjettu sopra (funzione BLOB), incollà in a linea di input è poi eseguite a funzione - hè digià integrata in a lingua Wolfram è supportata per difettu cuminciendu cù
Si deve esse nutatu quì chì quandu u prucessu
Spergu chì cù u sustegnu
E funzioni da u repositoriu ponu cuntene pezzi di codice chjuchi o grandi scritti in a lingua Wolfram. Per esempiu, questi puderanu esse chjamati
A struttura di cunchiglia è di prugrammazione di u Repositoriu di Funzioni di Wolfram hè pensata per chì tutti ponu cuntribuisce à a causa cumuna in u modu più simplice è convenientu per elli - in fattu, solu.
Ci hè parechje scambii è dettagli in questu approcciu, ma u nostru scopu hè di ottimisà u repositoriu di funzioni di Wolfram sia per l'esperienza di l'utilizatori sia per assicurà chì e novi funzioni di l'utilizatori cuntribuiscenu significativamente à u sviluppu di a lingua. Cume cresce, ùn aghju micca dubbitu chì avemu da inventà novi metudi per processà è validà e funzioni integrate in u repositoriu, micca menu per urganizà un gran numaru di funzioni è truvà quelli chì l'utilizatori necessitanu. Tuttavia, hè incuragisce chì a strada chì avemu sceltu hè un bonu principiu. I personalmente
Aumentà l'efficienza mentre riduce i costi
Ancu prima di l'Internet, ci era modi per sparte u codice Wolfram Language (u nostru primu prughjettu centralizatu maiò era
Per più di 30 anni, a nostra cumpagnia hà travagliatu diligentemente per mantene l'integrità di a struttura di a lingua Wolfram, è questu hè criticu per assicurà chì a lingua Wolfram diventa micca solu una lingua di prugrammazione, ma ancu una lingua di prugrammazione.
Diversi prucessi di computazione sò in a struttura di implementazione di ogni funzione. Hè da esse nutatu quì chì hè necessariu chì a funzione hà un aspettu chjaru è uniforme è leghjibilità visuale per l'utilizatore. In questu cuntestu, e funzioni integrate di a Lingua Wolfram sò presentate cù più di 6000 esempi sequenziali di cumu prugrammà bè funzioni (questi sò i nostri
A creazione di un repository chì funziona veramente bè hè un interessante travagliu di meta-programmazione. Per esempiu, un eccessu di restrizioni in u prugramma ùn permettenu micca ottene l'unificazione necessaria è l'universalità di l'algoritmu. Cum'è cù un numeru insufficiente di restrizioni funziunali, ùn sarete micca capaci di implementà una sequenza abbastanza curretta di l'esecuzione di l'algoritmu. Parechji esempi previ di implementazione di un cumprumissu di sti approcci, implementati da a nostra cumpagnia, anu travagliatu abbastanza stabile - questi sò:
Tutti l'esempii di sopra anu una funzione fundamentale - l'uggetti è e funzioni cullati in u prugettu anu un altu gradu di strutturazione è distribuzione di prucessi. Di sicuru, u dettagliu di a struttura di ciò chì hè una demo o una rete neurale o qualcosa d'altru pò varià assai, ma a struttura fundamentale per ogni repository attuale ferma sempre a stessa. Allora chì hè a vostra opinione, caru utilizatore, di creà un tali repository chì aghjunghje estensioni à a lingua Wolfram? U Wolfram Language hè pensatu per esse estremamente flessibile, cusì pò esse allargatu è mudificatu in ogni modu. Questa circustanza hè estremamente impurtante per a capacità di creà rapidamente diversi prughjetti di software à grande scala in Wolfram Language. Ci vole à nutà quì chì, à l’aumentu di a flessibilità di a lingua, u costu di i prughjetti messi in opera in una tale lingua, inevitabbilmente, cresce. Questu hè duvuta à u fattu chì più l'utilizatore usa una tale lingua, più funziunalità dedicata chì riceve, ma ùn deve esse scurdate chì questu approcciu pò ancu avè lati negativi in quantu à l'incapacità di assicurà a coherenza di i moduli di u prugramma.
Ci hè un prublema cumuni cù e biblioteche in linguaggi di prugrammazione tradiziunali - se aduprate una biblioteca, per esempiu, u codice hà da travaglià currettamente, ma se pruvate d'utilizà parechje biblioteche, ùn ci hè micca garanzia chì interagiscenu bè cù l'altri. . Inoltre, in i linguaggi di prugrammazione tradiziunali - à u cuntrariu di una lingua di informatica cumpleta - ùn ci hè micca manera di guarantiscia a presenza di rapprisentazione integrata coherente per qualsiasi funzioni o tippi di dati altru ch'è e so strutture basiche. Ma, in fattu, u prublema hè ancu più grande di ciò chì pare à u primu sguardu: se unu hè custruendu una verticale di funziunalità à grande scala, allora senza i costi enormi di prugrammazione di prughjettu centralizata chì mettemu in a lingua Wolfram, hè impussibile di fà. ottene a coerenza. Hè dunque impurtante chì tutti i moduli di u software travaglianu sempre inseme currettamente.
Allora l'idea daretu à u repositoriu di funzioni Wolfram hè di evità u prublema delineatu sopra solu aghjunghjendu estensioni à a lingua in pezzi relativamente chjuchi di codice per via di funzioni individuali chì sò più faciuli di sviluppà cum'è moduli coerenti. Dittu chistu, ci sò funzioni di prugrammazione chì ùn ponu micca esse fatte cunvene cù e funzioni individuali (è a nostra cumpagnia hà pensatu à liberà un algoritmu di prugrammazione ottimizatu in un futuru vicinu per aiutà à implementà pacchetti di software à grande scala). In ogni casu, basatu annantu à e funzioni digià integrate in a Lingua Wolfram, ci sò parechje pussibulità di prugrammazione chì sò implementate in basa di funzioni individuali. L'idea quì hè chì cù un pocu sforzu di prugrammazione hè pussibule di creà una quantità di funzioni novi è assai utili chì furnisceranu una coerenza sufficiente à u disignu, seranu bè coordinati cù l'altri, è ancu, in più di questu, Puderà facilmente è largamente utilizatu in a lingua in u futuru.
Stu approcciu hè, sicuru, un cumprumissu. Se un pacchettu più grande hè statu implementatu, un mondu sanu novu di funziunalità puderia esse imaginatu chì seria estremamente putente è utile. Se ci hè bisognu di ottene una nova funziunalità chì si mette in tuttu u restu, ma ùn site micca dispostu à passà assai sforzu in u sviluppu di u prugettu, questu, sfurtunatamenti, pò purtà à una riduzzione di u scopu di u vostru prughjettu. L'idea daretu à u repositoriu di funzioni di Wolfram hè di furnisce funziunalità à una parte di definizione di un prughjettu, questu approcciu aghjunghje una funziunalità putente mentre facilita a mantene una bona cunsistenza in un prughjettu di prugrammazione.
Aiutate à aghjunghje funzioni persunalizate à u repositariu di funzioni
U nostru squadra hà travagliatu duru per fà più faciule per l'utilizatori di cuntribuisce à e funzioni di repository Wolfram. Nantu à u desktop (dighjà in
Ci hè dui passi principali chì avete bisognu di fà: prima, scrive veramente u codice per a vostra funzione è, secondu, scrive a documentazione chì illustra cumu a vostra funzione deve travaglià.
Cliccate u buttone "Open Sample" in cima per vede un esempiu di ciò chì avete bisognu di fà:
Essenzialmente, cercate di creà qualcosa simili à una funzione integrata in u Wolfram Language. Eccettu chì pò fà qualcosa assai più specificu cà una funzione integrata. À u listessu tempu, l'aspettattivi in quantu à a so cumpletezza è affidabilità seranu assai più bassi.
Avete bisognu di dà à a vostra funzione un nome chì seguita e linee di nome di funzioni di Wolfram Language. Inoltre, avete bisognu di sviluppà documentazioni per a vostra funzione, simili à e funzioni integrate di a lingua. Parlaraghju di questu in più dettagliu dopu. Per avà, basta à nutà chì in a fila di i buttoni in cima di u schedariu di notebook di definizione ci hè un buttone
Quandu site sicuru chì tuttu hè cumpletu bè è vi sò pronti, cliccate nant'à u buttone "Verificà". Hè cumplettamente normale chì ùn avete micca capitu tutti i dettagli. Allora a funzione "Verificate" correrà automaticamente è fà assai cuntrolli di stile è di coerenza. Spessu, vi invià subitu à cunfirmà è accettà e currezzione (Per esempiu: "Questa linea deve finisce cù un colon", è vi invitarà à inserisce un colon). Calchì volta vi dumandarà di aghjunghje o cambià qualcosa sè stessu. Avemu da aghjunghje constantemente novi funziunalità à a funziunalità automatica di u buttone Verificate, ma in fondu u so scopu hè di assicurà chì tuttu ciò chì sottumette à u repositoriu di funzioni seguita da vicinu quante linee di stile pussibule.
Cusì, dopu à eseguisce "Check", pudete aduprà "Preview". "Preview" crea una vista previa di a pagina di documentazione chì avete definitu per a vostra funzione. Pudete ancu creà una vista previa per un schedariu creatu in u vostru urdinatore o per un schedariu situatu in u almacenamentu in nuvola. Se per una certa ragione ùn site micca cuntentu di ciò chì vede in l'anteprima, simpricimenti torna è fate e correzioni necessarie, è dopu cliccate nantu à u buttone Preview di novu.
Avà site prontu à spinghja a vostra funzione in u repository. U buttone Deploy vi dà quattru opzioni:
L'impurtante in questu passu hè chì pudete mandà a vostra funzione à u repositoriu di funzione Wolfram per ch'ella sia dispunibule per qualcunu. À u listessu tempu, pudete ancu mette a vostra funzione per un numeru limitatu di utilizatori. Per esempiu, pudete creà una funzione chì hè ospitu in u locu in u vostru urdinatore in modu chì hè dispunibule quandu utilizate quellu computer particulari. O pudete pubblicà in u vostru
Allora dicemu chì vulete veramente sottumette a vostra funzione à a basa di cunniscenza di a funzione Wolfram. Per fà questu, cliccate nantu à u buttone "Invia" à u repository. Allora chì succede in u mumentu? A vostra applicazione hè immediatamente messa in fila per a revisione è l'appruvazioni da u nostru squadra dedicata di curatori.
Quandu a vostra applicazione avanza in u prucessu di appruvazioni (chì generalmente dura parechji ghjorni), riceverete cumunicazioni in quantu à u so statutu è possibbilmente suggerimenti per l'usu futuru. Ma una volta chì a vostra funzione hè appruvata, serà publicata immediatamente à u Repositoriu di Funzioni di Wolfram è serà dispunibule per qualcunu. (È questu apparirà in
Chì duverebbe esse in u almacenamentu?
Si deve esse nutatu chì a nostra cumpagnia hà standard assai altu di cumpleta, affidabilità è a qualità generale, è di e funzioni 6000+ chì avemu digià custruitu in a lingua Wolfram in l'ultimi anni 30+, tutti rispondenu à i requisiti sopra. L'obiettivu di u Repositoriu di Funzioni Wolfram hè di utilizà tutte e strutture è e funziunalità chì esiste digià in a Lingua Wolfram per aghjunghje tante funzioni più ligeri (vale à dì, funzioni di rendiment più altu) pussibule.
Di sicuru, e funzioni in u repositoriu di funzioni Wolfram devenu cunfurmà cù i principii di cuncepimentu di a Lingua Wolfram - in modu chì ponu interazzione cumplettamente cù altre funzioni è l'aspettattivi di l'utilizatori di cumu a funzione deve travaglià bè. Tuttavia, e funzioni ùn anu micca esse di uguali completezza o affidabilità.
In e funzioni integrate di a lingua Wolfram, travagliemu duramente per fà e funzioni di prugrammazione cum'è generale pussibule. Dittu chistu, quandu site in u repositoriu di funzione Wolfram, ùn ci hè nunda di male à avè una funzione in questu chì simpricimenti gestisce un casu assai specificu ma utile. Per esempiu, a funzione
Un altru puntu ligatu à e funzioni integrate hè chì a nostra cumpagnia face ogni sforzu per trattà tutti i casi atipichi, per trattà currettamente l'input incorrect, etc. In un repository di funzioni, hè cumplettamente normale per esse una funzione speciale chì tratta i casi principali di risolve un prublema è ignora tutti l'altri.
U puntu ovviu hè chì hè megliu avè funzioni chì facenu più è fà megliu, ma l'ottimisazione per un repository di funzioni - in uppusizione à e funzioni integrate di a lingua Wolfram - duverebbe avè più funzioni bundled cù più funzioni piuttostu cà sfondate in. i prucessi di implementazione di ogni funzione specifica.
Avà fighjemu un esempiu di teste di funzioni in un repository. L'aspettattivi di cunsistenza per tali funzioni sò naturalmente assai più bassi cà per e funzioni di lingua integrata. Questu hè soprattuttu veru in i casi induve e funzioni dependenu di risorse esterne, cum'è l'API, hè impurtante di cunducerà constantemente teste coerenti, chì succede automaticamente in l'algoritmi di verificazione. In u schedariu nb, pudete specificà esplicitamente definizioni (in a sezione d'Informazioni Addiziunali) è specificà quante teste definite da stringhe di input è output o oggetti di caratteri sanu di tipu.
In u risultatu, u repositariu di funzioni avarà una quantità di cumplessità di implementazione. Qualchidunu seranu solu una sola linea di codice, altri pò esse implicati millaie o decine di millaie di linii, prubabilmente utilizendu parechje funzioni d'aiutu. Quandu vale a pena aghjunghje una funzione chì richiede pocu codice per definisce? In fondu, se per una funzione ci hè
U scopu principale di un repositoriu di funzioni (cum'è u so nome suggerisce) hè di introduci novi funziunalità in a lingua. Sè vo vulete aghjunghje novi dati o
Ci hè in realtà duie manere. Pudete vulete intruduce un novu tipu d'ughjettu chì serà utilizatu in novi funzioni in u repositoriu di funzioni. È in questu casu, pudete sempre scrivite a so rapprisintazioni simbolica è l'utilizate quandu inserite o emettenu funzioni in un repository di funzioni.
Ma chì sè vo vulete rapprisintà un ughjettu è poi definisce, attraversu funzioni esistenti in u Wolfram Language, chì vulete travaglià cun ellu? U Wolfram Language hà sempre avutu un mecanismu ligeru per questu, chjamatu
Allora, chì puderia esse in u codice di funzione in un repositoriu di funzioni?
Tuttu u codice per u repository di funzioni Wolfram deve esse scrittu in Wolfram? Certamente, u codice in l'API esterna ùn deve esse scrittu in a lingua Wolfram, chì ùn face mancu u codice di lingua. In fatti, se truvate una funzione in quasi ogni lingua esterna o biblioteca, pudete creà un wrapper chì vi permette di usà in u repositoriu di funzione Wolfram. (Di solitu duvete aduprà e funzioni integrate per questu
Allora chì hè u puntu di fà questu? Essenzialmente, questu permette di utilizà tuttu u sistema integratu di Wolfram Language è u so tutale unificatu di capacità di software. Se ottene l'implementazione di basa da una biblioteca o una lingua esterna, pudete aduprà a ricca struttura simbolica di Wolfram Language per creà una funzione di primu livellu cunvene chì permette à l'utilizatori di utilizà facilmente qualsiasi funziunalità digià implementata. À u minimu, questu deve esse fattibile in un mondu ideale induve tutti i blocchi di custruzzione di e librerie di carica ecc. (Deve esse nutatu chì in a pratica pò esse prublemi cù
A propositu, quandu avete prima guardatu à e biblioteche esterne tipiche, spessu parenu troppu cumplessi per esse cuparti solu in uni pochi di funzioni, ma in parechji casi, assai di a cumplessità vene da a creazione di l'infrastruttura necessaria per a biblioteca è di tutte e funzioni per sustene lu. Tuttavia, quandu si usa u Wolfram Language, l'infrastruttura hè tipicamente digià integrata in i pacchetti, è cusì ùn ci hè bisognu di espose tutte queste funzioni di supportu in dettagliu, ma creanu solu funzioni per e funzioni specifiche di l'applicazione "più" in a biblioteca. .
"Ecosistema" di a basa di cunniscenza
Se avete scrittu funzioni chì utilizate regularmente, mandate à u Repositoriu di Funzioni Wolfram! Se qualcosa di più ùn esce da questu (sviluppu di a lingua), allora ancu allora serà assai più còmuda per voi di utilizà e funzioni per usu persunale. In ogni casu, hè logicu per suppone chì, se aduprate e funzioni regularmente, forse l'altri utilizatori li trovanu ancu utili.
Naturalmente, pudete truvà in una situazione induve ùn pudete - o ùn vulete micca - di sparte e vostre funzioni o in casu d'accessu à risorse d'infurmazione privata. Ancu in tali casi, pudete simpricimenti implementà e funzioni in u vostru contu nuvola,
E funzioni chì sottumettenu à u repository di funzioni Wolfram ùn anu micca esse perfettu; anu solu esse utile. Questu hè un pocu cum'è a sezione "Errori" in a documentazione Unix classica - in a "Sezione Definizioni" ci hè una sezione "Noti di l'autore" induve pudete descriverà limitazioni, prublemi, etc. chì sapete digià di a vostra funzione. Inoltre, quandu invià a vostra funzione à u repository, pudete aghjunghje note di sottumissione chì saranu leghjite da una squadra dedicata di curatori.
Quandu una funzione hè publicata, a so pagina hà sempre dui ligami in u fondu: "
Calchì volta vulete solu aduprà funzioni da u repository di funzione Wolfram, cum'è funzioni integrate, senza fighjà u so codice. Tuttavia, sè vo vulete piglià un ochju à l'internu, ci hè sempre un buttone Notepad in cima. Cliccate nantu à ellu è uttene a vostra propria copia di u librettu di definizione originale chì hè statu sottumessu à u repositoriu di funzioni. Calchì volta pudete solu aduprà cum'è un esempiu per i vostri bisogni. À u listessu tempu, pudete ancu sviluppà a vostra propria mudificazione di sta funzione. Puderete vulete postà queste funzioni chì avete trovu da u repository in u vostru urdinatore o in u vostru contu di almacenamentu in nuvola di afide, forse vulete mandà à a basa di a cunniscenza di a funzione, forsi cum'è una versione mejorata è ampliata di a funzione originale.
In u futuru, pensamu di supportà a furchetta in stile Git per i repositori di funzioni, ma per avà simu pruvatu à mantene a simplicità, è avemu sempre solu una versione accettata di ogni funzione integrata in a lingua. Più spessu chè micca (salvo chì i sviluppatori rinunzià à mantene e funziunalità chì anu sviluppatu è rispundenu à i sottumissioni di l'utilizatori), l'autore originale di a funzione piglia u cuntrollu di l'aghjurnamenti è sottumette e versioni novi, chì sò poi rivisionate è, se passanu u prucessu di rivisione. , publicatu in lingua.
Cunsideremu a quistione di cumu funziona "versione" di e funzioni sviluppate. Avà, quandu aduprate una funzione da u repositoriu di funzioni, a so definizione serà almacenata in permanenza in u vostru urdinatore (o in u vostru contu nuvola se aduprate u nuvulu). Se una nova versione di una funzione hè dispunibule, a prossima volta chì l'utilizate, riceverete un missaghju chì vi informa di questu. È se vulete aghjurnà a funzione à una nova versione, pudete fà cù u cumandimu
Una di e belli cose nantu à u Repositoriu di Funzioni Wolfram hè chì ogni prugramma di lingua Wolfram, in ogni locu pò aduprà funzioni da ellu. Se un prugramma apparisce in un bloccu note, hè spessu cunvenutu di furmà e funzioni di repository cum'è funzioni di "funzione binariu d'ughjettu" facili à leghje (forse cù una versione adattata).
Pudete sempre accede à qualsiasi funzione in u repositoriu di funzioni usendu testu
Cumu viaghja?
Dentru e funzioni in u repository Wolfram, questu hè pussibule utilizendu esattamente u listessu
Cunsigliate
Dentru pudete vede qualchì infurmazione cù a funzione
Cumu funziona a creazione di una funzione di risorsa? U più simplice hè un casu puramente lucale. Eccu un esempiu chì piglia una funzione (in questu casu solu una funzione pura) è a definisce cum'è una funzione di risorsa per una sessione di prugramma:
Quandu avete fattu a definizione, pudete aduprà a funzione di risorsa:
Nota chì ci hè una icona nera in questa funzione blob . Questu significa chì a funzione BLOB si riferisce à a funzione di risorse in memoria definita per a sessione attuale. Una funzione di risorsa chì hè almacenata in permanenza in u vostru urdinatore o in u vostru contu nuvola hà una icona grisa . È ci hè un icona aranciu per una funzione ufficiale di risorse in u Repositoriu di Funzioni di Wolfram .
Allora chì succede quandu utilizate u menù Expand in u Notebook di Definizione? Prima, piglia tutte e definizione in u bloccu note è da elli crea un simbolicu
A implementazione locale di una funzione da un repository in u vostru urdinatore hè realizatu cù u cumandimu
Se cliccate nantu à u buttone Invia per un Repositoriu di Funzioni, ciò chì succede sottu
Per automaticamente, i sottumissioni sò fatte sottu u nome assuciatu cù u vostru ID Wolfram. Ma s'è vo invià una dumanda in nome di una squadra di sviluppu o urganizazione, pudete
Dopu avè mandatu qualsiasi di e vostre funzioni à a basa di cunniscenza di a funzione, serà in fila per a revisione. Se riceve cumenti in risposta, sò generalmente in forma di un schedariu di testu cù "cellule di cumentu" supplementari aghjuntu. Pudete sempre verificà u statutu di a vostra applicazione visitendu
Certi suttilità à u travagliu
À u primu sguardu, pò sembrà chì pudete solu piglià un taccuino di definizione è mettelu verbatim in un repository di funzioni, in ogni modu, ci sò in realtà assai suttilità implicate - è a gestione di elli richiede di fà qualchì meta-programmazione abbastanza cumplessa, gestione di trasfurmazioni simboliche. cum'è u codice chì definisce a funzione, è u Notepad stessu hè definitu. A maiò parte di questu succede internamente, daretu à i sceni, ma pò avè qualchì implicazione chì vale a pena capisce se avete da cuntribuisce à a basa di cunniscenza di e funzioni.
Prima sutilezza immediata: Quandu compie u Notebook di Definizione, pudete simpricimenti riferite à a vostra funzione in ogni locu usendu un nome cum'è MyFunction, chì s'assumiglia à un nome regulare per una funzione in u Wolfram Language, ma per a documentazione di u repositariu di funzioni questu hè rimpiazzatu
A seconda sutilezza: quandu crea una funzione di risorsa da u Notebook di Definizione, tutte e dipendenze implicate in a definizione di a funzione deve esse catturata è esplicitamente incluse. In ogni casu, per assicurà chì e definizioni fermanu modulari, avete bisognu di mette tuttu in un unicu
Di genere, ùn vi vede mai alcuna traccia di u codice utilizatu per cunfigurà stu spaziu di nomi. Ma s'è per qualchì mutivu chjamate un simbulu sottu-eseguitu in a vostra funzione, allora vi vede chì stu simbulu hè in u cuntestu internu di a funzione. Tuttavia, quandu si tratta di u Notepad di Definizione, almenu u simbulu currispundente à a funzione stessu hè
U repositariu di funzioni hè per definisce e funzioni novi. E queste funzioni ponu avè opzioni. Spessu sti paràmetri (per esempiu,
A maiò parte di e funzioni facenu solu ciò chì deve fà ogni volta ch'elli sò chjamati, ma alcune funzioni anu da esse inizializzate prima di pudè eseguisce in una sessione particulare - è per risolve stu prublema, ci hè una sezione "Inizializazione" in a sezione Definizione.
Funzioni da un repositoriu ponu aduprà altre funzioni chì sò digià in u repositoriu per stabilisce definizioni per un repositoriu di funzioni chì includenu duie (o più) funzioni chì si riferite l'una à l'altra, duvete implementà in a vostra sessione di prugramma per pudè; riferimentu cum'è nantu à elli
Perspettivi di sviluppu. Chì duverebbe succede quandu u repositoriu diventa veramente grande?
Oghje avemu appena lanciatu u Repository di Funzioni di Wolfram, ma cù u tempu aspittemu chì a so dimensione è e so funziunalità puderanu aumentà dramaticamente, è cum'è cresce in u sviluppu, ci saranu diversi prublemi chì avemu digià anticipatu.
U primu prublema riguarda i nomi di funzioni è a so unicità. U repositoriu di funzioni hè cuncepitu in tale manera chì, cum'è e funzioni integrate in u Wolfram Language, pudete riferite ogni funzione determinata solu per specificà u so nome. Ma questu inevitabbilmente significa chì i nomi di funzioni devenu esse globalmente unichi in u repositoriu, cusì chì, per esempiu, ci pò esse solu unu.
Questu pò sembrà un grande prublema in prima, ma vale a pena capisce chì hè basicamente u stessu prublema cum'è per e cose cum'è domini internet o manichi di e social media. È u fattu hè chì u sistema hà solu bisognu di avè un registratu - è questu hè unu di i roli chì a nostra cumpagnia farà per a basa di cunniscenza di a funzione Wolfram. (Per versioni privati di un repository, i so registratori ponu esse amministratori.) Di sicuru, un duminiu Internet pò esse registratu senza avè nunda nantu à questu, ma in un repository di funzione, un nome di funzione pò esse registratu solu s'ellu ci hè una definizione attuale di a funzione.
Una parte di u nostru rolu in a gestione di a basa di cunniscenza di a funzione Wolfram hè di assicurà chì u nome sceltu per una funzione hè logicu datu a definizione di a funzione è chì seguita e cunvenzioni di nome di Wolfram Language. Avemu più di 30 anni di sperienza in nome di funzioni integrate in a Lingua Wolfram, è a nostra squadra di curatori (curatori?) Purtarà quella sperienza ancu in u repository di funzioni. Di sicuru, ci sò sempre eccezzioni. Per esempiu, pò parè preferibile avè un nome curtu per una certa funzione, ma hè megliu "difesa" cù un nome più longu è più specificu, perchè avete menu prubabile di scuntrà qualcunu chì vulete fà un nome di funzione simili in u futuru. .
(Si deve esse nutatu quì chì solu aghjunghje qualchì tag di membru per disambiguate e funzioni ùn avarà micca l'effettu previstu. Perchè, salvu chì ùn insisti à assignà sempre una tag, avete bisognu di definisce una tag predeterminata per ogni funzione, è ancu attribuisce tag d'autore. , chì di novu averia bisognu di coordinazione globale.)
Cume a basa di cunniscenza di e funzioni di Wolfram cresce, unu di i prublemi chì prubabilmente sorgerà hè a scoperta di funzioni, per quale u sistema furnisce
Per e funzioni integrate in u Wolfram Language ci hè un cusì chjamatu stratu di rilevazione furnitu da
U repositoriu di funzione Wolfram hè cunfiguratu cum'è un repositoriu di funzione persistente, induve ogni funzione in questu sempre travaglià. Di sicuru, e novi versioni di e funzioni ponu esse dispunibili, è aspittemu chì alcune funzioni diventeranu di sicuru obsolete cù u tempu. E funzioni funziunaranu s'ellu sò usati in i prugrammi, ma e so pagine di documentazione liganu à e funzioni novi è più avanzate.
U Repositoriu di Funzioni Wolfram hè pensatu per aiutà à scopre rapidamente e funzioni novi è amparà novi modi per aduprà a lingua Wolfram. Hè cun grande ottimisimu chì una parte di ciò chì hè stata esplorata in u repositoriu di funzioni averà eventualmente sensu per diventà parti integrate di u core Wolfram Language. In l'ultima decada avemu avutu un set simili
A più impurtante quì hè chì una funzione in un repositoriu di funzioni hè qualcosa chì hè dispunibule per ogni utilizatore per aduprà avà. Hè pussibule chì una funzione di lingua nativa puderia esse assai megliu è più performante, ma un repositoriu di funziunalità permette à l'utilizatori di avè accessu à tutte e funzioni novi subitu. E, più impurtante, stu cuncettu permette à ognunu di aghjunghje tutte e funzioni novi chì volenu.
Nanzu à a storia di a lingua Wolfram, sta idea ùn averia micca travagliatu cum'è, ma in questa tappa ci hè tantu sforzu misu in a lingua, è una cunniscenza cusì prufonda di i principii di cuncepimentu di lingua, chì avà pare assai assai. pussibile per una grande cumunità d'utilizatori per aghjunghje funziunalità chì mantenenu a coerenza di u disignu per rende utili à una larga gamma di utilizatori.
Ci hè un spiritu incredibile di talentu (?) in a cumunità d'utilizatori di Wolfram Language. (Di sicuru, sta cumunità include assai esperti di R & D di punta in una varietà di campi.) Spergu chì u Repositoriu di Funzioni Wolfram furnisce una piattaforma efficace per sbloccà è sparghje stu spiritu di talentu. Solu inseme pudemu creà qualcosa chì espansione significativamente l'area à quale u paradigma di l'informatica in lingua Wolfram pò esse applicatu.
In più di 30 anni, avemu fattu una longa strada cù a lingua Wolfram. Avà inseme, andemu ancu più luntanu. Incuragisce fermamente tutti l'utilizatori rispettati di a lingua Wolfram in u mondu à aduprà u repositoriu funziunale cum'è una piattaforma per questu, è ancu u novu prughjettu di u software cum'è u Free Wolfram Engine for Developers.
Source: www.habr.com